robsimmons edited this page Oct 24, 2011 · 6 revisions

Smackage developer documentation

Welcome; if you're looking for information on how to use Smackage, that's contained in the README. This wiki is documentation for people who want to release packages with Smackage.

Fundamentally, this is simple, at least for projects that use pure SML. If you want to add a project to Smackage, it currently has to be in an internet-facing git repository that uses the semantic versioning protocol seriously (tl;dr - you use tags of the form vX.Y.Z to mark immutable releases, and you aren't allowed to break your interfaces unless you change the major revision number, i.e. 4.x.x to 5.x.x).

Say I want this toy repository to be released through Smackage using the package name rob-toy. To make this happen, I'd issue a pull request that would add the following line to smackage's master 'sources' file.

rob-toy git git://github.com/robsimmons/rob-toy.git

It's would also probably a good idea to add a rob-toy.smackspec file to this project if it wasn't already there; this is mandatory if your Smackage project depends on other Smackage projects. See the smackspec page for details.