Skip to main content

A Python package that parses a specific PR template given a list of PRs and generates release notes form them.

Project description

# Setup
`pip install release-notes-generator`

This will provide a self-documenting command line tool under the name:
`release_notes`

You can ask for help as you would expect: `release_notes --help`

You will need to set your github access token to use it:
`export GITHUB_API_TOKEN = <token>`

# Usage
You can fetch release notes like:
`release_notes getfor auto_pipeline`

By 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:
`release_notes getfor auto_pipeline --source pr_numbers.txt`

Either way will output to the console release notes of the following form:
```
h2. SOME TITLE
CHANGE_TYPE: UI
DESCRIPTION: Some descriptions
JIRA TICKET: LIMS-123
PULL REQUEST: 123
RISK: LOW
RISK DESCRIPTION: Some description
```

Optionally redirect to a file:
`release_notes getfor auto_pipeline > release_notes.txt`

# How this Works
You can look at `cli.py` for an example of how to use this script.

Essentially, `cli.py` runs the following where the token variable is looking for `GITHUB_API_TOKEN` to be set.

```python
ReleaseNoteGenerator(token, repository_name=repository_name).release_notes()
ReleaseNotesFormatter.output(notes)
```

`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`

# Future Work
This is a quick and dirty initial implementation and we should expand this for easy reuse.

[Complete] Iteration 1: Packaging and Interface Features
- command line interaction to run with a repository_name arg
```
# print output to the screen
release_notes auto_pipeline --print
```
- packaging for easy pip install and use across LIMS projects (ie. use in individual release scripts)
- document API

Iteration 2: Granularity and Robustness Features
- expose the PRFetcher so that we are not coupled to fetching the initial list purely from
- add ability to diff the latest release and previous release and auto generate pr numbers (is this in the ARMS release script?)
- auto generate tag and release adding the PRs to the release notes

Other Features:
- tests
- auto ignore markdown comments
- filter out heading fields in the description and only parse the one line description
- include full pull request links


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

release_notes_generator-1.1.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

release_notes_generator-1.1.1-py2.py3-none-any.whl (7.8 kB view details)

Uploaded Python 2Python 3

release_notes_generator-1.1.1-py2-none-any.whl (9.2 kB view details)

Uploaded Python 2

File details

Details for the file release_notes_generator-1.1.1.tar.gz.

File metadata

File hashes

Hashes for release_notes_generator-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5a29e5fc76f1ca638121e6c22f16381b92416fac34513d2e4f6092d2b8ad42e0
MD5 4b93065555e78844b8de548541212a0c
BLAKE2b-256 4e3d812a3ad597d9e5608f76a099be43ae626eae9c4a06b4d5983c59a81349d1

See more details on using hashes here.

File details

Details for the file release_notes_generator-1.1.1-py2.py3-none-any.whl.

File metadata

  • Download URL: release_notes_generator-1.1.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.10.0 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.14

File hashes

Hashes for release_notes_generator-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f29d6b53837a49e6360a762d01b38eeb12b5494c0d8743269869f35bf594c8f4
MD5 f01f51205a11af1a76ec7598b32b40f2
BLAKE2b-256 f815b73c6aa0206f799d1002fff4bedd5d4a690516fa1c128b277e124e0d27cc

See more details on using hashes here.

File details

Details for the file release_notes_generator-1.1.1-py2-none-any.whl.

File metadata

File hashes

Hashes for release_notes_generator-1.1.1-py2-none-any.whl
Algorithm Hash digest
SHA256 a61e79ee2eeeda9374ca925a06d3471e48958ee1492d6e960f62e1c1f4751aed
MD5 a29a06cd9e78a0867908a186db0b73a9
BLAKE2b-256 c941d1313dcfd31e1acd8b897d2165a843faec4c02c2f628bf64d752bb6bc013

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page