Contributing
We're beyond grateful for your interest in contributing to the Spin project. We're always looking for ways to improve the project and we're excited to see what you have to offer.
Before submitting a PR
- Please be intentional and clear in your proposal
- If you're looking to add a new feature, it may be a good idea to open an issue first to discuss the feature
Improving the documentation
All docs are located under docs/
. In there is a "Nuxt Content" site. Read docs/README.md
for more information on how to run the docs locally.
Installing a local development copy of Spin
If you'd like to install a copy for development, clone your fork and add this to your shell profile:
Add an alias to your shell profile
export PATH="/path/to/the-project/spin/bin:$PATH"
You you point spin
on to your project, you'll be able to easily test changes before submitting a pull request.
Development dependencies
Other than having a working Docker Desktop or Docker Engine installation -- the only other dependency is running Bash v3 or higher. This means there literally are not any other dependencies to install. 🥳
Installing a specific version of Spin by the branch
The install script allows you to install a specific branch of Spin. This is useful if you want to test a new feature or bug fix before it's released.
If the install command is the feature being changed/tested, change the https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh
to the branch you're testing.
Install a test version of Spin
BRANCH="release/2.0" sh -c "$(curl -fsSL -H "Cache-Control: no-cache" https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)"
Knowing your way around the code
bin/spin
- This is the main entry point for thespin
command. This file is responsible for parsing the arguments and calling the appropriate function.lib/functions.sh
- This file contains all of the functions that are called bybin/spin
.lib/actions/
- This directory contains all of the actions that are called bybin/spin
. Each action is a file that contains a function with the same name as the file. For example,lib/actions/init.sh
contains a function calledinit
. This function is called bybin/spin
when theinit
action is called.