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.2.tar.gz (19.0 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.2-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file gitnextrelease-0.8.2.tar.gz.

File metadata

  • Download URL: gitnextrelease-0.8.2.tar.gz
  • Upload date:
  • Size: 19.0 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.2.tar.gz
Algorithm Hash digest
SHA256 81a621130c5acdc663c8fa57d47b39bc4403f0a3de6cf451bcd941fefc20eb48
MD5 a1276b3d876c9bca42aa85cfef189f12
BLAKE2b-256 352fe86446a8908f63b252afa301278a2970d0aafdb7d619c7ca00831d982afa

See more details on using hashes here.

File details

Details for the file gitnextrelease-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: gitnextrelease-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 22.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 93a46cd0ab33be409508bebe172843aae6e7b2c8ecfcfc70c7adf02ff7683cc4
MD5 0d5d5dedaf17967951f9eba005ea5560
BLAKE2b-256 2244a6d4af5936d0d86e542c344450f76f77a13a6554654aa85862d43ab79c4b

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