A git release/feature/fix branch management cli. This package is used to release itself.
Project description
This was built to be an easier way to do release branches.
Install
You’ll need poetry and a few other things installed, like make.:
make deploy # -- Runs the Command that pulls the package from gitlab make deploylocal # -- Builds the pkg from source then installs make remove # -- removes from user
As of 2025, you should be able to install the module directly from pypi:
pip install gitnextrelease
Thanks to Gitlab, we also have an alternative method for you:
pip install gitnextrelease --index-url https://gitlab.com/api/v4/projects/53741339/packages/pypi/simple
Let me know if you have any trouble.
Usage
Basic Setup
Make sure the repo has a remote already.
Once the links are create into your git libexec folder,
create a version file in the repo you want to track:
$ export APPNAME=aftermerge
$ echo "VERSION=0.1.0" > .version
$ echo "APPNAME=${APPNAME}" >> .version
or if you have a poetry python project:
$ poetry init or poetry new package; cd package
then give it at least a commit to work with(for either):
$ git init $ git commit -a -m "First Commit"
Next start the first release by typing:
$ git nextrelease
Standard Maintainer Workflow
This will put you into the release branch directly. As a maintainer, it’s you’re job to manage the release branch. When a task is assigned, create a branch from the release branch possibly with the task info:
$ git checkout release_vx.x.x $ git checkout -b add_the_correct_vars_to_file $ git push -o origin add_the_correct_vars_to_file
Or:
$ git current $ git feature <feature/fix> <name_of_branch>
Then once the developer is finished, pull and test branch:
$ git checkout add_the_correct_vars_to_file $ git pull $ make test # or w.e. test you have $ make deploytest # if you have venv setup
Once you are happy with the release, create a merge request or w.e. the systems methods merging task branch with pull requests/merge requests or do it manually:
$ git checkout release_vx.x.x $ git merge add_the_correct_vars_to_file $ git branch -D add_the_correct_vars_to_file $ git push --force
Once you have your release ready, merge it into master or main via a system like github, gitlab or do it manually:
$ git checkout main # you need to force the merge commit --no-ff $ git merge --no-ff release_vx.x.x $ git branch -D release_vx.x.x $ git push --force
Or try out the fakepr command that automates this:
$ git fakepr
After the merge into master/main
Once everything is merged into main you run:
$ git aftermerge patch # or minor or major
This sets up a tag and everyhing, now we can add the funzies:
$ git versionupdater install $ git changelog install
Make sure to review the versionupdater.json to make sure its updating the files you need updated.
Once you finish, test the changelog:
$ git changelog adds changelog and versionupdater
This should complete and add the commit automagically. Now develop and try not to use pre-commit hooks.
Some helpful git commands are:
$ git rebase -i <a commit> $ "edit the commits" $ git commit --amend --reset-author $ git rebase --continue
Testing
Suite. real, Suite
Give it a shot, I’m always down to see if it works.
You’ll need a project called: glab. Which also has it’s own release system that I haven’t tried yet because I don’t want to demoralize myself.
All in good time.
It’s recommended that you run
make deploytest sudo make testinstall
The second command maps it to a centos or debian install. Let me know of other common locations and I’ll add them.
If I didn’t say it already, you’re gonna need git2 or greater.:
$ ./tests/suite short
It should fail at the various commands to look at. I may add some bright colors too… maybe
Verb Index
Added
allows added adds installs loads
Changed
changed changes uncomments configures decouples deploys edits fixes finishes improves moves prevents renames repairs replaces refactors restores returns separates sets splits updates uncouples wires wraps
Removed
removed removes cleans comments deprecates
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitnextrelease-0.8.7.tar.gz.
File metadata
- Download URL: gitnextrelease-0.8.7.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
095cab666bc85ef6ff52e11837467457e8d63fb656870178c937fe67d3471a77
|
|
| MD5 |
cc635606dba40e432edf00fa196f1221
|
|
| BLAKE2b-256 |
3e7defef1f4e6075393e639f27bd5324cf15c84803ade7d395ac2ac20ff68f78
|
File details
Details for the file gitnextrelease-0.8.7-py3-none-any.whl.
File metadata
- Download URL: gitnextrelease-0.8.7-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
631ecdd993638465dfe0801dd37b7e0110bcfc4e4589608888e4a22b1a1d46a5
|
|
| MD5 |
feb7cd8e95867f1e4520c8d75d49bc72
|
|
| BLAKE2b-256 |
135b7c7cc031a8f4d8b46fea91af51032ceb3d9e63a57d098f144b90ff2850dc
|