Vendoring Guide
Sep 21, 2021
Dec 20, 2023
Managing dependencies is a crucial aspect of maintaining healthy and sustainable open-source projects. This document outlines guidelines for effective vendoring in N3N projects, providing clarity on versioning, tagging, and maintaining changelogs.
1. Vendoring Using Tags
1.1 Tagging Principles
- Use annotated tags along with commit IDs to snapshot commits.
- Ensure that each tag follows the Semantic Versioning rules.
- Corresponding entries in the change tracking document (e.g., CHANGELOG.md, GitHub releases file) are essential.
1.2 Repository Requirements
- Maintain a change tracking document between tags/releases.
- Repositories should have clear versioning and changelog practices to facilitate compatibility checks.
2. Semantic Versioning
- Adhere to Semantic Versioning policies to ensure consistency and clarity in versioning.
- Increment the MAJOR version for incompatible API changes, MINOR version for backward-compatible functionality additions, and PATCH version for backward-compatible bug fixes.
3. Vendoring Cadence
- Establish a regular cadence for vendoring updates (e.g., monthly) to avoid significant changes.
- Consistent updates help in maintaining stability and provide users with predictable release cycles.
These guidelines aim to streamline the vendoring process in N3N projects, promoting transparency, compatibility, and ease of collaboration. Following these practices contributes to the overall health and sustainability of our open-source ecosystem.
Feel free to provide feedback and suggestions for continuous improvement in our vendoring practices. Together, let's build robust and reliable software.