{ "info": { "author": "Sergey Arkhipov", "author_email": "nineseconds@yandex.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development", "Topic :: Software Development :: Version Control", "Topic :: Utilities" ], "description": "And Now for Something Completely Different!\n===========================================\n\n|PyPI| |Build Status| |Code Coverage|\n\n.. contents::\n :depth: 2\n :backlinks: none\n\nscd (something competely different) is a small tool with one\nintention: make your version bumping underoverengineered.\nIt takes slightly different approach than `bumpversion\n`_: it does not make commits or\ntags and do not updates version by command. It takes configuration file\nand adjust your version regarding this file.\n\nIt may seems a little bit complex, but it works really-really well if\nyou have a complex setup, where you need to manage versions not only in\nliteral format, but in different, complex ways in absolutely different\nfiles. Also, it can eliminate a huge amount of copypasting in your\n``.bumpversion.cfg``. Also, it works with regular expressions therefore\nit can eliminate design restrictions of bumpversion.\n\nPlease check `official documentation `_ for\ndetails. This README file is just a whirlwind tour.\n\n\nInstallation\n++++++++++++\n\nAs any Python package, you can install scd with pip or sources.\n\n.. code-block:: bash\n\n pip install scd[yaml,colors]\n\nor\n\n.. code-block:: bash\n\n git clone https://github.com/9seconds/scd\n cd scd\n python setup.py install\n\n\nConfiguration\n+++++++++++++\n\nHere is an example how can configuration file may looks like:\n\n.. code-block:: yaml\n\n version:\n number: 1.0.1\n scheme: semver\n\n search_patterns:\n full: \"{{ semver }}\"\n vfull: \"v{{ semver }}\"\n major_minor_block: \"\\\\d+\\\\.\\\\d+(?=\\\\s\\\\#\\\\sBUMPVERSION)\"\n\n replacement_patterns:\n full: \"{{ full }}\"\n major_minor: \"{{ major }}.{{ minor }}\"\n major_minor_p: \"{{ major }}.{{ minor }}{% if patch %}.{{ patch }}{% endif %}\"\n\n defaults:\n search: full\n replace: full\n\n files:\n setup.py:\n - search_raw: \"(?>=version\\\\s=\\\\s\\\\\\\"){{ full }}\"\n docs/conf.py:\n - default\n - search: vfull\n replace: major_minor_p\n - search: major_minor_block\n replace_raw: \"{{ next_major }}\"\n\nYes, YAML! But you can use JSON or TOML also.\n\nMustaches are `Jinja2 `_ templates (like in\n`Ansible `_, for example). Also, as you can\nsee, it is possible to have a list of replacements per file.\n\nAnd yes, versioning is done by schemes.\n\nYou can find a `thorough explanations\n`_ in docs.\n\n\nUsage\n+++++\n\nWell, you would not belive, but\n\n.. code-block:: bash\n\n scd\n\nor more verbose\n\n.. code-block:: bash\n\n scd -v\n >>> Use /home/sergey/dev/pvt/scd/.scd.yaml as config file\n >>> Parsed config as YAML\n >>> Version is 0.1.0.dev34+342f2c2\n >>> Start to process /home/sergey/dev/pvt/scd/setup.py\n >>> Modify 'version=\"0.0.1\",' to 'version=\"0.1.0.dev34+342f2c2\",'\n >>> Start to process /home/sergey/dev/pvt/scd/docs/source/conf.py\n >>> Modify \"version = '1.0'\" to \"0.1'\"\n >>> Modify \"release = '1.0.0b1'\" to \"0.1.0'\"\n >>> Start to process /home/sergey/dev/pvt/scd/scd/__init__.py\n >>> Modify '__version__ = \"0.1.0\"' to '0.1.0.dev34\"'\n\n\nWhy scd?\n++++++++\n\nBecause every version releases look the same.\n\n.. image:: https://img.youtube.com/vi/FGK8IC-bGnU/0.jpg\n :alt: John Cleese on Something Completely Different\n :width: 560\n :target: https://www.youtube.com/watch?v=FGK8IC-bGnU\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/scd.svg\n :target: https://pypi.python.org/pypi/scd\n\n.. |Build Status| image:: https://travis-ci.org/9seconds/scd.svg?branch=master\n :target: https://travis-ci.org/9seconds/scd\n\n.. |Code Coverage| image:: https://codecov.io/gh/9seconds/scd/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/9seconds/scd\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/9seconds/scd", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "scd", "package_url": "https://pypi.org/project/scd/", "platform": "", "project_url": "https://pypi.org/project/scd/", "project_urls": { "Homepage": "https://github.com/9seconds/scd" }, "release_url": "https://pypi.org/project/scd/1.2.3/", "requires_dist": [ "jinja2 (<3,>=2.6)", "jsonschema (>=2.5,<3)", "packaging (>=16,<17)", "semver (>=2,<3)", "six (>=1.10)", "colorama (<0.4,>=0.3); extra == 'colors'", "simplejson; extra == 'simplejson'", "toml (~=0.9.2); extra == 'toml'", "PyYAML (~=3.10); extra == 'yaml'" ], "requires_python": ">=2.7", "summary": "Something Completely different", "version": "1.2.3" }, "last_serial": 2641202, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9160a944704840f37a72a1332b35de64", "sha256": "0d1e54d48787d2a445ceec454083a4c5ecda24e1febd86fd4d14e63fa4298480" }, "downloads": -1, "filename": "scd-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9160a944704840f37a72a1332b35de64", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 11853, "upload_time": "2016-12-21T19:38:19", "url": "https://files.pythonhosted.org/packages/2b/5a/1290777b7bfdc841ff0962c1b201d122cc5dc3c0e6d86d37b96a1cfeac31/scd-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66ed4e83c1f10df9f9e2dce64bb81c20", "sha256": "3627a7fec335df0835db07529a36743d6b24197ced6f4a52fd7064f253d4d285" }, "downloads": -1, "filename": "scd-0.0.1.tar.gz", "has_sig": false, "md5_digest": "66ed4e83c1f10df9f9e2dce64bb81c20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 8431, "upload_time": "2016-12-21T19:38:21", "url": "https://files.pythonhosted.org/packages/4e/85/e44099a639e428a300524ad0cac4a8dd8c59bc1b1d3ea851b2eba90d8088/scd-0.0.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "340832a4cb8531e9b30a791ac7c619d4", "sha256": "51c4d48aaee338137c93988be0a1161537c63b152d4dcc6a10ddd3525c71645c" }, "downloads": -1, "filename": "scd-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "340832a4cb8531e9b30a791ac7c619d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22205, "upload_time": "2016-12-30T08:40:56", "url": "https://files.pythonhosted.org/packages/26/a5/11cd187453d8f332b44e843f9742a8c8f704fe58ac177cbadf7457213729/scd-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e508c6380e24948065b532d72e44103c", "sha256": "3acd0e21280ae40bccf10b36c2910fd1090cf7602d7ef81a1eab33879104ccf4" }, "downloads": -1, "filename": "scd-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e508c6380e24948065b532d72e44103c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18629, "upload_time": "2016-12-30T08:40:57", "url": "https://files.pythonhosted.org/packages/04/98/a056047c885b1d7cc3702a277839a85f6cfed32a24a4eb1f4a50cf601a01/scd-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "bf61aa0dd66bccec7a950de82265ab60", "sha256": "be1f7493bfdcb6aab5ecdc82498f045e9041e21353eb403951f8a72763601013" }, "downloads": -1, "filename": "scd-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf61aa0dd66bccec7a950de82265ab60", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22763, "upload_time": "2016-12-30T16:31:43", "url": "https://files.pythonhosted.org/packages/56/71/fbbda719396e10d96c82fbf6156b50d398123eeea0a68b9061b600a07f20/scd-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "993f3da78751bee267154e5c545b4c01", "sha256": "87d1934b04929f6c5c6b9e0d7941ed47b8faa5287b8698e991441a094627d45d" }, "downloads": -1, "filename": "scd-1.1.0.tar.gz", "has_sig": false, "md5_digest": "993f3da78751bee267154e5c545b4c01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17397, "upload_time": "2016-12-30T16:31:45", "url": "https://files.pythonhosted.org/packages/61/6e/763ed21fc9fe64b330ef1bc5381b0c7b422db55b564c11a39711e7101c59/scd-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ec5bf5f7c7fd41e6e80a14be43140d74", "sha256": "2b32772418e72338b02e8e3978f0e20bf6f7101a797a212522ff4025becccc74" }, "downloads": -1, "filename": "scd-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ec5bf5f7c7fd41e6e80a14be43140d74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23234, "upload_time": "2017-01-13T11:21:01", "url": "https://files.pythonhosted.org/packages/7b/48/e7123aa96d7234b290a9481b98e76186953788cecaefeb7b3f505542c49b/scd-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69a9b40a9fee599c27ba762b4381c02b", "sha256": "3771a9024b449c0a77299a70b994d68f7e1830604a3d5d250ad10ae2ddf32110" }, "downloads": -1, "filename": "scd-1.2.0.tar.gz", "has_sig": false, "md5_digest": "69a9b40a9fee599c27ba762b4381c02b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19575, "upload_time": "2017-01-13T11:21:02", "url": "https://files.pythonhosted.org/packages/36/71/97595143f042fdcd6726fbae1453fc14558063fbb8fdc2d6d74e33a56aee/scd-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "b748d612fc063dc3e42823f321662d2a", "sha256": "b42c98dd4c39578a8767ae53a7c2e8c1cbe00ea5e422eae1e6f1395837355720" }, "downloads": -1, "filename": "scd-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b748d612fc063dc3e42823f321662d2a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 23252, "upload_time": "2017-02-08T15:07:57", "url": "https://files.pythonhosted.org/packages/69/24/fe950966fa68b85b8da0811c92b396d722fb1200ac169e663fd92f643172/scd-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2388ff97cc8ecb57e678ddc84d51c43a", "sha256": "dc5ed25a152ae36962bea1fb0d3e74c98530f7aba61ebb29602472d9126eab49" }, "downloads": -1, "filename": "scd-1.2.1.tar.gz", "has_sig": false, "md5_digest": "2388ff97cc8ecb57e678ddc84d51c43a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 19605, "upload_time": "2017-02-08T15:07:58", "url": "https://files.pythonhosted.org/packages/32/f2/b62ff218e74bd88372b5041ff99db2298dcfab32c375084d2336fe0da5f7/scd-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "a13fc64d32cbc16f39c668c3423ab97e", "sha256": "8e4f9d08e038623637634bfff3017cc2a1d8a8c059f1ed7d5219a1ab629443e4" }, "downloads": -1, "filename": "scd-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a13fc64d32cbc16f39c668c3423ab97e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 23258, "upload_time": "2017-02-10T13:51:56", "url": "https://files.pythonhosted.org/packages/97/7a/725c619be91058af3cd258a79ba2507d2db3087ab20840ba02922c05e9bf/scd-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04c48331239d4aaef43f970034e32395", "sha256": "da0b3dd58601c072f06773c71ac3dd9966f1c21fa7066a020bbb00740cfc2cb0" }, "downloads": -1, "filename": "scd-1.2.2.tar.gz", "has_sig": false, "md5_digest": "04c48331239d4aaef43f970034e32395", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 19617, "upload_time": "2017-02-10T13:51:57", "url": "https://files.pythonhosted.org/packages/3f/5b/d2bbdc0891fc1034f846806fc59b653781b54cc150483f7e28d84d30fd4d/scd-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "dfa7d83d7c7668068b77dfb3fcd84c6f", "sha256": "19b4d09cc5a7f1bdd41bbf9bb812cbc7470e64089408fcc65f8589066516e324" }, "downloads": -1, "filename": "scd-1.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dfa7d83d7c7668068b77dfb3fcd84c6f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 23443, "upload_time": "2017-02-14T14:56:06", "url": "https://files.pythonhosted.org/packages/73/1c/d1ddc7321ac7fc8b5995255c7e4f98bb78521054bfd9ad1fd2c75968ef01/scd-1.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac890122fdbdab8ca14cf0ae7ae03f82", "sha256": "fe1e53bbf6105aa93f41a2883601513ae701e721d7bcd15c2e7c692c54266d4a" }, "downloads": -1, "filename": "scd-1.2.3.tar.gz", "has_sig": false, "md5_digest": "ac890122fdbdab8ca14cf0ae7ae03f82", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 19809, "upload_time": "2017-02-14T14:56:07", "url": "https://files.pythonhosted.org/packages/57/06/ffda92466710d72413cb82b161bf4c69109b7083a58fbe018e57e3aa5de1/scd-1.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dfa7d83d7c7668068b77dfb3fcd84c6f", "sha256": "19b4d09cc5a7f1bdd41bbf9bb812cbc7470e64089408fcc65f8589066516e324" }, "downloads": -1, "filename": "scd-1.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dfa7d83d7c7668068b77dfb3fcd84c6f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 23443, "upload_time": "2017-02-14T14:56:06", "url": "https://files.pythonhosted.org/packages/73/1c/d1ddc7321ac7fc8b5995255c7e4f98bb78521054bfd9ad1fd2c75968ef01/scd-1.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac890122fdbdab8ca14cf0ae7ae03f82", "sha256": "fe1e53bbf6105aa93f41a2883601513ae701e721d7bcd15c2e7c692c54266d4a" }, "downloads": -1, "filename": "scd-1.2.3.tar.gz", "has_sig": false, "md5_digest": "ac890122fdbdab8ca14cf0ae7ae03f82", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 19809, "upload_time": "2017-02-14T14:56:07", "url": "https://files.pythonhosted.org/packages/57/06/ffda92466710d72413cb82b161bf4c69109b7083a58fbe018e57e3aa5de1/scd-1.2.3.tar.gz" } ] }