Package management - list of common version named tags? - E.g., "latest", "lts"

55 views Asked by At

I am building/wrapping a large number of package managers and am thinking about what to accept for the version string. Here is what I've got so far:

  • latest
  • lts
  • stable
  • beta
  • nightly
  • trunk
  • master
  • fixed string with exact version number
  • filepath and URI equivalents
  • ^1.5.2 and other such syntax as per semver (e.g., as documented in Rust's cargo and NPM)
  • URL ending in DVCS name, e.g, .git
  • URL starting with DVCS name, possibly with ssh+, e.g, git://
  • starting with DVCS name, e.g, [email protected]:org/name.git

…and yes, I know that not every package uses these tags, so the idea would be to have a superset of everything, and then the subset can be specialised per package. Thinking about what to suggest in the CLI, but probably not rejecting what doesn't look right (until, e.g., trying an HTTP request for it).

What are the version tag names one should expect?

1

There are 1 answers

0
VonC On BEST ANSWER

In addition to your initial list, consider including support for branch-specific tags, which are common in many DVCS systems. For instance, in Git, you might specify a particular branch name as a version tag.

Regarding the CLI suggestions, it might be helpful to provide autocomplete options based on the most commonly used tags, while still allowing users to enter any string. That would balance user guidanc Your idea of not rejecting unfamiliar tags until an actual request is made is good: it accounts for edge cases and custom user setups.

I would add to the list RC (Release-Candidate).
As noted here, a pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. 1.0.0-x.7.z.92 would be a valid pre-release (or release-candidate) version.e with flexibility.