First of all, thank you for contributing. Any contribution is highly appreciated and welcome.
There's a simple philosophy behind Spacefish:
- Absolute parity with spaceship-prompt. The prompt should be identical to spaceship-prompt when it comes to visuals, functionality, and configuration.
- Fork this repo (click the fork button)
- Clone your fork to your computer (via
- Make your changes. Check our API for more information (we suggest you to check out a new branch for changes).
- Test your code (via
- Add and commit your contributions
- Push your changes to your remote fork
- Open a pull-request on the spacefish repo
Unit tests are stored in the
./tests directory, with the
(filename).test.fish naming scheme.
To run the unit tests, simply run:
The unit tests will create their own temporary fish environment, so your local fish and spacefish configuration will not affect the unit test run.
Spacefish supports most of the popular programming languages, runtimes, version managers, etc. If it doesn't support something that you need, feel free to open a pull request over at Spaceship, and it will be a candidate to be added to Spacefish.
Will it slow down the prompt?
Every additional section will slow down the prompt a little bit. If your section performs any expensive checks, find a way to make it faster.
- Good: check if a command exists, check the value of an environment variable
- Bad: network requests, reading large files, etc
When updating documentation for your section, make sure the markdown document is being properly rendered by Github. Specifically, the following common pitfalls have already been discovered:
- Empty inline code blocks
` will only be rendered if you put at least one non-breaking whitespace " " inside, like so: ``
- Leading and trailing whitespaces in inline code blocks will be stripped, to indicate that a whitespace is present, use the middot symbol
·, like so:
Add yourself as a contributor
This project follows the all contributors specification. To add yourself to the table of contributors on the README.md, please use the automated script as part of your PR:
npm install npm run contributors:add -- <YOUR_GITHUB_USERNAME>
Follow the prompt. If you've already added yourself to the list and are making a new type of contribution, you can run it again and select the added contribution type.
Thank you for reading the contribution guide! Happy hacking!