Skip to main content

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

gitnextrelease-0.8.7.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitnextrelease-0.8.7-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

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

Hashes for gitnextrelease-0.8.7.tar.gz
Algorithm Hash digest
SHA256 095cab666bc85ef6ff52e11837467457e8d63fb656870178c937fe67d3471a77
MD5 cc635606dba40e432edf00fa196f1221
BLAKE2b-256 3e7defef1f4e6075393e639f27bd5324cf15c84803ade7d395ac2ac20ff68f78

See more details on using hashes here.

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

Hashes for gitnextrelease-0.8.7-py3-none-any.whl
Algorithm Hash digest
SHA256 631ecdd993638465dfe0801dd37b7e0110bcfc4e4589608888e4a22b1a1d46a5
MD5 feb7cd8e95867f1e4520c8d75d49bc72
BLAKE2b-256 135b7c7cc031a8f4d8b46fea91af51032ceb3d9e63a57d098f144b90ff2850dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page