Git Product home page Git Product logo

semantic-monorepo-tools's Introduction

semantic-monorepo-tools

A library of helper functions to do SemVer2 compliant releases from Conventional Commits in monorepos.

Install

npm install @coveo/semantic-monorepo-tools

Why?

Before, one would use lerna version to make semantic releases in a monorepo, but lerna is dead.

The most predominant tools in the field, standard-version and semantic-release do not offer the level of flexibility that lerna did offer (e.g. it's hard to do semantic releases when packages do not share the same version and Changelog generation are sometimes tangled).

Because there are so many ways to do semantic releases in a monorepo, and that an opinionated way could result in releases that make less sense for the user of the published packages, semantic-monorepo-tools took the approach to leave the implementation process in the hand of the user, and instead focus on providing functions to 'get what you need' and 'do what you need to do' directly with JavaScript.

What?

semantic-monorepo-tools aims to take the functions of a single-package release flow such as standard-version and make them available as standalone building blocks. The goal is to make abstractions of the inner working of the tools (e.g. git, npm) behind simple pure (ish) functions.

Examples

semantic-monorepo-tools use itself for its release process, you can see the 'meat of it' here. It is also used for the release processes of several monorepos at Coveo, you can find implementations examples on some of our repository:

semantic-monorepo-tools's People

Contributors

developer-experience-bot[bot] avatar renovate[bot] avatar louis-bompart avatar germainbergeron avatar renovate-bot avatar aiheon avatar gdostie avatar jonapich avatar malaporte avatar

Stargazers

Daniel Glöckner avatar Tuan Duc Tran avatar Andrejs Agejevs avatar Jrson avatar  avatar Toofff avatar

Watchers

Felix Perron-Brault avatar ylakhdar avatar  avatar  avatar  avatar Danny Gauthier avatar

Forkers

isabella232

semantic-monorepo-tools's Issues

docs

we need clearer docs, how exactly it works, and how to configure it.
this example doesn't tell us much info about every thing

Use `debug` to log the outputs of the subprocesses

In #9, we changed the return type of some 'get' functions from string to [string, SpawnSyncReturns<string>].
In #12, we added debug as util to allow some logging to occur depending on the environment variable.
In #15 (review), we discussed that, instead of returning a tuple, we should return a string again and instead use debug to 'log' the outputs of the spawnedProcess (i.e. stdout, stderr and exitCode)

Update to TypeScript 4.7 stable

TS 4.7 brings ECMAScript Module Support in Node.js to the stable branch 🎉

We won't need experimental anymore, so let's use stable before going v1

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.