The default mason registry is a GitHub repository containing a list of versioned manifest files.
View the official mason registry here: Mason-Registry.
A registry will be downloaded to
for each registry named in
$MASON_REGISTRY if a registry at that location
does not already exist.
The registry consists of a hierarchy like the following:
mason-registry/ Bricks/ Curl/ 1.0.0.toml 2.0.0.toml RecordParser/ 1.0.0.toml 1.1.0.toml 1.2.0.toml VisualDebug/ 2.2.0.toml 2.2.1.toml
Each versioned manifest file is identical to the manifest file in the top-level directory of the package repository, with the exception of a file path or URL pointing to the repository and revision in which the version is located.
Continuing the example from before, the ‘registry’
0.1.0.toml would include the additional source field:
[brick] authors = ["Sam Partee <Sam@Partee.com>"] chplVersion = "1.16.0" license = "None" name = "MyPackage" source = "https://github.com/Spartee/MyPackage" version = "0.1.0" [dependencies] curl = '1.0.0'
Search the registry with
mason search <query>, which will list all packages
(and their latest version) that contain
<query> in their names (case-insensitive).
If no query is provided, all packages in the registry will be listed.
Searching with the
--show flag will output the toml file of a package if the search
returns a single package. If the package has multiple versions it will return the most
Packages will be listed regardless of their
It is sometimes desirable to use a local registry, for example with libraries
you don’t intend to distribute. The following steps create a local registry
starting with Bricks for
PackageA which was created with
mason new PackageA.
Once you have successfully created a local registry,
mason publish <path-to-local-registry>
can be used to publish automatically.
First create, commit, and tag the packages that will be in the registry:
Create a local registry:
# Create the local registry mkdir /path/to/local/registry cd /path/to/local/registry # Create /Bricks/DummyPackage/0.1.0.toml touch README.md # Initialize and check everything in to the git repository git init git add README.md /Bricks/DummyPackage/0.1.0.toml git commit -m 'First Commit'
Alternatively, you may automatically create a local registry by running
mason publish --create-registry path/to/local/registry.
MASON_REGISTRY can be set to point at both the local registry and the
Adding a local package to the local registry
mason new PackageA cd PackageA git add . git commit -m "First Commit" mason publish <path-to-local-registry>
MyPackage package is now free to include
PackageA as dependency by adding
the it as a dependency with
mason add package@version
cd MyPackage mason add PackageA@0.1.0