This guide will help you set up a local development environment for contributing to Meteor core.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/meteor/meteor/llms.txt
Use this file to discover all available pages before exploring further.
Running from a Git Checkout
To run Meteor from source and contribute to development:Install dependencies
Run a Meteor command to download dependencies:This will download the dev bundle with pre-built binaries and npm dependencies.
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:Create CircleCI account
Sign up at CircleCI
Fork Meteor
Fork the Meteor repository to your GitHub account
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