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

New version tag(s) since v1.0 #34

Closed
peterjc opened this issue May 30, 2018 · 14 comments
Closed

New version tag(s) since v1.0 #34

peterjc opened this issue May 30, 2018 · 14 comments

Comments

@peterjc
Copy link

peterjc commented May 30, 2018

Currently there is only one version tag on the git repository, v1.0 dated 2015-06-15
https://github.com/thegenemyers/DAZZ_DB/tree/V1.0

I would like to be able to point at a more recent release, for example the 2016-11-11 update which added new tools arrow2DB, DB2arrow and DBwipe.

Are you happy to add a formal version numbering (ideally also accessible via the tools themselves with -v or --version command line switches), or would you recommend referring to particular versions by the date of the associated commit?

In this case, for 2016-11-11 there is only one commit, so this is quite unambiguous:
284e188

@thegenemyers
Copy link
Owner

thegenemyers commented May 30, 2018 via email

@peterjc
Copy link
Author

peterjc commented May 30, 2018

Thank you for the quick reply. Given you are not in the habit of attaching version numbers, would you agree using dates is a good strategy for people wanting to refer to particular points in the development history (particularly for packaging in contexts like Conda, Homebrew, Linux Distributions, etc)?

(Usually yyyy-mm-dd order as in the ISO date standard for sorting reasons)

@thegenemyers
Copy link
Owner

thegenemyers commented May 30, 2018 via email

@peterjc
Copy link
Author

peterjc commented May 30, 2018

Cross reference thegenemyers/DALIGNER#83 and thegenemyers/DALIGNER#2 - @sjackman would a date based versioning scheme for Gene Myers' tools also work for homebrew?

I am thinking something like 1.yyyymmdd or 1.yyyy.mm.dd or 1.yy.mm.dd would be best, these sort after the existing 1.0 release, and leave open the possibility of version 2 using a different scheme should there ever be a wish to move to major.minor.revision or similar.

Paging @rvalieris, @druvus, @daler and @bgruening for input from BioConda.

@sjackman
Copy link

@thegenemyers Could we encourage you to please tag a release? It would be very helpful for both package managers and when citing in a paper precisely which version was used.

You can tag versions using the git command line interface or the GitHub web interface https://github.com/thegenemyers/DAZZ_DB/releases/new

@peterjc
Copy link
Author

peterjc commented May 31, 2018

Certainly for use tagged versions would be easier for us (e.g. just tag the current code as v1.1 for DAZZ_DB, DALIGNER, DAMASKER, DEXTRACTOR etc).

But failing that, how about adding something like this to all the README.md files?

Version Numbers

My tools do not use formal major.minor version numbers like
v1.0 or similar. Instead, where a version number is needed - for
example citing the exact revision of the tool used in an analysis,
or for packaging the tool (e.g. in conda, homebrew, a Linux
distribution or similar) - please use v1.yyyy.mm.dd where
yyyy-mm-dd is the date of the final commit used (on the
master branch).

Again, if there is a pre-existing convention about the exact date based format to recommend in one of the big packaging communities, let's recommend that.

@bgruening
Copy link

I would also prefer tag releases and release tarballs. If this is not possible lets agree on @peterjc suggestion and fix that after the fact.

@sjackman
Copy link

I expected that Semantic Versioning https://semver.org would have a recommendation on using dates, but nope. I'd suggest 1.0.yyyymmdd

@peterjc
Copy link
Author

peterjc commented Jun 1, 2018

OK, let's go for 1.0.yyyymmdd - that occurred to me after my earlier post as well. This has the advantage of minimal disruption should Gene decide to start using 1.1, 1.2, ... in the near future as everything would sort perfectly as 1.0, 1.0.yyyymmdd (chronological), 1.1, 1.2, ...

So, suggested README.md wording for where the tool does have a v1.0 tag in place:

Version Numbers

v1.0 has been released, but if you need to refer to a later revision
from the stable master branch, please use v1.0.yyyymmdd where
yyyy-mm-dd is the date of the commit used. This is important for
method details in scientific papers, and for software packaging
(e.g. Conda, HomeBrew, or Linux distribution packages).

@peterjc
Copy link
Author

peterjc commented Jun 1, 2018

See also https://calver.org/ - what we are proposing is a hybrid system, semantic versioning major.minor.revision with an eight digit date as the revision number (yyyymmdd).

@sjackman
Copy link

sjackman commented Jun 1, 2018

I didn't know about Calver. Thanks for pointing that out.

@thegenemyers
Copy link
Owner

Dear Shaun, Peter, Bjoern,
My apologies that my somewhat less than professional production of
code is causing issues for you. As I said previously given that the main
branch of every module is a straight line, your proposal to use dates
should be just fine. You all have got me to thinking about this aspect of
the Dazzler suite and I may start using version numbers in the future, but
I wouldn't wait for it :-)
May I ask what y'all are up to -- are you using Dazzler components for
Nanopore data assembly, or, ...?
Cheers, Gene

@peterjc
Copy link
Author

peterjc commented Jun 4, 2018

Thanks Gene,

No apology needed. Your repositories are very clearly organised with a straightforward commit history, so I think the date based proposal will work just fine (1.0.yyyymmdd with an eight digit date), and this will not stop you adopting traditional version numbers later on (as long as they sort later than this, e.g. 1.1).

Personally my interest is indirect, I want to try out the PacBio assembly tool FALCON, and would like to have it and its dependencies nicely packaged in BioConda.

https://github.com/PacificBiosciences/FALCON
https://github.com/PacificBiosciences/FALCON-integrate

The Pacific Biosciences team have used git-submodules as a way to bundle their dependencies and ensure a specific known compatible version of them is used. This approach makes a lot of sense during development in a fluid system where individual parts change often. However, this is not how Linux distributions, HomeBrew or Conda deal with dependencies, so we'd like to be able to have your tools each nicely packed in their own right - which means we need some way to clearly define the versions.

Thank you for your assistance with this.

(update - fixed a typo)

@thegenemyers
Copy link
Owner

thegenemyers commented Jun 4, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants