mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-15 13:22:19 +01:00
85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# Contributing to komorebi-recorder
|
|
|
|
The project is a collection of contributions from both the project leaders and
|
|
community members. There are many ways to contribute, this can include content
|
|
in the project repositories, as well as contributing in public and private
|
|
conversation, assisting users, writing blog posts, and many other ways.
|
|
|
|
## How contributions are made
|
|
|
|
Contributions to the project primarily happen in the project source
|
|
repositories, but may also occur in other places, such as discussion forums and
|
|
public and private discourse.
|
|
|
|
## Contributing content to the Project
|
|
|
|
In order for the project leaders to manage sustained progress toward the
|
|
project goals and maintain project velocity, focus and quality, the project may
|
|
adjust the license terms over time.
|
|
|
|
Content contributed to the project must therefore be provided under
|
|
sufficiently liberal terms to allow these operations to proceed unimpeded. As
|
|
such contributions are accepted with the following understanding:
|
|
|
|
* Contributed content is licensed under the terms of the 0-BSD license
|
|
* Contributors accept the terms of the project license at the time of
|
|
contribution
|
|
|
|
By making a contribution, you accept both the current project license terms,
|
|
and that all contributions that you have made are provided under the terms of
|
|
the 0-BSD license.
|
|
|
|
## Zero-Clause BSD
|
|
|
|
```
|
|
Permission to use, copy, modify, and/or distribute this software for
|
|
any purpose with or without fee is hereby granted.
|
|
|
|
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
|
|
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
|
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
|
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
|
|
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
|
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
```
|
|
|
|
## Development environment
|
|
|
|
The recorder is built in the komorebi repository, with Nix. `nix develop` provides the Rust toolchain with
|
|
nightly `rustfmt`, `cargo-deny`, `cargo-nextest`, `ffmpeg`, `jq`, `just`, `resvg` and `ripgrep`, and on Linux the
|
|
GStreamer libraries. The recorder indexes the log statements of the komorebi source around it
|
|
(`komorebi-recorder/build.rs`), so the tests that read it need no setting: `KOMOREBI_SRC` and
|
|
`KOMOREBI_COMMIT` are only for a build outside a checkout (nix).
|
|
|
|
The default `nix develop` shell cross-compiles for `x86_64-pc-windows-msvc`, which type-checks the Windows code
|
|
from a Mac or Linux machine (`just` drops that target for the native recipes). `nix develop .#native` leaves the
|
|
target out. Nothing there runs the Windows code: a change to a `cfg(windows)` line is first run by the
|
|
Windows workflow in CI.
|
|
On a Windows machine, the steps in [windows-checkpoints.md](dev/windows-checkpoints.md)
|
|
say what to run and what to look for.
|
|
|
|
The icon is `komorebi-recorder/assets/watermelon.svg`. After changing it, run `just icon` to render the PNG that
|
|
the windows set and the ICO that Windows embeds, and commit the three together.
|
|
|
|
## Checks
|
|
|
|
Before pushing, run
|
|
|
|
```sh
|
|
just fmt
|
|
just lint
|
|
nix build -L .#checkSets.recorder-lint .#checkSets.recorder-test .#checkSets.fmt .#checkSets.deny
|
|
```
|
|
|
|
which formats, runs the macros the codebase does not allow, and runs clippy and the tests of the recorder, the
|
|
format checks and `cargo deny` of the workspace. `just --list` shows the other recipes.
|
|
|
|
## Commits
|
|
|
|
Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/), as the pull request
|
|
template asks: the release notes are generated from them.
|
|
|
|
A change that alters what the documentation says (the rustdoc, the README, `docs/`) updates the
|
|
documentation in the same commit, so that the documentation never describes code that is not there.
|