GIUP - Git Interactive Update and Publish
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.16to1.151.15to1.141.16to1.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.
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| giup-1.1.6.tar.gz | 11.8 kB | Without provenance | Details for giup-1.1.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| giup-1.1.6-py3-none-any.whl | Python 3 | none | any | Details for giup-1.1.6-py3-none-any.whl |
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
|
Security for giup 1.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.