docs: add community governance and contribution guidelines
- Add CONTRIBUTING.md with TDD requirements, PR workflow, and AI usage policy - Add CODE_OF_CONDUCT.md based on Contributor Covenant - Add SECURITY.md with vulnerability reporting scope and process - Add AGENTS.md with AI usage policy for human contributors and AI agents - Add CLAUDE.md to require reading AGENTS.md before any work - Add Gitea issue templates for bug reports and feature requests - Add pull request template with TDD and code quality checklist
This commit is contained in:
97
.gitea/ISSUE_TEMPLATE/BUG-REPORT.yml
Normal file
97
.gitea/ISSUE_TEMPLATE/BUG-REPORT.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
name: Bug Report
|
||||
description: File a bug report
|
||||
title: "[Bug]: "
|
||||
labels: ["bug/unconfirmed"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
- type: textarea
|
||||
id: expected-behaviour
|
||||
attributes:
|
||||
label: Expected behaviour
|
||||
description: How do you expect STA to behave?
|
||||
placeholder: "Relay 3 should turn on after calling POST /api/relays/3/toggle"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: Actual behaviour
|
||||
description: How does the actual behaviour differ from the expected behaviour?
|
||||
placeholder: "The relay state remains unchanged and the API returns a 500 error"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduction-steps
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Step-by-step instructions to reproduce the issue reliably
|
||||
placeholder: |
|
||||
1. Start the STA backend with the following configuration: ...
|
||||
2. Send a POST request to /api/relays/3/toggle
|
||||
3. Observe that ...
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: component
|
||||
attributes:
|
||||
label: Affected component
|
||||
description: Which part of STA is affected?
|
||||
options:
|
||||
- Backend API
|
||||
- Frontend
|
||||
- Modbus hardware communication
|
||||
- Configuration
|
||||
- Other / unsure
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: package-version
|
||||
attributes:
|
||||
label: STA version
|
||||
description: What version of STA are you using?
|
||||
options:
|
||||
- main
|
||||
- develop
|
||||
- something else (please specify)
|
||||
- type: dropdown
|
||||
id: source
|
||||
attributes:
|
||||
label: Source of backend
|
||||
description: From which source did you get the backend?
|
||||
options:
|
||||
- Compiled yourself (Nix development shell)
|
||||
- Compiled yourself (non-Nix development shell)
|
||||
- Release binary
|
||||
- Docker image
|
||||
- something else (please specify)
|
||||
- type: dropdown
|
||||
id: os-platform
|
||||
attributes:
|
||||
label: Operating system and platform
|
||||
description: On which OS and hardware are you running the STA backend?
|
||||
options:
|
||||
- Linux (ARM / Raspberry Pi)
|
||||
- Linux (x86_64)
|
||||
- Other (please specify)
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: rust-version
|
||||
attributes:
|
||||
label: Rust version
|
||||
description: If you compiled the binary yourself, which version of Rust did you use?
|
||||
placeholder: "Rust 1.y.z"
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant code or log output
|
||||
description: Please copy and paste any relevant code or log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: text
|
||||
- type: textarea
|
||||
id: other-info
|
||||
attributes:
|
||||
label: Other relevant information
|
||||
description: Please provide any other information which could be relevant to the issue (SQLite version? Upstream bug?)
|
||||
59
.gitea/ISSUE_TEMPLATE/DOCUMENTATION-ISSUE.yml
Normal file
59
.gitea/ISSUE_TEMPLATE/DOCUMENTATION-ISSUE.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
name: Documentation Issue
|
||||
description: Report missing, incorrect, or unclear documentation
|
||||
title: "[Docs]: "
|
||||
labels: ["documentation"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Use this template to report issues in the documentation, such as missing
|
||||
content, incorrect information, or unclear explanations.
|
||||
- type: dropdown
|
||||
id: doc-location
|
||||
attributes:
|
||||
label: Documentation location
|
||||
description: Which part of the documentation is affected?
|
||||
options:
|
||||
- README
|
||||
- CONTRIBUTING.md
|
||||
- Wiki
|
||||
- rustdoc (inline code documentation)
|
||||
- API documentation (OpenAPI / Swagger UI)
|
||||
- specs/ (specifications and constitution)
|
||||
- docs/ (guides)
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: doc-page
|
||||
attributes:
|
||||
label: Specific page or section
|
||||
description: Link or name of the specific page, section, or function affected
|
||||
placeholder: "e.g. docs/cors-configuration.md § Fail-Safe Defaults"
|
||||
- type: dropdown
|
||||
id: issue-type
|
||||
attributes:
|
||||
label: Type of issue
|
||||
options:
|
||||
- Missing documentation (undocumented feature or behaviour)
|
||||
- Incorrect information
|
||||
- Outdated information
|
||||
- Unclear or confusing explanation
|
||||
- Broken link
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Describe the documentation issue in detail
|
||||
placeholder: "The section on X does not explain Y, which is needed to Z..."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: suggested-fix
|
||||
attributes:
|
||||
label: Suggested improvement
|
||||
description: If you have a suggestion for how to fix or improve the documentation, please share it
|
||||
placeholder: "The section should clarify that..."
|
||||
40
.gitea/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
Normal file
40
.gitea/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
name: Feature Request
|
||||
description: Request a new feature
|
||||
title: "[Feature Request]: "
|
||||
labels: ["enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to request a new feature!
|
||||
- type: checkboxes
|
||||
id: pre-submission
|
||||
attributes:
|
||||
label: Pre-submission checklist
|
||||
options:
|
||||
- label: I have searched existing issues and this feature has not already been requested
|
||||
required: true
|
||||
- type: textarea
|
||||
id: feature-description
|
||||
attributes:
|
||||
label: New feature
|
||||
description: Description of the new feature
|
||||
placeholder: "Describe the feature you would like to see added to STA"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: feature-reason
|
||||
attributes:
|
||||
label: Why this new feature
|
||||
description: Describe why this new feature should be added to STA
|
||||
placeholder: "Describe the problem this feature would solve or the value it would add"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: ideas-implementation
|
||||
attributes:
|
||||
label: Implementation ideas and additional thoughts
|
||||
description: Do you have an idea on how to implement it?
|
||||
placeholder: "It could be implemented by..."
|
||||
validations:
|
||||
required: false
|
||||
73
.gitea/ISSUE_TEMPLATE/HARDWARE-COMPATIBILITY.yml
Normal file
73
.gitea/ISSUE_TEMPLATE/HARDWARE-COMPATIBILITY.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
name: Hardware Compatibility Report
|
||||
description: Report compatibility issues with a specific Modbus relay device
|
||||
title: "[Hardware]: "
|
||||
labels: ["hardware", "compatibility"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Use this template to report issues specific to a Modbus relay device that STA
|
||||
fails to communicate with or control correctly.
|
||||
- type: textarea
|
||||
id: device-info
|
||||
attributes:
|
||||
label: Device information
|
||||
description: Manufacturer, model, and firmware version of the relay device
|
||||
placeholder: |
|
||||
Manufacturer: ...
|
||||
Model: ...
|
||||
Firmware: ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: modbus-config
|
||||
attributes:
|
||||
label: Modbus configuration
|
||||
description: The Modbus settings you are using (from your base.yaml or environment variables)
|
||||
placeholder: |
|
||||
host: 192.168.x.x
|
||||
port: 502
|
||||
slave_id: x
|
||||
timeout_secs: x
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected-behaviour
|
||||
attributes:
|
||||
label: Expected behaviour
|
||||
description: What should STA be able to do with this device?
|
||||
placeholder: "STA should be able to read and toggle all 8 relays"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual-behaviour
|
||||
attributes:
|
||||
label: Actual behaviour
|
||||
description: What does STA actually do?
|
||||
placeholder: "STA returns a Modbus exception or times out when writing a coil"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
description: Please paste any relevant STA log output. This will be formatted as code automatically.
|
||||
render: text
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os-platform
|
||||
attributes:
|
||||
label: Operating system and platform
|
||||
description: On which OS and hardware are you running the STA backend?
|
||||
options:
|
||||
- Linux (ARM / Raspberry Pi)
|
||||
- Linux (x86_64)
|
||||
- Other (please specify)
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional-info
|
||||
attributes:
|
||||
label: Additional information
|
||||
description: Any other context that may help, such as Modbus traffic captures, wiring details, or links to the device datasheet
|
||||
Reference in New Issue
Block a user