Skip to main content

This tool helps you rebase your package to the latest version

Project description

Welcome to rebase-helper

Travis CI build status Documentation build status GitLab CI build status PyPI version Project status Code Quality

There are several steps that need to be done when rebasing a package. The goal of rebase-helper is to automate most of these steps.

How to get it running?

rebase-helper is packaged in Fedora, so you can just install it with dnf.

If you wish to use the latest codebase, consult installation instructions.

How to use it?

After installation, execute rebase-helper from a directory containing SPEC file, sources and patches (usually cloned dist-git repository).

Without any arguments or configuration rebase-helper will attempt to determine the latest upstream version automatically. If that fails, or if you wish to rebase to some different version, you can specify it explicitly as an argument:

$ rebase-helper 3.1.10

or you can pass source tarball filename instead:

$ rebase-helper foo-4.2.tar.gz

For complete CLI reference see usage.

Alternatively, you can run rebase-helper in a container:

$ docker run -it -e PACKAGE=foo rebasehelper/rebase-helper:latest

See docker reference for more information.

What do I get from it?

rebase-helper always creates rebase-helper-results directory containing the following items:

Path Description
report.txt summary report with all important information
changes.patch diff against original files, directly applicable to dist-git repo
logs/ log files of various verbosity levels
rebased-sources/ git repository with all modified files
checkers/ reports from individual checkers that were run
old-build/ logs and results of old (original) version build
new-build/ logs and results of new (rebased) version build

How does it work?

The following steps describe a rebase process:

  • Preparation

    • rebase-helper-workspace and rebase-helper-results directories are created
    • original SPEC file is copied to rebase-helper-results/rebased-sources directory and its Version tag is modified
  • Getting sources

    • old and new source tarballs are downloaded and extracted to rebase-helper-workspace directory
    • old sources are downloaded from lookaside cache if possible
  • Downstream patches

    • new git repository is initialized and the old sources are extracted and commited
    • each downstream patch is applied and changes introduced by it are commited
    • new sources are extracted and added as a remote repository
    • git-rebase is used to rebase the commits on top of new sources
    • original patches are modified/deleted accordingly
    • resulting files are stored in rebase-helper-results/rebased-sources
    • diff against original files is saved to rebase-helper-results/changes.patch
  • Build

    • old and new source RPMs are created and built with selected build tool
    • old SRPM and RPMs can also be downloaded from Koji to speed up the rebase
  • Comparison

    • multiple checker tools are run against both sets of packages and their output is stored in rebase-helper-results/checkers directory
  • Cleanup

    • rebase-helper-workspace directory is removed

Video presentation

At DevConf.cz 2016, Tomáš Hozza, Petr Hráček presented on rebase-helper.

rebase-helper presentation at DevConf.cz 2016

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

rebasehelper-0.16.2.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

rebasehelper-0.16.2-py2.py3-none-any.whl (619.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file rebasehelper-0.16.2.tar.gz.

File metadata

  • Download URL: rebasehelper-0.16.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for rebasehelper-0.16.2.tar.gz
Algorithm Hash digest
SHA256 a74cf4deea3c49bc08c4e61c4f12c0d30d548d942ff317572377193033331a68
MD5 beefb947bc55872dac276dc52c2ba0f8
BLAKE2b-256 24041b93e959496b37aad5c9fce4526c25376a908a0b80bb6ce5903389749b1f

See more details on using hashes here.

File details

Details for the file rebasehelper-0.16.2-py2.py3-none-any.whl.

File metadata

  • Download URL: rebasehelper-0.16.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 619.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for rebasehelper-0.16.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9e4e50d655d09283961a01022ad5a0e7d12d6fcc36fae400e797741f916271ef
MD5 871cec578aaec11d9321397f3ff3ff5e
BLAKE2b-256 23510889bcae9c4c4deb83231766b38e0c4c9f0e2aa7f502b6e584911eae4c45

See more details on using hashes here.

Supported by

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