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-05-05 13:07:47 +03:00
|
|
|
|
**First**: if you're unsure or afraid of anything, just ask on our [Discord
|
|
|
|
|
server][discord-invite-link] or submit the issue or pull request anyway. 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.
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
|
|
|
|
# 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-05-05 13:07:47 +03:00
|
|
|
|
To build Zellij, we're using cargo-make – you can install it by running `cargo
|
|
|
|
|
install --force cargo-make`. To edit a manpage mandown crate (`cargo install
|
|
|
|
|
mandown`) is used and the work is done on a markdown file in docs/MANPAGE.md.
|
2021-04-13 18:06:04 +03:00
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
Zellij has a hard dependency on a package from `x11` most likely called
|
|
|
|
|
`libX11`, or similarly on your system.
|
2021-05-02 17:14:27 +03:00
|
|
|
|
|
2021-04-13 18:06:04 +03:00
|
|
|
|
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
|
2021-04-14 21:11:24 +03:00
|
|
|
|
# Run Zellij (optionally with additional arguments)
|
2021-04-13 18:06:04 +03:00
|
|
|
|
cargo make run
|
2021-04-14 21:11:24 +03:00
|
|
|
|
cargo make run -- -l strider
|
2021-04-13 18:06:04 +03:00
|
|
|
|
# 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-05-05 13:05:05 +03:00
|
|
|
|
# Update manpage
|
|
|
|
|
cargo make manpage
|
2021-02-16 21:40:20 +03:00
|
|
|
|
```
|
|
|
|
|
|
2021-05-05 13:07:47 +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-05-05 13:07:47 +03:00
|
|
|
|
If you are new contributor to `Zellij` going through
|
|
|
|
|
[beginners][good-first-issue] should be a good start or you can join our public
|
|
|
|
|
[Discord server][discord-invite-link], we would be happy to help finding
|
|
|
|
|
something interesting to work on and guide through.
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
[discord-invite-link]: https://discord.gg/feHDHahHCz [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-05-05 13:07:47 +03:00
|
|
|
|
the plugin consider opening [an issue][plugin-issue] and describing your
|
|
|
|
|
requirements.
|
2021-01-25 20:36:24 +03:00
|
|
|
|
|
2021-05-05 13:07:47 +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.
|
2021-05-05 13:07:47 +03:00
|
|
|
|
- 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:
|
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
- 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
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
[code-blocks]:
|
|
|
|
|
https://help.github.com/articles/creating-and-highlighting-code-blocks/
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
|
|
|
|
## Submitting Pull Requests
|
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
Instructions are similar to those for bug reports. Please provide the following
|
|
|
|
|
information:
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
- If this is not a trivial fix, consider **creating an issue to discuss first**
|
|
|
|
|
and **later link to it from the PR**.
|
2021-02-04 12:21:11 +03:00
|
|
|
|
- Use a **clear and descriptive title** for the pull request.
|
2021-05-05 13:07:47 +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.
|
|
|
|
|
|
2021-05-05 13:07:47 +03:00
|
|
|
|
Before submitting your pull request, also make sure that the following
|
|
|
|
|
conditions are met:
|
2021-02-04 12:21:11 +03:00
|
|
|
|
|
|
|
|
|
- Your new code **adheres to the code style** through running `cargo fmt`.
|
2021-05-05 13:07:47 +03:00
|
|
|
|
- Your new code **passes all existing and new tests** through running `cargo
|
|
|
|
|
test`.
|