-
Notifications
You must be signed in to change notification settings - Fork 140
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
Publication source branches/tags and target URLs mapping/aliases #1155
Comments
This looks like an error - Since 3.0.1 is close, let's just fix this once we release 3.0.1 - then the branch history should get fixed when we merge the 3.0.1 changes. |
Thanks @bact for thinking through all the scenarios. I think scenario 1 can be implemented soon - if others agree. Once we release 3.0.1, we can move to scenario 2. |
I'm not planning on using release branches for releases - just tags and merging into the other branches. So I think the publication CI would occur when tagged. We can do this manually. We'll need to update our release checklist with whatever we decide. |
What I'm thinking is the following:
Let me know your thoughts on the above process. If the above process works, we can trigger re-publishing on the merge to the main branch for the currently release version. For the previously released versions, perhaps when we tag the support branch? Could be a manual process - we just need to document in that case. |
I think that works. The translators can review the results live at one of the staging websites for support branches at spdx.github.com/spdx-spec/X.Y.Z-dev, and once everyone are happy, we make a tag, and that tag will be published to spdx.github.com/spdx-spec/X.Y.Z Btw, we drop "v" from the tag as well. And in the place of "cc" that should be the language code. See examples of valid language codes at https://github.com/spdx/spdx-3-model/blob/main/docs%2Ftranslation.md |
Agree. It will give us opportunities as well to try things out before the release of 3.0.1. |
I'm thinking of using tags as well. |
Looking at the 4 bullets in @goneall last comment, I'm not sure everything is clear -- nor that I agree with everything:
|
I don't think we can have a clear a.b.c-lang tag. For example, if after we already have a first translation from English, let's say that that language is German and we have a.b.c-de. That a.b.c-de contains two languages: English and German. Then later, someone starts a translation of Swahili based on existing files (in spdx-spec and spdx-3-model repos). The submitting PR will contain three languages: English, German, and Swahili. Unless we asked them to remove de/ and en/ directories (for spdx-spec) or remove English/German summary/description in model files. The changeset in PR, in principle, should only contain the addition of a new language - but we are talking about a tag which in GitHub means you can download the entire snapshot of a repo. This is not like a "language pack" that we can selectively pick a particular language (a.b.c-de contains only German, a.b.c-sw contains only Swahili). It is accumulative. One language on top of another. So realistically, it will be "a.b.c-en-de-sw". |
Can we adapt the "profile" branch approach? Have a convention that for translation, please prefix it with "lang-" followed by a language code. And work on that branch. Once ready for review, create a PR against "support/x.y"? |
You're thinking it from a wrong point of view: the meaning of a tag a.b.c-XX is that this contains the released content of a.b.c in language XX. It might contain other stuff, as well: the English version will certainly be there, and all the other languages that came before. It makes no sense to use things like |
Thanks. I'm not suggesting that we're going to use that for public facing tag names. I just use that as an instrument to explain what languages are realistically inside at each tag at each state, and to avoid anyone else to think about a "language pack" analogy. I'm glad that that message goes across. |
I think this can work. In a condition that it is well documented, because it is against common conventions (that people think that tag is immutable, but people may forget that a tag can be deleted and a new tag of a different commit can be created by the same name - so practically it is "mutable" if we only consider the tag label). This can be an easy way to manage and make a reference to. Since we can keep the tag label constant (despite the fact that the underlying commit is actually changing). From the point of view of CI, this may make it easier too for publication CI to just publish whatever from "x.y.z" without worrying about new languages. I'm not certain about consequences for other areas ( |
Yes - I agree this will be done on a separate branch. I personally don't think we need to standardize the naming of the branch - we can leave that up to the translators. They could even work in a separate fork of the repo - as long as it eventually results in a merge back to the appropriate branches.
Although tags are not technically immutable, many people expect that they will not change - so I'd like to avoid changing the commit associated with a tag. Good point on the naming. We should come up with a better scheme then what was originally proposed. Perhaps just a number (e.g. a.b.c-l1, a.b.c-l2 ...). Another alternative is to bump the patch version on every language merge.
I'm not sure I understand. The develop branch is where the latest development is occurring. Don't we want to include the translations such that the next release will have the translations included? There is a valid question / concern on how we deal with changes in the spec when translated text is modified. This won't happen very often, but when it does need need a process to flag that the text needs re-translation. |
Our patch version is "sensitive" as we decided to have the patch version inside the element IRIs. So while I like the idea, as it is very straightforward, I'm reluctant to touch the patch version ... unless there's a way we can conveniently (automatically) say that an instance in 3.0.x is the same as in 3.0.y (there's OR, if we can make the IRIs stationary. If that's the case, I think we are good to increment patch version every time we have a new/updated translation. |
This issue is for the discussion/documentation of the source branches/tags and the target URLs mapping for website/RDF publication, including default version/version aliases settings and appropriate version suffixes.
Background
With #1092 resolved, branches in
spdx-spec
repo got renamed like this:(
spdx-3-model
is not yet but will soon after 3.0.1 freeze)Under new branch strategy:
Publication CIs need to be adjusted, see PR #1146 for earlier discussion.
Notes
Note that currently the branch strategy is not entirely true yet:
This is for historical/transitional reason and will eventually resolved soon after the release of 3.0.1.
It is very likely that at that point "support/3.0" will be post-3.0.1 maintenance, and "develop" will be 3.1 development.
Mapping proposal
I cannot really write it down to a general mapping rule yet, but below are some of the possible scenarios.
Hopefully we can use these for discussion, agreed on publication general mapping rule, and update #1146 with that general rule.
Note that will current mapping proposal, if we merge a "hotfix" to "main", the changes will not be get published unless we make another "release". Current proposal assume that all changes will go to either "develop" or "support" branch first.
To make things easier, we will neglect current facts stated in Notes above.
Scenario 1
The "-dev" will be where spec and model developers can check the most recent changes, how HTML and RDF will look like.
Scenario 2
Scenario 3
Same as Scenario 2 but now we have a release candidate for 3.1.
Release candidate will be publish just like the stable release:
Scenario 4
Scenario 5
Same as Scenario 4 but now we have a new translation for 3.0.1.
(Alias table remains unchanged from Scenario 4)
More questions about CI trigger
The text was updated successfully, but these errors were encountered: