unison
unison copied to clipboard
Projects: New ucm commands
To support the project notion we'll need some new ucm commands. The goal of this ticket is to design those commands, not implement them.
Rough draft:
-
.> project.create {{project-name}}: Creates a new project with the full namespace structure. -
.> project.release: releases a new version of the project by adding an entry in theprojectdefinition mapping a new version number onto a hash. It uses the latest parent hash as a base for the version to allow for patch releases. If It's not possible to give a release a version number, one will be generated.This command targets the nearest parent namespace that is a project.
-
.> project.pre-release: Same as release, but for alpha, beta etc.This command targets the nearest parent namespace that is a project.
-
.> project.checkout-release {{version-number}}: Allows for checking out various versions; for instance for checkout out an old version to do a patch release (reset-rootoverlap?)This command targets the nearest parent namespace that is a project.
-
.> project.load unison/html {{?version-number}}load a dependency from Unison Share (or any git repository with a full URL) into the_externalnamespace of the currently checked out hash.This command targets the nearest parent namespace that is a project.
Alternatively we add version numbers to
.> pull?
Note: this draft includes some rough ideas around dependencies that'll likely turn out completely differently.