-
Notifications
You must be signed in to change notification settings - Fork 603
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
publish new tagged releases #2153
Comments
Why can't you use a commit id? Tagging every commit is horrible and makes tags nearly useless. Not to mention tags can be moved so it is less stable than a commit id. |
@maliberty conda-forge automation (as many other packaging system/distribution tend to do) relies on tagged release for referencing and updating upstream tarballs, see: I agree that automated tagging is not ideal for a mature project, as, if not careful implemented, it can loose some of the semantic around the versioning of the repo. I believe verible use it because they are still
Based on the release history, I can spot a few patterns currently being used for versioning OpenROAD:
Assuming this is consistent I have a few questions:
|
The only pattern is that we are obliged by contract to have certain releases. We don't really have formal releases in general and follow @mithro advice to keep everyone at head. We can add a specific tag for testing but setting up a tag based methodology isn't a good long term strategy. We don't intend to support those tags if there are problems by anything other than telling someone to move to head. |
You can build from a tarball so can you use something like https://github.com/The-OpenROAD-Project/OpenROAD/tarball/4a99e88667b0840531ca0096c4fa0da8f80d6cb1 ? |
Yep, but as hinted my earlier comment conda-forge (and other packaging system/distribution) requires/strongly suggest that those tarballs comes from tagged release. A few of the reasons could be that:
Keeping everyone at HEAD sounds like a valid strategy if everyone is building from source, but having some form of release/versioning is desirable if we want to ease redistribution of OpenROAD in various packaging system. |
Tagging every commit is not a recipe for stability. Google explicitly shot down the idea of versioned releases previously when I proposed it. Please coordinate with @mithro on a unified stance. I believe we've had this same conversation before... |
Sorry if I gave this impression, but I didn't meant to push for one versioning strategy over the other. Each projects have differents cycles of stability, and it's ultimatly the decision of the project maintainers find a release cycle and versioning strategy that better fit the expectation they want to set for their user base. I'm mainly interested to find out if there is a desire from the project maintainers to find "one versioning strategy" that can make the packaging story for OpenROAD across different packaging system/distribution easier (as we were discussing w/ potential contributors in hdl/conda-eda#228 (comment)).
@mithro should be free to jump in here too, I'm just one extra data point and I'm not convinced an unified stance is a strict prior requirements to have this conversation in the open. I could only find this one issue #205 discussing a similar need in the project history, maybe other packagers could also comment on how versioning strategies impacts their effort to package and redistribute OpenROAD?
|
For nixpkgs, I originally packaged it at 2.0 and assumed there would be semver releases, but just recently, it became clear that this style of release had been dropped, so the package now uses the |
Not part of the official team: The two tagged releases were done to satisfy a contract requirement, and did not signal a decision around versioning. |
Maybe we could have this as a shared infrastructure that all downstream packagers could leverage? |
@proppy Most likely it will be Nix-specific but open, yes. For the next several releases, I will do it manual for the next several version bumps, most likely. |
@trepetti I've started setting up something in my fork that run weekly https://github.com/proppy/OpenROAD/tags. Maybe we could run this in a shared project instead w/ some additional QA to vet the upstream tarball before tagging? |
I'd also love it hear from @maliberty (w/ input from @QuantamHD and @mithro) if they think that something like https://en.wikipedia.org/wiki/Rolling_release could be an appropriate releasing strategy for the project, and if yes at which frequency (weekly? monthly? daily?). https://cloud.google.com/blog/topics/developers-practitioners/how-google-got-to-rolling-linux-releases-for-desktops has some pointer on how this was implemented for Google gLinux distribution (based on debian testing).
|
I'm not clear from the links as to what exactly is requested. Is a rolling release just whenever the tests pass or something more? Is there any expectation of a fix to a rolling release that is not just at the current head? To the degree that this is all automatic and of minimal impact I am agnostic. |
Yes pretty much, you'd need to decide on two things:
You could explicit set the expection that bugs fixed at HEAD are (by virtue of the process) to be included in "next rolling release". |
Also OpenROAD-flow-scripts-Nightly-Public and OpenROAD-public. Is this fully automatable? If so I don't care what the frequency is. If not I would pick the longest period possible. |
Yep, I started something at in my fork at https://github.com/proppy/OpenROAD/blob/sync/.github/workflows/github-actions-cron-release-from-head.yml and sync the tree from upstream at a given frequency and cut a new tag if it doesn't already exist for that commit. I was thinking of proceeding this way:
@trepetti what would be the ideal frequency for |
https://github.com/Precision-Innovations/OpenROAD/releases has maintaining the tags by latest. |
@vijayank88 thanks for pointing this out! Do you plan to also populate the tag on this repo? |
@proppy |
Those 'releases' are just nightly builds. GH just provide releases as the mechanism for distribution. We don't make any guarantee of stability. There is no plan to tag them for all the reasons discussed above. |
I can send a PR for an automatic release drafter, similar to the one we use in gdsfactory |
@vijayank88 it would be nice for the tarball at https://github.com/Precision-Innovations/OpenROAD/releases to include the source for |
@vijayank88 doesn't produce those builds - @vvbandeira would be the right person to help. That said those are submodules so you can easily do an init to get the code. |
sadly GitHub release tarballs don't include git metadata nor information, see: dear-github/dear-github#214 |
Is there any GH mechanism to do what you want? |
You can get GitHub release tarballs to include git information this way -> https://github.com/YosysHQ/yosys/pull/3138/files |
As discussed in hdl/conda-eda#228 (comment), we'd need to get releases tagged in order to publish an OpenROAD to https://conda-forge.org/.
Latest tag https://github.com/The-OpenROAD-Project/OpenROAD/tree/v2.0 is ~1yo, would it be possible to get another release tagged.
Alternatively the project could use a strategy similar to https://github.com/chipsalliance/verible/blob/master/.github/workflows/verible-ci.yml#L340 to get version tagged on every commit.
Let me know what you think.
The text was updated successfully, but these errors were encountered: