changelog-genie


Namechangelog-genie JSON
Version 0.2.0 PyPI version JSON
download
home_page
SummaryGenerate changelogs for GitHub projects efficiently
upload_time2023-03-13 14:27:19
maintainer
docs_urlNone
authorAndy Grove
requires_python>=3.7,<4.0
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Changelog Genie

![](changelog-genie.png)

Image Credit: DALL-E

## Overview

Changelog Genie is a simple and pragmatic changelog generator, implemented in Python, that utilizes the GitHub 
REST API to produce changelog content very efficiently, avoiding GitHub API rate limits. It was built out of necessity 
as a replacement for [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator),
which served well for many Apache Arrow projects for a long time but eventually became unworkable as the number of 
issues and pull requests continued to grow.

Roadmap/Status:

- [x] Basic functionality in place
- [ ] Make sections and labels configurable
- [ ] Support reading [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator) configuration files
- [ ] Write the content into an existing changelog file

## Installation

```pip3 install changelog-genie```

## Usage

```text
$ changelog_genie --help
usage: cli.py [-h] project tag1 tag2

positional arguments:
  project     The project name e.g. apache/arrow-datafusion
  tag1        The previous release tag
  tag2        The current release tag

options:
  -h, --help  show this help message and exit

```

There is currently a two-step process for generating a changelog. This will be improved in a future release.

### Step 1: Generate Partial Changelog 

Run the ChangeLog Genie script to fetch the commits between two tags from GitHub and produce the changelog 
content. Providing a GitHub token is necessary to achieve a higher rate limit for interaction with the GitHub REST API. 

```shell
GITHUB_TOKEN=<token> changelog_genie andygrove/changelog-genie 0.1.0 0.2.0 > changelog-0.2.0.md
```

### Step 2: Copy and paste into existing changelog

This will be automated in a future release.

## Contributing

```shell
python3 -m venv venv
# activate the venv
source venv/bin/activate
# update pip itself if necessary
python -m pip install -U pip
# install dependencies (for Python 3.8+)
python -m pip install -r requirements.in

Poetry

```shell
sudo apt install python3-poetry
```

Testing

```shell
poetry build
poetry install
```


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "changelog-genie",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Andy Grove",
    "author_email": "andygrove73@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/46/fd/daa7da3502a3b99d42147d98b2b2e56a3c36e4a27e84d72a64805e142543/changelog-genie-0.2.0.tar.gz",
    "platform": null,
    "description": "# Changelog Genie\n\n![](changelog-genie.png)\n\nImage Credit: DALL-E\n\n## Overview\n\nChangelog Genie is a simple and pragmatic changelog generator, implemented in Python, that utilizes the GitHub \nREST API to produce changelog content very efficiently, avoiding GitHub API rate limits. It was built out of necessity \nas a replacement for [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator),\nwhich served well for many Apache Arrow projects for a long time but eventually became unworkable as the number of \nissues and pull requests continued to grow.\n\nRoadmap/Status:\n\n- [x] Basic functionality in place\n- [ ] Make sections and labels configurable\n- [ ] Support reading [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator) configuration files\n- [ ] Write the content into an existing changelog file\n\n## Installation\n\n```pip3 install changelog-genie```\n\n## Usage\n\n```text\n$ changelog_genie --help\nusage: cli.py [-h] project tag1 tag2\n\npositional arguments:\n  project     The project name e.g. apache/arrow-datafusion\n  tag1        The previous release tag\n  tag2        The current release tag\n\noptions:\n  -h, --help  show this help message and exit\n\n```\n\nThere is currently a two-step process for generating a changelog. This will be improved in a future release.\n\n### Step 1: Generate Partial Changelog \n\nRun the ChangeLog Genie script to fetch the commits between two tags from GitHub and produce the changelog \ncontent. Providing a GitHub token is necessary to achieve a higher rate limit for interaction with the GitHub REST API. \n\n```shell\nGITHUB_TOKEN=<token> changelog_genie andygrove/changelog-genie 0.1.0 0.2.0 > changelog-0.2.0.md\n```\n\n### Step 2: Copy and paste into existing changelog\n\nThis will be automated in a future release.\n\n## Contributing\n\n```shell\npython3 -m venv venv\n# activate the venv\nsource venv/bin/activate\n# update pip itself if necessary\npython -m pip install -U pip\n# install dependencies (for Python 3.8+)\npython -m pip install -r requirements.in\n\nPoetry\n\n```shell\nsudo apt install python3-poetry\n```\n\nTesting\n\n```shell\npoetry build\npoetry install\n```\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Generate changelogs for GitHub projects efficiently",
    "version": "0.2.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e2ee18dbeaba032f3f398b2eeb2d9fc8a2915c7c64dfa238647dd84f70f51c5d",
                "md5": "fb206323dbaab52bc8e1f8e47386ea94",
                "sha256": "8b16071ec9939989183012b987d8595c339ee5d5528a9dae09d3dca820ea8537"
            },
            "downloads": -1,
            "filename": "changelog_genie-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fb206323dbaab52bc8e1f8e47386ea94",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4.0",
            "size": 4403,
            "upload_time": "2023-03-13T14:27:21",
            "upload_time_iso_8601": "2023-03-13T14:27:21.271189Z",
            "url": "https://files.pythonhosted.org/packages/e2/ee/18dbeaba032f3f398b2eeb2d9fc8a2915c7c64dfa238647dd84f70f51c5d/changelog_genie-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "46fddaa7da3502a3b99d42147d98b2b2e56a3c36e4a27e84d72a64805e142543",
                "md5": "68e17d7bd7d10175fb400cb841dac46f",
                "sha256": "94a298eaed13eaf3826d240acfbddf20891696c4fad4bb767728b91c591cb849"
            },
            "downloads": -1,
            "filename": "changelog-genie-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "68e17d7bd7d10175fb400cb841dac46f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4.0",
            "size": 3971,
            "upload_time": "2023-03-13T14:27:19",
            "upload_time_iso_8601": "2023-03-13T14:27:19.103362Z",
            "url": "https://files.pythonhosted.org/packages/46/fd/daa7da3502a3b99d42147d98b2b2e56a3c36e4a27e84d72a64805e142543/changelog-genie-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-13 14:27:19",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "changelog-genie"
}
        
Elapsed time: 0.13725s