Restructure prerelease status.json tree: prerelease/ + group by major.minor - #94
Conversation
| | `release-nightly/latest_good.json` | The most recent fully-passing nightly | | ||
| | `prereleases/<base>/<full>/status.json` | A specific prerelease, for example `prereleases/7.14.0/7.14.0rc1/status.json` | | ||
| | `prereleases/latest.json` | The most recent prerelease | | ||
| | `prerelease/<base>/<full>/status.json` | A specific prerelease, for example `prerelease/7.14.0/7.14.0rc1/status.json` | |
There was a problem hiding this comment.
| | `prerelease/<base>/<full>/status.json` | A specific prerelease, for example `prerelease/7.14.0/7.14.0rc1/status.json` | | |
| | `prerelease/<base>/<full>/status.json` | A specific prerelease, for example `prerelease/7.14.0/7.14.0rc1/status.json` | |
| ) | ||
|
|
||
| assert out == tmp_path / "prereleases" / "7.14.0" / "7.14.0rc1" / "status.json" | ||
| assert out == tmp_path / "prerelease" / "7.14.0" / "7.14.0rc1" / "status.json" |
There was a problem hiding this comment.
As you're iterating here anyway, why is it "7.14.0" / "7.14.0rc1" and not "7.14.0" / "rc1", "7.14.0" / "1" or even simply "7.14.0rc1"?
Or rather I assume we have a different folder structure here compared to stable releases or eventually nightlies. What's the rational behind?
There was a problem hiding this comment.
just thought it would be nicer to group them. but maybe now that we have patch releases top level should be "7.14"
and then you could have: "7.14" / "7.14.0rc2" and "7.14" / "7.14.1rc1"
what do you think?
There was a problem hiding this comment.
I don't have a too strong feeling but from restructuring repo.amd.com I learned you don't want to have too many special cases and rather want to harmonized over the different release streams. The suggestion on its own however looks good.
There was a problem hiding this comment.
My take, let's do it now. Everything is ready and it should be a simple change.
Maybe it would be the time to bump the schema version. |
i think i would rather put this after #93 is merged. and in addition i would like to have the following schema changes first:
both commit sha and build_variant can be extract from setup.yml |
marbre
left a comment
There was a problem hiding this comment.
Maybe it would be the time to bump the schema version.
i think i would rather put this after #93 is merged.
and in addition i would like to have the following schema changes first:
- document
pytorch_enabled/jax_enabledneeds to be put in the status reference json ( fix: track expected pipelines correctly #88 missed that)- list the sha from therock also in the schema
- list build_variant in the schema (for future asan vs release)
both commit sha and build_variant can be extract from setup.yml
It is valid to pull it as a package that than justified the version bump. However, the question is when to raise the number. Maybe the development model needs an adjustment here and you want to work on a feature branch and merge it all at once into develop. As far as I remember every commit is mirrored directly to main and thus it otherwise all lands incrementally.
as we already got some changes in |
Summary
Following the RFC and
release_typein TheRock, we restructure the prereleasestatus.jsontree. Two changes:prereleases/→prerelease/, matchingrelease_typeand the RFC.major.minor. With patch releases now in scope, thetree becomes
prerelease/<major.minor>/<full>/status.json, e.g.prerelease/7.14/7.14.0rc1/status.jsonandprerelease/7.14/7.14.1rc1/....Every patch of one release line lives under a single directory.
Pointers
Two
latest.jsonsymlinks are maintained, both version-key ordered so they neverregress (e.g. rc10 → rc2):
prerelease/latest.json— highest-versioned candidate across all release lines.prerelease/<major.minor>/latest.json— highest-versioned candidate within oneline.
Both are updated in O(1) when a new
status.jsonis written: we point at thejust-written file and compare only against the current symlink target, with no
directory scan and a no-regress guard.
Notes
No prerelease build is published yet, so no on-disk migration or later
renaming/deletion is needed.