wizardsoftheweb / gitflow-wotw-python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gitflow-wotw

https://travis-ci.org/wizardsoftheweb/gitflow-wotw.svg?branch=master https://coveralls.io/repos/github/wizardsoftheweb/gitflow-wotw/badge.svg?branch=master

gitflow-wotw has grand aspirations to be gitflow-avh in Python.

Please note that this is not yet stable. I've refactored massively twice now. Luckily that's not a huge issue because the code didn't do anything before.

Suggested Reading

Installation

$ pip install --user gitflow-wotw

Usage

$ export PATH=~/.local/bin:$PATH
$ which git-wotw
~/.local/bin/git-wotw
$ git wotw
< should print the main help >

Logging

Log levels come from |verboselogs|_. It's useful to have a few extra channels. There shouldn't be any conflicts as this (theoretically) runs entirely in the console.

Levels

More information can be found in |verboselogs|_.

  • SPAM: -vvvvv
  • DEBUG: -vvvv
  • VERBOSE: -vvv
  • INFO: -vv
  • NOTICE: -v
  • WARNING: default
  • SUCCESS: -q
  • ERROR: -qq
  • CRITICAL: -qqq

Changing the Level

To increase the level, use more v's.

$ git wotw -vvvvv

To decrease the level, use more q's.

$ git wotw -qqq

Roadmap

These percentages are pretty arbitrary. Today's 47% could be tomorrow's 90% or vice versa.

Main Features

Once all of these are finished, I'll release v1. Until then, v0 should be used with caution, because it's not stable.

Progress Feature
0% init support
0% feature support
0% bugfix support
0% release support
0% hotfix support
0% support support
0% version support
0% config support
0% log support
0% Negatable options
50% Add opt-out for no- booleans
0% Convert -v to a count
0% Prune extra delete options
0% Add more git messaging

Eventual Features

These are things I'd like to add, but might not be included in v1. If not, they'll most likely constitute one or more minor version increments.

Progress Feature
0% Repo reflection
0% pygit2 alternatives
0% semver bindings
0% Replace git wotw with git flow
0% Local hooks connected to gitflow actions
0% User-defined shortcuts
0% Create arguments from config files
0% Create actions from config files
0% Create subcommands from config files
0% Create the main command from config files
0% Shell completion (bolster existing gitflow completion)
0% subcommand-detecting action``s, e.g. ``git wotw finish release/1.0.0 finishes a release branch
0% subcommand-agnostic action``s, e.g. ``git wotw publish some-cool-feature publishes a feature branch

Far Future Features

Progress Feature
0% Make pygit2 play well enough with everyone else to actually use

Aside

I started the current refactor (>=0.6.0) to speed things up. My first attempt starting taking a few seconds to render the help menu because it initialized everything before running anything. I've rewritten things to be generated on the fly. However, once again, everything has be generated on the fly before anything can run (To create the root, I have to create its dependencies. But to create its dependencies, I have to create their dependencies. And so on.) I think this direction is a little smarter but it will probably involve less cool reflection and more boilerplate.

As of >=0.7.0, I've got some delayed callbacks in place to keep things speedy. Previously, everything was getting created in ObjectBuilder on launch. Now Action``s are built with a factory in ``process, which means the necessary Command won't get loaded until the Action has fired. It keeps things much slimmer.

About

License:ISC License


Languages

Language:Python 100.0%