Meteor Release Structure
Meteor uses a unique release structure where the tool and packages are versioned together.Release Components
- Meteor Tool - CLI and build system (
meteorcommand) - Core Packages - ~100+ packages that ship with Meteor
- Dev Bundle - Prebuilt binaries (Node.js, npm, MongoDB)
- Build System - Isobuild and compilation tools
Version Format
Meteor releases follow semantic versioning:- Major (1.x → 2.x): Breaking changes, major rewrites
- Minor (1.0 → 1.1): New features, package updates
- Patch (1.0.0 → 1.0.1): Bug fixes, security patches
Tracking Releases
Release Milestones
Work is tracked in GitHub Milestones:- Each milestone represents an upcoming release
- Issues and PRs are assigned to milestones
- Progress is visible to the community
Roadmap
High-level priorities are documented in the Meteor Roadmap.Package Versioning
Each Meteor package has its own version independent of the Meteor release.Version Bumping Guidelines
When contributing to core packages, bump the version inpackage.js:
Patch Version (2.4.5 → 2.4.6)
Use for:- Bug fixes
- Performance improvements
- Documentation updates
- Changes safe to release independently
Minor Version (2.4.5 → 2.5.0)
Use for:- New features (backward compatible)
- Dependency updates
- Changes affecting multiple packages
- Changes requiring new Meteor version
Major Version (2.4.5 → 3.0.0)
Use for:- Breaking API changes
- Major rewrites
- Removing deprecated features
Development Branches
Meteor uses specific branches for development:Main Branches
devel- Active development, all PRs target this branchmaster- Latest stable releaserelease-*- Release-specific branches
Branch Workflow
1
Create feature branch from devel
2
Make changes and commit
Follow commit message guidelines from the development guide
3
Push and create PR
devel branchRelease Process
The release process is managed by core team members with publish access.Prerequisites
Only Meteor Software staff and core committers can publish releases. This section is informational for understanding the process.
Building a Release
From a checkout, the release process involves:- Update versions in all changed packages
- Run full test suite to ensure stability
- Build dev bundle if needed (Node.js, MongoDB updates)
- Generate release with special tooling
- Publish to package server and distribution channels
Publishing Releases
Core team members use:- Compiles tool code
- Builds all packages into Isopacks
- Publishes to Meteor package server
- Updates release metadata
Dev Bundle Updates
Dev bundle changes require special handling.When Dev Bundles Change
A new dev bundle is needed when updating:- Node.js version
- npm version
- MongoDB version
- TypeScript version
- Core build tools
Dev Bundle Workflow
1
Update BUNDLE_VERSION
Edit the version in the
meteor script:2
Build locally
3
Submit PR
Submit PR with dev bundle changes. CI will initially fail.
4
Request publication
Core team requests Meteor Software to build and publish the bundle
5
CI passes
Once published, CI can download the bundle and tests pass
Dev bundle PRs are flagged by collaborators, and a request to build/publish is forwarded to Meteor Software infrastructure team.
Release Artifacts
Meteor releases produce several artifacts:Release Tarball
meteor-bootstrap-*.tar.gz- Installation bundle- Platform-specific binaries
Package Server
Packages are published to:packages.meteor.com- Official package repositoryatmospherejs.com- Package search/documentation
Release Channels
Meteor has different release channels:Stable Releases
Official releases following semantic versioning:Beta Releases
Pre-release versions for testing:Release Candidates
Near-final versions before stable:Contributing to Releases
Getting Changes into a Release
1
Submit quality PR
- Include tests
- Follow code style
- Update documentation
- Bump package version appropriately
2
Get PR reviewed
Core team or reviewers will review and provide feedback
3
PR merged to devel
Once approved, PR is merged to the
devel branch4
Wait for next release
Your change will be included in the next appropriate release
Release Timeline
- Patch releases: As needed for critical fixes (weeks)
- Minor releases: New features and improvements (months)
- Major releases: Breaking changes and major updates (years)
Release timing depends on the scope of changes, testing requirements, and coordination with the broader ecosystem.
Continuous Integration
All releases go through extensive CI testing:Test Suites
CI Configuration
Defined in: All platforms tested:- Linux (Ubuntu)
- macOS
- Windows (limited)
Release Notes
Each release includes detailed notes:What’s Included
- New features and improvements
- Breaking changes
- Bug fixes
- Dependency updates
- Migration guides (for major versions)
Example
Community Packages
Community packages follow their own release cycles:Publishing Community Packages
Next Steps
Development Setup
Set up your environment for contributing
Testing Guidelines
Learn about testing before releases