I had/have my own installer routing which basically does the same as Leonids, but isn't as general as his installer.
Since I now was splitting a small sub-package from another one to make this publicly available, I thought of joining the development of Leonids installer, because I'm kind of sick about, that everyone is hacking their own stuff while we could easily join forces here.
After trying it, I saw that it doesn't fit my needs in its current form and therefore, I was talking to Leonid about this plans. My biggest concern currently is, that the Installer only supports the easy package layout while all of my projects have the structure suggested by WB.
Furthermore, since many public projects are hosted on GitHub, I would like to have a way to first check whether or not a package needs an upgrade. On GitHub we not only have access to the final master.zip, but we could check any standardized version file like Leonid already started in creating the project.m files.
@halirutan Except, not everyone uses the project.m files (most leave it there because WB puts it there) and some times, the top branch is not even master
@rm-rf Another thing: it is not clear to me why the Installer destroys file permissions.
Basically, if they are kept in the zip file, then unpacking is done by Java and Mathematica only copies the stuff. For this it should rely on the OS anyway.
@rm-rf Currently my biggest concern is that, although I know what Leonid has planned, I'm not sure how he wants new features be implemented.
@halirutan in fact, WB's "deploy" doesn't preserve permissions either. I don't know why this happens either, since I too thought that the OS handles it.
@halirutan I tried looking at this bug last year, but it seems like Leonid implemented much of the functionality in Java, so I was completely lost there.
@rm-rf Although we have ExtractArchive (I haven't checked whether this preserves permissions), this was introduced in 8. So all users < V8 are screwed.
@halirutan That's definitely a decision to be taken and I would favour having v8 (or maybe even v9) as the minimum. Look at mma.se... very few people using v7
Hi @rm-rf, @halirutan. So, what would you guys think is the biggest problem for the installer now - file permissions? As I tried to explain in the comment to the layout issue opened by @halirutan, the nested layout created by the WB is not the one that should be used for deployment. Anyway, I have removed that check, so now any layout should work.
Also, with the new functionality for ExtractArchive, it might be that my Java code is altogether unnecessary. I have to admit that I stole the unpacking code from the web, fixing a couple of bugs there. Implementing OS calls to change permissions would be Ok, but certainly more work. May be, ExtractArchive preserves the permissions, I just have to check that.
@LeonidShifrin The permissions thing might not be a problem for most projects, but I think it's something that needs to be fixed at some point because losing permissions just seems "wrong". ExtractArchive does seem to preserve permissions.
Secondly, I'm not certain you should be installing to $UBD/Applications if the structure resembles that of a WB project because we don't know how the developer intended for it to be deployed. I think your original check was useful and should be retained.
@rm-rf All right, I will consider moving to ExtarctArchive to be the top item on the todo list. Also, as I looked at the code a few days ago, it needs some refactoring, since I wasn't able to immediately see what was going on there, which isn't good.
@rm-rf Re: installation check: I was also thinking like that before, but imposing rigid check might also be an overkill. I think best would be to keep it as an option which is enabled by default but can be disabled. I removed it as a quick fix for @halirutan to be able to use it with his layout, although, as I mentioned, it seems to me that that layout isn't valid.
@rm-rf It will be hard to allocate any time for this in the next few days, but I may be able to do so closer to the next weekend.