silver-platter


Namesilver-platter JSON
Version 0.5.48 PyPI version JSON
download
home_pageNone
SummaryLarge scale VCS change management
upload_time2025-08-01 18:50:11
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords git bzr vcs github gitlab launchpad
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python bindings for Silver-Platter

Silver-Platter makes it possible to contribute automatable changes to source
code in a version control system
([codemods](https://github.com/jelmer/awesome-codemods)).

It automatically creates a local checkout of a remote repository,
makes user-specified changes, publishes those changes on the remote hosting
site and then creates a pull request.

In addition to that, it can also perform basic maintenance on branches
that have been proposed for merging - such as restarting them if they
have conflicts due to upstream changes.

This package contains Python bindings for silver platter.

## Usage

The core class is the ``Workspace`` context manager, which exists in two forms:

* ``silver_platter.workspace.Workspace`` (for generic projects)
* ``silver_platter.debian.Workspace`` (for Debian packages)

An example, adding a new entry to a changelog file in the ``dulwich`` Debian
package and creating a merge proposal with that change:

```python

from silver_platter.debian import Workspace
import subprocess

with Workspace.from_apt_package(package="dulwich") as ws:
    subprocess.check_call(['dch', 'some change'], cwd=ws.path)
    ws.commit()  # Behaves like debcommit
    ws.publish(mode='propose')
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "silver-platter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "git bzr vcs github gitlab launchpad",
    "author": null,
    "author_email": "Jelmer Vernooij <jelmer@jelmer.uk>",
    "download_url": "https://files.pythonhosted.org/packages/d7/05/130a76a0f816efc8160000dbf97cd2f349c7b09b4e71c8770856037b553c/silver_platter-0.5.48.tar.gz",
    "platform": null,
    "description": "# Python bindings for Silver-Platter\n\nSilver-Platter makes it possible to contribute automatable changes to source\ncode in a version control system\n([codemods](https://github.com/jelmer/awesome-codemods)).\n\nIt automatically creates a local checkout of a remote repository,\nmakes user-specified changes, publishes those changes on the remote hosting\nsite and then creates a pull request.\n\nIn addition to that, it can also perform basic maintenance on branches\nthat have been proposed for merging - such as restarting them if they\nhave conflicts due to upstream changes.\n\nThis package contains Python bindings for silver platter.\n\n## Usage\n\nThe core class is the ``Workspace`` context manager, which exists in two forms:\n\n* ``silver_platter.workspace.Workspace`` (for generic projects)\n* ``silver_platter.debian.Workspace`` (for Debian packages)\n\nAn example, adding a new entry to a changelog file in the ``dulwich`` Debian\npackage and creating a merge proposal with that change:\n\n```python\n\nfrom silver_platter.debian import Workspace\nimport subprocess\n\nwith Workspace.from_apt_package(package=\"dulwich\") as ws:\n    subprocess.check_call(['dch', 'some change'], cwd=ws.path)\n    ws.commit()  # Behaves like debcommit\n    ws.publish(mode='propose')\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Large scale VCS change management",
    "version": "0.5.48",
    "project_urls": {
        "Bug Tracker": "https://github.com/jelmer/silver-platter/issues",
        "GitHub": "https://github.com/jelmer/silver-platter",
        "Homepage": "https://jelmer.uk/code/silver-platter",
        "Repository": "https://github.com/jelmer/silver-platter"
    },
    "split_keywords": [
        "git",
        "bzr",
        "vcs",
        "github",
        "gitlab",
        "launchpad"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e8b70349fe289fc608055dd3dcb258e830dfd5e313eea2a960c4050642bbe882",
                "md5": "b373a11537f0e4a1c55a4295549d9cbd",
                "sha256": "257d734de3df97f2ccc4c2ae6fe971a4047d8ee8b942f258e4e1552e6cd39884"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b373a11537f0e4a1c55a4295549d9cbd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 2599405,
            "upload_time": "2025-08-01T18:49:44",
            "upload_time_iso_8601": "2025-08-01T18:49:44.226043Z",
            "url": "https://files.pythonhosted.org/packages/e8/b7/0349fe289fc608055dd3dcb258e830dfd5e313eea2a960c4050642bbe882/silver_platter-0.5.48-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "736f93db7440e2a31632cd999013314e561c960a9af6140fe129cf554d4c07cf",
                "md5": "1139e6e5eb784239aa97a6ee746f1e6b",
                "sha256": "a61c93ec3b6b0b8c6c0e1dddd2c376e2d6a5c00c10657354f961925d85abfecf"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp310-cp310-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1139e6e5eb784239aa97a6ee746f1e6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 4969660,
            "upload_time": "2025-08-01T18:49:46",
            "upload_time_iso_8601": "2025-08-01T18:49:46.983116Z",
            "url": "https://files.pythonhosted.org/packages/73/6f/93db7440e2a31632cd999013314e561c960a9af6140fe129cf554d4c07cf/silver_platter-0.5.48-cp310-cp310-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5fcad4b92a0997f010b549b5c643905efa79c54be7203ffc3caeef49e42be320",
                "md5": "7f87aebcd0828895306d5409131767f2",
                "sha256": "5c3526abf5de9be27065a173f8a2f49b53410841672d1504d8a6195cdb488059"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7f87aebcd0828895306d5409131767f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 2598669,
            "upload_time": "2025-08-01T18:49:49",
            "upload_time_iso_8601": "2025-08-01T18:49:49.167347Z",
            "url": "https://files.pythonhosted.org/packages/5f/ca/d4b92a0997f010b549b5c643905efa79c54be7203ffc3caeef49e42be320/silver_platter-0.5.48-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "858a2e02677530b0dbf165f79c517f40bb3480caab4be2533d4c8a5c3d694245",
                "md5": "7b72cad73fdd2790d431be9f5067a999",
                "sha256": "b955839923f0f937db5b7cdf148b2ccab8a7d87467859e3c07a7589aa6093189"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp311-cp311-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7b72cad73fdd2790d431be9f5067a999",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 4970391,
            "upload_time": "2025-08-01T18:49:50",
            "upload_time_iso_8601": "2025-08-01T18:49:50.969590Z",
            "url": "https://files.pythonhosted.org/packages/85/8a/2e02677530b0dbf165f79c517f40bb3480caab4be2533d4c8a5c3d694245/silver_platter-0.5.48-cp311-cp311-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b26a54b615b0d7b08b67a1c67a86159e854c56fb9f23f8ad9bdef678343c755c",
                "md5": "2b8fb724337cbfa9fe036f997fc1b389",
                "sha256": "529eed96bb8620a0ba8012ae4d74507ca2c103e678069d194ac0c42506a13c8d"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2b8fb724337cbfa9fe036f997fc1b389",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 2562170,
            "upload_time": "2025-08-01T18:49:52",
            "upload_time_iso_8601": "2025-08-01T18:49:52.699599Z",
            "url": "https://files.pythonhosted.org/packages/b2/6a/54b615b0d7b08b67a1c67a86159e854c56fb9f23f8ad9bdef678343c755c/silver_platter-0.5.48-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7a1382c7afd7ffc93495da3148f92f974dffe1b02723d84aa7b4458ef8dfac05",
                "md5": "a4f0368e4c908ce21407ecacc961256b",
                "sha256": "171a4f3c3460ba1aaca154d69a183c40be2684ecbd5a6126fedd09bc2688d3a7"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp312-cp312-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a4f0368e4c908ce21407ecacc961256b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 4975973,
            "upload_time": "2025-08-01T18:49:54",
            "upload_time_iso_8601": "2025-08-01T18:49:54.897914Z",
            "url": "https://files.pythonhosted.org/packages/7a/13/82c7afd7ffc93495da3148f92f974dffe1b02723d84aa7b4458ef8dfac05/silver_platter-0.5.48-cp312-cp312-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d4ede46d0ebd30e73ce2bb1b3e27f326be5ba38429916aac5198b719be9a3b06",
                "md5": "313f7ca73d79a0ad7559e96b9ee0367b",
                "sha256": "ec40ef6bb4f82af80b2892f0e3bef7bd21cd3871fa75c5e8963a56718bb7be9f"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "313f7ca73d79a0ad7559e96b9ee0367b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 2561796,
            "upload_time": "2025-08-01T18:49:56",
            "upload_time_iso_8601": "2025-08-01T18:49:56.788622Z",
            "url": "https://files.pythonhosted.org/packages/d4/ed/e46d0ebd30e73ce2bb1b3e27f326be5ba38429916aac5198b719be9a3b06/silver_platter-0.5.48-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f93063061903ce70fb8ab9e8dfc3bdc337a7ef89b5df6b8838667fbf3ff89cdd",
                "md5": "e9e1217df583257b23c58347bb0ca625",
                "sha256": "f23d1764326afc94b8482041f459bfde8e924e4f9d80cfcfef01b416b1967921"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp313-cp313-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e9e1217df583257b23c58347bb0ca625",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 4975351,
            "upload_time": "2025-08-01T18:49:58",
            "upload_time_iso_8601": "2025-08-01T18:49:58.880472Z",
            "url": "https://files.pythonhosted.org/packages/f9/30/63061903ce70fb8ab9e8dfc3bdc337a7ef89b5df6b8838667fbf3ff89cdd/silver_platter-0.5.48-cp313-cp313-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a10861d06448c898c37ef74cf18f3174f796ba7f9b70fc1e95c12e0e06771e01",
                "md5": "5604a0ba486d3396dd95dd38a75a2ec3",
                "sha256": "6524f5ecb81f72376424ea8f110c3178cae166ffd124def7dad6bf5b6e71e26e"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp314-cp314-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5604a0ba486d3396dd95dd38a75a2ec3",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 2589051,
            "upload_time": "2025-08-01T18:50:00",
            "upload_time_iso_8601": "2025-08-01T18:50:00.974421Z",
            "url": "https://files.pythonhosted.org/packages/a1/08/61d06448c898c37ef74cf18f3174f796ba7f9b70fc1e95c12e0e06771e01/silver_platter-0.5.48-cp314-cp314-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5061d38790e8578862b34fe87730ddfdb933e75667b849183c5aa356afcaaed0",
                "md5": "4c04750891cd20954353e8d1be4f9af4",
                "sha256": "08f685a1cdc461ac4ef7ce23ed09f5aaa8d222fa43bd4f7f3b7b482161066d3f"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp314-cp314-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4c04750891cd20954353e8d1be4f9af4",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 4975140,
            "upload_time": "2025-08-01T18:50:03",
            "upload_time_iso_8601": "2025-08-01T18:50:03.134004Z",
            "url": "https://files.pythonhosted.org/packages/50/61/d38790e8578862b34fe87730ddfdb933e75667b849183c5aa356afcaaed0/silver_platter-0.5.48-cp314-cp314-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f52ac00cbae6e4038d0eaef21c871a73ff62524949b2799203b6e8f95ce0fa32",
                "md5": "f5626cfc539fbe7b59fe7bb8cf87572a",
                "sha256": "b9a15ed5843bcd5305baa7b4948df438a2947a74b70f443a873eaa4b28c250fc"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp314-cp314t-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f5626cfc539fbe7b59fe7bb8cf87572a",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 2583209,
            "upload_time": "2025-08-01T18:50:05",
            "upload_time_iso_8601": "2025-08-01T18:50:05.188846Z",
            "url": "https://files.pythonhosted.org/packages/f5/2a/c00cbae6e4038d0eaef21c871a73ff62524949b2799203b6e8f95ce0fa32/silver_platter-0.5.48-cp314-cp314t-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "916b0d482827f2f418a47945b729a87e20f2ec057845306708f3021e87f052b3",
                "md5": "0e4bd3a98184b7628cbf08917f0853b7",
                "sha256": "a92449750be8c45e6e8ed39161ca8dcb8fcfb7c6c1efdb4c1d3c68e22448c5aa"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp314-cp314t-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0e4bd3a98184b7628cbf08917f0853b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 4971371,
            "upload_time": "2025-08-01T18:50:07",
            "upload_time_iso_8601": "2025-08-01T18:50:07.018595Z",
            "url": "https://files.pythonhosted.org/packages/91/6b/0d482827f2f418a47945b729a87e20f2ec057845306708f3021e87f052b3/silver_platter-0.5.48-cp314-cp314t-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "41fe31f329b4cfe1c38f2400374e675cc12bd7cfdf75aadc5938cb498f2db408",
                "md5": "5573a68e2df7b71ace000a2c3865d85b",
                "sha256": "ef829863d9ad60801143dd2221554bb0c33bb212f121c975b472d11d10d081c2"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5573a68e2df7b71ace000a2c3865d85b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 2600578,
            "upload_time": "2025-08-01T18:50:08",
            "upload_time_iso_8601": "2025-08-01T18:50:08.744007Z",
            "url": "https://files.pythonhosted.org/packages/41/fe/31f329b4cfe1c38f2400374e675cc12bd7cfdf75aadc5938cb498f2db408/silver_platter-0.5.48-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "53cb636aa974f21c8f7f826c5c94ac97ded08d41f243621bf624d898eb22d668",
                "md5": "718ef84631fa33701b4dae7dde2392cb",
                "sha256": "7f043de982a2886d36741c32353c5a053ce2779b1e45c9e826689aff95d12c2a"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48-cp39-cp39-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "718ef84631fa33701b4dae7dde2392cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 4971487,
            "upload_time": "2025-08-01T18:50:10",
            "upload_time_iso_8601": "2025-08-01T18:50:10.396127Z",
            "url": "https://files.pythonhosted.org/packages/53/cb/636aa974f21c8f7f826c5c94ac97ded08d41f243621bf624d898eb22d668/silver_platter-0.5.48-cp39-cp39-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d705130a76a0f816efc8160000dbf97cd2f349c7b09b4e71c8770856037b553c",
                "md5": "c1c5b93125fee555c55440b18f28d159",
                "sha256": "94d8d2b152376a3605b615a3dc0060507de5c2e7830796ad1e975ec56e221441"
            },
            "downloads": -1,
            "filename": "silver_platter-0.5.48.tar.gz",
            "has_sig": false,
            "md5_digest": "c1c5b93125fee555c55440b18f28d159",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 15352,
            "upload_time": "2025-08-01T18:50:11",
            "upload_time_iso_8601": "2025-08-01T18:50:11.793646Z",
            "url": "https://files.pythonhosted.org/packages/d7/05/130a76a0f816efc8160000dbf97cd2f349c7b09b4e71c8770856037b553c/silver_platter-0.5.48.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-01 18:50:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jelmer",
    "github_project": "silver-platter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "silver-platter"
}
        
Elapsed time: 0.95091s