8000 Pin to script-editor version 0.5.9 by imagejan · Pull Request #5 · scijava/script-editor-jython · GitHub
[go: up one dir, main page]

Skip to content

Pin to script-editor version 0.5.9 #5

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

Closed
wants to merge 1 commit into from

Conversation

imagejan
Copy link
Member

See #4.

@acardona
Copy link
Collaborator

Thanks @imagejan, that's how I was compiling the jython-autocompletions jar locally with mvn. But with the script editor released, why should this pinning be necessary?

@frauzufall
Copy link
Member

@acardona you have to tell your project somehow that you want to use a newer version than defined in pom-scijava here. Alternatively to pinning, you would have to update the script-editor version in pom-scijava first, release a new pom-scijava version and depend on that. Which is also a really useful thing to do, but takes more time.

@acardona
Copy link
Collaborator
acardona commented Dec 16, 2020

Thanks @frauzufall, that helped. But now:

Pushing to git@github.com:scijava/pom-scijava.git
ERROR: Permission to scijava/pom-scijava.git denied to acardona.
fatal: Could not read from remote repository.

... so now I have to create a fork, redirect my local git, push to it, do a pull request ... The amount of time that goes into non-constructive activities is really something.

In any case, now it's clear: there is a master list of packages for scijava, and one has to update them there. No magic after all (i.e. no picking up the latest package, which I was naively expecting, unless a specific version is specified).

@frauzufall
Copy link
Member

@acardona for just updating pom-scijava versions, you can just do this in the browser, that's in my experience the easiest way! Do you see this icon on the top of the pom.xml page?
image
It will create a fork or go to yours if it already exists, you can edit the file there and create the PR directly. Pretty sure that worked well for others in the past.

@frauzufall
Copy link
Member
frauzufall commented Dec 16, 2020

@acardona you don't have to update all versions immediately in the "master list". Doing it as in this PR is completely ok. You can first release all the components you want to release and in the end update the pom-scijava versions jointly - that's probably good practice. Then, once a new pom-scijava version is released, you can depend on that and remove the version pins in your properties.

There should be no magic involved, just using the newest version of everything would defeat the purpose of having pom-scijava to be able to depend on a (versioned) list of matching versions of all libraries we use jointly.

@acardona
Copy link
Collaborator

using the newest version of everything would defeat the purpose of having pom-scijava to be able to depend on a (versioned) list of matching versions of all libraries we use jointly.

It's the opposite: using everything the latest is the only way to ensure your software runs on the most feature-rich and hopefully most error-free version of the dependency libraries. Specifying--pinning--a version number for a library is instead a workaround for a mismatch in the API, to overcome breaking changes or to freeze a particular behavior, which is useful for e.g. creating a branch in a repository that is associated with the analysis done in a particular publication. The downside is that, eventually, that pinning is forgotten and becomes a surprise.

Pinning each dependency at the current version ought to be a featured shell script of the scijava-scripts repository, if it isn't already; it's also the best argument ever for using pom.xml instead of plain javac + jar to package software.

@frauzufall
Copy link
Member

It's the opposite: using everything the latest is the only way to ensure your software runs on the most feature-rich and hopefully most error-free version of the dependency libraries.

Strongly disagree. Releasing a new version of a specific library should be possible without having to ensure it works with all latest versions of all dependencies in pom-scijava. Keep in mind that pom-scijava also includes many libraries not considered "core". You have to be able to independently release library versions and then there is a separate step of making sure they all work together in a specific, noted setting (= fixed versions of each of them). Once this is done and they all work together (= all tests pass), a new pom-scijava version is released. Anything else would also be a nightmare in terms of reproducibility.

@acardona
Copy link
Collaborator

You guys are thinking about reproducibility from the developer end, which is backwards. For reproducibility, Fiji is missing a menu item, for users, named "Freeze version" that emits a pom.xml with all the versions of all the jars installed, and enables recreating a full Fiji installation with it.

@frauzufall
Copy link
Member

Please don't tell me what I think about. I gave up trying to become a Fiji maintainer, so this feature is a story for someone else and not related to pinning versions here. In general, I aim for reproducibility on both user and developer side, they don't contradict each other.

@imagejan
Copy link
Member Author

@acardona wrote:

For reproducibility, Fiji is missing a menu item, for users, named "Freeze version"

For absolute reproducibility from the user perspective, Fiji always had Plugins > Utilities > Make Fiji Package which make a zip file containing an exact copy of your installation. This is however not very satisfying, as it duplicates the entire Fiji. Having a Bill Of Materials defining the exact version of each component is a way to achieve reproducibility in a simpler way.

Albert, I don't know what you mean exactly by "user" and "developer" perspective. For users, it would be perfect if they can write in a publication: "We used Fiji 2.1.0", and everyone could just reproduce this by downloading Fiji 2.1.0, or running jgo sc.fiji:fiji:2.1.0 or similar. Don't you agree?

@frauzufall
Copy link
Member

@imagejan I think the issue with that, in reality, is that the update sites are a distribution system which is not synced with Maven at all. The users or tool distributors are using update sites, and this messes with any system purely based on Maven.

@tferr
Copy link
Collaborator
tferr commented Jan 25, 2021

I am closing this, as this project will soon require script-editor version 0.5.10. There are two things I need from any of you (@imagejan , @frauzufall , @acardona ):

  1. Merge Extend Jython auto-completion to instantiated classes script-editor#51 and
  2. Release script-editor-0.5.10

Currently, this project is pinned to a SNAPSHOT version of the editor and Travis build is failing. Once script-editor 0.5.10 is released, I will release here too, and upload both jars the the Java 8 update site .
Mmmm.. Releasing inter-twined projects is indeed cumbersome.

@tferr tferr closed this Jan 25, 2021
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

Successfully merging this pull request may close these issues.

4 participants
0