Versioning
The TEN framework follows the Semantic Versioning (SemVer) specification for all package versions. This standardized approach helps manage dependencies and compatibility across the ecosystem.
Package version declaration
Each TEN package must include a version
field in its manifest.json
file:
Package types and organization
TEN packages are organized in the following directory structure:
These packages are distinguished by the type
field in their manifest.json
:
Dependency management
Specify version requirements for dependencies in your package's manifest.json
:
If you don't specify a version requirement for a dependency, the system uses the latest available version.
Version requirement syntax
A version requirements string can contain multiple requirements separated by commas. Each requirement supports the following operators:
>
,>=
,=
: Specify a version range or exact version~
: Specify a minimum version with limited flexibility- With major, minor, and patch specified: only patch-level changes are allowed
- With only major and minor specified: only patch-level changes allowed
- With only major specified: minor and patch-level changes allowed
^
: Allow SemVer-compatible updates- This operator is the default when no operator is specified
- Updates are allowed as long as they don't change the leftmost non-zero number
- Examples:
^0.1.12
(same as0.1.12
): can update to0.1.13
but not0.2.0
^1.0
(same as1.0
): can update to1.1
but not2.0
A version specified as 0.0.x
is considered incompatible with any other version.