# Software

Versions, package and licence identifiers, traces, file names and unique IDs.

## Topics

| Page | What it covers |
|---|---|
| [Software types](/docs/software-types.md) | The software types are the values tools and build systems pass around: version numbers and ranges, git refs, package and container names, licences, trace ids, file names and paths. |

## Types

| Type | What it is |
|---|---|
| [`SemanticVersion`](/docs/types/type-semantic-version.md) | A software version: `1.2.3-alpha.1+build.5`. |
| [`VersionRange`](/docs/types/type-version-range.md) | A range of versions: `^1.2.3`, `>=1.0.0 <2.0.0`. |
| [`GitRef`](/docs/types/type-git-ref.md) | A git branch, tag, full ref or commit hash: `main`, `refs/tags/v1.2.0`. |
| [`PackageUrl`](/docs/types/type-package-url.md) | A package's address, the same across package managers: `pkg:npm/left-pad@1.3.0`. |
| [`Cve`](/docs/types/type-cve.md) | A security vulnerability's id: `CVE-2021-44228`. |
| [`SpdxLicence`](/docs/types/type-spdx-licence.md) | A software licence as SPDX writes it: `MIT OR Apache-2.0`. |
| [`TraceId`](/docs/types/type-trace-id.md) | A whole trace's id: 32 lower-case hexadecimal digits, not all zero. |
| [`SpanId`](/docs/types/type-span-id.md) | One step's id in a trace: 16 lower-case hexadecimal digits, not all zero. |
| [`TraceParent`](/docs/types/type-trace-parent.md) | A `traceparent` header's value, which links a request to its trace. |
| [`LogLevel`](/docs/types/type-log-level.md) | How severe a log record is: `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR` or `FATAL`. |
| [`FilePath`](/docs/types/type-file-path.md) | A portable file path: `/var/lib/acme/uploads`, `reports/2026/october.csv`. |
| [`FileName`](/docs/types/type-file-name.md) | A file's name that every common file system takes: `report.pdf`. |
| [`RegularExpression`](/docs/types/type-regular-expression.md) | A pattern for matching text: `[A-Z]{2}[0-9]{2}`. |
| [`ContainerImage`](/docs/types/type-container-image.md) | A container image's whole name: `docker.io/library/nginx:1.27`. |
| [`Digest`](/docs/types/type-digest.md) | A content digest, with its algorithm: `sha256:` and 64 hexadecimal digits. |
| [`Uuid`](/docs/types/type-uuid.md) | A universally unique identifier, in lower case with hyphens. |
| [`Ulid`](/docs/types/type-ulid.md) | A sortable unique identifier: 26 capital letters and digits. |
| [`IdempotencyKey`](/docs/types/type-idempotency-key.md) | A key a client sends so that a retried request isn't applied twice. |
| [`Doi`](/docs/types/type-doi.md) | A digital object identifier, naming a paper or a dataset: `10.1038/nphys1170`. |
