dev project markers
Report each project's version against its release tag -- this repository's and every checkout it pins -- and with --check refuse one that has moved since the release without marking its version -dev, or one with no release that pins a development reference at a version
- Command version
0.0.0- Command configuration
dev-tool:dev.project.markers@0.0.0
Arguments
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
--check, --no-check | boolean | No | false | Fail when a project has moved since its release tag and its manifest still states the released version unmarked, or when a project with no release pins a development reference at a version |
--apply, --no-apply | boolean | No | false | Mark -dev the version of every project --check would refuse, editing the version: line of its manifest.yml and nothing else. The author running it is the author writing the marker; nothing marks a project unasked |
It also takes the global arguments.
Output
It answers with a markers.markerReport.
Types
markers.markerReport
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
projects | list[markers.projectMarker] | No | [] | Each project read: this repository's, then that of each checkout .gitmodules pins that holds a manifest, in checkout order. |
markers.projectMarker
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
checkout | string | Yes | The repository's checkout, as a path from the root; . is the root. | |
project | string | Yes | The project its manifest names. | |
version | string | Yes | The version its manifest states, whole, marker included. | |
tag | string | Yes | The release tag this version would have been published under, <project>@<major>.<minor>.<patch>. | |
state | enum one of marked, untagged, unchanged, moved | Yes | marked when the version carries a prerelease marker, so the project says it has moved and nothing is compared. untagged when no tag for the version is in the checkout's history, so there is no release to compare against. unchanged when the tracked content is the tagged release's. moved when it is not and the version is unmarked, which is what --check refuses and --apply marks. | |
applied | boolean | No | false | Whether --apply wrote the marker into this project's manifest on this run. |
pinnedReferences | list[string] | No | [] | Each development reference this project pins at a version while no release of it is in its history: a module dependency in its manifest.yml, a vendoredLibraries or vendoredSchemas entry in its .dev-tool/config.yml, or an externalSchemas id in a tracked schema document, command config or app declaration, as <file>: <where> <coordinate>. A development reference floats and a release is what writes a version, so --check refuses each one; --apply does not rewrite them. Empty once the project has a release. |