{ "info": { "author": "William Minchin", "author_email": "w_minchin@hotmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Minchin.Releaser\n================\n\nTools to make releasing Python packages easier.\n\n*Minchin dot Releaser* in currently set up as an\n`invoke `_ task. It is designed to provide a single\ncommand to make and publish a release of your Python package. An extra\nconfiguration file is an one-time set up requirement to be able to make use of\nthis.\n\nOnce set up, *Minchin dot Releaser*, when run, will:\n\n- check the configuration\n- confirm all items in the project directory have been added to Git (i.e. that\n the repo is clean)\n- check that your Readme will render on PyPI\n- sort your import statements\n- vendorize required packages\n- run the test suite\n- update the version number within your code\n- add the release to your changelog\n- build project documentation\n- build your project as a Python distribution\n- confirm your project can be installed from the local machine to the local\n machine\n- confirm your project can be uploaded to the test PyPI server and then\n downloaded and installed from this server.\n- confirm your project can be uploaded to the main PyPI server and then\n downloaded and installed from this server.\n- create a Git tag for your release\n- update your version number to a pre-release version\n\n*Minchin dot Releaser* relies on features added in the more recent versions of\nPython, and thus is Python 3 only.\n\nAssumptions\n-----------\n\nThis package makes several assumptions. This is not the only way to do these\nthings, but I have found these choices work well for my use-cases. If you have\nchosen a different way to set up your project, most of the applicable features\nwill just not work, but the rest of *Minchin dot Releaser* should continue to\nwork.\n\nIt is assumed:\n\n- this is a Python project.\n- your version is stored in one place in your project, as a string assigned to\n the variable ``__version__``, that this is one line and there is nothing else\n on this line. If this is not the case, *Minchin dot Releaser* will be unable\n to determine your project's version number and so won't be much use to you.\n This is the project's one hard requirement in how you organize your code.\n- your version number is importable by Python at\n ``.__version__``.\n- source control is done using Git. The Git functionality will be ignored if\n this is not the case.\n\nSetting Up Your Project\n-----------------------\n\nStep 1. Install ``minchin.releaser``.\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nThe simplest way is to use ``pip``::\n\n pip install minchin.releaser\n\nThis will also install all the other packages ``minchin.releaser`` depends\non.\n\nYou will also want to add ``minchin.releaser`` to the list of your\nproject's requirements.\n\nStep 2. Create a ``tasks.py`` file.\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nThis is where ``invoke`` determine was tasks are available to run. This file\nshould be created in the root folder of your project. If you are not using\n``invoke`` for other tasks, this file can be two lines:\n\n.. code-block:: python\n\n import invoke\n\n from minchin.releaser import make_release\n\nTo confirm that this is working, go to the command line in the root folder\nof your project, and run::\n\n invoke --list\n\nwhich will now list ``make_release`` as an available task.\n\nStep 3. Configure your project.\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nProject configuration is actually ``invoke`` configuration, so it is stored\nin the ``invoke.yaml`` folder in the project root (or anywhere else\n``invoke`` can load configuration from) under the ``releaser`` key.\n\nAvailable sub-keys:\n\nmodule_name\n (required) the name of your project. It is assumed that your project's\n version number is importable at ``module_name.__version__`` (see\n project assumptions).\nhere\n (required) the base location to build your package from. To set to the\n current directory, set to ``.``\ndocs\n (required, but can be set to ``None``) the base documentation\n directory. This is relative to ``here``.\ntest\n (required, but can be set to ``None``) the base test directory. This is\n relative to ``here``.\nsource\n (required) the base directory of your Python source code. This is\n relative to ``here``.\nchangelog\n (required, but can be set to ``None``) the location of your changelog\n file. This is relative to ``here``.\nversion\n (required) the location of where your version string is stored. This is\n relative to ``here``.\ntest_command\n (required, but can be set to ``None``) command, run from the command\n line with the current directory set to ``here``, to run your test suite.\nversion_bump\n (optional) default *level* to bump your version. If set to ``none``,\n this will be requested at runtime. Valid options include ``major``,\n ``minor``, ``bug``, and ``none``.\nextra_packages\n (optional) Used to install packages before installing your module from\n the server. Useful particularly for packages that need to be installed\n from cache (rather than re-downloaded and compiled each time) or for\n packages that are not available on the test PyPI server. Valid server\n keys are ``local``, ``test``, and ``pypi``. Under the server key,\n create a list of the packages you want explicitly installed.\n\n(verdorize keys are not listed here.)\n\nStep 4. Set up Invoke command shell (Windows).\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n*Minchin dot Releaser* runs certain commands at the command line. ``Invoke``,\nregardless of platform, tries to run these on ``/bin/bash`` which doesn't exist\nin Windows and thus these commands fail.\n\nTo fix this, create a ``.invoke.yaml`` file in the root of your user directory\n(so the file is ``C:\\Users\\\\.invoke.yaml``) and add:\n\n.. code-block:: yaml\n\n run:\n shell: C:\\Windows\\system32\\CMD.exe\n\nStep 5. Set up twine configuration.\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nCreate or modify ``$HOME/.pypirc`` to include the ``testpypi`` server:\n\n.. code-block:: ini\n\n [distutils]\n index-servers=\n pypi\n testpypi\n\n [testpypi]\n repository: https://test.pypi.org/legacy/\n username: your testpypi username\n\n.. warning::\n\n Do not store passwords in the .pypirc file. Storing passwords in plain text\n is never a good idea.\n\n*Minchin dot Releaser* is automated, and so needs access to your password. This\ncan be done using ``keyring``. Keyring can be installed by ``pip`` and then\npasswords are added from the command-line.\n\n.. code-block:: sh\n\n $ pip install keyring\n $ keyring set https://test.pypi.org/legacy/ your-username\n $ keyring set https://upload.pypi.org/legacy/ your-username\n\nSee `Twine Keyring Support\n`_ for more details.\n\n\nStep 6. Register your package on PyPI.\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n(On the new infrastructure, this no longer needs to be done explicitly. Just\nupload your package.)\n\nStep 7. Upload your package.\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code-block:: sh\n\n invoke make_release\n\nAnd then work through the prompts. If this process breaks half-way through,\nyou can re-start.\n\n\nCredits\n-------\n\nInspired (in part) by\nhttps://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/\n\n\nSample ``invoke.yaml``\n----------------------\n\n.. code-block:: yaml\n\n releaser:\n module_name: minchin.releaser\n here: .\n docs: .\n test: None\n source: minchin\n changelog: changelog.rst\n version: minchin\\releaser\\constants.py\n test_command: \"green -kq\"\n version_bump: none\n extra_packages:\n test:\n - gitdb\n - invoke\n - isort\n - pkginfo\n - semantic_version\n - twine\n - wheel\n pypi:\n - invoke\n vendor_dest: minchin\\releaser\\_vendor\n vendor_packages:\n \"minchin.text\":\n src: ..\\minchin.text\\minchin\n dest: .\n requirements: ..\\minchin.text\\requirements.in\n vendor_override_src: vendor_src", "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/MinchinWeb/minchin.releaser", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "minchin.releaser", "package_url": "https://pypi.org/project/minchin.releaser/", "platform": "any", "project_url": "https://pypi.org/project/minchin.releaser/", "project_urls": { "Homepage": "https://github.com/MinchinWeb/minchin.releaser" }, "release_url": "https://pypi.org/project/minchin.releaser/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "Minchin.Releaser is a collection of tools designed to make releasing Python packages easier.", "version": "0.7.0" }, "last_serial": 4799736, "releases": { "0.4.0": [], "0.4.2": [ { "comment_text": "", "digests": { "md5": "6f927b589dcc3aed0cccde6d496471fd", "sha256": "39f0ae6ac577c332e1666c031a72aaf386a1895310bdd0a0ea04bf43a7802135" }, "downloads": -1, "filename": "minchin.releaser-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f927b589dcc3aed0cccde6d496471fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18420, "upload_time": "2017-04-17T22:20:07", "url": "https://files.pythonhosted.org/packages/b1/5e/5c6327cd87d89c6404b4801def03ca0466e5660f7b73ca8fc5d43cf029b6/minchin.releaser-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "552a0844084eecc9d780057f1b3bf219", "sha256": "0c14454ac00e7617f73282d52eb93d02b05106e71eda6053244d63d436592ec5" }, "downloads": -1, "filename": "minchin.releaser-0.4.2.tar.gz", "has_sig": false, "md5_digest": "552a0844084eecc9d780057f1b3bf219", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16442, "upload_time": "2017-04-17T22:18:21", "url": "https://files.pythonhosted.org/packages/b8/f1/d7a63f86a128cb30c4b55ef558d8866b7cf8184a8a9f821f05a5751bf8cf/minchin.releaser-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "5c10991c2de8e1fa0219493c78218f5d", "sha256": "ab3d8ff1f58d01aad6e048ca855511f21b5bd2c09b1eb39cebc23c822d886134" }, "downloads": -1, "filename": "minchin.releaser-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5c10991c2de8e1fa0219493c78218f5d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18646, "upload_time": "2017-04-18T15:48:09", "url": "https://files.pythonhosted.org/packages/03/d4/261e63d4e2d188aabfe439c93fddd12f1c1cd3a9d78666c11e4fa2a400d9/minchin.releaser-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f67344eab8ee4da2e1c6c63c7620b96c", "sha256": "bdeda79581c1bed833ab9cac85c3f9fc73d233e1cefa31a9e6fbf4222656a42e" }, "downloads": -1, "filename": "minchin.releaser-0.5.0.tar.gz", "has_sig": false, "md5_digest": "f67344eab8ee4da2e1c6c63c7620b96c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16666, "upload_time": "2017-04-18T15:47:33", "url": "https://files.pythonhosted.org/packages/8e/6a/636e671bc45fd883c9a00f060985f78d567315e52fcac82e3d6991fff686/minchin.releaser-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "259fcf12ad6bba9d834a9ebb4a774458", "sha256": "eccb6fb7374aeb0b3b6c415a2955da1f18b9a369710a36e28d57ead858c40116" }, "downloads": -1, "filename": "minchin.releaser-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "259fcf12ad6bba9d834a9ebb4a774458", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18986, "upload_time": "2017-05-27T22:30:36", "url": "https://files.pythonhosted.org/packages/ed/0c/c416b963a5f42368a40716369576baaa7efbb1773180140bd45a7b8496e9/minchin.releaser-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a66404a546011fa3c89a23bc266263fd", "sha256": "e3cf3a4d2536bacb813ac9d940efd8e8e954862f1bcf073ebac0f62f7a816403" }, "downloads": -1, "filename": "minchin.releaser-0.5.1.tar.gz", "has_sig": false, "md5_digest": "a66404a546011fa3c89a23bc266263fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16979, "upload_time": "2017-05-27T22:29:50", "url": "https://files.pythonhosted.org/packages/41/3e/baadb8ce045ddb1e5fae4540117af1ea5e005be3d3e36ff81130bc77e193/minchin.releaser-0.5.1.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "f2e7fe3605ab99c1e678d1935973bfe1", "sha256": "39f7d54e3959865174d0f69c69bb6da3e086ee1fee3173944384def07993508f" }, "downloads": -1, "filename": "minchin.releaser-0.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f2e7fe3605ab99c1e678d1935973bfe1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23700, "upload_time": "2017-06-24T15:37:45", "url": "https://files.pythonhosted.org/packages/f6/ed/4aa7447ab083c8eb42adda57a03a50c5f8a645ef1ec2e786a4dbdb3b74d0/minchin.releaser-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "050147dbda0f23d9095d938d1bb7cd9d", "sha256": "dce33692e9e30ac23aa88cd77a2089a68e4459f27f996269d1e5f511c50895b7" }, "downloads": -1, "filename": "minchin.releaser-0.5.3.tar.gz", "has_sig": false, "md5_digest": "050147dbda0f23d9095d938d1bb7cd9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20157, "upload_time": "2017-06-24T15:36:59", "url": "https://files.pythonhosted.org/packages/b1/63/072801805048bd6ef2b82dd0c5bc6eb60c7d47c9752fe0592b524eb0fac6/minchin.releaser-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "cf13a44d257b1b84e8372f4f561c2356", "sha256": "030d61634f60b4938fe6465c3854f39bed9b16cee9465ecc6037bed6486d3d1a" }, "downloads": -1, "filename": "minchin.releaser-0.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cf13a44d257b1b84e8372f4f561c2356", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23771, "upload_time": "2017-08-28T02:27:12", "url": "https://files.pythonhosted.org/packages/33/a8/8ff3731c324e94321332a1cca11fc917672302672c82ba90bb044572a959/minchin.releaser-0.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7dfae6a3cf15ea7e129afb429f63ef21", "sha256": "6303ef6b08fe83d72a9e2f9d486620788bacb8cbd42900e73bb71c9477dc32bb" }, "downloads": -1, "filename": "minchin.releaser-0.5.4.tar.gz", "has_sig": false, "md5_digest": "7dfae6a3cf15ea7e129afb429f63ef21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20168, "upload_time": "2017-08-28T02:26:30", "url": "https://files.pythonhosted.org/packages/c4/ec/b1e729f9f40ba3db7a0f0230973bb31f15c2acd0939518f274bb352bf30a/minchin.releaser-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "b5a2a4a3a6e4779c3acb3a751ad725b8", "sha256": "274323d69381c7fdc1584e21a8d788b8a58197200f540caeae11ac75a8d56f4f" }, "downloads": -1, "filename": "minchin.releaser-0.5.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b5a2a4a3a6e4779c3acb3a751ad725b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33559, "upload_time": "2018-09-20T03:35:23", "url": "https://files.pythonhosted.org/packages/03/2e/394a205b3a4fdb8945c3e45838831c9734623e6134ea6c09946ba47be519/minchin.releaser-0.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4653a6b6567e87e667069ba969d3af8", "sha256": "9e46bdcfa2649119825b39f36162f9b39f0425a33bef455d765455379aa24160" }, "downloads": -1, "filename": "minchin.releaser-0.5.5.tar.gz", "has_sig": false, "md5_digest": "d4653a6b6567e87e667069ba969d3af8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23543, "upload_time": "2018-09-20T03:34:35", "url": "https://files.pythonhosted.org/packages/8a/d8/41ee145b987637b301f9a5a8dc40cf8e5ab46f13cbd8fdae694db2b88e5a/minchin.releaser-0.5.5.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "472af0b2b9f631d4027331b8548b4114", "sha256": "2f2e632b476245670b36d70362841599e0881210e2b3dd1899a38fd97f966f0d" }, "downloads": -1, "filename": "minchin.releaser-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "472af0b2b9f631d4027331b8548b4114", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33763, "upload_time": "2018-09-20T04:11:40", "url": "https://files.pythonhosted.org/packages/19/d7/5b608d86f26b8f7eb3b2c2a8c79f66a2b001f4eb324d067e9a8bac54a469/minchin.releaser-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a24b742ba0c300418dae5f89982eb628", "sha256": "472fbe2b3760995fe4398acaadf50cec0d8105814a4649d33bb8b07a96a73d92" }, "downloads": -1, "filename": "minchin.releaser-0.6.0.tar.gz", "has_sig": false, "md5_digest": "a24b742ba0c300418dae5f89982eb628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23667, "upload_time": "2018-09-20T04:10:15", "url": "https://files.pythonhosted.org/packages/1e/e7/3eb95807d592fa5f4a7879234ce60500bde1277799724e352842ad6ef102/minchin.releaser-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "b7cc92ff8a45925eecc81e022f4e73ae", "sha256": "62fea6dc9caf0f6cf9971885ad5515fea1e1e14067c075747abb3a449acc8cac" }, "downloads": -1, "filename": "minchin.releaser-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7cc92ff8a45925eecc81e022f4e73ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33805, "upload_time": "2018-10-26T04:24:52", "url": "https://files.pythonhosted.org/packages/ea/bb/d65af5c2ebf1007c279ac7c8fd522aa3a251202302f5a9bd9e0ab0935348/minchin.releaser-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a67783dff7025e97674c2273165b6ef9", "sha256": "d856bda27e9cc3e20bf399ffabf958f44448399c20575687ce5aebc40421a183" }, "downloads": -1, "filename": "minchin.releaser-0.6.1.tar.gz", "has_sig": false, "md5_digest": "a67783dff7025e97674c2273165b6ef9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23949, "upload_time": "2018-10-26T04:23:42", "url": "https://files.pythonhosted.org/packages/55/45/f7a661c5e88d259c83253cd10ba065d687057783426880c67a1c152a1945/minchin.releaser-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "c3b5bbb9cabee146f799f16276235fe9", "sha256": "5ea847913dab1e6f7d621ddb2314855104b74f1820a1acf50c83d947eae4811f" }, "downloads": -1, "filename": "minchin.releaser-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c3b5bbb9cabee146f799f16276235fe9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34311, "upload_time": "2019-02-09T16:38:35", "url": "https://files.pythonhosted.org/packages/22/30/6207d786d755316bc909a914f336c4be91e2c203635330ac9cdd97290676/minchin.releaser-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "719e2ab4c76801c65173cf169294b730", "sha256": "0d2ae3d1e31fab30bd3599e7724a30ae538c7d87a0232e88feb1692e5d75863d" }, "downloads": -1, "filename": "minchin.releaser-0.7.0.tar.gz", "has_sig": false, "md5_digest": "719e2ab4c76801c65173cf169294b730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24546, "upload_time": "2019-02-09T16:37:05", "url": "https://files.pythonhosted.org/packages/a1/7d/70969ff259a6c893e2950054d28a207c89bd496e1501e7c77c54f532c3b7/minchin.releaser-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3b5bbb9cabee146f799f16276235fe9", "sha256": "5ea847913dab1e6f7d621ddb2314855104b74f1820a1acf50c83d947eae4811f" }, "downloads": -1, "filename": "minchin.releaser-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c3b5bbb9cabee146f799f16276235fe9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34311, "upload_time": "2019-02-09T16:38:35", "url": "https://files.pythonhosted.org/packages/22/30/6207d786d755316bc909a914f336c4be91e2c203635330ac9cdd97290676/minchin.releaser-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "719e2ab4c76801c65173cf169294b730", "sha256": "0d2ae3d1e31fab30bd3599e7724a30ae538c7d87a0232e88feb1692e5d75863d" }, "downloads": -1, "filename": "minchin.releaser-0.7.0.tar.gz", "has_sig": false, "md5_digest": "719e2ab4c76801c65173cf169294b730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24546, "upload_time": "2019-02-09T16:37:05", "url": "https://files.pythonhosted.org/packages/a1/7d/70969ff259a6c893e2950054d28a207c89bd496e1501e7c77c54f532c3b7/minchin.releaser-0.7.0.tar.gz" } ] }