To get started:
git clone [email protected]:tinacms/tinacms.git
cd tinacms
npm install && npm run bootstrap
npm run build
# Start Gatsby demo
cd packages/demo-gatsby
npm run start
Do not run npm install
from inside the packages
directory
TinaCMS uses Lerna to manage dependencies when developing locally. This allows the various packages to reference each other via symlinks. Running npm install
from within a package replaces the symlinks with references to the packages in the npm registry.
Commands | Description |
---|---|
npm run bootstrap | Install dependencies and link local packages. |
npm run build | Build all packages. |
npm run watch | Watch all packages for rebuilds. |
npm run test | Run tests for all packages. |
lerna run build --scope <package> | Build only <package>. |
Linking apps to a monorepo can be tricky. Tools like npm link
are buggy and introduce inconsistencies with module resolution. If multiple modules rely on the same package you can easily end up with multiple instances of that package, this is problematic for packages like react
which expect only one instance.
@tinacms/webpack-helpers
provides tools and instructions for testing local TinaCMS changes on external websites.
Tina has two main branches:
- master: The bleeding edge of tinacms
- latest: The current stable release
The flow of changes therefore looks like:
fix-some-bug
=>master
=>latest
This is a weekly process:
- On Monday
master
is merged intolatest
which is then published to npm. - Hot fixes are cherry picked onto
latest
and then published. - Prereleases are created off of
master
whenever they're needed.
With this process:
- critical fixes are published as soon as possible
- new features and minor fixes take 3-5 days to be published
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!