Skip to main content

Generates a github changelog, tags and uploads your python library

Project description

# changes

[![Build Status](https://secure.travis-ci.org/michaeljoseph/changes.png)](http://travis-ci.org/michaeljoseph/changes)
[![Stories in Ready](https://badge.waffle.io/michaeljoseph/changes.png?label=ready)](https://waffle.io/michaeljoseph/changes)
[![pypi version](https://badge.fury.io/py/changes.png)](http://badge.fury.io/py/changes)
[![# of downloads](https://pypip.in/d/changes/badge.png)](https://crate.io/packages/changes?version=latest)
[![code coverage](https://coveralls.io/repos/michaeljoseph/changes/badge.png?branch=master)](https://coveralls.io/r/michaeljoseph/changes?branch=master)

:musical_note: [Ch-ch-ch-ch-changes](http://www.youtube.com/watch?v=pl3vxEudif8) :musical_note:

![changes](https://github.com/michaeljoseph/changes/raw/master/resources/changes.png)

## Overview

Manages the release of a python library.

* cli that follows [semantic versioning][0] principles to increment the current version
* auto generates a changelog entry (using github's compare view)
* tags the github repo
* uploads to pypi

## Usage

An application wanting to use `changes` must meet these requirements:

* `setup.py`
* `CHANGELOG.md`
* `app_name/__init__.py` with `__version__` and `__url__`

Install `changes`:

pip install changes

Run the cli:

```
changes.

Usage:
changes [options] <app_name> release
changes [options] <app_name> version
changes [options] <app_name> changelog
changes [options] <app_name> tag
changes [options] <app_name> upload
changes -h | --help

Options:
--new-version=<ver> Specify version.
-p --patch Patch-level version increment.
-m --minor Minor-level version increment.
-M --major Minor-level version increment.

-h --help Show this screen.

--pypi=<pypi> Specify alternative pypi
--dry-run Prints the commands that would have been executed.
--commit-changelog Should the automatically generated changelog be
committed?
--debug Debug output.
```

The default workflow is to run the `changelog` command to autogenerate
a changelog entry based on your commit messages. You're probably going to
want to edit that a bit, so `changes` won't commit it, unless you
`--commit-changelog`.

The remaining tasks can be automated with the `release` command.

```python
(changes)➜ changes git:(master) changes -p changes changelog
What is the release version for "changes" [Default: 0.1.1]:
INFO:changes.cli:Added content to CHANGELOG.md
Everything up-to-date
INFO:changes.cli:Committed changelog update

<< changelog pruning >>

(changes)➜ changes git:(master) ✗ changes -p changes release --commit-changelog
What is the release version for "changes" [Default: 0.1.1]:
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 400 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To git@github.com:michaeljoseph/changes.git
5c6760d..bafce16 master -> master
Counting objects: 1, done.
Writing objects: 100% (1/1), 168 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:michaeljoseph/changes.git
* [new tag] 0.1.1 -> 0.1.1
warning: sdist: standard file not found: should have one of README, README.rst, README.txt
```

## Documentation

[API Documentation][1]

## Testing ##

Install development requirements:

pip install -r requirements.txt

Tests can then be run by doing:

nosetests

Run the linting (pep8, pyflakes) with:

flake8 changes tests

## API documentation

To generate the documentation:

cd docs && PYTHONPATH=.. make singlehtml

To monitor changes to Python files and execute pep8, pyflakes, and nosetests
automatically, execute the following from the root project directory:

stir


[0]:http://semver.org
[1]:http://changes.rtfd.org

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

changes-0.1.2.tar.gz (6.4 kB view details)

Uploaded Source

File details

Details for the file changes-0.1.2.tar.gz.

File metadata

  • Download URL: changes-0.1.2.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for changes-0.1.2.tar.gz
Algorithm Hash digest
SHA256 fe6546f93193437e676b9faad3d5a6b5d0f4cea9fcaba4602f0f1dd17dcdb2cf
MD5 94c7d40b4c6b7b9bdbdfdf417fb0e9d6
BLAKE2b-256 913b7d9ad4a30dfdc7417728687caf1221103652c15691f01a91cbf262549a5e

See more details on using hashes here.

Supported by

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