Version manifests for every application the Nexcess platform installs.
Application versioning is controlled here and nowhere else. When a customer provisions
WordPress, Magento, Shopware, Drupal, Craft, ExpressionEngine, or Sylius, nxcli asks this repo
which versions exist and which one to install. Adding a line here makes a version installable;
changing one line changes what every new install gets.
There is no code, no build, and no release artifact. Merging to the right branch is the deploy.
Tarballs are a separate concern and are moving out. New applications are served from pubfiles
(pubfiles.nexcess.net), the internal mirror that hosts application tarballs ready for use and
installation. Magento 2 and Shopware 6 already source from it exclusively; the *.tar.gz files
still committed here are legacy.
One directory per application, then one per major version, each holding three plain-text files:
<app>/<major>/versions every installable version, one `version|tarball` per line
<app>/<major>/latest-version the version installs get unless one is named explicitly
<app>/<major>/latest-tarball legacy; no live consumer
AGENTS.md has the annotated file map, the format rules, the tarball sourcing table, and the pre-merge checks.
| Branch | Read by |
|---|---|
master |
dev and QE |
production |
the production fleet |
The two branches deliberately hold different values — a version is exercised on master first, then
promoted to production in its own PR. They have diverged since commit fda2418; promotion is a
separate commit on a branch cut from production, not a merge of master.
Two paths pin master regardless, so it is not provably customer-free — see
AGENTS.md.
- Branch from the branch you are targeting (
masterfor dev/QE,productionto promote). - Add the version to
<app>/<major>/versions, keeping ascending order. - Make sure the tarball is reachable:
- pubfiles application (Magento 2, Shopware 6) — confirm the mirror already serves the
tarball and its
.md5. The filename is derived from the version, so the manifest's tarball column is not what gets fetched; fill it in truthfully anyway. - legacy application — the tarball and its
.md5must be committed alongside the manifest, from a clone withgit-lfsinstalled. - WordPress — use the literal
none; core comes from wordpress.org.
- pubfiles application (Magento 2, Shopware 6) — confirm the mirror already serves the
tarball and its
- Update
latest-versionwhen the new version should be what installs get. Platform-driven provisions always takelatest-version; they cannot request anything else. - Run the checks in AGENTS.md.
- Open a PR against
upstream.
Magento 2 has an extra mandatory step before any tarball is added — see magento/2/README.md.
See CONTRIBUTING.md.