spike-starter creates project from blueprint template
Project description
Spike-starter
spike-starter creates project from blueprint template and helps me on my experimentation workflow.
# Simple usage
spike-starter myproject
# This command will generate 20180410_0722__myproject
It will create a Spike directory
:
-
the name of the
Spike directory
is automatically prefix with date and time to allow quick classification of experiments. -
the
Spike directory
is initialized as git repository
The term Spikes has been coined by Kent Beck in Extreme Programming (XP). It's a special type of story that is used to gain the knowledge necessary to reduce the risk of a technical approach.
Features
- usage
- local blueprint
- remote git blueprint
usage
Usage: spike-starter [OPTIONS] [PROJECT_NAMES]...
instanciate a project based on a project blueprint
Options:
-t, --template TEXT template path either local or git path
-d, --debug show debug information
-v, --version show version number
--noprefix instanciate a blueprint without date time prefix
--help Show this message and exit.
local blueprint
It allow to use an existing directory as a reference.
# Generate a directory based on a template
spike-starter --template ~/template/java myproject
spike-starter -t ~/template/java myproject
remote git blueprint
It can use remote git repository as template. The blueprint is cloned in local and a new repository is iniated inside.
# Generate a directory based on a template
spike-starter --template https://github.com/FabienArcellier/blueprint-webapp-flask.git myproject
Blueprints
- FabienArcellier/blueprint-cli-multicommands-python :
spike-starter --template https://github.com/FabienArcellier/blueprint-cli-multicommands-python.git myproject
- FabienArcellier/blueprint-webapp-bootstrap :
spike-starter --template https://github.com/FabienArcellier/blueprint-webapp-bootstrap.git myproject
- FabienArcellier/blueprint-webapp-flask :
spike-starter --template https://github.com/FabienArcellier/blueprint-webapp-flask.git myproject
- FabienArcellier/blueprint-library-pip :
spike-starter --template https://github.com/FabienArcellier/blueprint-library-pip myproject
Advanced usage
Use aliases to have shortcuts to your favorite blueprints
An alias may be use to generate a spike based on a specific blueprint already on your computer.
alias spike-starter-blueprint-cli-multicommands-python='spike-starter -t https://github.com/FabienArcellier/blueprint-cli-multicommands-python'
alias spike-starter-python3='spike-starter -t ~/projects/0004-spikes_template/python3_spike'
Installation
- install through pip
pip install spike-starter
After the installation, the command spike_starter
can be used
from anywhere on your system.
- install from the source
git clone https://github.com/FabienArcellier/spike-starter.git
cd spike-starter
pip install .
Contribute
Continuous integration process
A pull request must pass the continuous integration process
to be merged on master
.
make ci
Continuous deployment process
The automation task make deploy_current_version
will trigger a deployment
based on tag generation.
Travis.ci will deploy the current tagged version on PyPi.
List automation tasks
$make
cd run continuous deployment process on spike-starter
ci run continuous integration process on spike-starter
deploy_current_version deploy the current spike-starter version through travis.ci
dist build distribution archives
help provides cli help for this make file (default)
install install python dependencies
lint run static analysis on spike-starter
tests_integrations run only integrations testing on spike-starter
tests run automatic testing on spike-starter
venv build virtualenv in ./venv directory and install python dependencies
Alternative
This tool is a pet project. I encourage you to take a look on other alternative.
- Cookiecutter is a more mature alternative to build project from project template. There is a huge ecosystem of templates available on internet
License
MIT License
-----------
Copyright (c) 2019 Fabien Arcellier
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
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
Built Distribution
Hashes for spike_starter-0.1.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d1e4677d3f202ed460da02acdc72e20b90583c0c36da214a078fba1e36a35e6 |
|
MD5 | 41a4220e035f78fc7399db18613acad9 |
|
BLAKE2b-256 | 1c64466dc349a1775758de001bc09d52a163b7b4315da4417266fdf4660176b6 |