Running from a Git Checkout
To run Meteor from source and contribute to development:1
Clone the repository
Clone the Meteor repository with submodules:
2
Install dependencies
Run a Meteor command to download dependencies:This will download the dev bundle with pre-built binaries and npm dependencies.
3
Start developing
Your checkout is ready! Use
./meteor instead of the system meteor:Helpful Tips
Checkout Limitations
When running from a checkout:- You cannot pin apps to specific Meteor releases
- Cannot use
--releaseflag to change releases
The Dev Bundle
The dev bundle (dev_bundle) contains essential code, packages, and tools:
- Node.js
- npm
- MongoDB
- TypeScript
- Packages for meteor-tool
- Packages for server bundles
When to Rebuild
Rebuild the dev bundle when changing:- Node.js version
- npm version
- MongoDB version
- TypeScript version
- Tool packages
- Server bundle packages
Dev Bundle Versions
The version is stored inBUNDLE_VERSION at the top of the meteor script.
For local development:
- Use a different major version (e.g.,
100.0.0) to avoid clashing with official versions - Bump the minor version when submitting PRs that change the dev bundle
Rebuilding the Dev Bundle
Prerequisites:- C and C++ compiler
- autotools
- scons
dev_bundle_<Platform>_<arch>_<version>.tar.gz in the checkout root.
If you bumped
BUNDLE_VERSION, the new bundle extracts automatically when you run ./meteor. Otherwise, delete the existing dev_bundle directory first.Submitting Dev Bundle PRs
PRs with dev bundle changes will be flagged, and a request to build/publish will be forwarded to Meteor Software.Code Structure
Meteor core is documented within the code itself. Many components haveREADME.md files:
Core Packages
Tool Components
Code Style
Follow these guidelines when contributing code:Style Guide
- Follow the Meteor Style Guide
- Based on Airbnb Style Guide with Meteor-specific changes
- Match existing code style in the same file for small changes
- Use the style guide for larger new code additions
Linting
Run ESLint to check code style:Many files haven’t been converted yet and are excluded from linting.
Code Change Rules
- Only change code directly related to your feature/bug fix
- Don’t refactor unrelated code in the same PR
- Keep changes focused and minimal
Commit Messages
Write clear, helpful commit messages:Format
- Title: Short and descriptive (max 80 characters)
- Description: Clearly explain the change and why it’s needed
- References: Link related issues with
#issue-number - Fixes: Use “Fixes #issue-number” if the commit resolves the issue
Example
Continuous Integration
CI runs automatically on:- Pull requests
- Commits to the
develbranch
Running Your Own CI
You can run tests in your own CircleCI account for free:1
Create CircleCI account
Sign up at CircleCI
2
Fork Meteor
Fork the Meteor repository to your GitHub account
3
Add project to CircleCI
Go to Add Projects, click your GitHub username, find
meteor, and click “Build project”Not all tests run on CI - some are too slow or no longer relevant. The
slow test suite can be run with ./meteor self-test --slow.Platform Notes
Windows Development
On Windows, you need 7-Zip in your PATH to unpack dev bundles. Download hereNext Steps
Testing Guidelines
Learn how to run and write tests
Contributing Packages
Create and publish packages