Skip to content

Instantly share code, notes, and snippets.

@nicokosi
Last active July 26, 2023 07:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicokosi/8e0950402899360138c1cd998e2146e4 to your computer and use it in GitHub Desktop.
Save nicokosi/8e0950402899360138c1cd998e2146e4 to your computer and use it in GitHub Desktop.
development versions in mainstream ecosystems

development versions in mainstream ecosystems 🚧

or: Java Maven SNAPSHOT and friends

Java Maven SNAPSHOT versions

The SNAPSHOT value refers to the 'latest' code along a development branch, and provides no guarantee the code is stable or unchanging. Conversely, the code in a 'release' version (any version value without the suffix SNAPSHOT) is unchanging.

In other words, a SNAPSHOT version is the 'development' version before the final 'release' version. The SNAPSHOT is "older" than its release.

https://maven.apache.org/guides/getting-started/index.html#what-is-a-snapshot-version

Semantic Versioning pre-release versions

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes MINOR version when you add functionality in a backward compatible manner PATCH version when you make backward compatible bug fixes ... Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphens [0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version. Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92, 1.0.0-x-y-z.--.

https://semver.org/spec/v2.0.0.html#spec-item-9

JavaScript npm pre-release versions

npm CLI doc

npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

alias: verison 😹

The "prerelease identifier" to use as a prefix for the "prerelease" part of a semver. Like the rc in 1.2.0-rc.8.

npm version prerelease --preid=alpha https://docs.npmjs.com/cli/v9/commands/npm-version

We let you preview what's coming by providing "Next" and Release Candidates (rc) pre-releases for each major and minor release: Next The release that is under active development and testing. The next release is indicated by a release tag appended with the -next identifier, such as 8.1.0-next.0.

https://angular.io/guide/releases#preview-releases

npm SemVer Calculator

https://semver.npmjs.com example : package @angular/core and version range ~16.0.0-next

Rust cargo pre-release versions

Example: cargo openai@1.0.0-alpha.11 https://crates.io/crates/openai/versions

Go pre-release versions

Signals that this is a pre-release milestone, such as an alpha or beta. This release carries no stability guarantees. Example

vx.x.x-beta.2

https://go.dev/doc/modules/version-numbers#pre-release-version

ChatGPT claims:

When importing packages in Go, developers typically specify a specific commit hash or a specific version tag to ensure reproducible builds.

PHP dev versions

dev versions seem commonly used.

Exemples: integration-tests#dev-master symfony#7.0.x-dev

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment