Skip to content

Versioning

Three packages, one coordinated version line.

Current status

All three packages are on a 2.0.0-beta.* pre-release train. Install with the @beta tag:

Code
npm install @nomercy-entertainment/nomercy-player-core@beta
npm install @nomercy-entertainment/nomercy-video-player@beta
npm install @nomercy-entertainment/nomercy-music-player@beta

Do not rely on @latest, as it resolves to the v1 line while the @beta tag is the active development target.

Version coordination policy

The three packages are versioned together. A breaking change to the player core’s adapter interfaces requires a major bump across all three packages. The packages always ship at the same version number, such as 2.0.0-beta.0, 2.0.0-beta.1, etc.

This means:

Semver interpretation during beta

While the version is 2.0.0-beta.*, any beta bump may include breaking changes. Treat each beta as potentially breaking and read the changelog before upgrading.

After the 2.0.0 stable release, standard semver applies:

  • Patch (2.0.x): bug fixes only. No API changes.
  • Minor (2.x.0): additive. New methods, new events, new adapter ports. Backwards compatible.
  • Major (3.0.0): breaking. Full migration guide provided.

v1 maintenance

The v1 packages (@nomercy-entertainment/nomercy-video-player ^1.x, @nomercy-entertainment/nomercy-music-player ^1.x) are frozen. No new features. Critical security fixes only, on a best-effort basis.

Migrate to v2 using the per-package migration guides:

Planned v2.x additions (not yet shipped)

The following plugins are stubbed and throw NotImplementedError in v2.0. They are planned for v2.1:

PluginPackageStatus
GroupListeningPlugin (music)nomercy-music-playerThrows NotImplementedError in v2.0
LiveTranscodingPlugin (music)nomercy-music-playerThrows NotImplementedError in v2.0
DrmPlugin (music)nomercy-music-playerThrows NotImplementedError in v2.0

The video player’s DrmPlugin and LiveTranscodingPlugin are different: they ship and function in v2.0. Only the music copies above are v2.1 stubs that throw.

KIT_VERSION

The player core exports a KIT_VERSION constant matching the package.json version. Plugins can use this to assert minimum core versions at registration time via static readonly minCoreVersion.

TypeScript
import { KIT_VERSION } from '@nomercy-entertainment/nomercy-player-core';

class MyPlugin extends Plugin {
static readonly minCoreVersion = '2.0.0';
}

If the installed core version is below minCoreVersion, addPlugin() throws at registration time.