Very much a Work In Progress
>>> python release.py --help
Usage: release.py [OPTIONS]
argument parsing for the cmdline, scripts, programmatic entry-points.
param kwargs: kwargs exported by the click module.
- Options:
--verbose Enabled more verbose output.
--wizard Run the release process as an interactive wizard.
--tag-release tag this release
--push-release push this release to git
--build-release build this release
--build-docs build this release’ docs
--publish-pypi publish release to pypi
--publish-docs-pypi publish release docs to pypi
--publish-docs-rtd publish release docs to ReadTheDocs
--dry-run Perform a dry-run (no side effects in git or pypi)
--register-project Register project on pypi - see: –project- name
- –interactive / –unattended Interactive or unattended execution
(defaults to unattended)
- –git-propagate-env / –no-git-propagate-env
Propagate the current environement when calling git (defaults to True)
- –python-propagate-env / –no-python-propagate-env
Propagate the current environement when calling python (defaults to True)
--interactive-prompt TEXT Interactive prompt to display(defaults to >>>).
--pypirc TEXT Path to .pypirc file.
--generate-rcfile TEXT Export all options to this file and exit immediately.
--profile-env TEXT Environmental variable which holds profile information in, defaults to RELEASEME_PROFILE.
--profile TEXT Load options from this profile file (overrides all other options).
--history-version TEXT New version (optional - previous version will be incremented).
--history-date TEXT The date to use in the history synopsis when tagging a release.
--history-comment TEXT The changelog comment to add.
--history-format TEXT The changelog format to add (must contain three “%s” for version, date, comment).
--history-file TEXT The history text file to use.
--history-delimiter TEXT The history file synopsis delimiter (just prior to history entries).
--history-meta TEXT The history file synopsis (prior to the delimiter).
--git-profile TEXT Load options from this git profile file (overrides all other options)
--git-repo TEXT Location of the git repo to release (defaults to cwd)
--gitrc TEXT Location of the .gitconfig file (defaults to cwd)
--project-name TEXT Name of this project (same as that which would be published to pypi
--help Show this message and exit.
TODO: How the release process works.
The following freedom configuration values are honored by freedom. If the corresponding configuration is passed in to the freedom constructor, those will take precedence.
verbose | A more verbose output. |
Each freedom instance has a logger instance variable that is by default not configured with a handler. You can add your own handler to obtain log messages emitted by freedom.
Simple stdout handler:
free = freedom(*args, **kwargs)
free.logger.addHandler(StreamHandler())
Reusing all the handlers of the logger instance of the freedom app:
free = freedom(*args, **kwargs)
for handler in free.logger.handlers:
free.logger.addHandler(handler)
A simple helper interface to the more complex releaser.
This is the programmatic entry-point if calling from another script but does NOT verify kwargs.
Convenience method to Build the current release.
FIXME: The exec dict is incorrect/need-updating.
Everything - Publish this release to pypi (possibly including the docs)
Parameters: |
|
---|
Publish this release to pypi (possibly including the docs)
Parameters: |
|
---|
Convenience method to Push the current code to git.
FIXME: The exec dict is incorrect/need-updating.
The full-monty: everything involved in a release.
Parameters: |
|
---|
Tag the current release in git (auto-incrementing the version).
FIXME: The exec dict is incorrect/need-updating.
summary: | The Release process work-flow management. |
---|---|
author: | francis.horsman@gmail.com |
summary: | All actions related functionality goes in here. |
---|---|
author: | francis.horsman@gmail.com |
Bases: freedom.helper.Helper
Actions are called by a Task only.
See: | .task.py |
---|---|
Attention: | all public methods must have the same signature: “def method_name(self, context)”. |
summary: | All apps callable from either the bin/freedom-* scripts OR from the |
---|
command-line.
author: | Francis.horsman@gmail.com |
---|
Main entry point to the command-line app.
Parameters: | kwargs – kwargs exported by the click module. |
---|
summary: | All building related activities in here. |
---|---|
author: | francis.horsman@gpypimail.com |
summary: | The command-line invoked wrapper for the release system. |
---|---|
author: | francis.horsman@gmail.com |
Bases: object
Command-line wrapper.
summary: | Sensible project defaults |
---|---|
attention: | ‘options’ flags must have their default value set to ‘False’. |
author: | francis.horsman@gmail.com |
summary: | All command execution for git, python and shell goes in here. |
---|---|
author: | Francis.horsman@gmail.com |
Bases: freedom.helper.Helper
The executor controls centralized access to all externals commands.
Run a Git command.
Parameters: |
|
---|---|
Returns: | The result from executing the Git command. |
summary: | All data export, import is done through here. |
---|---|
author: | Francis.horsman@gmail.com |
Bases: freedom.export.ExporterCodec
Codec designed to import and export using JSON.
Bases: freedom.export.ExporterCodec
Codec designed to import and export using MSGPACK.
Bases: freedom.export.ExporterCodec
Codec designed to import and export using PICKLE.
Bases: freedom.export.ExporterCodec
Codec designed to import and export using YAML.
summary: | All caller’s handlers’s handling (!) goes in here. |
---|---|
author: | francis.horsman@gmail.com |
summary: | All historian related activity is done from here. |
---|---|
author: | francis.horsman@gmail.com |
Bases: freedom.helper.Helper
All functionality relating to historian and versions.
Increment the current version.
Parameters: |
|
---|---|
Returns: | Incremented ‘major.minor.revision’, eg: ‘0.1.3’ |
summary: | All logging and event related functionality is done in here. |
---|---|
author: | francis.horsman@gmail.com |
summary: | |
---|---|
author: | Francis.horsman@gmail.com |
summary: | Profile and options handling. |
---|---|
author: | francis.horsman@gmail.com |
Bases: freedom.utils.iExporter
Profile class to allow easy inspection of the profile sections.
summary: | All publishing to pypi is done from here. |
---|---|
author: | francis.horsman@gmail.com |
summary: | All task related activity in here. |
---|---|
author: | francis.horsman@gmail.com |
summary: | All utility functionality goes in here. |
---|---|
attention: | Serialisation to json is attempted using the following libraries in order: (ujson, simplejson, json) |
author: | francis.horsman@gmail.com |
summary: | All vcs operations are done through here. |
---|---|
author: | francis.horsman@gmail.com |
summary: | All exceptions we export. |
---|---|
author: | francis.horsman@gmail.com |
Bases: exceptions.ValueError
A configuration value is incorrect.
Bases: exceptions.Exception
An error occurred in the exporter codec creation.
Bases: exceptions.Exception
There was an runtime error accessing a helper from another helper.
A helper was accessed by a helper before it was created by the core.
Bases: exceptions.Exception
An error occurred in the Helper creation.
Bases: exceptions.Exception
An error occurred when using the exporter to import data.
Bases: freedom.errors.InteractiveMessage
An interactive user requested an abort.
Bases: freedom.errors.InteractiveMessage
An interactive user requested a deny.
Bases: exceptions.ValueError
An attempt was made to raise an event with a level that was not supported.
Bases: exceptions.Exception
The profile file is not found at the given location.
Bases: exceptions.Exception
An error occurred in the profile creation.
Bases: exceptions.Exception
There was an error loading the profile
Bases: exceptions.Exception
An error occurred in the task creation.
Bases: exceptions.TypeError
A task was used that was not of type: [NoneType, _Task]
Bases: exceptions.Exception
An export codec with the given name was not found.
Bases: exceptions.ValueError
An attempt was made to raise an event that was not supported.
sh==1.11 click==3.3 pyyaml==3.11 nose==1.3.1 coverage==3.7.1 tox==1.8 gitpython==0.3.4 sphinx==1.2.3 sphinx-pypi-upload==0.2.1 ujson==1.33 msgpack-python==0.4.4 six==1.9.0 flake8==2.3.0 pylint==1.4.0
Francis Horsman