diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..50eeec5 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,11 @@ +See https://www.rust-lang.org/policies/code-of-conduct. +The current maintainers, that is, + +- [@Schrottkatze](https://forge.katzen.cafe/schrottkatze) +- [@multisamplednight](https://forge.katzen.cafe/multisamplednight) +- @iota-xSK + +are the entities to email, message or talk to if you feel like any interaction in the context of +iOwO is not okay. We'll try to answer as soon as we can. + +Please do **not** open an issue. Notify the maintainers privately instead. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..461b274 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,85 @@ +# Contributing to iOwO + +Before we get started, thank you for thinking about doing so! + +## Through an issue + +- Be excellent to each other. Adhere to the [code of conduct]. +- About the title: If you had 5 seconds to tell someone the essence of the issue, what would it be? + +### Bugs + +- Write out in detail which steps in which order are necessary to reproduce the bug. +- Include environmental information as well, in specific + - How did you install iOwO? + - What version of iOwO are you running? + - What operating system are you running? + In the case of a Linux distro, mention the specific distro and when you last update as well. +- If the bug causes a crash, try to get a backtrace or in worse cases, a coredump. + +### Feature requests + +- Be sure to include a motivation in which case your intended feature would be used, + even if it seems obvious to you. +- Estimate what would be needed to implement the feature. + - Is it an addition to the language itself? + - Is it just a new command? + - Does it ground-breakingly change how iOwO works? + +## Through a PR + +1. Clone the repo. +2. Switch to a new appropiately named branch for what you want to do, using `git switch -c`. +3. Implement your code changes with your favorite code editor. +4. Try them with `cargo run`. +5. If there are errors or warnings, go to step 3. Commit occasionally. +6. Otherwise, + - if you have an account at https://forge.katzen.cafe, + 1. fork the repo + 2. set it up as a remote using `git remote add` + 3. push using `git push @ -u` + - if you don't, + 1. combine your patches using `git diff --patch` and throw them in a file + 2. send that file to one of the maintainers per email + - alongside with a description of what it does + +### Tech stack + +The techstack we operate on is + +- [typst] for documents and concrete proposals +- [Rust] for the actual code +- [Inkscape], [GIMP] and [Blender] for promotional material like logos and posters + +So if you want to contribute functionality, take a look at [The Rust Programming Language book]! +If you want to contribute thoughts and techincal designs, then consider taking a ride through +[typst's excellent tutorial]! +If you want to contribute art or the like, do that in whatever **you** are most comfortable with! + +[typst]: https://typst.app +[Rust]: https://www.rust-lang.org +[Inkscape]: https://inkscape.org/ +[GIMP]: https://www.gimp.org/ +[Blender]: https://www.blender.org/ +[The Rust Programming Language book]: https://doc.rust-lang.org/book/ +[typst's excellent tutorial]: https://typst.app/docs/tutorial + +## Politics + +- Current maintainers are defined as the entities listed in the [code of conduct]. + +### PRs + +- Every PR requires an approving review from a maintainer (that is not the author) before merge. +- Maintainers can merge their own PRs. + - But only after approval. + +### Major decisions + +- All current maintainers have to agree **unanimously**. +- Agreement must be based on [informed consent]. + - In effect, a maintainer has to understand what they agree to. + +[code of conduct]: ./CODE_OF_CONDUCT.md +[informed consent]: https://en.wikipedia.org/wiki/Informed_consent +