Clone this wiki locally
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.
- Platform Build Notes - Notes on building smackage on specific platforms
- Semantic Versioning - Notes on smackage's adoption of the Semantic Versioning protocol (http://semver.org)
- Smackspec - Documentation of smackspec, the specification file format smackage uses to understand what it has and what it needs.