{ "info": { "author": "mmentele", "author_email": "mmentele@counsyl.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Build Tools" ], "description": "# Setup\n`pip install release-notes-generator`\n\nThis will provide a self-documenting command line tool under the name:\n`release_notes`\n\nYou can ask for help as you would expect: `release_notes --help`\n\nYou will need to set your github access token to use it:\n`export GITHUB_API_TOKEN = `\n\n# Usage\nYou can fetch release notes like: `release_notes getfor auto_pipeline`\n\nBy default this will look for an existing release and try to parse out the pr numbers from it's description. Alternatively, you can use a file:\n`release_notes getfor auto_pipeline --source pr_numbers.txt`\n\nEither way will output to the console release notes of the following form:\n```\nh2. SOME TITLE\nCHANGE_TYPE: UI\nDESCRIPTION: Some descriptions\nJIRA TICKET: LIMS-123\nPULL REQUEST: 123\nRISK: LOW\nRISK DESCRIPTION: Some description\n```\n\nOptionally redirect to a file:\n`release_notes getfor auto_pipeline > release_notes.txt`\n\n# How this Works\nYou can look at `cli.py` for an example of how to use this script.\n\nEssentially, `cli.py` runs the following where the token variable is looking for `GITHUB_API_TOKEN` to be set.\n\n```python\nReleaseNoteGenerator(token, repository_name=repository_name).release_notes()\nReleaseNotesFormatter.output(notes)\n```\n\n`ReleaseNoteGenerator` parses the PR numbers from the latest release, if no release exists it will return nothing. It then passes the PR numbers to the pr fetcher which grabs the descriptions. A good entry point it to look at `ReleaseNoteGenerator.release_notes`\n\n# Future Work\nThis is a quick and dirty initial implementation and we should expand this for easy reuse.\n\n[Complete] Iteration 1: Packaging and Interface Features\n- command line interaction to run with a repository_name arg\n```\n# print output to the screen\nrelease_notes auto_pipeline --print\n```\n- packaging for easy pip install and use across LIMS projects (ie. use in individual release scripts)\n- document API\n\nIteration 2: Granularity and Robustness Features\n- expose the PRFetcher so that we are not coupled to fetching the initial list purely from\n- add ability to diff the latest release and previous release and auto generate pr numbers (is this in the ARMS release script?)\n- auto generate tag and release adding the PRs to the release notes\n\nOther Features:\n- tests\n- auto ignore markdown comments\n- filter out heading fields in the description and only parse the one line description\n- include full pull request links\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.counsyl.com/lims/release_note_generator", "keywords": "releases notes", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "release-notes-generator", "package_url": "https://pypi.org/project/release-notes-generator/", "platform": "", "project_url": "https://pypi.org/project/release-notes-generator/", "project_urls": { "Homepage": "https://github.counsyl.com/lims/release_note_generator" }, "release_url": "https://pypi.org/project/release-notes-generator/1.2.1/", "requires_dist": [ "graphqlclient (<=0.2.0)", "click (<7)", "pygithub" ], "requires_python": "", "summary": "A Python package that parses a specific PR template given a list of PRs and generates release notes form them.", "version": "1.2.1" }, "last_serial": 5372518, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "b68dc9cf90afc277371b64a115a7bf7b", "sha256": "bb43d239421ba20dfdcf752859d4ed1467ad4dbbbc507dd4b6e24bd2d45fce15" }, "downloads": -1, "filename": "release_notes_generator-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b68dc9cf90afc277371b64a115a7bf7b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4787, "upload_time": "2017-12-09T23:05:58", "url": "https://files.pythonhosted.org/packages/09/a8/36399424379acf9d63c4ef4fc73ed50a1c55c5df869ae8c730673161c662/release_notes_generator-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daa612ff3e0ef89ee3916397ba25fe86", "sha256": "2cac9a7ce3de2db901c052b4e4e4a9f0512e701f02dfd7fef84d1a0a316c01ec" }, "downloads": -1, "filename": "release_notes_generator-1.0.0.tar.gz", "has_sig": false, "md5_digest": "daa612ff3e0ef89ee3916397ba25fe86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3129, "upload_time": "2017-12-09T23:05:59", "url": "https://files.pythonhosted.org/packages/be/75/6f32899db47b95caedad4c79dff65e1a335b359dae60c5508c69d55ca439/release_notes_generator-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "8fe29e0ceabd889f7638d9d6fef9a124", "sha256": "363597e633d705c1c302c7a7bb792d16b9f85ead660e59122d4e1e9251b8c30c" }, "downloads": -1, "filename": "release_notes_generator-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "8fe29e0ceabd889f7638d9d6fef9a124", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4910, "upload_time": "2017-12-09T23:28:55", "url": "https://files.pythonhosted.org/packages/76/7a/0f1a00d899bd505ec0437b4041e7b8279f9f3f0a9fac7c79eb91e002ea47/release_notes_generator-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f0aab7ab0dde40cf149630bd92d39b1", "sha256": "c13a6d00c5def736495601c81e6dc9510b0b601c68f277d664d409bab4b39ef7" }, "downloads": -1, "filename": "release_notes_generator-1.0.1.tar.gz", "has_sig": false, "md5_digest": "9f0aab7ab0dde40cf149630bd92d39b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3115, "upload_time": "2017-12-09T23:28:56", "url": "https://files.pythonhosted.org/packages/84/16/00d609cd4342809b63d4a0a5e5b58e0868c136aa7c531ec604b507bb2ffb/release_notes_generator-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "543434dcd0249e574b4ffb30ff465016", "sha256": "1faffc1ca3866a415488ec148b5806e071af50684d4d15f73a7319d7d585f875" }, "downloads": -1, "filename": "release_notes_generator-1.0.2.tar.gz", "has_sig": false, "md5_digest": "543434dcd0249e574b4ffb30ff465016", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5329, "upload_time": "2017-12-09T23:41:13", "url": "https://files.pythonhosted.org/packages/4c/cd/ea4b77d1651e70bc57ede3de6d8aefa5db590b730f27ceea9ee943305be3/release_notes_generator-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "b1cf70f249bde9be614469636a7d1f38", "sha256": "f98e8c57a57686981192d19c2e3517e621eac311eb1152ce9034a2cf00f8e650" }, "downloads": -1, "filename": "release_notes_generator-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b1cf70f249bde9be614469636a7d1f38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5461, "upload_time": "2017-12-09T23:56:05", "url": "https://files.pythonhosted.org/packages/15/85/585e5dad694823572f3ccb368f40639878dcc722a01d98265bf4aa53d82c/release_notes_generator-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "b0d4fb5a39681673cce7168192ec7a73", "sha256": "ee777dcc317d838b292edb37bed29c21e50c486e3d9715bf0448fa730dde5faf" }, "downloads": -1, "filename": "release_notes_generator-1.0.4-py2.7.egg", "has_sig": false, "md5_digest": "b0d4fb5a39681673cce7168192ec7a73", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9774, "upload_time": "2017-12-10T19:39:27", "url": "https://files.pythonhosted.org/packages/18/df/f86837ccd56751b9404269faeb171444ed975e6e02fcb3e26b5e14b9d53c/release_notes_generator-1.0.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "0753468703028adcf2cbd617082e3fba", "sha256": "75ca79887f43153326c0f3ad1bccfb0cdd13fdb400d572c0e745a856189ad54f" }, "downloads": -1, "filename": "release_notes_generator-1.0.4.tar.gz", "has_sig": false, "md5_digest": "0753468703028adcf2cbd617082e3fba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5466, "upload_time": "2017-12-10T00:00:54", "url": "https://files.pythonhosted.org/packages/b6/84/247537234fd5e1d3aa62a3e22117d28196a9aa45599ceff0948bde9fb8f9/release_notes_generator-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "a73ca0acb5556ddabf8b0b8666dc0c2d", "sha256": "309ee37b82d83d034fc45f2c90cfbc047df813ed8aa42d2f41407fdc7a641d30" }, "downloads": -1, "filename": "release_notes_generator-1.0.5.tar.gz", "has_sig": false, "md5_digest": "a73ca0acb5556ddabf8b0b8666dc0c2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5502, "upload_time": "2017-12-10T00:15:50", "url": "https://files.pythonhosted.org/packages/66/85/af3b54bee757558df07fd122a9b789778f537ef425683b621aff5566262f/release_notes_generator-1.0.5.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "09f405b0c4ef682709205cf1590377e4", "sha256": "f907966c26fe025a4ea6129efd7a21c41cd6b21f471c8b2505c4ff03498f6cf2" }, "downloads": -1, "filename": "release_notes_generator-1.0.7.tar.gz", "has_sig": false, "md5_digest": "09f405b0c4ef682709205cf1590377e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5491, "upload_time": "2017-12-10T00:21:55", "url": "https://files.pythonhosted.org/packages/9d/c2/597d905f38a425bb546ebb4d6c9221d1ad20e9dcdfb080196a3500c7dd5b/release_notes_generator-1.0.7.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "cfeba48b4916a839febc228c672b7b22", "sha256": "fbc8001122423a9dcd0ec10f56bb80d2531d4be49bdb7beb9520420f31adfac9" }, "downloads": -1, "filename": "release_notes_generator-1.1.0.tar.gz", "has_sig": false, "md5_digest": "cfeba48b4916a839febc228c672b7b22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6231, "upload_time": "2017-12-10T19:47:25", "url": "https://files.pythonhosted.org/packages/0e/08/5bfd64ffc3917683385f45d3ff1120600d1bbdf7b34c48d0bae3bd3c997e/release_notes_generator-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "a29a06cd9e78a0867908a186db0b73a9", "sha256": "a61e79ee2eeeda9374ca925a06d3471e48958ee1492d6e960f62e1c1f4751aed" }, "downloads": -1, "filename": "release_notes_generator-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a29a06cd9e78a0867908a186db0b73a9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9169, "upload_time": "2017-12-10T19:39:26", "url": "https://files.pythonhosted.org/packages/c9/41/d1313dcfd31e1acd8b897d2165a843faec4c02c2f628bf64d752bb6bc013/release_notes_generator-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f01f51205a11af1a76ec7598b32b40f2", "sha256": "f29d6b53837a49e6360a762d01b38eeb12b5494c0d8743269869f35bf594c8f4" }, "downloads": -1, "filename": "release_notes_generator-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f01f51205a11af1a76ec7598b32b40f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7832, "upload_time": "2018-10-22T16:25:59", "url": "https://files.pythonhosted.org/packages/f8/15/b73c6aa0206f799d1002fff4bedd5d4a690516fa1c128b277e124e0d27cc/release_notes_generator-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b93065555e78844b8de548541212a0c", "sha256": "5a29e5fc76f1ca638121e6c22f16381b92416fac34513d2e4f6092d2b8ad42e0" }, "downloads": -1, "filename": "release_notes_generator-1.1.1.tar.gz", "has_sig": false, "md5_digest": "4b93065555e78844b8de548541212a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6232, "upload_time": "2017-12-10T19:44:02", "url": "https://files.pythonhosted.org/packages/4e/3d/812a3ad597d9e5608f76a099be43ae626eae9c4a06b4d5983c59a81349d1/release_notes_generator-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "4aa88fb0f69d366a74620e353ce079ee", "sha256": "6def2915be50af99d426d0d09ed3e3bfeb73271236b436b2a754a039fcf71d55" }, "downloads": -1, "filename": "release_notes_generator-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4aa88fb0f69d366a74620e353ce079ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7834, "upload_time": "2018-10-22T16:27:09", "url": "https://files.pythonhosted.org/packages/d5/d2/0b59b301f2b02b44de244cda79eff1e2f6798f6fd40065616f06ed48301c/release_notes_generator-1.1.2-py2.py3-none-any.whl" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "c2a925f642b25c8f21f415524193729e", "sha256": "278c561520f50a0872098c53245b400eb8bad4f25d3d4776a2694c49315be537" }, "downloads": -1, "filename": "release_notes_generator-1.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c2a925f642b25c8f21f415524193729e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7857, "upload_time": "2018-10-22T16:31:50", "url": "https://files.pythonhosted.org/packages/57/19/b6ec84b849371fe1b8321411504a0796de076d28c4ba5341ef21383a354f/release_notes_generator-1.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba0a6fd21b083aeb9dafc60756e2a0d1", "sha256": "00ce4ab76e573cafa34d12ae6d16f524032389b596f9cf3cff1860f83fb75859" }, "downloads": -1, "filename": "release_notes_generator-1.1.3.tar.gz", "has_sig": false, "md5_digest": "ba0a6fd21b083aeb9dafc60756e2a0d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6117, "upload_time": "2018-10-22T16:31:51", "url": "https://files.pythonhosted.org/packages/79/55/318dcda03dd913c62e380e0dcf4d78e0f73c3ddd6c5897b3699be9236d0e/release_notes_generator-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "7ffae817d7651d56cba1c0f9caf5dea5", "sha256": "c9820c92fdc960fc3b50b558c33ebad60ef3396705cbf740d083e7dcb5e77d6c" }, "downloads": -1, "filename": "release_notes_generator-1.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ffae817d7651d56cba1c0f9caf5dea5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7858, "upload_time": "2018-10-22T16:40:00", "url": "https://files.pythonhosted.org/packages/fb/40/1549b14c55ad4e23da60cc484c97c36ecc02139218e1d4a3ca1086c80504/release_notes_generator-1.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a3053a599b97951ad382aabcbb2ff06", "sha256": "7ad19fd444f1eb02b56a4748cc37762e9bf07f90c2d5f8d6018d28654cb29a6c" }, "downloads": -1, "filename": "release_notes_generator-1.1.4.tar.gz", "has_sig": false, "md5_digest": "6a3053a599b97951ad382aabcbb2ff06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6118, "upload_time": "2018-10-22T16:40:02", "url": "https://files.pythonhosted.org/packages/71/62/3533e2c94745c4d13439ce7bea42420dab5dd2aa8df52784144f3c35bbb3/release_notes_generator-1.1.4.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "5810cea3d03d1ac9d4f2ee6c7d511986", "sha256": "967702e1c34996d05abf498c6403da96a8458ea7221f92037dc0e39f9c365356" }, "downloads": -1, "filename": "release_notes_generator-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5810cea3d03d1ac9d4f2ee6c7d511986", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7845, "upload_time": "2019-06-07T17:46:06", "url": "https://files.pythonhosted.org/packages/4f/15/392adfa94bba00232896af579f4f7000df2626b86cb3841285fd9578a596/release_notes_generator-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bc9e9cbad3b8101c5290c84b319c251", "sha256": "3334fddd09395071192c69c489f4d85bd205f2eed7a13980627c578cfbd5e430" }, "downloads": -1, "filename": "release_notes_generator-1.2.1.tar.gz", "has_sig": false, "md5_digest": "5bc9e9cbad3b8101c5290c84b319c251", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6152, "upload_time": "2019-06-07T17:46:07", "url": "https://files.pythonhosted.org/packages/9a/cc/dd8b6aaf0e2103e08d77f72d6e4d58c3fa85f455d8a9d0f09d8ddd0e5c2c/release_notes_generator-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5810cea3d03d1ac9d4f2ee6c7d511986", "sha256": "967702e1c34996d05abf498c6403da96a8458ea7221f92037dc0e39f9c365356" }, "downloads": -1, "filename": "release_notes_generator-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5810cea3d03d1ac9d4f2ee6c7d511986", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7845, "upload_time": "2019-06-07T17:46:06", "url": "https://files.pythonhosted.org/packages/4f/15/392adfa94bba00232896af579f4f7000df2626b86cb3841285fd9578a596/release_notes_generator-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bc9e9cbad3b8101c5290c84b319c251", "sha256": "3334fddd09395071192c69c489f4d85bd205f2eed7a13980627c578cfbd5e430" }, "downloads": -1, "filename": "release_notes_generator-1.2.1.tar.gz", "has_sig": false, "md5_digest": "5bc9e9cbad3b8101c5290c84b319c251", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6152, "upload_time": "2019-06-07T17:46:07", "url": "https://files.pythonhosted.org/packages/9a/cc/dd8b6aaf0e2103e08d77f72d6e4d58c3fa85f455d8a9d0f09d8ddd0e5c2c/release_notes_generator-1.2.1.tar.gz" } ] }