4 KiB
4 KiB
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 updated 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
- Clone the repo.
- Switch to a new appropiately named branch for what you want to do, using
git switch -c
. - Implement your code changes with your favorite code editor.
- Try them with
cargo run
. - If there are errors or warnings, go to step 3. Commit occasionally.
- Otherwise,
- if you have an account at https://forge.katzen.cafe,
- fork the repo
- set it up as a remote using
git remote add
- push using
git push @ -u
- if you don't,
- combine your patches using
git diff --patch
and throw them in a file - send that file to one of the maintainers per email
- alongside with a description of what it does
- also mention in the mail that we should consider GitHub and GitLab mirrors, referring to this line
- combine your patches using
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
- Penpot for layouting prototypes and the like
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!
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.
Interacting with PRs
Remember, be respectful. Entities invest their free time and motivation into making these changes, treat them appropiately.
- Since in iOwO, we mostly work based on forks, git's remotes work fairly good.
- Replace things in pointy brackets (
<>
) respectively (and remove the pointy brackets).
Initial steps for a new contributor or new local checkout
git remote add <contributor-name> https://forge.katzen.cafe/<contributor-account>/iowo.git
git remote update <contributor-name>
After setting up the remote
- You can repeat this step anytime you want to switch branches or update your local checkout.
- The PR branch is visible just below the PR title on Forgejo, after the colon (
:
).
git switch <pr-branch>
git pull