docs: add proper readme

This commit is contained in:
Julian Tölle 2024-08-03 01:41:05 +02:00
parent 65693807bf
commit 48f09d5064
4 changed files with 30 additions and 50 deletions

View file

@ -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).

View file

@ -1,19 +1,3 @@
/*
Copyright © 2024 Julian Tölle <oss@apricote.de>
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 <http://www.gnu.org/licenses/>.
*/
package cmd
import (

View file

@ -1,6 +1,3 @@
/*
Copyright © 2024 Julian Tölle
*/
package cmd
import (

View file

@ -1,19 +1,3 @@
/*
Copyright © 2024 Julian Tölle <oss@apricote.de>
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 <http://www.gnu.org/licenses/>.
*/
package main
import (