wags-tags
v0.0.7
Published
Tool used to create consistent tagged releases that follow semantic versioning.
Readme
Wags Tags
A simple tool for creating consistent tagged releases that follow semantic versioning.
Features
- Semantic Versioning: Automatically manages version increments (major, minor, patch)
- Environment Support: Configurable mapping between Git branches and environments (dev, qa, staging, production)
- Pre-release Types: Support for alpha, beta, and release candidate versions
- Dual Tagging System: Creates both immutable version-specific tags and mutable environment tags
- Interactive Configuration: Easy setup with guided prompts
Installation
npm install wags-tagsQuick Start
- Configure your repository:
npx wags-tags --config- Create a patch release:
npx wags-tags
# or
npx wags-tags -patch- Create a minor release:
npx wags-tags -minor- Create a major release:
npx wags-tags -major- Create a pre-release:
npx wags-tags --pre-release
# or
npx wags-tags -prHow It Works
Wags Tags helps maintain consistent versioning across multiple environments:
- Branch-to-Environment Mapping: Maps Git branches to logical environments (development, qa, staging, production)
- Intelligent Versioning: Determines the next version number based on semantic versioning rules
- Dual Tagging: Creates two types of tags:
- Immutable tags: Specific version tags (e.g., v1.2.3-dev, v1.0.0-alpha)
- Mutable tags: Environment tags that always point to latest (e.g., dev, qa, stg, latest)
Tag Formats
- Production releases:
v1.2.3 - Production pre-releases:
v1.2.3-alpha,v1.2.3-beta,v1.2.3-rc - Environment releases:
v1.2.3-dev,v1.2.3-qa,v1.2.3-stg - Environment pre-releases:
v1.2.3-dev-alpha,v1.2.3-qa-beta, etc.
Configuration
The configuration is stored in a .wags-tags.json file in your project root:
{
"environments": [
{
"name": "dev",
"branch": "develop",
"isProduction": false
},
{
"name": "qa",
"branch": "qa",
"isProduction": false
},
{
"name": "stg",
"branch": "staging",
"isProduction": false
},
{
"name": "prod",
"branch": "main",
"isProduction": true
}
]
}Use Cases
- Multi-environment Deployments: Maintain different versions for different environments
- CI/CD Pipelines: Automate versioning in your deployment process
- NPM Package Publishing: Create consistent tagged releases for your packages
- Docker Image Tagging: Use generated tags for Docker images
License
ISC
