General comment
Your question suggests that you might be on the wrong or at least on a stony path. Let me try to clear some things up even if it is not strictly Mathematica correlated.
Yes, you can share your package via GitHub, but you might confuse things here. The primary purpose of GitHub is to provide an online platform for the version control system git. When you publish a complete Mathematica package, it is more like publishing a release of software. GitHub has this feature and lets you publish releases, but it is not its primary purpose.
You should use git when you want to track the progress during the coding of the package. If you want to make your code public or you are working with several other people on the same code (the other main purpose of git), then GitHub is the place to go. With git you can track changes, you can work on several features simultaneously, you can track bugs by comparing different versions of files, and much much more. RM wrote an excellent answer once that explained package development in more detail:
Additional helpful features of GitHub are that
- you have an issue tracker where people can tell you about things that don't work
- you can create documentation pages quickly because it provides a markdown wiki for each repository
- you can upload several releases of your software that users can download
When you don't know git, don't start with GitLink
GitLink is an API that makes it possible to use git from within Mathematica. If you don't know git, then this might not be the way you want to go. It is like using MathLink without knowing C.
If you indeed want to learn how to use version control, then start with a simple tutorial to understand the basics. I don't expect you to work on commandline but there are very nice GUIs for git. On OSX or Windows I highly recommend SourceTree, and on Linux, you could use for instance gitk
.
I want to note that IntelliJ Idea as other good IDEs as well has extremely nice git support right out of the box. If you use it with the Mathematica Plugin you can develop packages and have all those features in one tool.
If you only want to share the final package
Well, you can go to GitHub as well. Just create an account and a new repository. Put in a decent README.md
and upload your package.zip
in the release section. You don't have to know any git command for this. It can all be done with some mouse clicks.
How should I see "paclets" in this context?
Paclets are the future way how you should distribute your packages. The problem is that the documentation is currently non-existent. My background info on paclets is very vague, but I believe paclets started as containers for additional data like CUDA drivers or for all the XXXData
functions like ChemicalData
. I'm not sure if it was planned from the beginning, but paclets seem to be the future of package-distribution.
For a good resource on how to use them with your own packages, you should read Szabolcs post: