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) <noreply@anthropic.com>
This commit is contained in:
@@ -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?
|
||||||
@@ -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
|
||||||
@@ -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?
|
||||||
@@ -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.
|
||||||
@@ -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
|
[NOTICE](./NOTICE) for the upstream commit hash at fork time and
|
||||||
instructions for tracking upstream changes.
|
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
|
## License
|
||||||
|
|
||||||
MIT — see [LICENSE](./LICENSE). Copyright is shared between the original
|
MIT — see [LICENSE](./LICENSE). Copyright is shared between the original
|
||||||
|
|||||||
Reference in New Issue
Block a user