Last updated at 7:20 am UTC on 28 September 2017
A Monticello package is a single "program" or "application" defined as a set of
(1) core classes and/or
(2) class extensions.
Class extensions are limited to added methods.
See Adding and removing classes or methods from a Monticello Package
Monticello uses simple category naming conventions to identify what classes and methods makes up a package.
(1) The classes in the package all belong to the same class categories that begin with the package name. For example, the classes that are defined completely by Omnibrowser all have categories beginning with "Omnibrowser".
(2) All of these extension methods are defined with a common method category that begins with an asterisk followed by the package name. For example, the extension methods that are defined by Omnibrowser all have method categories beginning with "*omnibrowser".
A package is a "unit of work", that is Monticello actions against it are "atomic". All of a package is loaded/saved or none of the package is loaded/saved. Packages are mutually exclusive. Since a class can belong to only one class category it can belong to only one package. Since a method can belong to only one method category it can belong to only one package (it can only be part of one packages extension to other classes).
This is define via PackageInfo (which can be subclassed.) Do this in a workspace:
PackageInfo allPackages explore