From be00567f3ea2a0d96eaaf0f951c5386a0e909089 Mon Sep 17 00:00:00 2001 From: David Cozens Date: Mon, 20 Jul 2026 11:43:50 +0000 Subject: [PATCH 1/2] docs: add community-health files (CONTRIBUTING, CoC, SUPPORT, issue templates) Adds the standard community-health files reflecting the closed-to-external-code contribution model (PolyForm Noncommercial + commercial dual-licensing): - CONTRIBUTING.md: Core closed; Platform-adapter contributions arranged via the contact form (foreshadows a future permissive path); welcomes issues and discussion; points invited contributors at the in-repo workflow docs. - CODE_OF_CONDUCT.md: Contributor Covenant 2.1, enforcement via the contact form. - SUPPORT.md: docs -> issues -> security -> commercial pointer. - .github/ISSUE_TEMPLATE/: bug report + feature request YAML forms and config.yml disabling blank issues, with GitHub-preferred security reporting. Lights the Contributing and Code-of-conduct community-profile checkmarks (Security already satisfied by SECURITY.md). Closes #584 Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/ISSUE_TEMPLATE/bug_report.yml | 78 ++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 11 ++ .github/ISSUE_TEMPLATE/feature_request.yml | 53 +++++++++ CODE_OF_CONDUCT.md | 132 +++++++++++++++++++++ CONTRIBUTING.md | 69 +++++++++++ SUPPORT.md | 33 ++++++ 6 files changed, 376 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 SUPPORT.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..520fd2f6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,78 @@ +name: Bug report +description: Report a defect in SolidSyslog +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to file a bug. + + **Do not report security vulnerabilities here.** Follow the private + process in `SECURITY.md` instead. + - type: dropdown + id: component + attributes: + label: Affected component + description: Which support tier does this touch? (See SECURITY.md → Scope.) + options: + - Core (Core/) + - Platform adapter (Platform/) + - BDD target (Bdd/Targets/) + - Build / CMake / tooling + - Documentation + - Not sure + validations: + required: true + - type: input + id: version + attributes: + label: Version, tag, or commit SHA + description: Which build are you on? + placeholder: "e.g. v1.2.0, or commit 09372e7" + validations: + required: true + - type: textarea + id: description + attributes: + label: What happened? + description: A clear description of the defect and its impact. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: Minimal steps, configuration, or a code snippet that triggers it. + placeholder: | + 1. Configure SolidSyslog with ... + 2. Call ... + 3. Observe ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected vs actual behaviour + description: What you expected to happen, and what happened instead. + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment + description: Target platform, RTOS/OS, compiler and version, and (if relevant) TLS/TCP/filesystem backend. + placeholder: | + - Target: FreeRTOS on Cortex-M4 / POSIX host / Windows + - Compiler: arm-none-eabi-gcc 13.2 / gcc 13 / MSVC 19.4 + - Backends: FreeRTOS-Plus-TCP, Mbed TLS, FatFs + validations: + required: false + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I searched existing issues and this is not a duplicate. + required: true + - label: This is not a security vulnerability (those go via SECURITY.md). + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..34ec8eef --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: Security vulnerability (preferred) + url: https://github.com/cososo-ltd/solid-syslog/security/advisories/new + about: Report privately via GitHub — never in a public issue. This is our preferred channel. + - name: Security vulnerability (can't use GitHub?) + url: https://cososo.co.uk/security/report + about: Private web form for reporters who cannot use GitHub. See SECURITY.md. + - name: Commercial licensing & paid support + url: https://www.cososo.co.uk/?service=solidsyslog#contact + about: Commercial licence, guaranteed response times, or Platform-adapter contributions. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..f846adb7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,53 @@ +name: Feature request +description: Suggest an enhancement or new capability for SolidSyslog +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for suggesting an improvement. + + Note the contribution model: Core is closed to external code, and + Platform-adapter contributions are arranged by getting in touch — see + `CONTRIBUTING.md`. Feature *requests* are always welcome regardless. + - type: dropdown + id: area + attributes: + label: Area + description: Which part of the library would this affect? + options: + - Core (Core/) + - Platform adapter (Platform/) + - Build / CMake / tooling + - Documentation + - Not sure + validations: + required: true + - type: textarea + id: problem + attributes: + label: Problem or use case + description: What are you trying to do, and where does the library fall short today? + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: What would you like to see? An API sketch or usage example helps. + validations: + required: false + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Other approaches, workarounds, or existing features you've tried. + validations: + required: false + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I searched existing issues and this is not a duplicate. + required: true diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..4a333d8a --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement via the contact +form at [cososo.co.uk](https://www.cososo.co.uk/#contact). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..37af0737 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,69 @@ +# Contributing to SolidSyslog + +Thank you for your interest in SolidSyslog. This document explains what kinds +of contribution the project accepts today, and how to get involved. + +## What's always welcome + +- **Bug reports** — use the issue templates. +- **Feature requests** — use the issue templates. +- **Questions and discussion** — open an issue; see [SUPPORT.md](SUPPORT.md). +- **Security reports** — follow [SECURITY.md](SECURITY.md) (please do **not** + file security issues publicly). + +Well-described issues are genuinely valuable and are the primary way to help +the project. + +## Code contributions + +SolidSyslog is **source-available but closed to unsolicited code +contributions.** The library is dual-licensed — [PolyForm Noncommercial +1.0.0](LICENSE.md) for the free tier, plus a separate commercial licence — and +selling a commercial licence requires that every line can be relicensed. That +means the copyright must stay clean, so external patches cannot simply be +merged. Pull requests are by invitation only. + +### Core (`Core/`) — closed + +Core is the licensed, dual-licensed heart of the library. It is not open to +external code, and unsolicited pull requests against `Core/` will be +respectfully declined. + +### Platform adapters (`Platform/`) — get in touch + +Platform adapters — the glue to a particular RTOS, TCP stack, TLS library, or +filesystem — are exactly the kind of code the community is best placed to +help with, and they are **expected to be modifiable** by integrators. + +We intend to open Platform-tier contributions in future under a permissive +inbound licence (so contributed adapters can ship in both the free and +commercial builds without a contributor licence agreement). That path is not +open yet. + +**In the meantime, if you would like to contribute a Platform adapter, please +[get in touch via the contact form](https://www.cososo.co.uk/#contact).** We'd +rather have the conversation than turn you away — tell us the target you're +porting to and we'll work out how to take it. + +## For invited contributors + +If you have been invited to contribute, the development workflow, coding +standards, and pre-PR check budget are documented in the repository rather than +duplicated here: + +- [`CLAUDE.md`](CLAUDE.md) — git workflow, Conventional Commits, squash-merge, + TDD discipline, CMake presets, project structure and support tiers. +- [`docs/local-checks.md`](docs/local-checks.md) — the tiered pre-PR check + budget (per-commit builds, pre-push analysis, what CI owns). +- [`docs/NAMING.md`](docs/NAMING.md) — the naming scheme and its MISRA posture. + +## Code of conduct + +Participation in this project is governed by our +[Code of Conduct](CODE_OF_CONDUCT.md). + +## Commercial licensing and support + +For commercial licensing, guaranteed response times, or paid support, enquire +via the form at +[cososo.co.uk](https://www.cososo.co.uk/?service=solidsyslog#contact). diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 00000000..8c0f3e7c --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,33 @@ +# Support + +Thanks for using SolidSyslog. Here is where to get help. + +## Documentation first + +- **Integration guides and API reference** live in [`docs/`](docs/) and on the + published documentation site. +- **The public headers** under `Core/Interface/` are the API boundary and are + documented at the declaration. + +## Questions, help, and bugs + +- **Found a bug or want a feature?** Open an issue using the templates — a + clear, reproducible report is the fastest route to a fix. +- **Have a usage question?** Open an issue; there is no separate forum or chat. +- Please search existing issues first — someone may already have asked. + +## Security issues + +Do **not** report security vulnerabilities in public issues. Follow the +private reporting process in [SECURITY.md](SECURITY.md). + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) for the contribution model, including +how to get in touch about Platform-adapter contributions. + +## Commercial support + +Free-tier support is best-effort. For commercial licensing, guaranteed +response times, or paid support, enquire via the form at +[cososo.co.uk](https://www.cososo.co.uk/?service=solidsyslog#contact). From e019ed23266dc192da27cab4007be8efcf80f2cc Mon Sep 17 00:00:00 2001 From: David Cozens Date: Mon, 20 Jul 2026 16:21:49 +0000 Subject: [PATCH 2/2] docs: add question issue form and mark CoC as verbatim Covenant Addresses CodeRabbit review on #635: - Add .github/ISSUE_TEMPLATE/question.yml so "open an issue" for usage questions (promised in CONTRIBUTING.md and SUPPORT.md) has a route now that blank issues are disabled. - Mark CODE_OF_CONDUCT.md as a verbatim reproduction of Contributor Covenant v2.1; the upstream US spelling is kept intentionally, documented as an explicit exception to the repo's UK-spelling convention. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/ISSUE_TEMPLATE/question.yml | 45 +++++++++++++++++++++++++++++ CODE_OF_CONDUCT.md | 6 ++++ 2 files changed, 51 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/question.yml diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 00000000..952717c6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,45 @@ +name: Question / usage help +description: Ask a usage or integration question about SolidSyslog +labels: ["question"] +body: + - type: markdown + attributes: + value: | + Usage and integration questions are welcome — there is no separate forum + or chat. Please check `docs/` and search existing issues first. + + For security concerns, do **not** post here; follow `SECURITY.md`. + - type: dropdown + id: area + attributes: + label: Area + description: Which part of the library is your question about? + options: + - Core (Core/) + - Platform adapter (Platform/) + - Build / CMake / tooling + - Documentation + - Not sure + validations: + required: true + - type: textarea + id: question + attributes: + label: Your question + description: What are you trying to do, and where are you stuck? + validations: + required: true + - type: textarea + id: context + attributes: + label: Context + description: Target platform, backends, and anything you've already tried or read. + validations: + required: false + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I searched existing issues and the docs, and this is not answered already. + required: true diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4a333d8a..5620de98 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,5 +1,11 @@ # Contributor Covenant Code of Conduct + + ## Our Pledge We as members, contributors, and leaders pledge to make participation in our