From 48f09d50646fe58985320e9ec8e888e5ae438aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20T=C3=B6lle?= Date: Sat, 3 Aug 2024 01:41:05 +0200 Subject: [PATCH] docs: add proper readme --- README.md | 45 ++++++++++++++++++++++++++++++--------------- cmd/rp/cmd/root.go | 16 ---------------- cmd/rp/cmd/run.go | 3 --- cmd/rp/main.go | 16 ---------------- 4 files changed, 30 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index ed70490..6c282dd 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,34 @@ -# Functionality +# releaser-pleaser -## Reconciling PRs +`releaser-pleaser` is a tool designed to automate versioning and changelog management for your projects. Building on the concepts of [`release-please`](https://github.com/googleapis/release-please), it streamlines the release process through GitHub Actions or GitLab CI. -- Checkout Git Repository -- Get Commits since last tag -- If there are releasable commits (Conventional Commit & SemVer) continue -- Build Changelog from Commits -- Figure out next version based on ConvCommits & SemVer -- Create new branch -- Update local version references & Changelog with new proposed changes -- Commit these -- Push branch to Forge -- Open PR in Forge +## Features -## Reconciling Tags +- **Automated Pull Requests**: Opens a PR when releasable changes are detected. +- **Smart Versioning**: Suggests new versions based on conventional commits and semantic versioning. +- **Version Reference Updates**: Automatically updates committed version references in the PR. +- **Changelog Generation**: Creates new changelog entries based on commits. +- **Automated Releases**: Upon PR merge, creates tags and GitHub/GitLab Releases with appropriate messages. +- **Version Overrides**: Allows manual override of the suggested version. +- **Prerelease Support**: Offers options to create alpha, beta, or release candidate versions. -- Check if any merged PRs exist that have no associated tags -- Create tag+release with the planned version & changelog +`releaser-pleaser` simplifies release management, allowing maintainers to focus on development while ensuring consistent and well-documented releases. + +## Status + +This project is still under active development. You can not reasonably use it right now and not all features advertised above work. Keep your eyes open for any releases. + +## Relation to `release-please` + +After using `release-please` for 1.5 years, I've found it to be the best tool for low-effort releases currently available. While I appreciate many of its features, I identified several additional capabilities that would significantly enhance my workflow. Although it might be possible to incorporate these features into `release-please`, I decided to channel my efforts into creating a new tool that specifically addresses my needs. + +Key differences in `releaser-pleaser` include: + +- Support for multiple forges (both GitHub and GitLab) +- Better support for pre-releases + +One notable limitation of `release-please` is its deep integration with the GitHub API, making the addition of support for other platforms (like GitLab) a substantial undertaking. `releaser-pleaser` aims to overcome this limitation by design, offering a more versatile solution for automated release management across different platforms and project requirements. + +## License + +This project is licensed under the GNU General Public License v3.0 (GPL-3.0). diff --git a/cmd/rp/cmd/root.go b/cmd/rp/cmd/root.go index fc23cea..c43b75a 100644 --- a/cmd/rp/cmd/root.go +++ b/cmd/rp/cmd/root.go @@ -1,19 +1,3 @@ -/* -Copyright © 2024 Julian Tölle - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ package cmd import ( diff --git a/cmd/rp/cmd/run.go b/cmd/rp/cmd/run.go index 899752c..4e89f0f 100644 --- a/cmd/rp/cmd/run.go +++ b/cmd/rp/cmd/run.go @@ -1,6 +1,3 @@ -/* -Copyright © 2024 Julian Tölle -*/ package cmd import ( diff --git a/cmd/rp/main.go b/cmd/rp/main.go index 36448a8..462629b 100644 --- a/cmd/rp/main.go +++ b/cmd/rp/main.go @@ -1,19 +1,3 @@ -/* -Copyright © 2024 Julian Tölle - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ package main import (