Versioning
1. Generic Versioning
1.0.1. Key Aspects of Generic Versioning
- Definition: Generic versioning refers to a systematic approach for identifying, tracking, and managing different iterations of a product or system over time.
- Version Numbering:
- Major Versions: Indicate significant changes or overhauls (e.g., 1.0 to 2.0).
- Minor Versions: Suggest smaller updates or feature enhancements (e.g., 1.1 to 1.2).
- Patch Versions: Concern minor fixes or improvements (e.g., 1.0.1).
- Semantic Versioning (SemVer):
- A popular convention used in software development.
- Format: MAJOR.MINOR.PATCH (e.g., 2.5.1).
- Rules emphasize backward compatibility and ease of understanding for users.
- Change Logs:
- Document changes between versions.
- Help users understand new features, improvements, or bug fixes.
- Benefits:
- Enhances communication among developers and users.
- Facilitates software maintenance and dependency management.
- Reduces confusion regarding product states or features.
- Challenges:
- Complexity may arise in larger projects with multiple dependencies.
- Maintaining consistent versioning across different product modules can be difficult.
2. File Version Control
2.1. Tools
2.1.2. Mercurial
2.2. Philosophies
2.2.1. Monorepo
- all code in one repo : monolithic
2.2.2. Multirepo
- the larger application is split into multiple microservices and no single repository stores all the code.
Tags::meta: