2021-02-10 09:41:55 +03:00
|
|
|
|
# Contributing to Zellij
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-10 09:41:55 +03:00
|
|
|
|
Thanks for considering to contribute to Zellij!
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-04 12:21:11 +03:00
|
|
|
|
**First**: if you're unsure or afraid of anything, just ask on our
|
2021-02-04 16:18:47 +03:00
|
|
|
|
[Discord server][discord-invite-link] or submit the issue or pull request anyway.
|
2021-02-04 12:21:11 +03:00
|
|
|
|
You won't be yelled at for giving it your best effort. The worst that can happen
|
|
|
|
|
is that you'll be politely asked to change something. We appreciate any sort
|
|
|
|
|
of contributions, and don't want a wall of rules to get in the way of that.
|
|
|
|
|
|
|
|
|
|
# Code of Conduct
|
|
|
|
|
|
2021-01-25 20:36:24 +03:00
|
|
|
|
Before contributing please read our [Code of Conduct](CODE_OF_CONDUCT.md) which
|
|
|
|
|
all contributors are expected to adhere to.
|
|
|
|
|
|
2021-02-16 21:40:20 +03:00
|
|
|
|
## Building
|
2021-04-13 18:06:04 +03:00
|
|
|
|
To build Zellij, we're using cargo-make – you can install it by running `cargo install --force cargo-make`.
|
|
|
|
|
|
|
|
|
|
Here are some of the commands currently supported by the build system:
|
2021-02-16 21:40:20 +03:00
|
|
|
|
|
|
|
|
|
```sh
|
2021-04-13 20:14:13 +03:00
|
|
|
|
# Format code, build, then run tests and clippy
|
2021-04-13 18:06:04 +03:00
|
|
|
|
cargo make
|
|
|
|
|
# You can also perform these actions individually
|
|
|
|
|
cargo make format
|
|
|
|
|
cargo make build
|
|
|
|
|
cargo make test
|
|
|
|
|
# Run Zellij (optionally with a non-default layout)
|
|
|
|
|
cargo make run
|
|
|
|
|
cargo make run strider
|
|
|
|
|
# Run Clippy (potentially with additional options)
|
|
|
|
|
cargo make clippy
|
|
|
|
|
cargo make clippy -W clippy::pedantic
|
|
|
|
|
# Install Zellij to some directory
|
|
|
|
|
cargo make install /path/of/zellij/binary
|
|
|
|
|
# Publish the zellij and zellij-tile crates
|
|
|
|
|
cargo make publish
|
2021-02-16 21:40:20 +03:00
|
|
|
|
```
|
|
|
|
|
|
2021-04-13 18:06:04 +03:00
|
|
|
|
To run `install` or `publish`, you'll need `binaryen --version` > 97, for it's command `wasm-opt`.
|
2021-02-24 19:05:19 +03:00
|
|
|
|
|
2021-02-04 12:21:11 +03:00
|
|
|
|
## Looking for something to work on?
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-10 09:41:55 +03:00
|
|
|
|
If you are new contributor to `Zellij` going through [beginners][good-first-issue]
|
2021-02-04 12:21:11 +03:00
|
|
|
|
should be a good start or you can join our public
|
2021-02-04 16:18:47 +03:00
|
|
|
|
[Discord server][discord-invite-link], we would be happy to help
|
2021-02-04 12:21:11 +03:00
|
|
|
|
finding something interesting to work on and guide through.
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-04 12:21:11 +03:00
|
|
|
|
[discord-invite-link]: https://discord.gg/feHDHahHCz
|
2021-02-10 09:41:55 +03:00
|
|
|
|
[good-first-issue]: https://github.com/zellij-org/zellij/labels/good%20first%20issue
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-04 12:21:11 +03:00
|
|
|
|
## Filing Issues
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-04 12:21:11 +03:00
|
|
|
|
Bugs and enhancement suggestions are tracked as GitHub issues.
|
|
|
|
|
|
2021-02-10 09:41:55 +03:00
|
|
|
|
### Lacking API for plugin in Zellij?
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-10 09:41:55 +03:00
|
|
|
|
If you have a plugin idea, but Zellij still doesn't have API required to make
|
2021-02-04 12:21:11 +03:00
|
|
|
|
the plugin consider opening [an issue][plugin-issue] and describing your requirements.
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-02-10 09:41:55 +03:00
|
|
|
|
[plugin-issue]: https://github.com/zellij-org/zellij/issues/new?assignees=&labels=plugin%20system
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
2021-02-04 16:21:00 +03:00
|
|
|
|
### How Do I Submit A (Good) Bug Report?
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
|
|
|
|
After you've determined which repository your bug is related to and that the
|
|
|
|
|
issue is still present in the latest version of the master branch, create an
|
|
|
|
|
issue on that repository and provide the following information:
|
|
|
|
|
|
|
|
|
|
- Use a **clear and descriptive title** for the issue to identify the problem.
|
|
|
|
|
- Explain which **behavior you expected** to see instead and why.
|
|
|
|
|
- Describe the exact **steps to reproduce the problem** in as many details as necessary.
|
2021-02-04 16:18:47 +03:00
|
|
|
|
- When providing code samples, please use [code blocks][code-blocks].
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
2021-02-04 16:21:00 +03:00
|
|
|
|
### How Do I Submit A (Good) Enhancement Suggestion?
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
|
|
|
|
Instructions are similar to those for bug reports. Please provide the following
|
|
|
|
|
information:
|
|
|
|
|
|
|
|
|
|
- Use a **clear and descriptive title** for the issue to identify the suggestion.
|
|
|
|
|
- Provide a **description of the suggested enhancement** in as many details as necessary.
|
2021-02-04 16:18:47 +03:00
|
|
|
|
- When providing code samples, please use [code blocks][code-blocks].
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
|
|
|
|
[code-blocks]: https://help.github.com/articles/creating-and-highlighting-code-blocks/
|
|
|
|
|
|
|
|
|
|
## Submitting Pull Requests
|
|
|
|
|
|
|
|
|
|
Instructions are similar to those for bug reports. Please provide the following information:
|
|
|
|
|
|
|
|
|
|
- If this is not a trivial fix, consider **creating an issue to discuss first** and **later link to it from the PR**.
|
|
|
|
|
- Use a **clear and descriptive title** for the pull request.
|
2021-02-05 18:33:24 +03:00
|
|
|
|
- Follow [Conventional Commit specification](https://www.conventionalcommits.org/en/v1.0.0/)
|
|
|
|
|
where sufficiently large or impactful change is made.
|
2021-02-04 12:21:11 +03:00
|
|
|
|
- Provide a **description of the changes** in as many details as necessary.
|
|
|
|
|
|
|
|
|
|
Before submitting your pull request, also make sure that the following conditions are met:
|
|
|
|
|
|
|
|
|
|
- Your new code **adheres to the code style** through running `cargo fmt`.
|
|
|
|
|
- Your new code **passes all existing and new tests** through running `cargo test`.
|