-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verify TASTy versions before releases #13447
Comments
M and RC versions should still be experimental. Imagine if a serious blocker is discovered during the RC cycle that requires a TASTy format change to fix it. If you've already used the non-experimental TASTy version in the RC release, you're stuck. So the first line of the script above should be changed to
|
My suggestion then here is that the experimental should at least be increased within the same minor version, to account for new |
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 #13447 (comment) for updated diagram |
I have updated the diagram above with the potential future of the current state of things - the most tricky part is RCs for patch releases, if we insist on them having experimental TASTy then either we keep the same minor version and |
I think it's fine for 3.1.1-RC1 to use the same tasty version as 3.1.0 (since the tasty format should be exactly the same between these two versions) as long as 3.1.1-RC1 doesn't let you use experimental features like a nightly does, but you still need to move from 28.2-1 to 28.1-0 when branching release-3.1.1 from master. |
ok here is an updated diagram with past and future - hopefully this makes a coherent model:
|
We 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 theTastyFormat.MinorVersion
of the most recent stable Scala release)with the proposal above, the only clear weak link is that
TastyFormat.MinorVersion
should be increased in a nightly releasebefore 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 bumpA 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 probablybe too complex to analyse automatically (
requires analysing TreePickler, TastyFormat, API additions, Code synthesis changes, more)
The text was updated successfully, but these errors were encountered: