Skip to content
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

No tag/release for version 1.0.1 #191

Closed
uniqueg opened this issue Sep 27, 2022 · 24 comments
Closed

No tag/release for version 1.0.1 #191

uniqueg opened this issue Sep 27, 2022 · 24 comments

Comments

@uniqueg
Copy link
Contributor

uniqueg commented Sep 27, 2022

The reference documentation linked to in this repository's README.md is for version 1.0.1 of the specification. However, there is no corresponding release and/or tag for version 1.0.1 (latest tag and release are for v1.0.0).

Moreover, I seem to be unable to find the commit from which the specification linked to at the top of the reference documentation is derived. While the version string in the specification itself seems to have been bumped in this commit, the (state of the) specification in that commit does not seem to match the specification linked to in the reference documentation.

As it is of critical importance that implementers choose a definite version of a specification to develop against, it would be great to:

  • Identify what exactly v1.0.1 constitutes
  • Tag the corresponding commit
  • Create an associated release
  • Ensure that the version of the specification linked to in the reference documentation matches the one in that release

Compare also #192 and #193

@vinjana
Copy link

vinjana commented Sep 27, 2022

In this comment I refer to the versioning scheme. I just want to mention it here because, I think, if we want semantic versioning (SemVer2) then the version that is now published in the reference documentation as 1.0.1 should actually be 1.1.0 (at least), because it adds fields to the ServiceInfo, and API additions qualify for minor bumps according to SemVer2. I think it would be fine to tag this version both 1.0.1 and 1.1.0 and document this in the changelogs. Just an idea.

@uniqueg
Copy link
Contributor Author

uniqueg commented Sep 27, 2022

Thanks @vinjana. Agree on SemVer, and I think that was the original intention. Given that there is not a tag/release yet for v1.0.1, I think it's indeed an opportunity to change the version to v1.1.0 and then create the release.

I also agree with you on the more general points on having a clear governance regarding the creation of releases (ideally across -at least- the GA4GH Cloud WS APIs).

@vinjana
Copy link

vinjana commented Sep 28, 2022

Duplicate of #157 .

@uniqueg
Copy link
Contributor Author

uniqueg commented Sep 28, 2022

Oops, sorry. But guess it's time to track down the relevant 1.0.1 commit then :)

@vinjana
Copy link

vinjana commented Oct 24, 2022

What about keeping 1.0.1 anyway, but marking it as deprecated. It is possible to put two tags on a commit, e.g. 1.0.1 and 1.1.0. This would also express that these versions are actually the same. Probably some sites use the 1.0.1 tag (e.g. Sapporo, which even has a copy of the spec in the repository -- at least of the version they considered 1.0.1).

@uniqueg
Copy link
Contributor Author

uniqueg commented Oct 27, 2022

Hmm, I don't quite understand how tagging the v1.1.0 commit with v1.0.1 and then deprecating v1.0.1 would help anyone. They were certainly not meant to be identical, and it may further confuse people.

I personally would prefer that someone actually makes a judgement call on what v1.0.1 was (e.g., the commit that actually bumped the version in the specs would be a reasonable candidate if we have no further documentation; or use the commit that Sapporo is using) and then run with that. As long as the reference docs only point to the last release, with the v1.1.0 release they don't even have to be updated to match v1.0.1. So it'd just be a matter of checking out the commit, tagging it, pushing and creating a release.

@vsmalladi
Copy link
Contributor

@uniqueg I think that the commit for v1.0.1 from the main branch.

Do we have a release for v1.1.0? If not I think we can release 1.0.1 with a tag on the main/master branch.

@uniqueg
Copy link
Contributor Author

uniqueg commented Dec 22, 2022

Great find, @vsmalladi, thanks a lot. I don't think there's a release for either 1.0.1 or 1.1.0: https://github.com/ga4gh/workflow-execution-service-schemas/releases. So yes, tagging the commit you identified with 1.0.1, pushing and creating a release would be great. And then the same with 1.1.0 as well, because there also is neither a tag nor a release at the moment. And while at it, perhaps the release name for 0.3.0 could also be changed for consistency.

Ideally we would of course automate this flow, e.g., whenever another branch is rebased onto the main branch, a tag should be added and a release created. A changelog could be autogenerated from the commit titles, especially when Conventional Commits are used: https://www.conventionalcommits.org/en/v1.0.0/

Similarly, we could automate pushing updates to the documentation with each release, ideally in a way that keeps older documentation versions accessible.

And then we could also think about pushing releases to Zenodo or Medline or whatever (there was a discussion on that on the Slack board) so that the versioned releases are archived and assigned DOIs. Being able to cite a general and or specific version of WES would be great.

Of course, that flow could be reused for all (Cloud) API specs.

Might be a good topic for a hackathon.

Anyway, to close this issue, I'd just be happy with at least a tag on the commit you identified.

@vsmalladi
Copy link
Contributor

@uniqueg Great. I can't add any new tags or releases on master branch. So that might be up to you or @wleepang or @patmagee

@uniqueg
Copy link
Contributor Author

uniqueg commented Dec 29, 2022

I probably don't have more permissions than you have, so yeah, I guess this goes to @wleepang and/or @patmagee 🙏🏻

@wleepang
Copy link
Contributor

wleepang commented Jan 3, 2023

Are we sure it's not this commit that needs to be tagged? This is where I see 1.0.1 appear in the spec.

@uniqueg
Copy link
Contributor Author

uniqueg commented Jan 4, 2023

Could be, I don't know. I guess at this point it's just important to tag any one commit we can agree on :)

@vsmalladi
Copy link
Contributor

@wleepang i do think that the intention was for this commit to be the1.0.1 release, however there seems to be a merge after that fixes service info so that it validates. So my opnion is the commit that does the fix and passes test should be the version we tag.

@uniqueg
Copy link
Contributor Author

uniqueg commented Jan 4, 2023

Given that we have some leeway in deciding what's v1.0.1 after more than two years of people not freaking out, I think @vsmalladi's reasoning makes perfect sense to me. It also has the additional advantage of being on the tip of master for more than two years, and thus there's a reasonable chance that some people may have developed against it.

So +1 for commit 13f5682 from my side

@wleepang
Copy link
Contributor

wleepang commented Jan 8, 2023

I've tagged commit 13f5682 as 1.0.1 and pushed the tag. This commit is on master, but most of our recent updates have been to develop, so the two branches have diverged a bit.

In particular, the tagged commit in master is not in develop. I've also submitted PR #200 to address this.

@vsmalladi
Copy link
Contributor

@wleepang can we close this issue now?

@uniqueg
Copy link
Contributor Author

uniqueg commented Jan 12, 2023

Actually, I have just realized that the v1.0.1 tag points to a commit on branch develop.

I think it is better/safer to have release tags only pointing to commits on the main (here: master) branch instead, with the head commit on that branch always being the commit that is tagged for the most recent release. I would then also suggest to make the main branch (we might actually rename it to main in case anyone is bothered by master) the default branch so that potential implementers will always be pointed to the commit representing the latest version if they stumble on the repository.

This is described in #193 in some more detail, but I would just like to point out again that this is important, because I have just realized that the commit tagged for the v0.3.0 release is not associated with any known branch on this repo (visit https://github.com/ga4gh/workflow-execution-service-schemas/releases/tag/0.3.0 and click on the link pointing to the associated 50987ae commit, then have a look at the yellow banner at the top), which is surely not great. Similarly, the develop branch may sometimes be unstable, for example if it needs rebasing against master/main after merging in the commits for a new release, e.g., from develop or a dedicated release branch.

In summary, personally I would prefer to merge develop into master/main first such that the head commit points to the commit we chose to represent v1.0.1, then retag 1.0.1 for that commit on the master/main branch and recreate the release. Then we need to make sure that develop and the master/main branch share the same history (merge back or rebase if it is not) and then we should be good. So basically, let's first address #193 before we properly address this issue.

@vsmalladi
Copy link
Contributor

I agree tag to 'main/master' is the best way to do this.

@uniqueg I beleive that v1.0.1 commit is the head of master/main now.

@uniqueg
Copy link
Contributor Author

uniqueg commented Jan 12, 2023

Oh, yes, you are right. Given that it's the same commit, I'm wondering why it shows up as being part of a specific branch at all:

image

Got to this screen after following the commit that is associated with the tag.

Maybe this is because develop is the default branch?

@uniqueg
Copy link
Contributor Author

uniqueg commented Jan 12, 2023

Anyway, it seems that my concern is not relevant here. The only thing left to do, from my perspective, is to change the default branch, but that's #193. So I guess from my side the issue can be closed.

@wleepang
Copy link
Contributor

wleepang commented Jan 12, 2023

What I attempted to do was tag 1.0.1 on master and then PR master into develop. As far as I can tell from the commit/branch network this happened.

@patmagee
Copy link
Contributor

@uniqueg this seems like it is done, can I close this?

@uniqueg
Copy link
Contributor Author

uniqueg commented Apr 18, 2023

I have confirmed the first three points just now. If you can verify that the reference documentation points to the 1.0.1 release, then I think this is done indeed.

@uniqueg uniqueg mentioned this issue Apr 18, 2023
@vsmalladi
Copy link
Contributor

@uniqueg can we confirm we can close this?

@uniqueg uniqueg closed this as completed Aug 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants