Package Management
Versioning
Follow semantic versioning (semver) for predictable package updates.
Semantic Versioning
Format: MAJOR.MINOR.PATCH
1.2.3
│ │ └─ Patch: Bug fixes
│ └─── Minor: New features (backward compatible)
└───── Major: Breaking changesVersion Increments
Patch (1.0.0 → 1.0.1)
- Bug fixes
- Performance improvements
- Documentation updates
Minor (1.0.0 → 1.1.0)
- New features
- New APIs (non-breaking)
- Deprecations
Major (1.0.0 → 2.0.0)
- Breaking changes
- Removed deprecated APIs
- Changed behavior
Version Constraints
dependencies:
# Caret (recommended)
package: ^1.2.3 # >=1.2.3 <2.0.0
# Exact
package: 1.2.3
# Range
package: '>=1.0.0 <2.0.0'Pre-release Versions
version: 2.0.0-beta.1 # Beta
version: 2.0.0-rc.1 # Release candidate
version: 2.0.0-dev.1 # DevelopmentVersion Management Tools
# Install cider
dart pub global activate cider
# Bump versions
cider bump patch # 1.0.0 → 1.0.1
cider bump minor # 1.0.0 → 1.1.0
cider bump major # 1.0.0 → 2.0.0Best Practices
- Start with 1.0.0 for first stable release
- Use 0.x.y for experimental packages
- Document breaking changes in CHANGELOG
- Test before major bumps
- Deprecate before removing APIs
Next Steps
- Dependencies - Manage dependencies
- Best Practices - Advanced versioning