Coder Social home page Coder Social logo

jsjoeio / tinacms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tinacms/tinacms

0.0 2.0 1.0 11.23 MB

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

Home Page: https://tinacms.org

License: Apache License 2.0

JavaScript 9.56% TypeScript 81.26% HTML 8.74% CSS 0.39% Shell 0.04%

tinacms's Introduction

TINA CMS Β  Tweet

Build Status Slack Lerna All Contributors

Getting Started

Tina Demo

Development

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

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>.

Testing With External Projects

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):


Forestry.io

πŸ’΅

NCPhillips

πŸ“† πŸ’» πŸ“ πŸ› πŸ“– πŸ€” πŸš‡ 🚧 πŸ‘€ ⚠️

DJ

πŸ“† πŸ’» πŸ“ πŸ› πŸ“– πŸ€” 🚧 πŸ‘€ ⚠️

Scott Byrne

🎨 πŸ’» πŸ‘€ 🚧 πŸ“–

James O'Halloran

πŸ“† πŸ› πŸ€” 🚧 πŸ‘€ ⚠️ πŸ’»

Kendall Strautman

🎨 πŸ“† πŸ› πŸ€” 🚧 πŸ“’ πŸ‘€ πŸ’»

Nichlas Wærnes Andersen

πŸ’» 🎨 πŸ€”

Jordan

πŸ“† πŸ“’ πŸ€” πŸ›

Frank Taillandier

πŸ‘€ πŸ“– πŸ“† πŸ““

Scott Gallant

πŸ“– πŸ“’ πŸ”

Mitch MacKenzie

πŸ““

zacchg

πŸ““

Lyle Underwood

πŸ› πŸ’»

Laura1111999

πŸ“–

Thom Krupa

πŸ““

Michael Gauthier

πŸ““

dcgoodwin2112

πŸ“–

akshayknz

πŸ“–

Adam Silverstein

πŸ“–

Brad McGonigle

πŸ’»

Jake Coxon

πŸ’»

Ladislav Prskavec

πŸ’»

Bolarinwa Balogun

πŸš‡

Mason Medeiros

πŸ““

ironsean

πŸ““

kyp

πŸ›

Vladislav Shkodin

πŸ›

maciek_grzybek

πŸ€” πŸ’»

weibenfalk

πŸ“Ή πŸ“ πŸ’»

David Bergeron

πŸ›

Kellan Martin

πŸ’»

Jon Miller

πŸ€”

Paul

πŸ›

Chris Flannery

πŸ’»

Jefferson Bledsoe

⚠️

Kenia

πŸ’»

Andrew James

πŸ’»

Zach B

πŸ“’

Jyoti Puri

πŸ’»

nibtime

πŸ’» πŸ›

Johan Soulet

πŸ’» πŸ›

Cleiton Pereira

πŸ›

chrisdmacrae

πŸš‡ πŸ’¬ πŸ€”

jhuggett

πŸ’»

Nicolas Cisco

πŸ’» ⚠️

Hungry Bear Studio

πŸ’»

Alex Barbato

πŸ’»

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

tinacms's People

Contributors

abtris avatar akshayknz avatar alexbarbato avatar allcontributors[bot] avatar andrew-t-james avatar bolariin avatar bradmcgonigle avatar chrisdmacrae avatar chriswillsflannery avatar dcgoodwin2112 avatar dependabot[bot] avatar dirtyf avatar dwalkr avatar itsnwa avatar jakecoxon avatar jamespohalloran avatar jpatters avatar jpuri avatar kendallstrautman avatar laura1111999 avatar lyleunderwood avatar maciekgrzybek avatar ncphillips avatar nickcis avatar scottgallant avatar sijad avatar spbyrne avatar spraynard avatar teyc avatar weibenfalk avatar

Watchers

 avatar  avatar

Forkers

paulbunker

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.