Skip to content

Make a "project" out of various maint/ files

See torspec!193 (comment 2962671)

My current thinking is:

  • Make a new git project maint-common which is planned to contain the "best versions" of these scripts (but starts out empty)
  • Use git-subtree to merge it into arti/maint/common
  • Move each relevant script into maint-common and replace it with a symlink: git mv arti/maint/via-cargo-install-in-ci arti/maint/common && ln -s common/via-cargo-install maint
  • Make a maint-cmmon/test containing CI tests of the scripts themselves.

For other projects with versions of theses scripts, reconcile changes as part of the import process.

These scripts won't form a framework; rather they're a set of resources that a project (like Arti) can pick and choose from.

After this is done:

  • arti.git/maint will contain a mixture of:
  1. Bespoke Arti-specific scripts
  2. Symlinks into maint/common for scripts shared with other projects
  3. Scripts which are currently 1 but ought to become 2, where reconciliation is too difficult
  • People editing arti.git may edit the scripts in maint-common in which case it will be someone in the Arti team's job to turn those into MRs against the maint-common project using git-subtree. (Probably me.)
  • Alternatively, people editing the scripts may edit them in maint-common first and merge them into arti.
  • Periodically, we should merge changes in both directions. If this happens a lot we could add some automation.