Skip to main content

Spike-starter

Build Status

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

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

  1. install through pip
pip install spike-starter

After the installation, the command spike_starter can be used from anywhere on your system.

  1. 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.

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.

Metadata

Release files for spike-starter 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spike-starter 0.1.7
File Size Uploaded
spike_starter-0.1.7.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spike-starter 0.1.7
File Interpreter ABI Platform
spike_starter-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / spike_starter-0.1.7.tar.gz

Download URL spike_starter-0.1.7.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
982e41967a62db7a62cd594ddad57b079546212def39b65923eee63fa1fd91ac
BLAKE2b-256 checksum
How to use checksums
93c58ec94ea90b31a8a2022d3da356c5009b45c2fa09be9ef6ee4da264415ca9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.7

Release files / spike_starter-0.1.7-py3-none-any.whl

Download URL spike_starter-0.1.7-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d1e4677d3f202ed460da02acdc72e20b90583c0c36da214a078fba1e36a35e6
BLAKE2b-256 checksum
How to use checksums
1c64466dc349a1775758de001bc09d52a163b7b4315da4417266fdf4660176b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.1

2 release files

0.0.8

2 release files

0.0.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page