Verify TASTy versions before releases
See original GitHub issueWe need to verify before releases that TASTy is set to a correct version.
Here is a very simplistic approach that could be automated to ensure that we donβt accidentally release experimental TASTy in a stable release, or stable TASTy in a Nightly release:
(mStable
refers to the TastyFormat.MinorVersion
of the most recent stable Scala release)
if MajorBump:
raise "are you really sure?"
else if Nightly or (MinorBump and RC or Milestone):
assert TastyFormat.ExperimentalVersion > 0
assert TastyFormat.MinorVersion > mStable
else: # release is final
assert ExperimentalVersion == 0
if PatchBump:
assert TastyFormat.MinorVersion == mStable
else if MinorBump:
assert TastyFormat.MinorVersion == mStable + 1
with the proposal above, the only clear weak link is that
TastyFormat.MinorVersion
should be increased in a nightly release
before releasing the next Minor, but I propose that this is
difficult to miss as it should be clear that
merging a needs-minor-release
PR needs a TASTy version bump
A next step would be to automate the weak-link I described above.
A simple way could be automating the creation of an issue whenever
a needs-minor-release
PR is merged, otherwise it will probably
be too complex to analyse automatically (
requires analysing TreePickler, TastyFormat, API additions, Code synthesis changes, more)
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:6 (6 by maintainers)
ok here is an updated diagram with past and future - hopefully this makes a coherent model:
So with the rule of RCs having experimental versions then this is what the future of releases could look like - I have included examples of both a patch release and a minor release.
each row represents the releases made each 6 weeks
Edit: removed diagram - see https://github.com/lampepfl/dotty/issues/13447#issuecomment-912447107 for updated diagram