Intro to Packages and Releases

Versioned protocols guarantee no unexpected changes.

Packages are used to organize a collection of protocols. A protocol is a Python script that generates autoprotocol. It is accompanied by a json file, called a manifest, which defines certain properties of the protocol, like a name and a version. Protocols have a unique name, e.g. 'My Protocol', which identifies them within a Package. The manifest also contains a version number for the protocol, which is of the format 'Major.Minor.Patch', for example '1.0.0'.

Protocols are added to a Package by uploading a release. A release is a zip archive that contains one, or several, protocols. Strateos organizes protocols together by the uniqueness of their name within the Package. For example, say we upload an initial release that contains a protocol with the name 'My Protocol' with a version '1.0.0'. To update just this protocol, we can upload a second release that contains a protocol with the same name 'My Protocol' but with an updated version '1.0.1'. A Release does not have to update all of the protocols within the Package. It can contain as many, or as few, protocols as you would like to create or update.

When one user of an organization uploads a package, it is accessible to other members of that organization. Only the creator of the Package is able to edit the Package or update protcools.