{ "info": { "author": "Caleb Hattingh", "author_email": "caleb.hattingh@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "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", "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Build Tools" ], "description": ".. image:: https://img.shields.io/pypi/pyversions/bumpymcbumpface.svg\n :target: https://pypi.python.org/pypi/bumpymcbumpface\n\n.. image:: https://img.shields.io/github/tag/cjrh/bumpymcbumpface.svg\n :target: https://img.shields.io/github/tag/cjrh/bumpymcbumpface.svg\n\n.. image:: https://img.shields.io/badge/install-pip%20install%20bumpymcbumpface-ff69b4.svg\n :target: https://img.shields.io/badge/install-pip%20install%20$bumpymcbumpface-ff69b4.svg\n\n.. image:: https://img.shields.io/pypi/v/bumpymcbumpface.svg\n :target: https://img.shields.io/pypi/v/bumpymcbumpface.svg\n\n.. image:: https://img.shields.io/badge/calver-YYYY.MM.MINOR-22bfda.svg\n :target: http://calver.org/\n\n\nBumpy McBumpface\n================\n\nTL,DR\n-----\n\nTo run:\n\n.. code-block:: shell\n\n /home/blah/myproject $ bumpymcbumpface --push-git --push-pypi\n\nTo get help:\n\n.. code-block:: shell\n\n /home/blah/myproject $ bumpymcbumpface -h\n usage: bumpymcbumpface.py [-h] [--debug] [--show] [--dry-run] [--push-git]\n [--push-pypi]\n [{major,minor,patch}]\n\n bumpymcbumpface - version-bump, tag, push, deploy\n\n positional arguments:\n {major,minor,patch}\n\n optional arguments:\n -h, --help show this help message and exit\n --debug Print debugging messages (default: False)\n --show Show the current version and exit (default: False)\n --dry-run Describe what would be done, and exit (default: False)\n --push-git Push the new commit and tag to github (default: False)\n --push-pypi Push the new built packages to PyPI (default: False)\n /home/blah/myproject $\n\nOverview\n--------\n\nWhen doing a new release, I got real tired of doing these things by hand:\n\n1. Update the version number of my package\n2. Commit that change to git\n3. Create a git tag with the new version\n4. Push the tag (and the new commit) to github\n5. Build new distributable packages: wheel (``.whl``) and source dist (``.tar.gz``)\n6. Upload the new packages to pypi\n\n*Bumpy McBumpface* will do these things, and will not ask questions.\n\nRequirements\n------------\n\nYou need to have these:\n\n- A file called ``VERSION`` in your project root, with MAJOR.MINOR.PATCH numbers\n- git\n- twine (set up `keyring `_\n so that twine won't ask you for login/password)\n- pip\n- wheel\n\nYou probably **SHOULD BE** in master branch branch when you run, but you\nonly need to be in a branch that has a valid remote.\n\nInstructions\n------------\n\nThere are a several options, but only two important ones. By default,\nit will NOT do these things automatically:\n\n- Push to github\n- Deploy to PyPI\n\nThis is just so that it defaults to \"safe\" by not affecting anything\nbeyond your computer during testing. To make it do these things too,\nrun it like this:\n\n.. code-block:: shell\n\n $ bumpymcbumpface --push-git --push-pypi\n\n*Bumpy McBumpface* assumes that your version number is in the following\nformat::\n\n MAJOR.MINOR.PATCH\n\nwhere each of the three fields is an integer. This also works for\ncalendar-based versioning. By default, the PATCH value will be increased\nby 1 if you run without arguments. These two are the same:\n\n.. code-block:: shell\n\n $ bumpymcbumpface --push-git --push-pypi\n $ bumpymcbumpface --push-git --push-pypi patch\n\nFor a MINOR bump, change the word *patch* to *minor*. Likewise for *major*.\n\nNow that you're using a file called ``VERSION`` in your project root to\nstore your version number, how do you get it into your ``setup.py``?\nJust read it in, like this:\n\n.. code-block:: python\n\n # setup.py\n from os import path\n from io import open # For universal packages + py27\n\n here = path.abspath(path.dirname(__file__))\n\n setup(\n name='bumpymcbumpface',\n version=open(path.join(here, 'VERSION')).readline().strip(),\n ...\n )\n\n\nGood luck!\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/cjrh/boatymcboatface", "keywords": "bump deploy version development", "license": "", "maintainer": "", "maintainer_email": "", "name": "bumpymcbumpface", "package_url": "https://pypi.org/project/bumpymcbumpface/", "platform": "", "project_url": "https://pypi.org/project/bumpymcbumpface/", "project_urls": { "Bug Reports": "https://github.com/cjrh/bumpymcbumpface", "Homepage": "https://github.com/cjrh/boatymcboatface", "Source": "https://github.com/cjrh/bumpymcbumpface" }, "release_url": "https://pypi.org/project/bumpymcbumpface/0.2.3/", "requires_dist": null, "requires_python": "", "summary": "Version-bump, tag, push, deploy to PyPI", "version": "0.2.3" }, "last_serial": 5212126, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "12364888fd633ff22e4dc80048034860", "sha256": "b81d452300092f8ff430ec38c8649c09a6e3e9a34785b50c65774197b382d129" }, "downloads": -1, "filename": "bumpymcbumpface-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12364888fd633ff22e4dc80048034860", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16237, "upload_time": "2019-04-30T11:25:45", "url": "https://files.pythonhosted.org/packages/8e/a5/c074742557cb7273606bb971e72282e32157b6e7d5c543f1b04ffe2a035c/bumpymcbumpface-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebe00aa110b49b3fa1cd01b8b04dac5d", "sha256": "b153e00d1d94e7af626d7a81baaead2e5b1aa3364bb3f52faf453db425223a3b" }, "downloads": -1, "filename": "bumpymcbumpface-0.0.5.tar.gz", "has_sig": false, "md5_digest": "ebe00aa110b49b3fa1cd01b8b04dac5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5893, "upload_time": "2019-04-30T11:26:19", "url": "https://files.pythonhosted.org/packages/2c/14/0dc51dda95e14ca5e50023ddd65ad29a72a4fed40698a212a94952e58fda/bumpymcbumpface-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "9e371179d5b0bf713b8308c8cbebff7e", "sha256": "5251afde44c22b6c1e224025989fb06a385f8db256e20ea8d0bc85a074901c08" }, "downloads": -1, "filename": "bumpymcbumpface-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9e371179d5b0bf713b8308c8cbebff7e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16247, "upload_time": "2019-04-30T11:28:51", "url": "https://files.pythonhosted.org/packages/08/46/9c406315e7256df148c99e0c694a0a6f6f0d295f90e83d00ca59e0c38cce/bumpymcbumpface-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84523d3c4e0226754b189930b885ea1e", "sha256": "214578ba74dbb3295d75d60890fe7228fd2c29aab2d16fc09aaae4a810986ccc" }, "downloads": -1, "filename": "bumpymcbumpface-0.0.6.tar.gz", "has_sig": false, "md5_digest": "84523d3c4e0226754b189930b885ea1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5890, "upload_time": "2019-04-30T11:28:57", "url": "https://files.pythonhosted.org/packages/da/fd/522e5b87551bbecf87a82174300b23f2ddeb371efadf04e8bdae5631be0c/bumpymcbumpface-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d34c007b40b2d826c49a34319b809164", "sha256": "e0b9b1c00bf576e198738992157e96a1bfd5bd408bdb3edd44c98bb8016e3cf2" }, "downloads": -1, "filename": "bumpymcbumpface-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d34c007b40b2d826c49a34319b809164", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16255, "upload_time": "2019-04-30T11:30:45", "url": "https://files.pythonhosted.org/packages/00/ce/1837af0deb792825bfe015abcf31ff1c2efa21fb11cf3780eec35d0b24c9/bumpymcbumpface-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7ed9cd43185bb0e293e1e54343376aa", "sha256": "9e64932fb69439279a20558bbcdb9ea5360051717c0e9a25e21ff83423ce9898" }, "downloads": -1, "filename": "bumpymcbumpface-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e7ed9cd43185bb0e293e1e54343376aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5920, "upload_time": "2019-04-30T11:30:50", "url": "https://files.pythonhosted.org/packages/66/ad/19fd797f66109d81aec3026d2cc9d54f18e471cd11434b849eb2709338c2/bumpymcbumpface-0.0.7.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "52d05c7860a25079c68457ebef8407fd", "sha256": "4c82373a40dd2da18d5ffe8cd626b105fae27af012bc67494074c4b70409ddde" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52d05c7860a25079c68457ebef8407fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16251, "upload_time": "2019-04-30T11:32:39", "url": "https://files.pythonhosted.org/packages/1c/93/8066e957640f60bd9cc48d0274db7837d4e5fa4f0b5e7c6cc6f73a9d895b/bumpymcbumpface-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcc7c2229c1531468c6d9f4daad7e1c3", "sha256": "fe3cd981a6e9c5c4edf703ca5f4150f8a432f79ac9149071a9eed6912ec744e7" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.0.tar.gz", "has_sig": false, "md5_digest": "dcc7c2229c1531468c6d9f4daad7e1c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5918, "upload_time": "2019-04-30T11:32:45", "url": "https://files.pythonhosted.org/packages/fa/bb/0f628e0b1265c05070a30870cb6ba1b86ec07b0f95ddfc0ad0e2fa292d63/bumpymcbumpface-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "59fe8ebdd030aa2808b4db0e97265892", "sha256": "be49fb725610f4bc8f2bd56d02eac030731df2f09c5e980de07fb1a1ecb1a0de" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "59fe8ebdd030aa2808b4db0e97265892", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16246, "upload_time": "2019-04-30T11:35:44", "url": "https://files.pythonhosted.org/packages/fb/18/f1e175dc4c794408c56ab4719e3e6509ff5a50af188fbaddddf80c9c8634/bumpymcbumpface-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be5867c4b59c8cb67a0123d857cb0a70", "sha256": "9ed378f1e96e2279476944df68d2d8fc4cfb01c289fe58b8ad8668d501075ec7" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.1.tar.gz", "has_sig": false, "md5_digest": "be5867c4b59c8cb67a0123d857cb0a70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5912, "upload_time": "2019-04-30T11:35:50", "url": "https://files.pythonhosted.org/packages/7c/41/da1c7092a275b02dc6ea1e81a92e25ee6d7898a594078d6202c97ea69451/bumpymcbumpface-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "83cef4e56b3c9057ecffd517e12b1da6", "sha256": "7a36d769b6d4a94b5cb7c90b0ebc8c5bf914b30c99e23bd483ae115e9ff0a3b7" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83cef4e56b3c9057ecffd517e12b1da6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16338, "upload_time": "2019-04-30T11:47:01", "url": "https://files.pythonhosted.org/packages/33/bc/8dad9fce5e6bc60870eed68befa3e5bd5e560365d1b992b54bac01002faf/bumpymcbumpface-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afd3cc3cd1f572dcaf39ed4007e4f378", "sha256": "9878f8612252b245c47b175cfacec73385d3716a7010d3ace53470f57a2a3619" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.2.tar.gz", "has_sig": false, "md5_digest": "afd3cc3cd1f572dcaf39ed4007e4f378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6019, "upload_time": "2019-04-30T11:47:07", "url": "https://files.pythonhosted.org/packages/ca/06/8c58fd256bd67635146a160e99940946c3eaca77ffeba9eeda009474d7a1/bumpymcbumpface-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "8d500191ac16c1320bb178b9d70ccaa7", "sha256": "c78b885b372de3f4bb15a7432bfde650db5211ffcafa7b7ca306aa9595e3e625" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d500191ac16c1320bb178b9d70ccaa7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16580, "upload_time": "2019-04-30T12:37:56", "url": "https://files.pythonhosted.org/packages/36/ba/9f8607de69831be9f20179d9285e317e76a91e692944101e387e553472cf/bumpymcbumpface-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b06d9f9d4f58998df9586a08e1460b40", "sha256": "fa50f2638ada35ac9d17fce4b36d26e2b68783f8549224e1f6caead8e8e4fe1c" }, "downloads": -1, "filename": "bumpymcbumpface-0.1.3.tar.gz", "has_sig": false, "md5_digest": "b06d9f9d4f58998df9586a08e1460b40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6258, "upload_time": "2019-04-30T12:37:58", "url": "https://files.pythonhosted.org/packages/1f/28/ef3abe57dc54dccc7aa6051e1325fa8f0feec38462513f6bd643a6517585/bumpymcbumpface-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d5b883a986af46016963b09ce7744509", "sha256": "fadaa635bb7c19087cad9253e1509fc2db2bb280a8a1d0ca5ff358da19371ba9" }, "downloads": -1, "filename": "bumpymcbumpface-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5b883a986af46016963b09ce7744509", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16773, "upload_time": "2019-04-30T12:49:37", "url": "https://files.pythonhosted.org/packages/81/d2/9c11390254f69af89d2d2f5c6184200afb3b950d1000dd9a5df39efaa2e6/bumpymcbumpface-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "848793d25b3ae5c1cc27ead81b5d5faa", "sha256": "a2ed1ad2c1e5bd4a1331a2e5daa5242d3ae69e5b949234b3cb63a14baa6c6d8b" }, "downloads": -1, "filename": "bumpymcbumpface-0.2.0.tar.gz", "has_sig": false, "md5_digest": "848793d25b3ae5c1cc27ead81b5d5faa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6441, "upload_time": "2019-04-30T12:49:39", "url": "https://files.pythonhosted.org/packages/3e/b2/4a8c39496f27aef8f6928f02b785381b7330f50fa09ce1b8bd58792cb990/bumpymcbumpface-0.2.0.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f9f3b5b118f9b0766bcf5b11c6d1e7e3", "sha256": "7be7db6280b58cedfbba00e6806a686bf26e253c68493dc90e5f8f8851835ee7" }, "downloads": -1, "filename": "bumpymcbumpface-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f9f3b5b118f9b0766bcf5b11c6d1e7e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16758, "upload_time": "2019-05-01T09:53:36", "url": "https://files.pythonhosted.org/packages/46/a8/e13e3e056b54a15c28c67184b0672fdddba17dfbae5f1ac10f7ab8c71b1f/bumpymcbumpface-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8846e5c3bd4f2612ac1949ac725249b8", "sha256": "bbe6c6245972a5fe1882aa106afd1c0d5d140b0aeebbe71c9ed8ee7bd0271667" }, "downloads": -1, "filename": "bumpymcbumpface-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8846e5c3bd4f2612ac1949ac725249b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6439, "upload_time": "2019-05-01T09:53:38", "url": "https://files.pythonhosted.org/packages/c7/fd/e340d8b2fba83f880cab9485b5369c4ec802de5d7c07c2a450741762d5bb/bumpymcbumpface-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f9f3b5b118f9b0766bcf5b11c6d1e7e3", "sha256": "7be7db6280b58cedfbba00e6806a686bf26e253c68493dc90e5f8f8851835ee7" }, "downloads": -1, "filename": "bumpymcbumpface-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f9f3b5b118f9b0766bcf5b11c6d1e7e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16758, "upload_time": "2019-05-01T09:53:36", "url": "https://files.pythonhosted.org/packages/46/a8/e13e3e056b54a15c28c67184b0672fdddba17dfbae5f1ac10f7ab8c71b1f/bumpymcbumpface-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8846e5c3bd4f2612ac1949ac725249b8", "sha256": "bbe6c6245972a5fe1882aa106afd1c0d5d140b0aeebbe71c9ed8ee7bd0271667" }, "downloads": -1, "filename": "bumpymcbumpface-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8846e5c3bd4f2612ac1949ac725249b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6439, "upload_time": "2019-05-01T09:53:38", "url": "https://files.pythonhosted.org/packages/c7/fd/e340d8b2fba83f880cab9485b5369c4ec802de5d7c07c2a450741762d5bb/bumpymcbumpface-0.2.3.tar.gz" } ] }