{ "info": { "author": "J C Lawrence", "author_email": "claw@kanga.nu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Topic :: Utilities" ], "description": "Development on pyver has ceased. versioneer accomplishes what I'd \nintended with pyver and so much more! Go use versioneer instead!\n\npyver\n=====\n\nAutomatic/hands-free PEP 440 versioning of Python tools and modules that\nuse Git as a development SCM.\n\npyver provides a simple way to provide consistent and auditable\nversioning of Python tools and packages, throughout their development\nlifecycle, without any overt developer attention after initial adoption.\nThis includes installations from egg packages, and both direct installs\nand \"develop\" installs using setuptools and setup.py.\n\nYep, accurate versioning even for ``develop`` installs.\n\nImplementation\n==============\n\nApply an annotated tag of the form #.# to your git repository:\n\n::\n\n git tag -a 1.0 -m \"Initial version\"\n\nEdit your setup.py as follows, eg for \"my\\_package\":\n\n::\n\n from setuptools import setup, find_packages\n import pyver\n\n __version__, __version_info__ = pyver.get_version (pkg = \"my_package\")\n\n setup (name = \"my_package\",\n version = __version__,\n description = \"Something that does something...\",\n ...etc.\n\nBy default pyver generates a *local version identifier* per PEP 440:\n\n::\n\n major.minor.patch+commit_id[.dirty]\n\nIf you need a PEP 440 compliant *public version identifier* (eg for\nPyPI), then set public to True in the call to get\\_version():\n\n::\n\n from setuptools import setup, find_packages\n import pyver\n\n __version__, __version_info__ = pyver.get_version (pkg = \"my_package\", public = True)\n\n setup (name = \"my_package\",\n version = __version__,\n description = \"Something that does something...\",\n ...etc.\n\nAnd that will produce *public version identifiers*:\n\n::\n\n major.minor.patch[.dev1]\n\nUnfortunately the git commit fingerprint can't be expressed in the\npatch-level for public versions per PEP 440, and so that has to be\ndropped. See PEP 440 for details:\nhttp://legacy.python.org/dev/peps/pep-0440/\n\nNext, add the following two lines to the **init**.py at the root of your\npackage:\n\n::\n\n import pyver\n __version__, __version_info__ = pyver.get_version (pkg = __name__)\n\nAnd that's it. Done!\n\nUsage\n=====\n\nNow when you install your package it will be versioning using the tag\nfor the major and minor number, and the number of commits since the tag\nfor the patch (plus the fingerprint and dirty state of the last commit\nfor the patch level if using the default *local version identifiers*).\nAnd, if you installed from a tree with uncommitted changes, or perhaps\nare using a \"develop\" install with uncommitted changes, then the\npatchlevel will have a \"-dirty\" suffix.\n\nOf course pyver is versioned with pyver:\n\n::\n\n $ python\n Python 2.7.6 (default, Mar 22 2014, 22:59:56)\n [GCC 4.8.2] on linux2\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n >>> import pyver\n >>> pyver.__version__\n '0.1.1+gc80d6f1'\n >>> pyver.__version_info__\n ('0', '1', '1+gc80d6f1')\n\nBut if I touch a file in the repository (such as this README I'm editing\nnow), then the version will change:\n\n::\n\n $ python\n Python 2.7.6 (default, Mar 22 2014, 22:59:56)\n [GCC 4.8.2] on linux2\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n >>> import pyver\n >>> pyver.__version__\n '0.1.3+gc1a0f15.dirty'\n >>> pyver.__version_info__\n ('0', '1', '3+gc1a0f15', 'dirty')\n\nLikewise for PEP 440 public versions if public is passed as true (as it\nis now for pyver (a recent change)):\n\n::\n\n $ python\n Python 2.7.6 (default, Mar 22 2014, 22:59:56)\n [GCC 4.8.2] on linux2\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n >>> import pyver\n >>> pyver.__version__\n '0.1.1'\n >>> pyver.__version_info__\n ('0', '1', '1')\n\nand while we can't capture the git commit fingerprint in a public\nversion per PEP 440, the dirty state is still caught as \"dev1\" in a\ndirty repository:\n\n::\n\n $ python\n Python 2.7.6 (default, Mar 22 2014, 22:59:56)\n [GCC 4.8.2] on linux2\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n >>> import pyver\n >>> pyver.__version__\n '0.1.3.dev1'\n >>> pyver.__version_info__\n ('0', '1', '3', 'dev1')\n\nManaging versions\n=================\n\nThe intent and expectation is that the major and minor version values\nwill be managed by the business (generally Product). As such the minor\nand major version numbers are managed by the annotated tag.\n\nThe patchlevel however is the developer's world. The developer does work\nand the patchlevel automagically moves forward in a clear and\ndocumentary way that can be audited and traced back to a single unique\npoint in the Git tree without the developer doing anything.\n\nAnd that's the key: the default is hands-free and provably correct and\nauditable, and the rare/special business case is the only change that\nrequires explicit action.", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/clearclaw/pyver/tarball/1.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/clearclaw/pyver", "keywords": "version semver git", "license": "LGPL v3", "maintainer": null, "maintainer_email": null, "name": "pyver", "package_url": "https://pypi.org/project/pyver/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyver/", "project_urls": { "Download": "https://github.com/clearclaw/pyver/tarball/1.0", "Homepage": "https://github.com/clearclaw/pyver" }, "release_url": "https://pypi.org/project/pyver/1.0.38/", "requires_dist": null, "requires_python": null, "summary": "Git-based versioning for Python tools and modules.", "version": "1.0.38" }, "last_serial": 1670891, "releases": { "1.0.17": [ { "comment_text": "", "digests": { "md5": "2efed5084ec1cd3c2a41932e7d1bb137", "sha256": "79e099fe23961f3024dd63ea3b16b47b5385344ccbb07cece8066ab5d93a45a6" }, "downloads": -1, "filename": "pyver-1.0.17.tar.gz", "has_sig": false, "md5_digest": "2efed5084ec1cd3c2a41932e7d1bb137", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15897, "upload_time": "2014-10-15T17:23:46", "url": "https://files.pythonhosted.org/packages/bc/d2/a5b251f371bd06d7905b31a2cb12718fa385b260c7d464b03c94c28a48b1/pyver-1.0.17.tar.gz" } ], "1.0.18": [ { "comment_text": "", "digests": { "md5": "54abfd2125ff198a2ee62b89fad308de", "sha256": "658467028f268d76aff7739f178e57d8ff43e520900bd77d4526ab514c32f962" }, "downloads": -1, "filename": "pyver-1.0.18.tar.gz", "has_sig": false, "md5_digest": "54abfd2125ff198a2ee62b89fad308de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16665, "upload_time": "2014-10-15T19:10:34", "url": "https://files.pythonhosted.org/packages/e3/c4/255dc5ce8ec5e03e5c8d01c274e4d6ea121fd7a0f2cd2768560505cacdce/pyver-1.0.18.tar.gz" } ], "1.0.19": [ { "comment_text": "", "digests": { "md5": "911204e2fc3dfd9f31ebaec558d0c3a1", "sha256": "9369a6c61261e2da29b5180865eedd5279a634c65acf77bb57fd4d91179414d7" }, "downloads": -1, "filename": "pyver-1.0.19.tar.gz", "has_sig": false, "md5_digest": "911204e2fc3dfd9f31ebaec558d0c3a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16865, "upload_time": "2015-07-03T00:16:37", "url": "https://files.pythonhosted.org/packages/11/cf/2982115f9ae67a7b696f3cda9e861d458773523f91f50b3c77d0114b5868/pyver-1.0.19.tar.gz" } ], "1.0.21": [ { "comment_text": "", "digests": { "md5": "b748e23f7c02c9d1fa6d1f6fe110079d", "sha256": "6d2de8b3e383805d6066675d471260ce734cfb6b84082d46b136a57a334ad27b" }, "downloads": -1, "filename": "pyver-1.0.21.tar.gz", "has_sig": false, "md5_digest": "b748e23f7c02c9d1fa6d1f6fe110079d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16867, "upload_time": "2015-07-08T04:27:28", "url": "https://files.pythonhosted.org/packages/c1/16/7e87ea849dd0987ca4bcaea91804d68cdd121a5f677ba86dfc56210e245c/pyver-1.0.21.tar.gz" } ], "1.0.22": [ { "comment_text": "", "digests": { "md5": "84a7caf80796cc164a157c2ece8a145c", "sha256": "3719cd3586f0b0108b46d8e1a504fc374ae7b0ee6eac98a2dc3d296f6547bf4d" }, "downloads": -1, "filename": "pyver-1.0.22.tar.gz", "has_sig": false, "md5_digest": "84a7caf80796cc164a157c2ece8a145c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16812, "upload_time": "2015-07-08T04:46:32", "url": "https://files.pythonhosted.org/packages/3e/c7/4734fc28e7f560a785dfa9e0836b3583d463072dd1d3ebd709076706deee/pyver-1.0.22.tar.gz" } ], "1.0.25": [ { "comment_text": "", "digests": { "md5": "ff4f76495be9409df656b3537287ab76", "sha256": "6a3024b33ef5a159430143a4e725cbc93f393d2cf1602e344881deb58f59426c" }, "downloads": -1, "filename": "pyver-1.0.25.tar.gz", "has_sig": false, "md5_digest": "ff4f76495be9409df656b3537287ab76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16798, "upload_time": "2015-07-08T05:05:15", "url": "https://files.pythonhosted.org/packages/18/b6/b54e9f65ca8423764a485a4668aef021bdb7554542f589218ad57f252f70/pyver-1.0.25.tar.gz" } ], "1.0.26": [ { "comment_text": "", "digests": { "md5": "2b754cbdaa02f3b0062e5e4ac666280d", "sha256": "9588fe51ca62bf49ee5fff8160f701b236e989ed2bab8cb7c286070d11eb990d" }, "downloads": -1, "filename": "pyver-1.0.26.tar.gz", "has_sig": false, "md5_digest": "2b754cbdaa02f3b0062e5e4ac666280d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16814, "upload_time": "2015-07-08T05:07:17", "url": "https://files.pythonhosted.org/packages/20/a4/fe7b2cb5c53b6fb6ea75276621c0116d1af15600396567dff4623efbe82e/pyver-1.0.26.tar.gz" } ], "1.0.27": [ { "comment_text": "", "digests": { "md5": "cd12059cde57d997f058bb2925d760a2", "sha256": "322b2f0b315abacf0fb3995e292a316ab3b289223581f95c0fb7d3944fbbc09f" }, "downloads": -1, "filename": "pyver-1.0.27.tar.gz", "has_sig": false, "md5_digest": "cd12059cde57d997f058bb2925d760a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16627, "upload_time": "2015-07-08T05:13:45", "url": "https://files.pythonhosted.org/packages/a9/88/1f808aaa12d3e5d4277f41eeacbdf230d4c79bed020d950ee30229c01873/pyver-1.0.27.tar.gz" } ], "1.0.29": [ { "comment_text": "", "digests": { "md5": "a0785cb9b115dae64572b3aeda8d5c75", "sha256": "e87cfd03fa41921524bf227f5d14a12a81dbd6f803c42626b422c958462dc366" }, "downloads": -1, "filename": "pyver-1.0.29.tar.gz", "has_sig": false, "md5_digest": "a0785cb9b115dae64572b3aeda8d5c75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16723, "upload_time": "2015-07-20T05:46:48", "url": "https://files.pythonhosted.org/packages/79/c5/b08ea5c52eab78b6bda807eac0e96e30f28099ae9f4bf88da182c0026afb/pyver-1.0.29.tar.gz" } ], "1.0.30": [ { "comment_text": "", "digests": { "md5": "45b5f293a55af9737b1ae44ea25c5f4a", "sha256": "8b3284768897c5fa9d7294a3f99279b265e66d5916a113769967be8b4bdf1f35" }, "downloads": -1, "filename": "pyver-1.0.30.tar.gz", "has_sig": false, "md5_digest": "45b5f293a55af9737b1ae44ea25c5f4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16701, "upload_time": "2015-07-20T06:10:59", "url": "https://files.pythonhosted.org/packages/ac/47/9de6523b6803af50c80c490f49df2f6f9ab88e3a6b0b6939851c17693f3a/pyver-1.0.30.tar.gz" } ], "1.0.31": [ { "comment_text": "", "digests": { "md5": "ee8c87241d3b8b75368a979ed0e529b4", "sha256": "cc220315a68a9135794a84098c3d6f983063208d5d4140616bbead593e9b8bcd" }, "downloads": -1, "filename": "pyver-1.0.31.tar.gz", "has_sig": false, "md5_digest": "ee8c87241d3b8b75368a979ed0e529b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16701, "upload_time": "2015-07-20T06:20:05", "url": "https://files.pythonhosted.org/packages/2a/5b/07051210508818ed13140765c1f907faea8d0c56e46227ca342b8374bc59/pyver-1.0.31.tar.gz" } ], "1.0.32": [ { "comment_text": "", "digests": { "md5": "f5dd90502cf26ccdc4ac5e7c3e48db74", "sha256": "f8ee9c814e3d83ae4994b0afb6ddab5a3e50e77a0741a42f3463c3979aefceca" }, "downloads": -1, "filename": "pyver-1.0.32.tar.gz", "has_sig": false, "md5_digest": "f5dd90502cf26ccdc4ac5e7c3e48db74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16642, "upload_time": "2015-08-02T03:29:55", "url": "https://files.pythonhosted.org/packages/d4/72/aa98fb4cb42b585dd35942c606bdd76744779d5a95f5e4ce1fb3a8444ccf/pyver-1.0.32.tar.gz" } ], "1.0.33": [ { "comment_text": "", "digests": { "md5": "79bdc481166f93fe1ad8f396981b111d", "sha256": "b66f7d628e939c25775b1508e960a7abcbcf1d524515b291d5919e66e1f01219" }, "downloads": -1, "filename": "pyver-1.0.33.tar.gz", "has_sig": false, "md5_digest": "79bdc481166f93fe1ad8f396981b111d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16647, "upload_time": "2015-08-02T03:57:34", "url": "https://files.pythonhosted.org/packages/6b/a9/f166a2dcec9ca2b845e40c3a8fb9b96ce69e81c1a20c1a1d04933a1a6938/pyver-1.0.33.tar.gz" } ], "1.0.34": [ { "comment_text": "", "digests": { "md5": "6cd4f88d67b3ff077e26a08f1ed11e4e", "sha256": "7c868bce407c96dbfc41f9130e08882bbc04053ff96f9c245c2dcb706dec4d76" }, "downloads": -1, "filename": "pyver-1.0.34.tar.gz", "has_sig": false, "md5_digest": "6cd4f88d67b3ff077e26a08f1ed11e4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7024, "upload_time": "2015-08-02T05:23:01", "url": "https://files.pythonhosted.org/packages/f9/9a/304edc104ad4c26b97077f90b3fbc57fd77b15617ce5181b9743e432a9d7/pyver-1.0.34.tar.gz" } ], "1.0.36": [ { "comment_text": "", "digests": { "md5": "cff8324686834985484d2a789fbf734e", "sha256": "782996928bb89a55cddccb95b0fb868ec96d91ccaf03cb1b8a2dfaf4bffe905a" }, "downloads": -1, "filename": "pyver-1.0.36.tar.gz", "has_sig": false, "md5_digest": "cff8324686834985484d2a789fbf734e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7305, "upload_time": "2015-08-07T01:17:33", "url": "https://files.pythonhosted.org/packages/a4/5d/021c886f0c16c6c2a6015cf3c64adcf263578e96afe6ec7fc49df841b60a/pyver-1.0.36.tar.gz" } ], "1.0.38": [ { "comment_text": "", "digests": { "md5": "f2587a1de50b7822eb35d9bb3af21c0b", "sha256": "0b8117a47f05c4f2889f1a4c46d7bbc27e205391402fc8b02784ef3c3b9923c9" }, "downloads": -1, "filename": "pyver-1.0.38.tar.gz", "has_sig": false, "md5_digest": "f2587a1de50b7822eb35d9bb3af21c0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7180, "upload_time": "2015-08-10T05:37:14", "url": "https://files.pythonhosted.org/packages/56/8f/e2d4982209a602257c03bfc08dfb1c1083b3c90e21c4d3b03eabc2f83669/pyver-1.0.38.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f2587a1de50b7822eb35d9bb3af21c0b", "sha256": "0b8117a47f05c4f2889f1a4c46d7bbc27e205391402fc8b02784ef3c3b9923c9" }, "downloads": -1, "filename": "pyver-1.0.38.tar.gz", "has_sig": false, "md5_digest": "f2587a1de50b7822eb35d9bb3af21c0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7180, "upload_time": "2015-08-10T05:37:14", "url": "https://files.pythonhosted.org/packages/56/8f/e2d4982209a602257c03bfc08dfb1c1083b3c90e21c4d3b03eabc2f83669/pyver-1.0.38.tar.gz" } ] }