This document defines the version numbering system used in the TourGuideAI project.
TourGuideAI follows Semantic Versioning 2.0.0 with the format: MAJOR.MINOR.PATCH
- MAJOR: Incremented for incompatible API changes or significant UI/UX redesigns
- MINOR: Incremented for backward-compatible new functionality
- PATCH: Incremented for backward-compatible bug fixes
- Projects in initial development use 0.x.y versioning
- API and functionality may change without warning
- Breaking changes can occur in minor version increments
- Public APIs declared stable
- Breaking changes only in major version increments
- New features added in minor version increments
- Bug fixes in patch version increments
When needed, version qualifiers may be appended with a hyphen:
-
ALPHA: Early testing versions with incomplete features
- Example:
1.0.0-ALPHA1 - May have breaking changes between alpha releases
- Example:
-
BETA: Feature-complete versions undergoing testing
- Example:
1.0.0-BETA2 - APIs generally stable but may have changes based on feedback
- Example:
-
RC: Release Candidates ready for final testing
- Example:
1.0.0-RC1 - No new features, only bug fixes expected
- Example:
-
SNAPSHOT: Development builds not intended for release
- Example:
1.0.0-SNAPSHOT - Used only for internal development and testing
- Example:
0.1.0 → Initial prototype
0.2.0 → Additional features
0.2.1 → Bug fixes
0.3.0 → More features
0.4.0 → Major feature update
0.4.1 → Bug fixes and refinements
1.0.0-ALPHA1 → First alpha release
1.0.0-ALPHA2 → Second alpha release
1.0.0-BETA1 → First beta release
1.0.0-RC1 → First release candidate
1.0.0 → Stable release
1.1.0 → New features added
1.1.1 → Bug fixes
2.0.0 → Breaking changes
- Each released version should be tagged in Git
- Tag format:
v{version}(e.g.,v1.0.0,v1.0.0-BETA1) - Branches should follow naming convention related to versions:
develop- Main development branchrelease/1.0.0- Release preparation branchhotfix/1.0.1- Hotfix branch
For each version:
- Update
docs/project_lifecycle/version_control/records/project.versions.mdwith detailed release notes - Update relevant README files
- Document any breaking changes prominently
- Include migration guides when necessary
-
MAJOR: Bump when making incompatible API changes
- Changing the signature of public methods
- Removing or renaming public methods/properties
- Major UI/UX redesigns
- Changing database schemas in non-backward-compatible ways
-
MINOR: Bump when adding functionality in a backward-compatible manner
- Adding new features
- Adding new API methods
- Adding new UI components
- Deprecating (but not removing) functionality
-
PATCH: Bump when making backward-compatible bug fixes
- Bug fixes that don't change the API
- Performance improvements
- Documentation updates
- Dependency updates without functional changes
- Determine appropriate version number based on changes
- Update version number in:
package.json- Any version constants in code
- Documentation
- Update
docs/project_lifecycle/version_control/records/project.versions.mdwith release notes - Tag the release in version control
- Create release artifacts
Example test plan
More details in docs/stability-test-plan.md
- Create from scratch and execute an agent with at least 3 blocks
- Import an agent from file upload, and confirm it executes correctly
- Upload agent to marketplace
- Import an agent from marketplace and confirm it executes correctly
- Edit an agent from monitor, and confirm it executes correctly
-
.env.exampleis updated or already compatible with my changes -
docker-compose.ymlis updated or already compatible with my changes - [] I have included a list of my configuration changes in the PR description (under Changes)
Examples of configuration changes
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases