Skip to main content

GIUP - Git Interactive Update and Publish

PyPI

Allows to interactively perform hierarchical merges and run publishing commands in between.

When commands fail the user is given the chance to intervene by rerunning the current command, just continuing, running a custom shell command or stopping the project, or the current merge path.

Example Workflow

Example workflow from one of my Minecraft modding projects:

.giup:

{
    "merge-paths": [
        "1.16",
        "1.16->1.15->1.14",
        "1.16->1.17"
    ],
    "commands": [
        {
            "title": "Cleanup build directories",
            "run": "rm -rf build .gradle",
            "nt": "rmdir /S /Q build & rmdir /S /Q .gradle",
            "ignore-errors": true
        },
        {
            "title": "Build and publish",
            "run": "./gradlew publish",
            "nt": "gradlew publish"
        },
        "git push"
    ]
}

This consecutively merges:

  1. 1.16 to 1.15
  2. 1.15 to 1.14
  3. 1.16 to 1.17

After each merge GIUP cleans up, builds, publishes and pushes the code.

Getting Started

To install this project run pip install giup.

To use this for your project create a .giup file (as described below) in your project root and run giup.

Project Specification

By default, the project specification will be read from the .giup file in the working directory. The specification should be defined in JSON and uses the following keys:

merge-paths

Here you can specify certain merge hierarchies. You can either specify a hierarchy as a string delimited by arrows (->) or as an array with all branches (["1.16","1.15","1.14"]).

Specifying a single branch will just switch to that branch and run the commands.

commands

In this array commands are specified. Commands are specified as an object or a string, which is a short form for an object with the run key.

The run entry should contain a string that will be run as a shell command. You can define overrides for Windows (nt) and POSIX (posix) shells.

The titleentry is a string that optionally gets displayed when the command is run. If not defined, the command itself will be displayed before execution.

The ignore-errors entry is an optional boolean telling GIUP whether unsuccessful runs of the command should be treated as errors (on by default). This is useful e.g. when trying to delete a file with rmdir which might not exist.

Release files for giup 1.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for giup 1.1.6
File Size Uploaded
giup-1.1.6.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for giup 1.1.6
File Interpreter ABI Platform
giup-1.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 31.4 kB

Release files / giup-1.1.6.tar.gz

Download URL giup-1.1.6.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0b519ae7922194fd731237944f0e64046e720647fb8789e39a52428ca2fa26f0
BLAKE2b-256 checksum
How to use checksums
b3f25be75431e7e30cc0c2d3283da0cf3f43fd1f49c73a76d27391eba613122c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.11.3 Linux/5.19.0-42-generic

Release files / giup-1.1.6-py3-none-any.whl

Download URL giup-1.1.6-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f469f6df3c837353818bbed24001964852d82ff87e43e0dd640d2a3953a9e25
BLAKE2b-256 checksum
How to use checksums
9e823e910f77452e28ccd28e76bd6155fe9818a9fea6018158f590c9bd06a7ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.11.3 Linux/5.19.0-42-generic

Release history Release notifications | RSS feed

This release

1.1.6 This release

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page