-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(release): version prefix dependents (#28729)
(cherry picked from commit bd40a56)
- Loading branch information
1 parent
85178d3
commit 5f8bc64
Showing
6 changed files
with
164 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
93 changes: 93 additions & 0 deletions
93
docs/shared/recipes/nx-release/configuration-version-prefix.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# Configuring Version Prefix for Dependency Versions | ||
|
||
This guide explains how to configure a custom version prefix in Nx Release using the `versionPrefix` option. The version prefix allows you to automatically add a specific prefix format to dependencies, providing control over how dependency versions are specified in your project’s `package.json` files. | ||
|
||
## The `versionPrefix` Option | ||
|
||
The `versionPrefix` option controls which prefix is applied to dependency versions during the versioning process. By default, `versionPrefix` is set to `"auto"`, which selects a prefix format (either `""`, `"~"`, `"^"`, or `"="`) by respecting what is already in the `package.json` file. | ||
|
||
For example, having the following `package.json` file: | ||
|
||
```json | ||
{ | ||
"name": "my-package", | ||
"version": "0.1.1", | ||
"dependencies": { | ||
"dependency-one": "~1.2.3", | ||
"dependency-two": "^2.3.4", | ||
"dependency-three": "3.0.0" | ||
} | ||
} | ||
``` | ||
|
||
Then next patch bump will be: | ||
|
||
```json | ||
{ | ||
"name": "my-package", | ||
"version": "0.1.2", | ||
"dependencies": { | ||
"dependency-one": "~1.2.4", | ||
"dependency-two": "^2.3.4", | ||
"dependency-three": "3.0.0" | ||
} | ||
} | ||
``` | ||
|
||
Preserving the prefix for `dependency-one` and `dependency-two` and continuing to use no prefix for `dependency-three`. | ||
|
||
### Available Prefix Options | ||
|
||
You can set `versionPrefix` to one of the following values: | ||
|
||
- `"auto"`: Automatically chooses a prefix based on the existing declaration in the `package.json` file. This is the default value. | ||
- `""`: Uses the exact version without a prefix. | ||
- `"~"`: Specifies compatibility with patch-level updates. | ||
- `"^"`: Specifies compatibility with minor-level updates. | ||
- `"="`: Locks the version to an exact match (the `=` is not commonly used in the JavaScript ecosystem, but is in others such as Cargo for Rust). | ||
|
||
Example configuration: | ||
|
||
```json | ||
{ | ||
"release": { | ||
"version": { | ||
"generatorOptions": { | ||
"versionPrefix": "~" | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
|
||
## Configuring Version Prefix in `nx.json` or `project.json` | ||
|
||
To set the versionPrefix option globally or for a specific project, add it to either your `nx.json` or `project.json` configuration files: | ||
|
||
```jsonc | ||
{ | ||
"release": { | ||
"version": { | ||
"generatorOptions": { | ||
"versionPrefix": "^" // or "", "~", "^", "=" depending on your preference | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
|
||
With the `versionPrefix` option set to `^`, your `package.json` dependencies might look like this: | ||
|
||
```json | ||
{ | ||
"name": "my-package", | ||
"version": "0.1.1", | ||
"dependencies": { | ||
"dependency-one": "^1.0.0", | ||
"dependency-two": "^2.3.4", | ||
"dependency-three": "^3.0.0" | ||
} | ||
} | ||
``` | ||
|
||
This configuration helps enforce a consistent approach to dependency management, allowing flexibility in how updates to dependencies are tracked and managed across your project. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters