remkop / picocli

Picocli is a modern framework for building powerful, user-friendly, GraalVM-enabled command line apps with ease. It supports colors, autocompletion, subcommands, and more. In 1 source file so apps can include as source & avoid adding a dependency. Written in Java, usable from Groovy, Kotlin, Scala, etc.
https://picocli.info
Apache License 2.0
4.9k stars 420 forks source link

Document application distribution #1315

Closed charphi closed 3 years ago

charphi commented 3 years ago

Similar to the chapter Packaging Your Application in the documentation, it would be great to have a chapter dedicated to the distribution (for example: "Distributing Your Application").

Distribution can be done by downloading binaries directly or by using a package manager such as

remkop commented 3 years ago

Not sure about this one...

First, my knowledge in this area is very limited. I know how to publish the picocli binaries to bintray, in a way that they also get published to Maven Central, and that is pretty much it. On the other side, I have consumed packages from chocolatey, apt-get and yum, but that is the full extent of my knowledge. :-)

Second, even just writing about how to publish jar files and documentation for a library to Bintray/Maven Central is not easy to explain in a few paragraphs. If we provide enough detail to be useful, there is enough material for an article of a few pages.

And this is just Bintray/Maven Central. I imagine that documentation for each of these repositories and distribution mechanisms would be a similar amount of material. So overall, this is a lot of documentation. And is this not already available elsewhere? I am not sure how much value can we add by mentioning these in the picocli manual.

charphi commented 3 years ago

Indeed, it would be to much to documentation to write. Maybe some links to some relevant documentation?

To my knowledge, all package managers work similarly but the details are different. It is annoying and time consuming to support several. The ideal solution would be to have a "magic" Maven plugin that takes care of the tedious steps and generates everything that is needed for each package manager.

remkop commented 3 years ago

Do you feel like contributing some documentation? :-)

charphi commented 3 years ago

Why not? I will try to gather links in this conversation as a starting point.

charphi commented 3 years ago

Just for fun, here is a list a package managers: https://en.wikipedia.org/wiki/List_of_software_package_management_systems I didn't know there were so many. :sweat_smile:

remkop commented 3 years ago

I am perfectly happy not to pursue this further. 😉

remkop commented 3 years ago

Shall we close this ticket?

charphi commented 3 years ago

Sure.

charphi commented 3 years ago

It seems that someone is automating the distribution 😄
https://github.com/jreleaser/jreleaser and https://github.com/remkop/picocli/issues/1359