Decoupled Namespace Specification

Frequently Asked Questions about the Decoupled Namespace Specification

What is the Change?

HeroDevs is re-releasing certain JavaScript NES packages using a new specification: namespace-packageName@OSSVersion-project-NESVersion:

  • namespace: The original namespace of the Open Source Software (OSS) package (e.g., @angular-devkit)
  • packageName: The original name of the OSS package (e.g., core)
  • OSSVersion: The version of the OSS package from which we forked (e.g., 17.3.17)
  • project: The name of the OSS repository that contains the package (e.g., angular-cli)
  • NESVersion: The version of the package released by HeroDevs (e.g., 17.3.18)

For packages with an OSS namespace

{
  "dependencies": {
    "@namespace/packageName": "npm:@neverendingsupport/namespace-packageName@OSSVersion-project-NESVersion"
  }
}

For packages without an OSS namespace

{
  "dependencies": {
    "packageName": "npm:@neverendingsupport/packageName@OSSVersion-project-NESVersion"
  }
}

What Action is Required By Me?

NES packages published under the prior specification will continue to work. When feasible, upgrade to the latest-and-greatest NES packages as the namespaces are decoupled. Please refer to product-specific release notes for the most up-to-date information:

Can I See An Example?

The @angular-devkit/core package changes from:

{
  "devDependencies": {
    "@angular-devkit/core": { ".": "npm:@neverendingsupport/angular-cli@17.3.17-core-17.3.18"}
  }
}

To:

{
  "devDependencies": {
    "@angular-devkit/core": "npm:@neverendingsupport/angular-devkit-core@17.3.17-angular-cli-17.3.18"
  }
}

Troubleshooting

If your NPM install fails after updating your package.json to the latest decoupled version, please reach out to support@herodevs.com with the following information:

  1. The relevant sections of your package.json (applicable dependencies & overrides blocks)
  2. Your Node.js and NPM versions (run node -v and npm -v to get these)
  3. The last 6 characters of your NES Access Token

Why Make This Change?

The new specification creates a 1:1 mapping of NES packages to their OSS equivalent. This mapping helps integrate NES packages seamlessly into third-party scanners, such as Mend.io.

What About Trial Packages?

Trial packages are not affected by this change.