$ releasecraftsman
π·π»ββοΈπ
Automate Your Release Process with Precision and Ease.
π Features
- Generate well-crafted release notes using GPT-3.5 and GPT-4 models
- Fetch git commit logs in various formats (
compact
,full
) - Filter commit logs between two specified tags
- Filter commit logs from the last tag to the current date
- Seamlessly integrates with CI/CD pipelines
π¦ Prompts can be improved much more
ποΈ TODO
- ChatGPT integration for generating release notes
- Predefined prompts
- Better error handling
- Create different file formats, with generated content for example: Markdown
- Spinner, activity indicator or some funny activity in terminal, while GPT is generating relese notes
- Interactivity, step by step asking user to input data.
- Custom prompts
- Github and Gitlab integration to create tags + releases.
βοΈ Usage
Once installed, you can run releasecraftsman
from the terminal to start generating release notes.
releasecraftsman
will ask you couple of questions based on your need, then it will generate and create markdown file for you.
If you want to run it with single command without prompts, below are available options and commands.
This current command crafts release notes, with specific version from last tag to recent commit, using GPT4 model.
releasecraftsman -f compact -s v1.0.0 -k API_KEY -m Gpt_4 -v1.0.1
You can customize it and use GPT_3_5Turbo, you need to use your own, or companies API_KEY.
Options
1. Default Compact Format
This will run the program using the default 'compact' format for git logs for latest 5 commit logs
releasecraftsman
2. Specify a Format
Choose between 'compact' and 'hard' formats for the git logs.
releasecraftsman -f hard
3. Specify Start and End Tags
Fetch git logs between specified start and end tags.
releasecraftsman -s v1.0 -e v1.2
This will defaultly uses compact mode, if you want hard format
releasecraftsman -f hard -s v1.0 -e v1.2
4. Specify Start Tag Only
From Specified start tag to the latest commit.
releasecraftsman -s v1.0
βοΈ Installation
From Source
Clone the repository:
git clone https://github.com/tornikegomareli/releasecraftsman.git
cd releasecraftsman
With Cargo
To compile and install using Cargo, ensure you have Cargo installed on your machine.
Then run the following commands:
cargo build --release
# Add to PATH
echo 'export PATH=$PATH:/path/to/target/release' >> ~/.bashrc
source ~/.bashrc
After building, you'll find the executable in the target/release
directory. You'll need to include this in your PATH in your .zshrc
or .bashrc
file
With Makefile
Alternatively, you can compile using the provided Makefile, it still uses cargo, so you still need to have cargo on your machine. So you need to follow above steps.
cd releasecraftsman
make build
It will compile and build
cd releasecraftsman
make install
It will move executable to /user/local/bin
cd releasecraftsman
make all
It will do both above commands in order You can change release/debug variable inside makefile
With Homebrew
If you're on macOS, you can also install using Homebrew:
brew tap tornikegomareli/homebrew-releasecraftsman
brew install releasecraftsman
Currently releasecraftsman is not on official homebrew, thats why it usess my own tap, but soon will be there. Also it will be soon on popular package managers for different OS's, its not only designed for mac.
From Compiled Binary
Compiled binaries are also available for download from the Releases section on GitHub.
Contributing
Early Development Stage
Please note that releasecraftsman
is currently in a very early stage of development.
Types of Contributions
We welcome contributions of all types. Here are some ways you can contribute:
- Bug Fixes: If you find a bug, feel free to open an issue or create a pull request.
- New Features: New ideas and features are always welcome. Please open an issue for discussion before submitting a pull request.
- Code Quality: Improvements to the codebase, like optimizations or even simple clean-ups, are always appreciated.
- Documentation: Enhancements to the README or in-code documentation are fantastic and extremely helpful.
π§βπ€βπ§ How to Contribute
-
Fork the Repository: Start by forking the ReleaseCraftsman repository.
-
Clone the Fork: Clone your forked repository onto your local machine.
git clone https://github.com/your-username/releasecraftsman.git
-
Create a New Branch: Create a new branch on your local repository to implement your changes.
git checkout -b new-feature-or-fix
-
Implement Changes: Make your changes to the codebase, ensuring that they are well-documented.
-
Commit and Push: Once you're happy with your changes, commit them and push the changes to your GitHub repository.
git add . git commit -m "Describe your changes here" git push origin new-feature-or-fix
-
Create a Pull Request: Navigate to your repository on GitHub and click on "New Pull Request" to submit your changes for review.
β Feedback and Questions
For any questions or feedback, please open an issue on GitHub.