rocketLauncher CLI¶
A very opinionated CLI to automate the start of a new project.
Installation¶
Since the nature of this package is very opinionated (meaning, made with me in mind) I will not be publishing to pypi
. But if you would like to use it, this are the installation steps.
Prerequisites¶
For rocketLauncher to work the followinng packages need to be installed.
Once installed you can use the following code to get the latest release.
repo='https://github.com/drearondov/rocketLauncher'
# Find the latest release.
latest=$(git ls-remote --tags --refs $repo | # Fetch remote tags.
sort -t '/' -k 3 -V | # Sort them by version.
tail -n 1 | # Take the latest one.
awk -F / '{print $3}') # Return only the tag.
# Craft the URL for the release asset.
version=$(echo $latest | tr -d 'v') # Remove the leading v.
wheel="rocket_launcher-${version}-py3-none-any.whl"
release="${repo}/releases/download/${latest}/${wheel}"
# Install the release.
pip install $release
From sources¶
The sources for rocketLauncher can be downloaded from the Github repo.
Bear in mind that to install this package from source you will need to have Poetry installed in your system.
With that in mind, you can either clone the public repository:
git clone git://github.com/drearondov/rocket_launcher
Or download the tarball:
curl -OJL https://github.com/drearondov/rocket_launcher/tarball/master
Once you have a copy of the source, you can install it with:
poetry build
poetry install
Usage¶
Usage:
$ rocketLauncher [OPTIONS] COMMAND [ARGS]...
Options:
--install-completion
: Install completion for the current shell.--show-completion
: Show completion for the current shell, to copy it or customize the installation.--help
: Show this message and exit.
Commands:
config
: Create configuration file and/or set defaultscookiecutters
: List/ add available cookiecuttersinit
: Configure the projects directory and login to…new
: Creates new project in folder, runs a…push
: Creates a local repository and pushed it to…
rocketLauncher config
¶
Create configuration file and/or set defaults
Usage:
$ rocketLauncher config [OPTIONS] COMMAND [ARGS]...
Options:
--help
: Show this message and exit.
Commands:
change
: Change a defaultinit
: Define default configuration
rocketLauncher config change
¶
Change a default
Usage:
$ rocketLauncher config change [OPTIONS]
Options:
--key TEXT
: Name of the value to change--new-value TEXT
: New default value--help
: Show this message and exit.
rocketLauncher config init
¶
Define default configuration
Usage:
$ rocketLauncher config init [OPTIONS]
Options:
--env-manager TEXT
: Environment manager to use by default--create-env / --no-create-env
: Create a virtual environment by default--poetry-adapted / --no-poetry-adapted
: Are the cookiecutters used adapted for Poetry by default--upload-github / --no-upload-github
: Upload to github by default--commit-message TEXT
: Deafult commit message--quickstart / --no-quickstart
: Use quickstart by default or interactive prompt--help
: Show this message and exit.
rocketLauncher cookiecutters
¶
List/ add available cookiecutters
Usage:
$ rocketLauncher cookiecutters [OPTIONS] COMMAND [ARGS]...
Options:
--help
: Show this message and exit.
Commands:
add
: Adds new cookiecutter to curated…list
: List all the cookiecutters available
rocketLauncher cookiecutters add
¶
Adds new cookiecutter to curated cookiecutters
Usage:
$ rocketLauncher cookiecutters add [OPTIONS]
Options:
--alias TEXT
: Alias for the new cookiecutter--link TEXT
: Link of the cookiecutter, to use with cookiecutter command--help
: Show this message and exit.
rocketLauncher cookiecutters list
¶
List all the cookiecutters available
Usage:
$ rocketLauncher cookiecutters list [OPTIONS]
Options:
--help
: Show this message and exit.
rocketLauncher init
¶
Configure the projects directory and login to Github.
Usage:
$ rocketLauncher init [OPTIONS]
Options:
--projects-path DIRECTORY
: Directory where projects are located [required]--github-token TEXT
: Github token to be used to connect to Github--set-config / --no-set-config
: Whether to set the default config now or not [required]--help
: Show this message and exit.
rocketLauncher new
¶
Creates new project in folder, runs a cookiecutter and uploads to github.
Usage:
$ rocketLauncher new [OPTIONS]
Options:
--project-name TEXT
: Name of the project. To be used for the repo and virtual environment--env-manager [conda|pyenv]
: Virtual environment manager used for the project [default: pyenv]--create-env / --no-create-env
: Boolean variable to tell if create or not a virtual environment. If false, it activates the virtual environment [default: True]--cookiecutter TEXT
: Alias in curated list or link to a cookiecutter--poetry-adapted / --no-poetry-adapted
: Is the cookiecutter chosen adapted for Poetry? [default: True]--upload-github / --no-upload-github
: Choose whether you create a repository and upload to Github or not [default: False]--commit-message TEXT
: Commit message [default: :tada: initial commit]--quickstart / --no-quickstart
: Choose all defaults [default: True]--help
: Show this message and exit.
rocketLauncher push
¶
Creates a local repository and pushed it to Github
Usage:
$ rocketLauncher push [OPTIONS]
Options:
--commit-message TEXT
: Commit message--help
: Show this message and exit.
Contributing¶
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Types of Contributions¶
Report Bugs¶
Report bugs at https://github.com/drearondov/rocket_launcher/issues.
If you are reporting a bug, please include:
Your operating system name and version.
Any details about your local setup that might be helpful in troubleshooting.
Detailed steps to reproduce the bug.
Fix Bugs¶
Look through the GitHub issues for bugs. Anything tagged with “bug” and “help wanted” is open to whoever wants to implement it.
Implement Features¶
Look through the GitHub issues for features. Anything tagged with “enhancement” and “help wanted” is open to whoever wants to implement it.
Write Documentation¶
projects-cli could always use more documentation, whether as part of the official projects-cli docs, in docstrings, or even on the web in blog posts, articles, and such.
Submit Feedback¶
The best way to send feedback is to file an issue at https://github.com/drearondov/rocket_launcher/issues.
If you are proposing a feature:
Explain in detail how it would work.
Keep the scope as narrow as possible, to make it easier to implement.
Remember that this is a volunteer-driven project, and that contributions are welcome :)
Get Started!¶
Ready to contribute? Here’s how to set up rocket_launcher
for local development.
Fork the
rocket_launcher
repo on GitHub.Clone your fork locally and install dependencies.
git clone git@github.com:your_name_here/rocket_launcher.git
cd rocket_launcher/
Create a virtualenv. Assuming you have pyenv-virtualenv installed, this is how you set up your fork for local development
pyenv virtualenv rocket_launcher
pyenv activate rocket_launcher
poetry install
Create a branch for local development
git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
When you’re done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox
flake8 rocket_launcher tests
pytest
tox
To get flake8 and tox, just pip install them into your virtualenv.
Commit your changes and push your branch to GitHub::
git add .
git commit -m "Your detailed description of your changes."
git push origin name-of-your-bugfix-or-feature
Submit a pull request through the GitHub website.
Pull Request Guidelines¶
Before you submit a pull request, check that it meets these guidelines:
The pull request should include tests.
If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.
The pull request should work for Python 3.5, 3.6, 3.7 and 3.8, and for PyPy. Check https://travis-ci.com/drearondov/rocket_launcher/pull_requests and make sure that the tests pass for all supported Python versions.
Deploying¶
A reminder for the maintainers on how to deploy. Make sure all your changes are committed (including an entry in CHANGELOG.md). Then run::
bump2version patch # possible: major / minor / patch
git push
git push --tags
Travis will then deploy to the repository if the tests pass.
Credits¶
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
Development Lead¶
Andrea Rondón Villanueva andrea.estefania.rv@gmail.com
Contributors¶
None yet. Why not be the first?
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Install dependencies from cookiecutter
Switch from setup.py to pyproject.toml
Full documentation
Features¶
Select environment manager (
pyenv
,conda
supported)Create new virtual environment by default
Create folder structure from cookiecutter
Choose to create repository and upload project to Github
Configure defaults values
Quickstart a new project with default values
Basic usage¶
The available commands are:
rocketlauncher init
: Configures the projects directory and logs in to Githubrocketlauncher new
: Creates a new project and runs a cookiecutter insiderocketlauncher push
: Creates local repository and pushes to Githubrocketlauncher config
: Allows the creation of a configuration file and edit/set defaultsrocketlauncher cookiecutters
: Add/ view available cookiecutters
Credits¶
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.