-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Stable OS X releases should use Julia.app not Julia-X.Y.Z.app name for application bundle #10697
Comments
Until Julia is backward-compatible from |
I don't install Julia this way so it's of limited Impact to me, but including the version numbers in the app bundle seems pretty sensible and let's people use multiple versions at the same time. It might be nice to automatically create julia-x.y links for running specific versions from the command line too. I do that pretty regularly so I imagine others might as well. |
Okay, I can understand that regular some users may want to have Julia developers, package maintainers or hackers are still free to rename the
Finally let's take an example of other apps like Mathematica, R or Xcode, they all don't put any version suffixes to their names, because in most cases user wants just most recent release, period. And if anyone want to have BOTH version, Finder offers option to keep both upon overwrite popup. So I propose to at least get rid of |
Patch releases don't make sense. They should be completely compatible. |
This makes sense. Applications on OS X usually don't have any version numbers. I think having the major version number in the name and getting rid of the patch level is a good tradeoff. It would be nice to have a PR for sparkle integration too. I hope it doesn't require users to install Sparkle, but if it gets bundled into Julia, and prompts users for new releases, that would be great. |
One advantage of including the full version in the name is nothing overwrites, and you don't have to manually uninstall the old version every time you update. Some sort of optional self-updating framework, at least for patch releases, might start to make sense though. |
@ViralBShah No Sparkle is just a framework (library) with some minimal API that checks for some entries in RSS xml at given URL known to the app. It does the check every time it is run, or once a while or never, depending on user's decision. Once there is new version it can popup an information and changelog. It can use the same
@tkelman You mean you do have to uninstall old version. If you drag |
That seems entirely expected to me, after installing two different versions? The list of files isn't always going to be exactly the same between different patch versions, so overwriting in-place could lead to leaving behind old files that might have been deleted. A clean upgrade would uninstall first then install the new version, either separately or in the same location. |
I am sorry, but this is completely false. Using |
I believe OS X used to do the merge in older versions, or at least people have told me that in the past anyways. I always religiously delete the old app before installing a new one, thinking that to still be true. |
We can just attribute this behavior to Finder not whole OS X. Anyways, I just checked how 10.5 Leopard behaves, I still have VM with Leopard and it does not merge, but replaces content. So the behavior you described could exist in very very old versions of OS X Finder. Moreover since 10.8's Gatekeeper, Finder simply must replace when dragging app onto existing one. Otherwise any leftover file will invalidate Gatekeeper signature. |
Ah, that's good. I'm not an OS X user so was unaware of that feature. What are the other options it gives you other than "Replace"? |
I agree with removing the version number from the filename, which is not idiomatic on MacOS. As an added benefit, this means that you won't need to re-run |
It sounds like the patch number should be fine to remove. But I agree with @nalimilan above that removing the rest of the version numbers would maybe be counterproductive as long as it's going to be common to have multiple incompatible Julia versions installed simultaneously. |
@tkelman, I don't agree. The user can always rename |
+1 to ditching the version number entirely. |
@stevengj Most users do not rename the applications. If you rename, all bets are off. Many apps do not have version numbers, but MS Office for example is installed as I am ok to go with either case. It really may not matter as much as we think it will. |
I like the idea of just using the major/minor Julia-X.Y.app. It composes very nicely with using Sparkle for nonbreaking patch updates, and I think it's important to allow easy (no-rename) simultaneous installs of incompatible versions. Think about how the install instructions would look for a breaking release — do we really want to have an extra step "rename your existing Julia.app to Julia-old.app, which you should use until you manage to make your existing code compatible with the new version." Perhaps we can re-evaluate when we hit 1.0 and the minor version updates become backwards compatible (assuming we keep following SemVer). |
I just checked my Applications folder. I have 121 items there, and 5 of them have version numbers. Most of these are cross-platform apps. (Actually, now it's 4. I had Matlab in there, and I've migrated my lab code away from Matlab a couple of years ago. Deleted, and recovered 7 gigs.) Interestingly, one of these is Apple's iWork '09. The current Pages.app, Keynote.app etc. are all in the top level folder. If you install the older versions, they end up in an iWork '09 folder, but are named Pages.app, etc. without the version number. |
How many of those 116 unversioned applications release backwards-incompatible updates with respect to user data (and user code, if they run code)? The iWork model is interesting. I could see Julia always installing the latest release as |
@mbauman, I don't see the difficulty here. Renaming files is not hard, it is an everyday task that any user is familiar with. If you want to keep your old Julia, rename it (or the new Julia) instead of copying over it. If you accidentally overwrite your old Julia and want to go back to it, you can always download it again. Why would this be hard for people to comprehend? |
It's not complicated at all, but our current installation is so wonderfully simple that even one extra step is a substantial increase. This is just my preference. |
@mbauman, our current installation requires you to re-run In contrast, defaulting to installing Julia with the same name, and requiring a manual rename in the (rare for non-developers) cases where you want multiple versions of Julia installed, is much simpler and more importantly it is more comprehensible and easily discoverable (since the OS tells you you are replacing a file with the same name and offers the option of a rename). |
That part would be fixed, for patch-increment upgrades, by just removing the patch digit. Considering 0.3 and 0.4 will have different |
I think removing the patch digit is the right thing to do here. |
+1 for removing the patch digit. |
Also sets identifier to org.julialang.julia
Also sets identifier to org.julialang.julia
Currently each Julia release including patch releases add complete version suffix to
Julia-X.Y.Z.app
OS X application bundle name contained in.dmg
distribution package.I honestly think this is really bad idea for stable (and patch) releases because:
Julia.app
julia
command. This matters me a lot, since TextMateJulia.tmbundle
tries to assume some well known location of this command, but since it depends on currently installed version I simply can.So hereby I propose that:
Julia.app
, so we can simply assume that usuallyjulia
command will be in/Applications/Julia.app/Contents/MacOS/julia
Finally there should be indeed a popup asking to install
/usr/local/bin/julia
symlink pointing insideJulia.app
when running the application. Something like:This is somehow related to issue #8733.
P. S. We could also consider using Sparkle integration in
Julia.app
so it checks for new version and auto-updates itself.The text was updated successfully, but these errors were encountered: