Skip to content
Documentation: Versions and tags

Versions and tags

Semantic versions, dist-tags, deprecating and yanking.

From the Documentation in Ronne AI Marketplace 0.3.0.

Versions

Every release is a version: major.minor.patch, such as 1.4.0. The first release is 1.0.0. A version never changes once published: a fix is a new version.

A pre-release is for early testers, such as 1.1.0-beta.1: an id of lowercase letters and digits, starting with a letter, and a number that goes up with each one.

Nobody types a version: it follows from the choice made when releasing, one item at a time or many at once, where one choice gives each item its own next version.

Patch, minor or major

Whoever releases picks what kind of change it is; the version follows.

BumpWhenExample
patchFixes; nothing new, nothing removed.1.4.0 → 1.4.1
minorSomething new that doesn't break anyone: a file, a dependency, a keyword, an option.1.4.0 → 1.5.0
majorA change that breaks something for installs: an option, a dependency or a named file removed.1.4.0 → 2.0.0

For a change proposal, the publish dialog suggests one from what changed, and says why. Releasing many at once, Suggested for each uses each proposal's own suggestion; or pick one bump for all. A first release is 1.0.0 either way.

Tags

A tag is a name that points to a version, so installs can ask for it instead of a number. Moderators and root move them on the item's Versions tab.

  • latest is what installing without a version gets. It only points to a stable version, and it can't be removed.
  • next is where pre-releases go by default.
  • Other tags, such as stable-1: 1 to 32 lowercase letters, digits and hyphens, starting with a letter, and not something that reads as a version range.

When an item is installed by tag, the tag is turned into the version it points to at that moment, and the lockfile keeps that version until rmk update looks again.

Releasing many at once

Approved submissions can go out together: tick them on My submissions (your own), or on the review queue's To release tab (moderators and root, anyone's), then Release selected. Select all covers the page you're viewing, on both: show 100 a page, or filter first, to release more at once.

  • One set of settings for all: stable or pre-release, the bump (each change's suggested bump, or one for all), the tag (each version's default, or one for all) and optional release notes. A first release is always 1.0.0.
  • Every version is shown first, as each publish dialog would, and Release stays off until the settings work for every one.
  • Dependencies go first. Selecting one adds its approved dependencies that aren't released yet, marked as included; one still in review keeps it out.
  • Each is released on its own. One that fails, such as a stale proposal, stops only itself and what depends on it in the batch (skipped); the rest go. At most 50 at a time.

Deprecate or yank

ActionWhat happensWhen to use it
deprecatedIt stays installable, and rmk prints its message whenever it installs or updates it.There's a better version or item: "Use 1.2.0 or later."
yankedNew installs can't get it; a project whose lockfile pins it still installs it, with a warning. If latest pointed to it, it moves back to the newest stable version left.It's broken or unsafe. It can be unyanked.

Where the item has reported usage, the Versions page shows each version's runs and installs over 30 days, and both dialogs say them before you confirm: who would still get a deprecation warning, and what a yank would stop.