tinacms

Tina is a site editing toolkit for modern React-based sites (Gatsby and Next.js)

Github星跟蹤圖

TINA CMS   Tweet

Build Status
Slack
Lerna
All Contributors

Getting Started

Tina Demo

Development

To get started:

git clone git@github.com: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.

Currently, testing with external projects is somewhat inelegant, but this repo includes a folder designed for importing external projects into the monorepo so the development versions of Tina packages can be bootstrapped into the project. To import an external project:

  1. git clone or simply copy the project into the packages/@testing folder. Everything in this folder is ignored by git.
  2. In the root of the monorepo, run npm run bs to link the necessary development packages
  3. Navigate to your project folder and develop normally

Pitfalls of Testing with External Projects

  • Running npm run build in the root of the monorepo will run a build script if your project has one defined. If this causes problems (tina may be causing your build to fail in the first place, and you want to skip the build for now but still build the other packages,) you can get around this by either running lerna run build --ignore=YOUR_PACKAGE_NAME or adding the name of your package to the ignore array for the run command in lerna.json.
//lerna.json
{
  "command": {
    "run": {
      "ignore": ["YOUR_PACKAGE_NAME"]
    }
  }
}
  • Gatsby and React both rely on some globally-persisted values which can cause errors if you have multiple copies of these dependencies installed. When testing a Gatsby site, many issues can be worked around by temporarily deleting the demo-gatsby package and bootstrapping again.

Release Process

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 into latest 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

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

主要指標

概覽
名稱與所有者tinacms/tinacms
主編程語言TypeScript
編程語言JavaScript (語言數: 6)
平台
許可證Apache License 2.0
所有者活动
創建於2019-07-23 18:37:47
推送於2025-06-20 07:00:20
最后一次提交
發布數3901
最新版本名稱tinacms-gitprovider-github@2.0.18 (發布於 2025-05-26 23:55:46)
第一版名稱cms-scripts@0.1.1-alpha.0 (發布於 2019-07-26 11:25:33)
用户参与
星數12.6k
關注者數66
派生數649
提交數11.8k
已啟用問題?
問題數2308
打開的問題數224
拉請求數2534
打開的拉請求數20
關閉的拉請求數402
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?