embarkstudios/relnotes

📓 Relnotes: Automatic GitHub Release Notes

Tera templates for release notes format

📓 Relnotes: Automatic GitHub Release Notes

Relnotes is a tool to automatically generate a file containing every merged pull request for a GitHub repository. It comes with a simple configuration file and powerful templating allowing you to easily create release notes in your preferred format and organisation.

How it works

Features

  • Automatically gets all merged PRs since the last release, and can be configured for different release schedules.
  • Automatic list of contributors for the release.
  • Label filtering and categorisation using regular expressions.
  • Powerful configuration file for advanced layouts.
  • Supports collecting changes from multiple repositories.
  • Uses Tera templates for release notes format.

How It Works

The basic usage of relnotes works by providing the repository and version of new the release. For example if you wanted the release notes of a potential new 0.3.0 release of [rust-gpu], you would run the following.

This will generate the following markdown:

Configuration File

Contributing

We welcome community contributions to this project.

Please read our Contributor Guide for more information on how to get started.

License

Licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or #404)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Versions

Find the latest versions by id

0.1.0 - Jan 05, 2021

Hello everyone, I'm @XAMPPRocky and I want to welcome you to the initial release of the relnotes tool! relnotes is a new tool aimed at making it easier to build release notes for your GitHub projects.

As the maintainer of various open source projects on GitHub and one of the primary authors of Rust's RELEASES.md, one of the biggest time sinks in a release is actually just building the list of changes in the repository. While there are tools for building release notes from your git log, since git is unstructured using those tools require commit messages having a convention.

In my experience however that convention is hard to scale and enforce on larger projects, especially as features become spread over multiple commits, or even repositories. Those conventions are also typically project-specific which can be unnecessary friction for contributors who work on multiple projects.

For most projects this ends up being a manual process of going through each of the merged pull requests on GitHub, figuring out which ones are relevant to users, and writing a sentence or two on the change and what it means for them, and linking to the original PR. This is quite time consuming, and for a project as large as Rust this process became untenable years ago, and at RustFest 2018 I wrote rust-lang/relnotes to automate the process of collecting the PRs for the next Rust release into a single markdown file with links that I could then edit more easily with Vim.

This has been working fine for writing Rust's release notes, however since joining Embark, I was talking with a few of my coworkers who were interested in tool like that to help them writing the release notes for several of Embark's open source repositories. So I rewrote that tool to be able to work with any GitHub repository, and be much more configurable!

Installation

relnotes is available on crates.io so you can easily install it with cargo.

Features

  • Automatically gets all merged PRs since the last release, and can be configured for different release schedules.
  • Automatic list of contributors for the release.
  • Label filtering and categorisation using regular expressions.
  • Powerful configuration file for advanced layouts.
  • Supports collecting changes from multiple repositories.
  • Uses Tera templates for release notes format.

How It Works

The basic usage of relnotes works by providing the repository and version of new the release. For example if you wanted the release notes of a potential new 0.3.0 release of rust-gpu, you would run the following.

This will generate the following markdown:

You can also provide a configuration file that gives you more advanced control over the formatting, timeframe, categories, and what pull requests are included.

Information - Updated Mar 29, 2022

Stars: 54
Forks: 3
Issues: 0

The arkworks ecosystem consist of Rust libraries for designing and working with zero knowledge succinct...

This library is released under the MIT License and the Apache v2 License (see License)

The arkworks ecosystem consist of Rust libraries for designing and working with zero knowledge succinct...

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀

This project is duel-licensed under both the Apache licenses, so feel free to use either at your discretion

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀

This project is duel-licensed under both the Apache licenses, so feel free to use either at your discretion

Bespoke protocol and high-level implementation of Non-fungible token (NFT) technology 🚀
CLI

132

The simple cli library

This project is duel-licensed under both MIT and Apache, so feel free to use either at your discretion

The simple cli library
CLI

132

The simple cli library

This project is duel-licensed under both MIT and Apache, so feel free to use either at your discretion

The simple cli library

A Rust wrapper library for smealum's ctrulib

A Rust wrapper library for smealum's LICENSE-APACHE, COPYRIGHT for details

A Rust wrapper library for smealum's ctrulib

OpenSearch Rust Client

a community-driven, open source fork of elasticsearch-rs licensed under the Apache v2

OpenSearch Rust Client

A 'Space Invader' clone made with rust and made for the terminal

Inspired by Apache License (Version 2

A 'Space Invader' clone made with rust and made for the terminal

The compact yet complete benchmarking suite for Rust

This project is licensed under the Apache-2

The compact yet complete benchmarking suite for Rust

Rust SDK for Structured Expression Project Toolkit (SEPT)

Copyright 2021 by Victor Dods, licensed under Apache 2

Rust SDK for Structured Expression Project Toolkit (SEPT)

Disclaimer: This is a toy project that was developed mainly for procrastination purposes

Expressions can be lazily evaluated and manipulated using a documentation or the Apache License, Version 2

Disclaimer: This is a toy project that was developed mainly for procrastination purposes
Facebook Instagram Twitter GitHub Dribbble
Privacy