Game Framework
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 changes

Version 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   # Development

Version 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.0

Best Practices

  1. Start with 1.0.0 for first stable release
  2. Use 0.x.y for experimental packages
  3. Document breaking changes in CHANGELOG
  4. Test before major bumps
  5. Deprecate before removing APIs

Next Steps