{ "info": { "author": "Kyle Altendorf", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "romp\n====\n\n|PyPI| |Pythons| |Azure| |codecov| |GitHub|\n\nRun on multiple platforms\n\nI use `pip-tools`_ but also want to keep my compiled requirements for multiple\nplatforms. Instead of sharing directories between machines or otherwise\nshuttling files around I chose to create ``romp`` which will let me submit\narbitrary work to `Azure Pipelines`_ to get access to multiple platforms.\nPersonally, I will use this primarily behind `boots`_.\n\nBelow is an example usage. It will run a single job under Linux with 64-bit\nCPython 3.6. The job will execute ``echo red > blue.txt`` and will collect\n``*.txt`` from the job and save it locally to ``artifacts.tar.gz``.\n\n.. code-block::\n\n $ venv/bin/romp --platform linux --interpreter cpython --version 3.6 --architecture x86_64 --command 'echo red > blue.txt' --artifact-paths '*.txt' --artifact artifacts.tar.gz\n Requesting build\n Waiting for build: https://dev.azure.com/altendky/f1722f91-62fe-4a15-8937-252c96b31292/_build/results?buildId=2938\n Handling artifact\n\nSince ``romp`` leverages `Azure Pipelines`_ to get access to all the platforms,\nserver-side setup is required. You will need an Azure account and to create\na pipeline (build) within that account using a ``romp`` repository (official\nor your own fork). Configure the pipeline to use\n``deployed_ci/azure/azure-pipelines-lock.yml``. It is configured such that\ncommits do not trigger builds. ``romp``'s own CI and testing is driven by\n``azure-pipelines.yml`` in the project root but this file can be ignored for\nregular use. Once the pipeline is setup you will need to `create a Personal\nAccess Token (PAT)`_ to use for authentication when running ``romp``. The PAT\nwill need the build read and execute scope enabled.\n\nFor local setup, the command line options can be set by environment variables.\nFor many options this will not make sense but for a few it will. Specifically\nconsider the follow options which will often be consistent for all calls.\n\n- ``ROMP_BUILD_REQUEST_URL``\n - ``'https://dev.azure.com/altendky/romp-on/_apis/build/builds?api-version=5.0'``\n- ``ROMP_DEFINITION_ID``\n - ``5``\n- ``ROMP_PERSONAL_ACCESS_TOKEN``\n - ``fp6al3jxta2zliz6rh5hr6ewd5nw2hsmasse2laiyoyg7otneqjq``\n- ``ROMP_USERNAME``\n - ``altendky``\n\n.. code-block::\n\n $ venv/bin/romp --help\n Usage: romp [OPTIONS]\n\n Options:\n --personal-access-token, --pat TEXT\n A personal access token (PAT) with rights to\n initiate builds\n ($ROMP_PERSONAL_ACCESS_TOKEN)\n --build-request-url TEXT The URL for submitting a build request\n ($ROMP_BUILD_REQUEST_URL) [default: https:/\n /dev.azure.com/altendky/romp/_apis/build/bui\n lds?api-version=5.0]\n --command TEXT The command to be run for each target\n ($ROMP_COMMAND) [default: python -c 'import\n sys; print(sys.version);\n print(sys.platform)']\n --username TEXT Username for build URL authentication\n ($ROMP_USERNAME) [default: altendky]\n --environments TEXT Targets to run on. Mostly use the matrix\n options instead. This may be removed.\n ($ROMP_ENVIRONMENTS)\n --check-period INTEGER The period used to poll the build for\n completion ($ROMP_CHECK_PERIOD) [default:\n 15]\n --source-branch TEXT The romp source branch to use for the build\n ($ROMP_SOURCE_BRANCH) [default: develop]\n --definition-id INTEGER The definition id of the build to be\n triggered ($ROMP_DEFINITION_ID) [default:\n 3]\n --archive-file FILENAME The archive to be uploaded to the build\n ($ROMP_ARCHIVE)\n --artifact FILENAME The path at which to save the resulting\n artifact ($ROMP_ARTIFACT_PATH)\n --artifact-paths TEXT Paths on remote system to build the artifact\n archive from. Wildcards are supported via\n bash. ($ROMP_ARTIFACT_PATHS)\n --platform [Linux|macOS|Windows]\n Platforms to matrix across\n ($ROMP_MATRIX_PLATFORMS) [default: Linux,\n macOS, Windows]\n --interpreter [CPython|PyPy] Interpreters to matrix across\n ($ROMP_MATRIX_INTERPRETERS) [default:\n CPython, PyPy]\n --version [2.7|3.4|3.5|3.6|3.7]\n Versions to matrix across\n ($ROMP_MATRIX_VERSIONS) [default: 2.7, 3.4,\n 3.5, 3.6, 3.7]\n --architecture [x86|x86_64] Architectures to matrix across\n ($ROMP_MATRIX_ARCHITECTURES) [default: x86,\n x86_64]\n --include \n Complete environments to include in the\n matrix ($ROMP_MATRIX_INCLUDES)\n --exclude \n Complete environments to exclude from the\n matrix ($ROMP_MATRIX_EXCLUDES)\n --archive-paths-root DIRECTORY Files in the uploaded archive will be stored\n with paths relative to this path.\n ($ROMP_ARCHIVE_PATHS_ROOT)\n --archive-path TEXT Files to include in the archive which will\n be extracted prior on the remote system\n prior to running the remote command.\n ($ROMP_ARCHIVE_PATHS)\n --verbose Increase logging verbosity by up to 2 levels\n ($ROMP_VERBOSITY)\n --help Show this message and exit.\n\n.. _pip-tools: https://github.com/jazzband/pip-tools\n.. _Azure Pipelines: https://azure.microsoft.com/en-us/services/devops/pipelines/\n.. _boots: https://github.com/altendky/boots\n.. _`create a Personal Access Token (PAT)`: https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/romp.svg\n :alt: PyPI version\n :target: https://pypi.org/project/romp/\n\n.. |Pythons| image:: https://img.shields.io/pypi/pyversions/romp.svg\n :alt: supported Python versions\n :target: https://pypi.org/project/romp/\n\n.. |Azure| image:: https://dev.azure.com/altendky/romp/_apis/build/status/altendky.romp?branchName=develop\n :alt: Azure build status\n :target: https://dev.azure.com/altendky/romp/_build\n\n.. |codecov| image:: https://codecov.io/gh/altendky/romp/branch/develop/graph/badge.svg\n :alt: codecov coverage status\n :target: https://codecov.io/gh/altendky/romp\n\n.. |GitHub| image:: https://img.shields.io/github/last-commit/altendky/romp/develop.svg\n :alt: source on GitHub\n :target: https://github.com/altendky/romp\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/altendky/romp", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "romp", "package_url": "https://pypi.org/project/romp/", "platform": "", "project_url": "https://pypi.org/project/romp/", "project_urls": { "Homepage": "https://github.com/altendky/romp" }, "release_url": "https://pypi.org/project/romp/2019.4.1/", "requires_dist": [ "click", "requests", "gitignoreio ; extra == 'dev'", "coverage ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "tox ; extra == 'dev'", "coverage ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "tox ; extra == 'test'" ], "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "summary": "Run on multiple platforms", "version": "2019.4.1" }, "last_serial": 5200136, "releases": { "2019.3.3": [ { "comment_text": "", "digests": { "md5": "c3c64b4fd1ad0ebc90ffa89624b09aad", "sha256": "afb20eda19c63d9bfa4bf1e6b74fc72064436ec78efb107c63f750deb8804e12" }, "downloads": -1, "filename": "romp-2019.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c3c64b4fd1ad0ebc90ffa89624b09aad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 6362, "upload_time": "2019-03-26T17:34:26", "url": "https://files.pythonhosted.org/packages/07/6c/4371de84597e439fbb59326bde3c940acc19cc0a00e7588fe029d0ce7433/romp-2019.3.3-py2.py3-none-any.whl" } ], "2019.3.3rc2": [ { "comment_text": "", "digests": { "md5": "6a626794fab0f419f4e52ab24ade0329", "sha256": "f12860e83a5cbe0afee7c28ed839604d34aca13394aa3096d1506d0c5593614f" }, "downloads": -1, "filename": "romp-2019.3.3rc2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6a626794fab0f419f4e52ab24ade0329", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 6402, "upload_time": "2019-03-26T17:30:22", "url": "https://files.pythonhosted.org/packages/5b/e6/5d3cdd4991421e162da5b694144f276e7485dd71e4b619579be26169e0c7/romp-2019.3.3rc2-py2.py3-none-any.whl" } ], "2019.4": [ { "comment_text": "", "digests": { "md5": "d2f3a671d843212bf7da6647bd0f665d", "sha256": "996cd3a23e49471b2a093b939c0f6adae4610e17d2dc0847db1a69416420a26e" }, "downloads": -1, "filename": "romp-2019.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d2f3a671d843212bf7da6647bd0f665d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 14718, "upload_time": "2019-04-25T18:04:46", "url": "https://files.pythonhosted.org/packages/90/6e/4099897910434ce96b3e330f239fa7cc97b5a055f0821c10e37832fe5756/romp-2019.4-py2.py3-none-any.whl" } ], "2019.4.1": [ { "comment_text": "", "digests": { "md5": "417cfc7e964317eba20fa765a3b3a9d5", "sha256": "1ca42eff5dac16df266e70e8108be05276bd072cbd290cfc6facf6b9c73a1801" }, "downloads": -1, "filename": "romp-2019.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "417cfc7e964317eba20fa765a3b3a9d5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 15378, "upload_time": "2019-04-28T17:10:44", "url": "https://files.pythonhosted.org/packages/70/c8/ca8d4231f218ebe982c59acf06de16c6e7c564d961477ebad9f9b1de76eb/romp-2019.4.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "417cfc7e964317eba20fa765a3b3a9d5", "sha256": "1ca42eff5dac16df266e70e8108be05276bd072cbd290cfc6facf6b9c73a1801" }, "downloads": -1, "filename": "romp-2019.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "417cfc7e964317eba20fa765a3b3a9d5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 15378, "upload_time": "2019-04-28T17:10:44", "url": "https://files.pythonhosted.org/packages/70/c8/ca8d4231f218ebe982c59acf06de16c6e7c564d961477ebad9f9b1de76eb/romp-2019.4.1-py2.py3-none-any.whl" } ] }