fesch / Structorizer.Desktop

Structorizer is a little tool which you can use to create Nassi-Schneiderman Diagrams (NSD).
https://structorizer.fisch.lu
GNU General Public License v3.0
65 stars 19 forks source link

[nice to have] include into package repositories (for automatic updates) #676

Open DJCrashdummy opened 5 years ago

DJCrashdummy commented 5 years ago

beforehand: thank you very much for this awesome FOSS-project! :clap:


thanks to #585 there is now an easy to install deb-package, but including it into the Debian- (and perhaps Fedora-)repositories would be even better because it makes easy installation and flawless updates possible. if the release-cycle is too slow compared to your project, an own repo may be an option.

concerning Windows, including it into the Chocolatey repository would be the pendant and probably ease the live of even more users.

codemanyak commented 5 years ago

@DJCrashdummy wrote:

concerning Windows, including it into the Chocolatey repository would be the pendant and probably ease the live of even more users.

First of all, thanks for your suggestions. But at least w.r.t. Windows I don't see the potential of a substantial facilitation. The only dependency is an installed Java RE of version 8 at least. Beyond this, what could be easier than an application that doesn't even need to be installed? You just extract the zip file and start the exe. Or use Webstart (as long as it is still supported). Admittedly, the new Java roadmap as propagated by Oracle doesn't actually make things easier and is also a challenge for all packaging efforts: What dependency should be established? Long-term edition, short-term edition, OpenJDK? Okay, if a package repository can solve these ambiguities then I agree: This might make things easier for some users. At the moment I still have very few ideas how this can be achieved (for Windows, maxOS, and several Linux distributions in parallel!).

DJCrashdummy commented 5 years ago

[...] You just extract the zip file and start the exe. Or use Webstart (as long as it is still supported).

well... i know newbies which are completely overextended if they should extract an archive. - and using webstart is completely beyond their scope.

i completely get the idea behind an archive with the executable program and like it, but as soon as i'm using a program more frequently, i rather like to "install" it - which means moving the file(s) to all other programs, create a launcher etc. - and after that i still have to separately take care of every update! beside that the newbies, which don't (know how to) do these extra steps, have to get along with the milling around program file(s).

What dependency should be established?

that's the point of a package manager: you just define the dependency which suites you resp. your program the best and everything else (including updates for the program and dependencies on the user-side) is taken care of by the package manager.


Chocolatey is just a suggestion, because it is the best package manager for windows i know (although it is far away from perfect)... there you can also define javaruntime, or if you want to be sure to stick with version 8 take jre8, as dependency and you are ready to go...

codemanyak commented 5 years ago

@DJCrashdummy Thanks for your explanations. Of course I know what the intentions of a package manager are. But whereas they are the standard with Linux distributions, they are not that usual with Windows, not at least before Windows 10. Partially because you don't actually need them, most applications care for their own updates. DLL conflicts may arise, of course. But I doubt that a newbie having difficulties with the simple extraction of a zip file or the clicking of the WebStart button would find it easier to install e.g. Chocolatey first, which is to be done in the PowerShell or via cmd.exe:

"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

That's more newbie-compatible, really? And, by the way, the user might have to install PowerShell Core version 5.0 or higher first.

Well, okay, the use of Structorizer wouldn't require the installation of some package manager, the zip download will remain available for those who cope with extracting zip files; the package manager support would just be an additional opportunity to get it running and possibly up-to-date, under the assumption that the supporting package manager has already been installed.

there you can also define javaruntime, or if you want to be sure to stick with version 8 take jre8, as dependency and you are ready to go...

The interesting thing is, however, whether you can specify alternative prerequisites (this or that or something else). I haven't worked with Chocolatey before and will have to check its opportunities unless someone volunteers to tell me how this is to be configured and to be maintained ;-).

At the moment, the major challenge is not be torn between Java 8 and Java 11+ in development because the number of Java 8 features becoming declared deprecated in Java versions 10, 11 etc., and the suggested replacements for which aren't available in Java 8, is growing. (I'm really glad we have never actually tried to reimplement the GUI with JavaFX!) Before, while there was a rather linear consecution of Java versions it was okay to leave obsolete platforms behind. In particular since OpenJDK versioning had closed up to Oracle in the recent years. It had seemed reasonable not to rely on obsolete Java versions because there was hardly a sensible reason for users not to update. But now, the rather confusing new concurrent licence policy of Oracle puts that at risk, and we can only hope that deprecation phases last until the old long-term support version gets substituted such that it's safe to kick the obsolete stuff out and to require the next RE version. It is of course possible to run several JREs simultaneously (though this is something that had always been warned of), but I definitely don't want to force someone to acquire a commercial Java release, and on the other hand it doesn't make much sense to have some package manager install another Java instance in addition to an existing one that would be good enough. In a way, you are right, it doesn't matter what I want or not, we will have to face the reality to come, and possibly a package manager will be the only way out of he chaos, whatever redundant resources that might cost. But well, this is a problem all Java developers will have to solve nowadways.

DJCrashdummy commented 5 years ago

install e.g. Chocolatey first, which is to be done in the PowerShell or via cmd.exe: [...] That's more newbie-compatible, really?

i guessed that this would come... :stuck_out_tongue_winking_eye: for sure not! but i install chocolatey on all my newbies windows-systems once (including some packages/scripts for automatic updates, easier install similar to apturl, backup etc.), after that they don't have to think about anything but are still up-to-date and safe. --> so neither me nor them would have to fiddle around with every update separately (for a bunch of windows machines).

[...] the packagae manager support would just be an additional opportunity to get it running and possibly up-to-date [...]

that's the point... beside managing dependencies.

The interesting thing is, however, whether you can specify alternative prerequisites (this or that or something else). I haven't worked with Chocolatey before and will have to check its opportunities unless someone volunteers to tell me how this is to be configured and to be maintained ;-).

well... unfortunately (just in this case!) i'm not using windows. i'm recommending chocolaty for users who must/insist on sticking with windows, because it is the closest to linux package managers i know. in linux package manager it is possible, so hopefully this also works in chocolatey. --> beside their docs and FAQs, there are also useful information at the github-project and i'm sure they are willingly to help and answer questions in best FOSS-tradition. :wink:

thanks for your time and insight into java development.

codemanyak commented 5 years ago

@DJCrashdummy Bob just finished a Windows installer for Structorizer that cares for automatic updates (like Java WebStart has done). This is the more Windows-like thing to do than to fiddle with a package manager, I think (though I haven't discarded your proposal altogether since the installer does not ensure an appropriate Java installation). The installer (based on Inno Setup and a proprietary open-source updater Upla) is already available from the Structorizer download page and is described in the Structorizer User Guide. This should not overstrain a newbie and even allows an individual (account-bound) installation without administrator privileges. (We are still pondering a setup option to have the user asked to either agree or postpone an available Structorizer update for those who are afraid of unwelcome automatic updates. Perhaps we offer even completely to disable the update retrieval.)

GitMensch commented 4 years ago

@codemanyak this can be closed now, can't it?

codemanyak commented 4 years ago

@GitMensch As @DJCrashdummy requested a package manager installation (suggested via Chocolatey) I guess the issue hasn't been satisfied yet, though the Windows installer is even easier to use for the mentioned newbies. But it doesn't address the Java requirement management. So, the Chocolatey thing is still not so bad an idea to pursue. I simply haven't had the time and mood to dive into the Chocolatey stuff.