2020-05-31 04:03:41 +03:00
|
|
|
# Contributing
|
|
|
|
|
|
|
|
🌊 Thank you for contributing to Tide! 🌊
|
|
|
|
|
2020-08-09 04:49:19 +03:00
|
|
|
If you have any questions that aren't addressed in this document, please don't hesitate to open an issue!
|
2020-05-31 04:03:41 +03:00
|
|
|
|
2020-07-19 23:35:19 +03:00
|
|
|
## Code Conventions
|
2020-05-31 04:03:41 +03:00
|
|
|
|
2020-07-19 23:35:19 +03:00
|
|
|
### Style Guide
|
|
|
|
|
2020-07-23 21:33:51 +03:00
|
|
|
- `test` > `[...]`
|
2021-02-20 04:19:30 +03:00
|
|
|
- `&&`/`||` > `and`/`or`
|
|
|
|
- Conditionals
|
|
|
|
- For simple conditionals use `&&`/`||`
|
|
|
|
- Ex: `test -n "$foo" && echo "foo is not empty"`
|
2021-03-26 07:27:10 +03:00
|
|
|
- Ex: `foo || bar || baz`
|
2021-02-20 04:19:30 +03:00
|
|
|
- For anything more complex use `if`, `else`, and `else if`
|
2020-07-23 21:33:51 +03:00
|
|
|
- Piping > command substitution (only when convenient, i.e no extra commands)
|
2020-07-19 23:35:19 +03:00
|
|
|
|
|
|
|
### Naming Conventions
|
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
- Everything should be in `snake_case`.
|
|
|
|
- Anything exposed to the user (variables, files, functions) should begin with `tide_`.
|
|
|
|
- If the user isn't meant to interact with it from the commandline, prepend an underscore.
|
2020-07-19 23:35:19 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
Examples:
|
|
|
|
|
2021-10-14 01:47:56 +03:00
|
|
|
- `set -l split_pwd`
|
2020-07-19 23:35:19 +03:00
|
|
|
- `set -U tide_right_prompt_items`
|
2021-08-13 17:40:32 +03:00
|
|
|
- `_tide_detect_os.fish`
|
|
|
|
- `_tide_print_item`
|
2020-07-19 23:35:19 +03:00
|
|
|
|
|
|
|
#### Specific Naming Conventions
|
|
|
|
|
|
|
|
- Items begin with `_tide_item_`
|
|
|
|
- Subcommands begin with `_tide_sub_`
|
2020-06-16 05:52:37 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
## Makefile
|
2020-08-09 04:49:19 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
Pretty self explanatory.
|
2020-08-09 04:49:19 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
- `make all`
|
|
|
|
- `make fmt`
|
|
|
|
- `make lint`
|
|
|
|
- `make install`
|
|
|
|
- `make test`
|
2020-08-02 23:35:29 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
In general, just run `make` to do everything.
|
2020-08-09 04:49:19 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
### Specifics
|
2020-08-02 23:35:29 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
- [Littlecheck][] - Test driver for command line tools
|
|
|
|
- [Clownfish][] - Override the behavior of commands
|
|
|
|
- Code linting is done via [`fish --no-execute`][].
|
|
|
|
- Markdown and Yaml linting is done via the [Mega-Linter][] action.
|
|
|
|
- Code formatting is done via [`fish_indent`][].
|
|
|
|
- Markdown and Yaml formatting is done via [Prettier][].
|
2020-08-02 23:35:29 +03:00
|
|
|
|
2020-08-09 04:49:19 +03:00
|
|
|
## Documentation Conventions
|
|
|
|
|
|
|
|
All links should be in the [reference style][], with references at the bottom of the document in alphabetical order.
|
|
|
|
|
2021-08-13 20:53:27 +03:00
|
|
|
## Release Checklist
|
2020-08-09 04:49:19 +03:00
|
|
|
|
2021-08-13 17:40:32 +03:00
|
|
|
- [ ] Update version number in `tide.fish`
|
2021-08-13 20:53:27 +03:00
|
|
|
- [ ] Put the current date in the changelog
|
|
|
|
- [ ] Make a commit containing above edits, titled with the version number
|
|
|
|
- [ ] Create a new tag
|
|
|
|
- [ ] Push to GitHub
|
2020-08-09 04:49:19 +03:00
|
|
|
|
|
|
|
[`fish --no-execute`]: https://fishshell.com/docs/current/cmds/fish.html
|
|
|
|
[`fish_indent`]: https://fishshell.com/docs/current/cmds/fish_indent.html
|
2020-09-24 02:50:34 +03:00
|
|
|
[clownfish]: https://github.com/IlanCosman/clownfish
|
2021-01-27 20:40:33 +03:00
|
|
|
[littlecheck]: https://github.com/ridiculousfish/littlecheck
|
2021-03-26 07:27:10 +03:00
|
|
|
[mega-linter]: https://github.com/nvuillam/mega-linter
|
2020-08-02 23:35:29 +03:00
|
|
|
[prettier]: https://github.com/prettier/prettier
|
2020-08-09 04:49:19 +03:00
|
|
|
[reference style]: https://www.markdownguide.org/basic-syntax/#reference-style-links
|