{ "info": { "author": "Frank Wiles", "author_email": "frank@revsys.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", "Topic :: Software Development", "Topic :: System :: Systems Administration" ], "description": "# vinnie the versioner\n\n## Overview\n\n`vinnie` is a small utility to handle [semantic versioning](https://semver.org/)\nusing only git tags. This can be done either manually or as part of CI.\n\n## Motivation\n\nThe motivation was building vinnie is somewhat small and trivial. Many existing\ntools force you to keep the \"current version\" in a file in your git repository\nwhich often means that during a CI build process you generate a commit that\nis simply incrementing the version number. By no means is this the end of the\nworld, but we realized we could fairly safely just use git tags as the storage\nmechanism for the current version.\n\n## Usage\n\nCalling `vinnie` on it's own prints the help.\n\n`vinnie version` prints the current version to stdout.\n\n`vinnie (patch|minor|major)` increments the version number of the given level, creates the tag, and pushes it.\n\n`vinnie next (patch|minor|major)` determines the _next_ version number of the\ngiven level and prints it to stdout.\n\n`vinnie replace /path/to/file` will replace the marker (default of `__VINNIE_VERSION__`)\nin this file with the current version.\n\n`vinnie show-config` dumps the current configuration vinnie is operating with,\nmostly for debugging.\n\n## Non semantic versioning\n\nVinnie also supports not using [semver](https://semver.org/) by just using an\nincrementing integer (v1, v2, ... v47) if you with. To do that you need to\nalways pass in the option `--semver=False` and then the only incrementing\ncommand to use is bump.\n\n```shell\n$ vinnie --semver=False bump\n```\n\n## Options\n\n`--repo` set the filesystem path to the root of the git checkout\n\n`--repo-url` set the URL on a supported provider for the repository\n\n`--ssh-key` path to the ssh key to use on disk\n\n`--github-token` Github API token\n\n`--gitlab-token` Gitlab API token\n\n`--prefix` allows you to set an optional text prefix to all version numbers for\nexample, `vinnie --prefix=v` would create version numbers such as `v0.0.1`.\n\n`--semver` sets whether or not you want to use semantic versioning or just an\nincrementing integer. The default is to use semver.\n\n`--current-version` in some situations it's nice to be able to just tell vinnie\nwhat the current version is, this option allows you to do that. In this case,\nvinnie ignores whatever versions actually exist as tags on the repository.\n\n## Environment Variables\n\nVinnie also listens for environment variables if you would prefer to use those\nthe following map to the given option\n\n- `VINNIE_REPO_PATH` sets `--repo`\n- `VINNIE_REPO_URL` sets `--repo-url`\n- `VINNIE_SSH_KEY` sets `--ssh-key`\n- `VINNIE_GITHUB_TOKEN` sets `--github-token`\n- `VINNIE_GITLAB_TOKEN` sets `--gitlab-token`\n- `VINNIE_PREFIX` sets `--prefix`\n- `VINNIE_SEMVER` sets `--semver`\n- `VINNIE_S3_ACCESS_KEY` sets `--s3-access-key`\n- `VINNIE_S3_SECRET_KEY` sets `--s3-secret-key`\n- `VINNIE_S3_URL` sets `--s3-url`\n- `VINNIE_CURRENT_VERSION` sets `--current-version`\n- `VINNIE_REMOTE` sets `--remote`\n- `VINNIE_MARKER` sets `--marker`\n\n## Examples\n\nLet's start off with a simple example:\n\n```shell\n$ cd my-git-repo\n$ vinnie version\n0.0.0\n$ vinnie patch\n0.0.1\n```\n\nOr maybe you want to use a prefix on with a project that already has been\nusing semver in a pattern of `vX.Y.Z` in tags, you would then just need to do:\n\n```shell\n$ cd my-git-repo\n$ vinnie --prefix=v version\nv1.2.3\n$ vinnie --prefix=v minor\nv1.3.0\n```\n\n## Similar Projects\n\nVinnie is very similar to these other fine projects:\n\n- [bumpversion](https://pypi.org/project/bumpversion/)\n- [semver (js)](https://www.npmjs.com/package/semver)\n- [semver (python)](https://pypi.org/project/semver/)\n\n## Roadmap / TODO\n\n- [ ] `vinnie validate` checks that tags haven't moved\n- [ ] Support storing the validation file in S3\n- [ ] Support storing the validation file in GCS\n- [ ] Support versioning without SSH or the repo with Github API Token\n- [ ] Support versioning without SSH or the repo with Gitlab API Token\n\n## License\n\nBSD Licensed\n\n## Author\n\nOriginally written by [Frank Wiles](https://frankwiles.com) \nand brought to you by [REVSYS](https://www.revsys.com).\n\n## Keep in touch!\n\nIf you have a question about this project, please open a GitHub issue. If you love us and want to keep track of our goings-on, here's where you can find us online:\n\n\n\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/revsys/vinnie/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "vinnie", "package_url": "https://pypi.org/project/vinnie/", "platform": "", "project_url": "https://pypi.org/project/vinnie/", "project_urls": { "Homepage": "https://github.com/revsys/vinnie/" }, "release_url": "https://pypi.org/project/vinnie/0.5.2/", "requires_dist": [ "Click (==7.0)", "semver (==2.8.1)", "GitPython (==2.1.11)" ], "requires_python": "", "summary": "", "version": "0.5.2" }, "last_serial": 5652390, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "5d2a7fa97252b1c3a9eab09f90f4d3c1", "sha256": "dfd4f01febc92925b31ca16cc209f627eb4633186b269de9a1225e2dbcf10ee8" }, "downloads": -1, "filename": "vinnie-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5d2a7fa97252b1c3a9eab09f90f4d3c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2373, "upload_time": "2019-08-07T21:32:31", "url": "https://files.pythonhosted.org/packages/e2/b0/10e1500c8e130e309156bca2a518d7cf9cfff3da9e744744bb10259fbebe/vinnie-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b83f4ec55571f495d7279e016cd3096", "sha256": "7ddda5c7745aadb796d124e5d48363488f22642fecd07a6b877b0de68d6a8712" }, "downloads": -1, "filename": "vinnie-0.5.0.tar.gz", "has_sig": false, "md5_digest": "5b83f4ec55571f495d7279e016cd3096", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3236, "upload_time": "2019-08-07T21:32:33", "url": "https://files.pythonhosted.org/packages/a4/19/1c4db0acae37fe13cc8b9a336df8ff2ef7ceeb9b6ac7fcafea5b075be268/vinnie-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "2cc0e286b7c93abfe0af29b5185c5421", "sha256": "eb2e547e7cdb1de7835af75caacfcdb8997660b595a610b0f635beabcf470ea3" }, "downloads": -1, "filename": "vinnie-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2cc0e286b7c93abfe0af29b5185c5421", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4545, "upload_time": "2019-08-07T21:34:37", "url": "https://files.pythonhosted.org/packages/e1/21/cd343824a1f944b915f1fe68bbf8bbb44140df837ddf41bd056b1723b591/vinnie-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6a3b82105e4aff3621c7d91f1057245", "sha256": "bb84832b6e9c21f788042546ee8557d766836c40e7b2d8b9c158bf055cb3a1a1" }, "downloads": -1, "filename": "vinnie-0.5.1.tar.gz", "has_sig": false, "md5_digest": "d6a3b82105e4aff3621c7d91f1057245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3827, "upload_time": "2019-08-07T21:34:38", "url": "https://files.pythonhosted.org/packages/54/11/0d5b72ddb5b00bc1767e04dafd37bbe41cf86ca1090fc8d8080a20819597/vinnie-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "4e105cddbb4bd757932b893a9499eb40", "sha256": "536335871e6201959a85b6f701be175ef0b26b16b92dc7860d7dcfe79f0868f4" }, "downloads": -1, "filename": "vinnie-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e105cddbb4bd757932b893a9499eb40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10906, "upload_time": "2019-08-08T21:50:16", "url": "https://files.pythonhosted.org/packages/08/e2/8d05f4e81f53a26ac1128a082267eab9417ac240ade962a2dcedf9e154d8/vinnie-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b947ce2b778fa781f89c212bf7926bb5", "sha256": "f4b84a98d5a054b459126193d19fcba98ba41664fc8645c5e78947238665ad92" }, "downloads": -1, "filename": "vinnie-0.5.2.tar.gz", "has_sig": false, "md5_digest": "b947ce2b778fa781f89c212bf7926bb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10856, "upload_time": "2019-08-08T21:50:18", "url": "https://files.pythonhosted.org/packages/ab/df/c051608bcb4a1a9ffcd522211a2a3875fc93d499a9c699e95b4cf898dfac/vinnie-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4e105cddbb4bd757932b893a9499eb40", "sha256": "536335871e6201959a85b6f701be175ef0b26b16b92dc7860d7dcfe79f0868f4" }, "downloads": -1, "filename": "vinnie-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e105cddbb4bd757932b893a9499eb40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10906, "upload_time": "2019-08-08T21:50:16", "url": "https://files.pythonhosted.org/packages/08/e2/8d05f4e81f53a26ac1128a082267eab9417ac240ade962a2dcedf9e154d8/vinnie-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b947ce2b778fa781f89c212bf7926bb5", "sha256": "f4b84a98d5a054b459126193d19fcba98ba41664fc8645c5e78947238665ad92" }, "downloads": -1, "filename": "vinnie-0.5.2.tar.gz", "has_sig": false, "md5_digest": "b947ce2b778fa781f89c212bf7926bb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10856, "upload_time": "2019-08-08T21:50:18", "url": "https://files.pythonhosted.org/packages/ab/df/c051608bcb4a1a9ffcd522211a2a3875fc93d499a9c699e95b4cf898dfac/vinnie-0.5.2.tar.gz" } ] }