jeeves-pr-stack


Namejeeves-pr-stack JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummaryManage GitHub Pull Request stacks.
upload_time2024-04-29 10:13:30
maintainerNone
docs_urlNone
authorAnatoly Scherbakov
requires_python<4.0,>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `jeeves-pr-stack`

`jeeves-pr-stack` is a plugin for [jeeves](https://jeeves.sh) that helps manage stacks of GitHub pull requests. It aims to simplify the code review process by organizing pull requests that depend on each other.

## Installation

```shell
poetry add --group dev jeeves-pr-stack
```

## Motivation

While pull requests are a powerful tool for code review, they tend to become larger and larger, and thus more difficult for the reviewer to tackle.

One possible way to resolve that is to split implementation of a feature into two or more pull requests. For instance,

* PR `#42` **Backend for the Super Feature** directed from `super-feature-backend` branch to `main` branch,
* and PR `#43` **Frontend for the Super Feature** directed from `super-feature-frontend` branch to `super-feature-backend` branch.

The PRs are written in such a way that the first of them can be independently merged to `main` and deployed without breaking the system. This makes the process of code review faster and easier, and allows to deploy more often.

Let's call such structures **PR Stacks**.

### Caveats

Managing PR Stacks manually can be tedious; for instance, every time when changing `#42` you need to rebase `#43`. It becomes particularly annoying when the length of the stack is more than 2.

`jeeves-pr-stack` comes to the rescue.

## Commands

### `j stack`

View the current PR Stack.

### `j stack push`

* Create a new PR in current branch if none exists, or use the one that is there,
* And set the base branch of this PR to point to another open PR in the repository, stacking one PR on top of another.

### `j stack pop`

* Fetch the bottom-most PR of current stack,
* Merge it into the repository main branch,
* Redirect the follow-up PR to point to the main branch so as to make it mergeable,
* And delete the branch of the PR that was merged.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "jeeves-pr-stack",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Anatoly Scherbakov",
    "author_email": "altaisoft@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/3d/64/2bb0f7789d3e2cec985cfa7fa0b4e531bd446dc77294db9c55d63609f3f5/jeeves_pr_stack-0.1.3.tar.gz",
    "platform": null,
    "description": "# `jeeves-pr-stack`\n\n`jeeves-pr-stack` is a plugin for [jeeves](https://jeeves.sh) that helps manage stacks of GitHub pull requests. It aims to simplify the code review process by organizing pull requests that depend on each other.\n\n## Installation\n\n```shell\npoetry add --group dev jeeves-pr-stack\n```\n\n## Motivation\n\nWhile pull requests are a powerful tool for code review, they tend to become larger and larger, and thus more difficult for the reviewer to tackle.\n\nOne possible way to resolve that is to split implementation of a feature into two or more pull requests. For instance,\n\n* PR `#42` **Backend for the Super Feature** directed from `super-feature-backend` branch to `main` branch,\n* and PR `#43` **Frontend for the Super Feature** directed from `super-feature-frontend` branch to `super-feature-backend` branch.\n\nThe PRs are written in such a way that the first of them can be independently merged to `main` and deployed without breaking the system. This makes the process of code review faster and easier, and allows to deploy more often.\n\nLet's call such structures **PR Stacks**.\n\n### Caveats\n\nManaging PR Stacks manually can be tedious; for instance, every time when changing `#42` you need to rebase `#43`. It becomes particularly annoying when the length of the stack is more than 2.\n\n`jeeves-pr-stack` comes to the rescue.\n\n## Commands\n\n### `j stack`\n\nView the current PR Stack.\n\n### `j stack push`\n\n* Create a new PR in current branch if none exists, or use the one that is there,\n* And set the base branch of this PR to point to another open PR in the repository, stacking one PR on top of another.\n\n### `j stack pop`\n\n* Fetch the bottom-most PR of current stack,\n* Merge it into the repository main branch,\n* Redirect the follow-up PR to point to the main branch so as to make it mergeable,\n* And delete the branch of the PR that was merged.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Manage GitHub Pull Request stacks.",
    "version": "0.1.3",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41c6a886c29ee26c1c47373bbbfb614e329a0b8175efcb735a260d7d75729492",
                "md5": "6a860e8463432c899914f81a734d4418",
                "sha256": "694337aafddcc5f086b5c93656826b7a6940bf6d88eef925f6f9506f404b9ce5"
            },
            "downloads": -1,
            "filename": "jeeves_pr_stack-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6a860e8463432c899914f81a734d4418",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 10031,
            "upload_time": "2024-04-29T10:13:29",
            "upload_time_iso_8601": "2024-04-29T10:13:29.013537Z",
            "url": "https://files.pythonhosted.org/packages/41/c6/a886c29ee26c1c47373bbbfb614e329a0b8175efcb735a260d7d75729492/jeeves_pr_stack-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d642bb0f7789d3e2cec985cfa7fa0b4e531bd446dc77294db9c55d63609f3f5",
                "md5": "068c97751ea0cb0f0be796767e9d7111",
                "sha256": "4d15a5abf756d2ccd8ef809db04a2b55472e829e3be050d816848cee506dd9ee"
            },
            "downloads": -1,
            "filename": "jeeves_pr_stack-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "068c97751ea0cb0f0be796767e9d7111",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 8395,
            "upload_time": "2024-04-29T10:13:30",
            "upload_time_iso_8601": "2024-04-29T10:13:30.646021Z",
            "url": "https://files.pythonhosted.org/packages/3d/64/2bb0f7789d3e2cec985cfa7fa0b4e531bd446dc77294db9c55d63609f3f5/jeeves_pr_stack-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-29 10:13:30",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "jeeves-pr-stack"
}
        
Elapsed time: 0.24584s