Package: git_devbliss
# devbliss git extensionsgit-devbliss is a command line tool which guides the developer along the[encouraged workflow](https://github.com/devbliss/git-devbliss/blob/master/workflow.md) used for feature development, bug fixingand hotfixing at devbliss.The goal of git-devbliss is to summarize certain single git operations intosemantically meaningful commands and doing sanity checks to prevent frequentmistakes.The tool does not replace any existing git commands nor does itprevent the developer from using the latter the way he wants to use them.To see what's new in the current version, please refer to the [CHANGELOG](https://github.com/devbliss/git-devbliss/blob/master/CHANGES.md)## Requirements- git 2.0- python 3.4- makeyou also need pip3.4, which is included in python 3.4 (of course you can also install with your systems package manager):python3.4 -m ensurepip --upgrade # on debian please use `sudo apt-get install python3-pip`do not forget to put the python package path into your system's path if it is not there yet:export PATH=/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin:$PATH # OSXIf you have an old version of git-devbliss that was installed with Makefile or macports, please uninstall that version first. Remember that bash_completion will be uninstalled as well - please refer to the 'Enabling bash completion' section below for how to restore it.## Installation via pypi (recommended)The installation of git-devbliss via pypi is the default installationmethod. Simply type:sudo pip3.4 install --upgrade git-devbliss## Installation via GitHubsudo pip3.4 install --upgrade git+ssh://git@github.com/devbliss/git-devbliss.git## Installation via Makefilegit clone git@github.com:devbliss/git-devbliss.gitcd git-devblisssudo makebin/pip install .## Enabling bash completionTo enable BASH completion you need to source that file in your bash profile:source /etc/bash_completion.d/git-devbliss## Creating a shorter command for git-devblissrun the following command if you want a shorter command for git devbliss:git config --global alias.de devbliss## TestingSimply run:make testThis will create a python virtual environment, run all checks and tests there and generate a coverage report## Makefile hooksYou need to include a Makefile in your project, which defines entry points forcommon tasks. The Makefile works like an abstraction layer which hasfour main advantages:1. Your daily work becomes easier because you won't have to adjust your habitsdepending on the project.2. If a project is reactivated after a certain amount of time it eases thepain of continuing.3. New developers have an easier start.4. Conventionally defined make targets make itpossible to integrate hooks in our git devbliss toolset which makes yourdaily work easier and more failsafe.### Make targetsYou are encouraged to implement the following targets in your Makefile:- **test**: Run all your projects software tests- **deb**: Build a ready to deploy Debian package- **clean**: Clean up all messy stuff created while building your project- **changelog**: Make sure your changelog has been updated (will be run whencalled 'git devbliss finish') The best thing you can do here is to open atext editor and get used to write the changelog at time of finishing yourtask. This way you will never forget to remark your changes- **version**: Make sure your projects version number has been incremented(will be run when called 'git devbliss finish') Implement that similar to the`changelog` target- **finish**: Define some tasks that have to be done before creating a pullrequest: e.g. formatting source files...- **release**: Called upon git-devbliss releaseDepending on the git-devbliss command used, there is one of two bash variablesavailable:- **finish**, **version**, **changelog**:  `DEVBLISS_BRANCH_TYPE` is available that holds the branch typevalue (`feature`, `bug`, `hotfix`, `research` or `refactor`)- **release**: `DEVBLISS_VERSION` is available that carries the version numberused with the release command## Make target snippetsThis section contains some snippets for the use in conjuction with therecomended make targets. You can copy/paste from here or even better add yourown snippets for the benefit of others.### Open changelog in the default editorchangelog:@$${EDITOR:-"vi"} debian/changelog.PHONY: changelog### Typical maven delegationbuild:mvn gwt:compilechangelog:@$${EDITOR:-"vi"} debian/changelogtest:mvn testclean:mvn clean## GitHub loginThe github api client (`github-devbliss` in your path) will ask you for a usernameand password in order to log in to GitHub. The resulting authorization token is thenstored at `~/.github_token`.### Using a new / multiple machinesBecause the same application can't create multiple authorization tokens, you need tocopy your token to all your machines in order to use git-devbliss on them. If you haveswitched machines, you can also delete the `git-devbliss/ng` application in your GitHubapplication settings.## External DependenciesGit-Devbliss includes, depends on, or uses the following free software components:- Python3 (http://python.org, Python Software Foundation License)- Setuptools (https://pypi.python.org/pypi/setuptools, Python Software Foundation License)- Docopt (https://github.com/docopt/docopt, MIT License)- Flake8 (https://bitbucket.org/tarek/flake8/wiki/Home, MIT License)- Python Coverage (https://bitbucket.org/ned/coveragepy, BSD License)- Requests (https://github.com/kennethreitz/requests, Apache2 License)