---
title: "Versioning"
description: "Version management and semantic versioning"
keywords: [versioning, semver, version, releases]
---

# Versioning

Version management strategy for TraceRTM.

## Semantic Versioning

Follow [Semantic Versioning](https://semver.org/):

```
MAJOR.MINOR.PATCH
```

### Version Components

- **MAJOR**: Breaking changes
- **MINOR**: New features (backward compatible)
- **PATCH**: Bug fixes (backward compatible)

### Examples

```
2.4.0 → 2.4.1  # Patch: Bug fix
2.4.0 → 2.5.0  # Minor: New feature
2.4.0 → 3.0.0  # Major: Breaking change
```

## Version Locations

### Python Package

```python
# src/tracertm/__init__.py
__version__ = "2.4.0"
```

### package.json

```json
{
  "version": "2.4.0"
}
```

### Docker Tags

```bash
# Tag Docker images
docker tag tracertm:latest tracertm:2.4.0
docker tag tracertm:latest tracertm:2.4
docker tag tracertm:latest tracertm:2
```

## Version Updates

### When to Bump

**PATCH** (2.4.0 → 2.4.1):
- Bug fixes
- Security patches
- Documentation updates

**MINOR** (2.4.0 → 2.5.0):
- New features
- New API endpoints
- Backward-compatible changes

**MAJOR** (2.4.0 → 3.0.0):
- Breaking API changes
- Removed features
- Incompatible changes

## Pre-release Versions

### Alpha/Beta

```
2.5.0-alpha.1
2.5.0-beta.1
2.5.0-rc.1
```

## Related Documentation

- [Releases](./06-releases) - Release process
- [Changelog](./06b-changelog) - Changelog format
