Giter Club home page Giter Club logo

sleppa's Introduction

Sleppa

This project aims to provide a semantic-release for Rust written project in a Rust written way. A configuration file is mandatory and is named sleppa.toml.

Original semantic-release is a very powerful tool to operate semantic release. It automates the whole package release workflow including: determining the next version number, generating the release notes, and publishing the package.

As we are using squash-and-merge strategy to keep a clean and lean history, we have to develop a way to read the message of squashed commits. Our strategy is as follows :

  • Creating a new branch to operate change. The branch name will be the message of the squashed commits.
  • Do some commits on this branch (named inner commit) with valid conventionnal commit message.
  • Create a pull request (PR) with a valid name like: Issue to solve (#3) where the number 3 is the number of the PR.
  • Squash-and-merge the PR with the valid name.

How it works

The following table describes each <type> of commit and how the latter impacts (i.e. increments) the MAJOR, MINOR and/or PATCH digits of a semantic version.

Type Category Description Versioning Example
break Development Breaking changes that causes a new major version of a component to be launched MAJOR break(service): new feature impacting the data model
build Development Changes related to the build system (involving configurations or tools) and package dependencies MINOR build(cargo): bump tokio-tower to version 1.5.2
ci Development Changes impacting the CI/CD pipeline (e.g. GitHub Actions scripts, tools, ...) MINOR docs(changelog): update CHANGELOG to new version 0.1.1
docs Documentation Changes impacting the project documentation MINOR docs(changelog): update CHANGELOG to new version 0.1.1
feat Production Changes related to new backward-compatible features or functionalities MINOR feat(largo): implement Quic/RPC API server
fix Production Changes related to backward-compatible bug fixes PATCH fix(service): correctly resolve shorthand property declarations
perf Production Changes related to backward-compatible performance improvements PATCH perf(net): use of non-blocking data structures for faster packets processing
refac Development Changes that restructure/rewrite the code base (not a new feature or a bug fix) PATCH refac(largo): adopt a graph data model for the storage engine
sec Production Changes related to backward-compatible security improvements PATCH sec(net): use TLS 1.3
style Development Changes that do not affect the meaning of the source code (e.g. indentation, whitespaces, ...) PATCH style(largo): bump indentation to 4 blank characters
test Development Changes related to tests (i.e. refactoring or adding tests) PATCH test(service): implement property-based tests on financial algorithms

These types and versionning are the default implementation of Sleppa.

View of a squashed PR with inner commits

Alt text

Licenses and copyright

All contributions to this project are licensed under either of the following licenses:

sleppa's People

Contributors

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