First off, thank you for considering contributing to organice. It’s people like you that make organice such a great tool!
What do we consider a bug? A bug is when an existing feature is broken.
A feature request is to ask for change in an existing feature or to ask for a completely new feature.
Hence, if your request is about a feature that Emacs Org mode has, but organice lacks, this is a feature request, not a bug.
- Ensure the bug or feature was not already reported by searching on GitHub under Issues.
- Ensure that the the bug you want to report is not known behavior by reading the readme and the wiki.
- If you’re unable to find an open issue addressing the problem, open
a new one.
- If you want to report a bug or request a feature, please use the “Bug report” or “Feature request” ticket and fill out the asked for metadata.
- If your request is neither about a bug nor feature, please do open a blank issue.
One of our quality goals is to keep the amount of issues manageable. This means that a single person has to be able to groom the backlog (review the open issues) in a reasonable amount of time.
These are the steps we take to ensure a high quality in the backlog:
- We only keep issues open on a longer term basis that fulfill one of
the following criteria:
- Someone has committed to work on it or plausibly plans to do so in the future
- It is a bug or regression
- If someone files a bug or feature request which is either not clear to the maintainers or is likely not a bug, but known and documented behavior, we ask a question or link to the documentation. We also add a ‘question’ label to the issue. If the issue creator does not respond to the question within 5 days, we close the issue. If she does choose to respond at some point, she can re-open the issue.
If you just want to start a discussion about a new feature or a different kind of change, but do not plan on working on it yourself, you are very welcome to join the community chat: #organice on IRC Libera.Chat, or #organice:matrix.org on Matrix on Matrix. We are looking forward to seeing you there!
Alternatively, if you really want a change implemented, you can hire one of the maintainers to do the work. If you want to hire us to implement a change request, please send us an email to info@200ok.ch.
The documentation is generated from README.org
and various other files.
The section on building documentation explains how it is assembled.
We have good quality assurance and an established workflow. This is it:
- Open a new GitHub pull request
- In the form of a User Story (As
<persona>
, [When I<state>
], I want<something>
, so that<measurable achievement>
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
- New Branch in Git
- Naming:
(feature|fix|chore)/issue-id/short-description
- If your PR includes a substantial change to the overall architecture, consider writing an architecture decision record.
- Develop / Test locally until tests pass
- We use prettier-eslint to format code, which combines both
prettier
andeslint --fix
for the best of both worlds. This repository includes.prettierrc.json
and.eslintrc.yml
with some configuration options that Prettier will use automatically. - Run
yarn prettier-eslint --write
to automatically format the whole codebase, oryarn prettier-eslint --list-different
to see which files don’t currently match the repository’s style. - If you’re using Emacs, you can autoformat your source files: https://github.com/munen/emacs.d/#auto-formatting
- Please use
eslint
to ensure that your changes conform with our linting rules. You can runyarn eslint
to check for rule violations, and alsoyarn nibble
to tackle them one category at a time. yarn lint
will run both sets of linters.
- We use prettier-eslint to format code, which combines both
- Create Pull Request on Github to
master
- Check that the tests also pass on CI
- Core Team: Merge to
master
, deploy and accept the Issue on Github
An issue is done when:
- Functionality has been implemented
- Functionality has been verified
- Surrounding main functionality has been regression tested
- Code has been reviewed
- Proper code style
- Code has tests (acceptance tests for user visible changes, otherwise at least unit tests)
- Follows clean code guidelines and architecture best practices
- Code has been documented
- Code has been merged
- Tested on supported browsers
Clean code guidelines
- Create small and highly cohesive modules
- Avoid long modules and classes
- Extract modules to separate responsibilities
- Create small methods or functions
- Avoid long methods or functions
- Extract methods or functions to separate responsibilities
- Do one thing
Thanks!🙏🙇
organice Team
200ok llc and all contributors