rebasehelper


Namerebasehelper JSON
Version 0.28.1 PyPI version JSON
download
home_pagehttps://github.com/rebase-helper/rebase-helper
SummaryThis tool helps you rebase your package to the latest version.
upload_time2023-10-26 11:39:05
maintainerNikola Forró
docs_urlNone
authorPetr Hráček
requires_python>=3.9
licenseGPLv2+
keywords rebase packaging rpm spec
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # Welcome to rebase-helper

[![Github Actions build status](https://github.com/rebase-helper/rebase-helper/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/rebase-helper/rebase-helper/actions) [![Documentation build status](https://readthedocs.org/projects/rebase-helper/badge/?version=latest)](https://readthedocs.org/projects/rebase-helper) [![Container image build status](https://quay.io/repository/rebasehelper/rebase-helper/status)](https://quay.io/repository/rebasehelper/rebase-helper) [![PyPI version](https://img.shields.io/pypi/v/rebasehelper.svg)](https://pypi.org/project/rebasehelper) [![Project status](https://img.shields.io/pypi/status/rebasehelper.svg)](https://pypi.org/project/rebasehelper) [![Code Quality](https://api.codacy.com/project/badge/Grade/af059c941cd94f7aa557c3ae7ce75bb8)](https://www.codacy.com/app/rebase-helper/rebase-helper)

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](https://rebase-helper.readthedocs.io/en/latest/user_guide/installation.html).

## How to use it?

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

```bash
$ 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:

```bash
$ rebase-helper 3.1.10
```

or you can pass source tarball filename instead:

```bash
$ rebase-helper foo-3.1.10.tar.xz
```

For complete CLI reference see [usage](https://rebase-helper.readthedocs.io/en/latest/user_guide/usage.html).

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

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

See [container reference](https://rebase-helper.readthedocs.io/en/latest/user_guide/rebasing_in_container.html) 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](https://img.youtube.com/vi/xI6edOXqk8U/0.jpg)](https://www.youtube.com/watch?v=xI6edOXqk8U)

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

[![Rebase-helper and Upstream Release Monitoring - DevConf.CZ 2016](https://img.youtube.com/vi/Y-5Qiwaujd8/0.jpg)](https://www.youtube.com/watch?v=Y-5Qiwaujd8)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rebase-helper/rebase-helper",
    "name": "rebasehelper",
    "maintainer": "Nikola Forr\u00f3",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "nforro@redhat.com",
    "keywords": "rebase,packaging,rpm,spec",
    "author": "Petr Hr\u00e1\u010dek",
    "author_email": "phracek@redhat.com",
    "download_url": "https://files.pythonhosted.org/packages/c6/fa/f2b9df7fea5188a4ed50f76a2bf437e0c3efd4c7ce192c97db0e515b76ce/rebasehelper-0.28.1.tar.gz",
    "platform": null,
    "description": "# Welcome to rebase-helper\n\n[![Github Actions build status](https://github.com/rebase-helper/rebase-helper/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/rebase-helper/rebase-helper/actions) [![Documentation build status](https://readthedocs.org/projects/rebase-helper/badge/?version=latest)](https://readthedocs.org/projects/rebase-helper) [![Container image build status](https://quay.io/repository/rebasehelper/rebase-helper/status)](https://quay.io/repository/rebasehelper/rebase-helper) [![PyPI version](https://img.shields.io/pypi/v/rebasehelper.svg)](https://pypi.org/project/rebasehelper) [![Project status](https://img.shields.io/pypi/status/rebasehelper.svg)](https://pypi.org/project/rebasehelper) [![Code Quality](https://api.codacy.com/project/badge/Grade/af059c941cd94f7aa557c3ae7ce75bb8)](https://www.codacy.com/app/rebase-helper/rebase-helper)\n\nThere are several steps that need to be done when rebasing a package. The goal of **rebase-helper** is to automate most of these steps.\n\n## How to get it running?\n\n**rebase-helper** is packaged in Fedora, so you can just install it with **dnf**.\n\nIf you wish to use the latest codebase, consult [installation instructions](https://rebase-helper.readthedocs.io/en/latest/user_guide/installation.html).\n\n## How to use it?\n\nAfter installation, execute **rebase-helper** from a directory containing SPEC file, sources and patches (usually cloned dist-git repository):\n\n```bash\n$ ls\nfoo-3.1.9.tar.xz foo.spec sources\n```\n\nWithout any arguments or configuration **rebase-helper** will attempt to determine the latest upstream version automatically.\nIf that fails, or if you wish to rebase to some different version, you can specify it explicitly as an argument:\n\n```bash\n$ rebase-helper 3.1.10\n```\n\nor you can pass source tarball filename instead:\n\n```bash\n$ rebase-helper foo-3.1.10.tar.xz\n```\n\nFor complete CLI reference see [usage](https://rebase-helper.readthedocs.io/en/latest/user_guide/usage.html).\n\nAlternatively, you can run **rebase-helper** in a container:\n\n`$ docker run -it -e PACKAGE=foo quay.io/rebasehelper/rebase-helper:latest`\n\nSee [container reference](https://rebase-helper.readthedocs.io/en/latest/user_guide/rebasing_in_container.html) for more information.\n\n## What do I get from it?\n\n**rebase-helper** always creates *rebase-helper-results* directory containing the following items:\n\n| Path                  | Description                                                       |\n|:--------------------- |:----------------------------------------------------------------- |\n| *report.txt*          | summary report with all important information                     |\n| *changes.patch*       | diff against original files, directly applicable to dist-git repo |\n| *logs/*               | log files of various verbosity levels                             |\n| *rebased-sources/*    | git repository with all modified files                            |\n| *checkers/*           | reports from individual checkers that were run                    |\n| *old-build/*          | logs and results of old (original) version build                  |\n| *new-build/*          | logs and results of new (rebased) version build                   |\n\n## How does it work?\n\nThe following steps describe a rebase process:\n\n- **Preparation**\n\n    - *rebase-helper-workspace* and *rebase-helper-results* directories are created\n    - original SPEC file is copied to *rebase-helper-results/rebased-sources* directory and its Version tag is modified\n\n\n- **Getting sources**\n\n    - old and new source tarballs are downloaded and extracted to *rebase-helper-workspace* directory\n    - old sources are downloaded from lookaside cache if possible\n\n\n- **Downstream patches**\n\n    - new git repository is initialized and the old sources are extracted and commited\n    - each downstream patch is applied and changes introduced by it are commited\n    - new sources are extracted and added as a remote repository\n    - `git-rebase` is used to rebase the commits on top of new sources\n    - original patches are modified/deleted accordingly\n    - resulting files are stored in *rebase-helper-results/rebased-sources*\n    - diff against original files is saved to *rebase-helper-results/changes.patch*\n\n\n- **Build**\n\n    - old and new source RPMs are created and built with selected build tool\n    - old SRPM and RPMs can also be downloaded from Koji to speed up the rebase\n\n\n- **Comparison**\n\n    - multiple checker tools are run against both sets of packages and their output is stored in *rebase-helper-results/checkers* directory\n\n\n- **Cleanup**\n\n    - *rebase-helper-workspace* directory is removed\n\n## Videos\n\nA talk about **rebase-helper** at DevConf.CZ 2020 given by Franti\u0161ek Ne\u010das:\n\n[![Rebasing RPM packages with rebase-helper - DevConf.CZ 2020](https://img.youtube.com/vi/xI6edOXqk8U/0.jpg)](https://www.youtube.com/watch?v=xI6edOXqk8U)\n\nAnother presentation, this time from DevConf.CZ 2016, by Petr Hr\u00e1\u010dek and Tom\u00e1\u0161 Hozza:\n\n[![Rebase-helper and Upstream Release Monitoring - DevConf.CZ 2016](https://img.youtube.com/vi/Y-5Qiwaujd8/0.jpg)](https://www.youtube.com/watch?v=Y-5Qiwaujd8)\n",
    "bugtrack_url": null,
    "license": "GPLv2+",
    "summary": "This tool helps you rebase your package to the latest version.",
    "version": "0.28.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/rebase-helper/rebase-helper/issues",
        "Documentation": "https://rebase-helper.readthedocs.io",
        "Homepage": "https://github.com/rebase-helper/rebase-helper",
        "Source Code": "https://github.com/rebase-helper/rebase-helper"
    },
    "split_keywords": [
        "rebase",
        "packaging",
        "rpm",
        "spec"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cebae36d78f6e265bee2b6db2cf88aee7292f6de5956604af0cbcfc7fdc33e1f",
                "md5": "e375652872d91e1564e5dbb21b24f1e8",
                "sha256": "e163ca159be1139e8013ca21584f5839ed0d8097b274622b9face2126e381c56"
            },
            "downloads": -1,
            "filename": "rebasehelper-0.28.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e375652872d91e1564e5dbb21b24f1e8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 167426,
            "upload_time": "2023-10-26T11:39:02",
            "upload_time_iso_8601": "2023-10-26T11:39:02.193982Z",
            "url": "https://files.pythonhosted.org/packages/ce/ba/e36d78f6e265bee2b6db2cf88aee7292f6de5956604af0cbcfc7fdc33e1f/rebasehelper-0.28.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c6faf2b9df7fea5188a4ed50f76a2bf437e0c3efd4c7ce192c97db0e515b76ce",
                "md5": "fdabba9c959a7fc6566a5a6a75f672cb",
                "sha256": "d4c210093c8198f80858874e65624d17cc5131922929e7e4bc84912de042b73c"
            },
            "downloads": -1,
            "filename": "rebasehelper-0.28.1.tar.gz",
            "has_sig": false,
            "md5_digest": "fdabba9c959a7fc6566a5a6a75f672cb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 1901604,
            "upload_time": "2023-10-26T11:39:05",
            "upload_time_iso_8601": "2023-10-26T11:39:05.287557Z",
            "url": "https://files.pythonhosted.org/packages/c6/fa/f2b9df7fea5188a4ed50f76a2bf437e0c3efd4c7ce192c97db0e515b76ce/rebasehelper-0.28.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-26 11:39:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rebase-helper",
    "github_project": "rebase-helper",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "rebasehelper"
}
        
Elapsed time: 0.18224s