fiji / SNT

Legacy project superseded by https://github.com/morphonets/SNT
GNU General Public License v3.0
11 stars 29 forks source link

Release v3.1.7 #32

Closed tferr closed 6 years ago

tferr commented 6 years ago

This is a hot fix for the issue reported at http://forum.imagej.net/t/issues-running-sholl-analysis-on-simple-neurite-tracer/8957/4. Also, notice that I'm not updating the scijava-pom to its latest version: The rewrite of Simple Neurite Tracer will be released soon, and it is already using it.

tferr commented 6 years ago

Really sorry, but I've been hiding under a rock for the last 3 months (please feel free to yell at me, I deserve it!) Are artifacts now automatically uploaded to the java-8 update site by travis jobs when a release version is mentioned in the pom? Or is this something that I should still do manually as before?

ctrueden commented 6 years ago

Hi @tferr. Hope you are settling in to Janelia OK!

Are artifacts now automatically uploaded to the java-8 update site by travis jobs when a release version is mentioned in the pom?

Not yet, unfortunately. That is still the plan, though.

is this something that I should still do manually as before?

To perform a release these days, you do not make a direct change to master, but instead use the release-version.sh script in scijava/scijava-scripts. This script pushes the release tag, which signals Travis CI to build and deploy the actual release to the Maven repository. For it to function, you just need push permission to the repository in question.

After that, assuming the Travis CI build succeeds and the artifact is deployed successfully, someone still needs to manually upload the new version to the Java-8 update site. It would be best if you could also update the version in pom-scijava, so that the Bill of Materials does not get too out of sync. Some day, updating pom-scijava and/or fiji master will trigger the update site upload automatically, but it does not do so yet.

For details, see the relevant documentation on the wiki. Happy to help if you have any questions or issues.

Regarding next steps here:

  1. Cherry pick the 8a44ebf commit to master.
  2. Run release-version.sh locally.
  3. Enjoy Travis CI doing the release (you should get a mail about whether it worked).
  4. Download the new release binary from maven.imagej.net, place in your Fiji installation, upload to Java-8 update site.
  5. (Optional, but helpful to me) File a PR against pom-scijava bumping the Simple_Neurite_Tracer.version to the correct new one.
tferr commented 6 years ago

Thanks @ctrueden. This is great! But I do need help. I merged the 8a44ebf commit into master, and was going to run release-version.sh when I noticed that the master branch of my fork has now diverged from fiji/Simple_Neurite_Tracer, (it contains the other two commits on my initial PR). From which master branch should I run the script from? the tferr/ or the fiji/ repository? If the latter, what is best, just reclone the fiji/Simple_Neurite_Tracer repository afresh? Also, I guess I'd need push rights to the fiji organization? Do I have them?

imagejan commented 6 years ago

I'd need push rights to the fiji organization? Do I have them?

You can easily check that: if you see a Merge pull request button on this PR, you have push permissions. (Otherwise you'll see "Only those with write access to this repository can merge pull requests.")

From which master branch should I run the script from?

From the fiji/ one.

If the latter, what is best, just reclone the fiji/Simple_Neurite_Tracer repository afresh?

I don't know if this is an optimal way of doing it, but here's what you can do:

If you actually have push permissions to fiji/Simple_Neurite_Tracer, then you can delete your fork on tferr/ and simply configure your local git clone to have fiji/ as origin.

tferr commented 6 years ago

@ctrueden , @imagejan Thanks a lot for the help. But it looks I need more. I ran release-version.sh while on fiji/master but I got a Not on 'master' branch error. So I simply did git checkout master and rerun the script. The coolest magic happened (you guys are awesome): Everything worked fine but it happened on my fork, so now the release is on tferr/Simple_Neurite_Tracer and the new release artifact is not on maven.imagej.net. Oops.

imagejan commented 6 years ago

@tferr wrote:

the new release artifact is not on maven.imagej.net

That's because your fork is not tracked by travis, yes.

I guess the solution for you is to configure your local git repository to have a remote called origin pointing to the fiji/SNT, with its master branch tracking the fiji one and not your fork.

Use git remote -v to see what remotes are configure on your local repo.

ctrueden commented 6 years ago
  1. Make sure that fiji/Simple_Neurite_Tracer master branch has all the commits. You can use git cherry-pick to add commits (presumably from the tferr/Simple_Neurite_Tracer master branch) one by one.
  2. Delete the tferr/Simple_Neurite_Tracer fork from GitHub. Delete the tferr remote from your local machine by running git remote remove tferr.
  3. Rename the fiji remote to origin as suggested by @imagejan: git remote rename fiji origin.
  4. Make sure your local master is tracking origin/master: git checkout master && git reset --hard origin/master && git branch --set-upstream-to=origin/master.
  5. Make sure git status says "On branch master" followed by "Your branch is up to date with 'origin/master'."
  6. Run release-version.sh to cut the release.

Hope that helps!

tferr commented 6 years ago

Thanks a lot for the detailed walk-through. Just uploaded the new release. I did pull the scijava branch from my fork to this repo. It is the best place for contributions from others. A new release from there is warranted, I think I will upload a snapshot release to the Neuroanatomy update site, and make a forum announcement. I will close, but do let me know if I missed something.

imagejan commented 6 years ago

Great, the release is on maven.imagej.net :) I noticed that release-version.sh creates a tag with the release, but doesn't actually create a GitHub release. So if you want your latest release on https://github.com/fiji/Simple_Neurite_Tracer/releases point to 3.1.6, you'll have to create a new release on github and let it point to the respective tag.

ctrueden commented 6 years ago

I did pull the scijava branch from my fork to this repo. It is the best place for contributions from others.

Ah right, great, thanks for remembering about that!

So if you want your latest release on https://github.com/fiji/Simple_Neurite_Tracer/releases point to 3.1.6

In future we could look at configuring something like the github-release-plugin in pom-scijava-base so that GitHub releases can be created more easily when release-version.sh is run.

The reason I haven't done it yet is that I am ignorant of the advantages of GitHub releases. Why bother? Just a convenient spot to put the release notes? Any other advantages?

imagejan commented 6 years ago

Why bother?

My main point here was that if you already have releases on that page, it might be good if the latest release tag wouldn't point to an outdated version :-) Other than for creating nice-looking latest release badges for the github README, I don't see much benefit in having github releases in addition to those on maven.imagej.net.

ctrueden commented 6 years ago

if you already have releases on that page, it might be good if the latest release tag wouldn't point to an outdated version

Completely agreed.

I don't see much benefit in having github releases in addition to those on maven.imagej.net.

For the component JARs, yeah. I suppose GitHub releases could host other binaries such as the standalone ImageJ2 and Fiji downloads currently hosted at https://downloads.imagej.net/. I wonder whether GitHub is behind a CDN so that people in different parts of the world get good download performance.