From 62ef8be96683d49a0ecfa3b65afeb595701bc6c8 Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Tue, 28 Apr 2026 23:18:10 +0200 Subject: [PATCH] Add community infrastructure: issue + PR templates, CoC Gitea issue templates (.gitea/issue_template/): - bug.yml: structured form requiring version, environment, what-happened, repro steps, expected, optional logs. Routes security reports to security@librete.ch instead of public issues. - feature.yml: prompts for the underlying problem before the proposed solution, plus alternatives and out-of-scope. Pull request template (.gitea/PULL_REQUEST_TEMPLATE.md): checklist for tests, lint, manual exercise, docs, and changelog. Asks for explicit reviewer notes so trade-offs surface in the PR description rather than being lost in chat. CODE_OF_CONDUCT.md: links to Contributor Covenant 2.1 verbatim rather than inlining; documents scope, reporting address (conduct@librete.ch), and points enforcement at the Covenant's own Enforcement Guidelines. README links the docs/ tree, CONTRIBUTING, and the CoC so new contributors find the entry points. Closes #31. Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitea/PULL_REQUEST_TEMPLATE.md | 29 +++++++++++++++ .gitea/issue_template/bug.yml | 60 +++++++++++++++++++++++++++++++ .gitea/issue_template/feature.yml | 38 ++++++++++++++++++++ CODE_OF_CONDUCT.md | 26 ++++++++++++++ README.md | 13 +++++++ 5 files changed, 166 insertions(+) create mode 100644 .gitea/PULL_REQUEST_TEMPLATE.md create mode 100644 .gitea/issue_template/bug.yml create mode 100644 .gitea/issue_template/feature.yml create mode 100644 CODE_OF_CONDUCT.md diff --git a/.gitea/PULL_REQUEST_TEMPLATE.md b/.gitea/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..e9a7d7f --- /dev/null +++ b/.gitea/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,29 @@ +## Summary + +What does this PR change, and why? + +## Linked issue + +Closes # + +## Changes + +- + +## Testing + +- [ ] `make test` passes locally +- [ ] `make lint` passes locally +- [ ] Added or updated tests for the changed behaviour +- [ ] Manually exercised the affected flow (frontend / API / etc.) + +## Documentation + +- [ ] Updated relevant docs in `docs/` +- [ ] Updated `CHANGELOG.md` if user-visible +- [ ] No documentation change needed + +## Notes for reviewers + +Anything you want a reviewer to look at specifically? Trade-offs +considered? Migrations to flag? diff --git a/.gitea/issue_template/bug.yml b/.gitea/issue_template/bug.yml new file mode 100644 index 0000000..8c96134 --- /dev/null +++ b/.gitea/issue_template/bug.yml @@ -0,0 +1,60 @@ +name: Bug report +about: Something is broken or doesn't work as documented +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to file a bug. Please fill in + as much of the form as you can — the more concrete the + report, the faster we can fix it. + + For security issues, **do not** open a public issue. + Email `security@librete.ch` instead. + - type: input + id: version + attributes: + label: librenotes version + description: Output of `librenotes version` or the Docker image tag. + placeholder: v0.1.0 + validations: + required: true + - type: input + id: environment + attributes: + label: Environment + description: Browser + OS for frontend bugs; OS + Go version for backend bugs. + placeholder: Firefox 124 on macOS 14 / Go 1.22 on Debian 12 + validations: + required: true + - type: textarea + id: what-happened + attributes: + label: What happened? + description: A clear, concrete description of the bug. + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + description: Numbered steps from a clean starting state. + placeholder: | + 1. Sign in as a new user. + 2. Create a note named "Test". + 3. Click the toggle. + 4. ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behaviour + validations: + required: true + - type: textarea + id: logs + attributes: + label: Relevant logs / network traces + description: Any server logs, browser console errors, or HAR snippets. + render: shell diff --git a/.gitea/issue_template/feature.yml b/.gitea/issue_template/feature.yml new file mode 100644 index 0000000..03b7c34 --- /dev/null +++ b/.gitea/issue_template/feature.yml @@ -0,0 +1,38 @@ +name: Feature request +about: Suggest a new capability or improvement +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for proposing a feature. Before opening a request, + please skim the open issues to see if it already exists. + - type: textarea + id: problem + attributes: + label: What problem does this solve? + description: | + Describe the user need first, not the implementation. + "I can't find old notes when I have hundreds" is more + useful than "Add full-text search." + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: How would you like it to work? + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: What other approaches did you think about, and why are they worse? + - type: textarea + id: scope + attributes: + label: Scope + description: | + Out of scope is just as useful as in scope. What does + this proposal NOT include? diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..927b4c1 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,26 @@ +# Code of Conduct + +This project adopts the **Contributor Covenant**, version 2.1, +verbatim. The full text is published at +[contributor-covenant.org/version/2/1/code_of_conduct/](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) +and is the authoritative version that governs participation in +this project. + +## Scope + +The Contributor Covenant applies in all project spaces — issues, +pull requests, code review, the project's communication +channels, and any official events. + +## Reporting + +To report unacceptable behaviour, contact the project maintainers +at `conduct@librete.ch`. All reports will be reviewed and +investigated promptly and fairly. The maintainers are obliged to +respect the privacy and security of the reporter. + +## Enforcement + +Maintainers will follow the Contributor Covenant +[Enforcement Guidelines](https://www.contributor-covenant.org/version/2/1/code_of_conduct/#enforcement-guidelines) +when responding to any reported incident. diff --git a/README.md b/README.md index fa6c5b4..b9c3b6c 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,19 @@ by Alon Swartz, used and redistributed under the MIT License. See [NOTICE](./NOTICE) for the upstream commit hash at fork time and instructions for tracking upstream changes. +## Documentation + +- [User guide](./docs/user-guide.md) +- [Self-hosting](./docs/self-hosting.md) +- [API reference](./docs/api.md) +- [Operations](./docs/operations.md) + +## Contributing + +See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup, conventions, and +the PR process. By participating you agree to the +[Code of Conduct](./CODE_OF_CONDUCT.md). + ## License MIT — see [LICENSE](./LICENSE). Copyright is shared between the original