Skip to main content

Welcome to rebase-helper

Github Actions build status Documentation build status Container image 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):

$ ls
foo-3.1.9.tar.xz foo.spec sources

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-3.1.10.tar.xz

For complete CLI reference see usage.

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

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

See container 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

Videos

A talk about rebase-helper at DevConf.CZ 2020 given by František Nečas:

Rebasing RPM packages with rebase-helper - DevConf.CZ 2020

Another presentation, this time from DevConf.CZ 2016, by Petr Hráček and Tomáš Hozza:

Rebase-helper and Upstream Release Monitoring - DevConf.CZ 2016

Metadata

Release files for rebasehelper 0.29.7

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

Source distribution (sdist)

Source distribution for rebasehelper 0.29.7
File Size Uploaded
rebasehelper-0.29.7.tar.gz 1.9 MB Details

Built distribution (wheel)

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

Total release size: 2.1 MB

Release files / rebasehelper-0.29.7.tar.gz

Download URL rebasehelper-0.29.7.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
d31a3841912ba6aefa12fa56e63d2d795133534717c78244cdfe95e9cbff8a39
BLAKE2b-256 checksum
How to use checksums
973c738fc6580c381551d92d38cf85e76927abb6c9992a2d058f8a4633ca9439
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / rebasehelper-0.29.7-py3-none-any.whl

Download URL rebasehelper-0.29.7-py3-none-any.whl
Size 167.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77ec57439f33506c238b1128663a1438e68ce421e4412fe2387540bd461b7311
BLAKE2b-256 checksum
How to use checksums
5eb1a96a5d1bf401d54efbaa22cfb046831f28d77080a1e66c8ee5dd3a6404bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.29.7 This release

2 release files

0.29.6

2 release files

0.29.5

2 release files

0.29.4

2 release files

0.29.3

2 release files

0.29.0

2 release files

0.28.1

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.16.1

2 release files

0.16.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