unison icon indicating copy to clipboard operation
unison copied to clipboard

Projects: New ucm commands

Open hojberg opened this issue 4 years ago • 0 comments

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 the project definition 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-root overlap?)

    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 _external namespace 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.

hojberg avatar Aug 12 '21 14:08 hojberg