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

9k dist filenames changed again #2269

Closed
headius opened this issue Dec 2, 2014 · 15 comments
Closed

9k dist filenames changed again #2269

headius opened this issue Dec 2, 2014 · 15 comments

Comments

@headius
Copy link
Member

headius commented Dec 2, 2014

It appears that the 9k dist files now use the version number 9.0.0.0-SNAPSHOT instead of 9.0.0.0.dev. I don't see a problem with this except that we've had to update ruby-build once already for the new filenames. We need to decide on the name we're going to use for snapshot artifacts and stick to it.

cc @enebo @mkristian @rtyler @nirvdrum

@headius headius added this to the JRuby 9.0.0.0 milestone Dec 2, 2014
@headius
Copy link
Member Author

headius commented Dec 2, 2014

My previous ruby-build PR: rbenv/ruby-build#672

@rtyler
Copy link

rtyler commented Dec 3, 2014

Well, -SNAPSHOT is an adopted convention in the Java community, -dev is an adopted convention (it seems) in the Ruby community.

Whose side are we on!

My two cents is that gems should follow the Ruby convention if possible, jars should follow the Java convention if possible.

If I were forced to chose, I would choose the Java convention because there's a lot more actual tooling built around -SNAPSHOT artifacts than there is tooling in Ruby around -dev

@mkristian
Copy link
Member

@chrisseaton setup a travis run to check the current setup of versions. it follows what we used for quite some time with jruby-1_7 and follows the maven conventions. only exception is jruby-jars which will carry a valid ruby version - not sure 9.0.0.0.SNAPSHOT or 9.0.0.0.snapshot

please see https://github.com/jruby/jruby/blob/master/test/check_versions.sh

for me the current way is the one with least "hacking" to get the versions right and so less space for "version errors"

@chrisseaton
Copy link
Contributor

The gem version is now .SNAPSHOT - so the only thing that changes from the JAR version is - becomes ..

I don't have a particular opinion about .SNAPSHOT vs .dev, as long as what we are doing and why is documented and tested. What I really object to is .SNAPSHOT.dev, which is lunacy.

The version numbers have kept changing for the last few months. We did indeed change them again - but hopefully that was one last time to make them consistent - and then we added that test on Travis so that they don't randomly change in the future.

I also find the changing version numbers very annoying, but I think this final tweak plus the check has fixed it for good. That is until we start thinking about rc, preview or whatever - but at least the test will keep all the artefacts consistent.

@headius
Copy link
Member Author

headius commented Dec 3, 2014

I'm fine with SNAPSHOT throughout. Please review my ruby-build commit here (I had to guess the +graal filenames, @chrisseaton) and we'll make this the last ruby-build change.

cc @sstephenson

@chrisseaton
Copy link
Contributor

@headius sorry can you change

http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0+graal-$(graal_architecture)-SNAPSHOT-bin.tar.gz

to

http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal-$(graal_architecture)-bin.tar.gz

I wanted to keep 9.0.0.0-SNAPSHOT as one atomic thing - makes it easier to any tooling that's looking for it. I'd send you a PR but not sure if you can PR a PR.

Have you kept the 9000 versions in to avoid breaking existing stuff?

@headius
Copy link
Member Author

headius commented Dec 3, 2014

@chrisseaton Can do on the filename.

Kept 9000 mostly because it's shorter but also because there are a few howtos out there that say to install 9000 instead of 9.0.0.0.

@donv
Copy link
Member

donv commented Dec 3, 2014

For the jruby-jars.gem, please make sure that development snapshots sort earlier than later pre-releases. Pre-release gem versions are sorted alphanumerically per dot-separated parts. "9.0.0.0.snapshot" will sort after "9.0.0.0.rc.snapshot", so it should be avoided. The earlier used ".dev" suffix instead of ".snapshot" should work OK (ignoring ".beta" pre-releases).

@headius
Copy link
Member Author

headius commented Dec 3, 2014

Yeah, that's a good point about sorting. However SNAPSHOT should never be in a release and so it should not typically be used for sorting when you're installing a released library. That should help, right?

I am confused what we'd use for master snapshots after we do an RC release, though. 9.0.0.0-SNAPSHOT would sort before 9.0.0.0.rc1-SNAPSHOT. But we shouldn't have 9.0.0.0-SNAPSHOT versions in flight after the RC, right?

@chrisseaton
Copy link
Contributor

Why does the order that they sort matter? Just for the order it will appear on websites? That doesn't have any actual software engineering implications does it?

@mkristian
Copy link
Member

maven does not allow you to deploy a release with -SNAPSHOT in it,
independent whatever version comes in front of -SNAPSHOT. SNAPSHOT just
means: not yet released.

so whatever version we pick, until it is NOT released it should have the
postfix -SNAPSHOT

usually the -SNAPSHOT just gets dropped.

maybe is it time to switch to 9.0.0.0.dev-SNAPSHOT
and then continue with
9.0.0.0.beta-SNAPSHOT
9.0.0.0.rc1-SNAPSHOT
9.0.0.0.rc2-SNAPSHOT
9.0.0.0-SNAPSHOT

that could even solve @donv problems ;) when I skip the beta one from my
example.

IMO depending on lexicographical order of versions to match the
chronological order is not the right way. but that is only my personally
feeling here.

@mkristian
Copy link
Member

hoops - it almost the same as we had before sorry, but with tiny difference: the gem version: jruby-jars-9.0.0.0.dev.SNAPSHOT ;)

so I really want to only change the file VERSION of the root directory.

@mkristian
Copy link
Member

something is still wrong with this "dev" idea.

is the next release 9.0.0.0.rc1 then the version we should use now is 9.0.0.0.rc1-SNAPSHOT, etc

@chrisseaton
Copy link
Contributor

Maybe we should simply call it jruby-SNAPSHOT or jruby-dev. It's not tied to a particular version - it's just whatever is in the repository on that day.

@headius
Copy link
Member Author

headius commented Dec 4, 2014

@chrisseaton Except that we have two HEADs in git, master and jruby-1_7.

I think I have everything I need to send in a PR to ruby-build. I'll summarize what I think I got out of this.

  • Filenames will remain -SNAPSHOT postfixed to actual reported version. 9.0.0.0-SNAPSHOT.
  • ruby-build will be updated to use the -SNAPSHOT filenames, but this will just switch to the 9.0.0.0 release file once we release.

I will try to talk to @sstephenson about getting a better setup for HEAD builds.

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