GithubHelp home page GithubHelp logo

tiktok / sparo Goto Github PK

View Code? Open in Web Editor NEW
86.0 3.0 5.0 3.89 MB

Sparo optimizes performance of Git operations for your large frontend monorepo.

Home Page: https://tiktok.github.io/sparo/

License: MIT License

JavaScript 6.68% TypeScript 91.07% Shell 1.73% CSS 0.52%
checkout git monorepo monorepos optimization pnpm rush rushjs rushstack sparse

sparo's Introduction

Sparo

Monorepo for Sparo toolkit

Sparo optimizes performance of Git operations for your large frontend monorepo.

Key features

  • Familiar interface: The sparo command-line interface (CLI) wrapper offers better defaults and performance suggestions without altering the familiar git syntax. (The native git CLI is also supported.)

  • A proven solution: Git provides quite a lot of ingredients for optimizing very large repos; Sparo is your recipe for combining these features intelligently.

  • Simplified sparse checkout: Work with sparse checkout profiles instead of confusing "cones" and globs

  • Frontend integration: Sparo leverages Rush and PNPM workspace configurations, including the ability to automatically checkout project dependencies

  • Dual workflows: The sparo-ci tool implements a specialized checkout model optimized for continuous integration (CI) pipelines

  • Extra safeguards: Avoid common Git mistakes such as checkouts with staged files outside the active view

  • Go beyond Git hooks: Optionally collect anonymized Git timing metrics in your monorepo, enabling your build team to set data-driven goals for local developer experience (not just CI!)

    (Metrics are transmitted to your own service and are not accessible by any other party.)

For details, consult the Sparo documentation.

Published Packages

Folder Version Changelog Package
/apps/sparo npm version changelog sparo
/apps/sparo-lib npm version sparo-lib

Unpublished Local Projects

Folder Description
/apps/website The Sparo documentation website
/build-tests/sparo-output-test Building this project tests Sparo command-line outputs
/build-tests/sparo-real-repo-test Building this project tests Sparo by cloning a real repository
/build-tests/test-utilities Code shared between the build test projects in this repository

Contributing

Building the projects in this monorepo:

  1. Install the RushJS tool:

    npm install -g @microsoft/rush
  2. Clone the repo:

    git clone https://github.com/tiktok/sparo.git
  3. Install the dependencies

    cd sparo
    rush install
  4. Build all projects

    rush build

How to invoke your locally build sparo command:

cd apps/sparo
node lib/start.js

sparo's People

Contributors

chengcyber avatar escapeb avatar jzhang026 avatar l-qun avatar octogonz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.