From 7bd4263fabb90cba08df75c2cd9c71a5628e375c Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 28 Sep 2026 17:04:49 +0100 Subject: [PATCH] Add dependabot, workflows, and community guidelines --- .github/dependabot.yml | 9 ++++++ .github/workflows/links.yml | 23 +++++++++++++++ code-of-conduct.md | 58 +++++++++++++++++++++++++++++++++++++ contributing.md | 38 ++++++++++++++++++++++++ lychee.toml | 18 ++++++++++++ 5 files changed, 146 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/links.yml create mode 100644 code-of-conduct.md create mode 100644 contributing.md create mode 100644 lychee.toml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..478231b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: monthly + groups: + actions: + patterns: ["*"] diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml new file mode 100644 index 0000000..1774c9a --- /dev/null +++ b/.github/workflows/links.yml @@ -0,0 +1,23 @@ +name: Dead links + +on: + push: + paths: ['**.md', '.github/workflows/links.yml', 'lychee.toml'] + pull_request: + paths: ['**.md', '.github/workflows/links.yml', 'lychee.toml'] + schedule: + - cron: '0 6 * * 1' + workflow_dispatch: + +permissions: + contents: read + +jobs: + lychee: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: lycheeverse/lychee-action@v2 + with: + args: --config lychee.toml '**/*.md' + fail: true diff --git a/code-of-conduct.md b/code-of-conduct.md new file mode 100644 index 0000000..ee64c1f --- /dev/null +++ b/code-of-conduct.md @@ -0,0 +1,58 @@ +# 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, 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: + +- 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. +- Focusing on what is best for the overall community. + +Examples of unacceptable behavior: + +- 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 these standards +and will take appropriate and fair corrective action in response to any behavior +that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the maintainers by opening an issue or contacting them privately +through GitHub. All complaints will be reviewed and investigated promptly and +fairly. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), +version 2.1, available at +. diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..c7e53ae --- /dev/null +++ b/contributing.md @@ -0,0 +1,38 @@ +# Contribution Guidelines + +Thanks for helping keep this list useful. + +## Adding an entry + +- Open a pull request that adds one entry per line, in this format: + `- [Name](https://example.com) - Short description.` +- Keep the description short, factual and ending with a period. +- Place the entry in the most specific existing section. Only propose a new + section when several entries would live in it. +- Keep entries in alphabetical order within their section (case-insensitive, + ignoring a leading "The"). Entries described as "Official" stay at the top. + Official Resources, Social Media, Closed Source, Supported Devices and + Pre-built Devices keep their curated order. +- Entries must be MeshCore-related, working and maintained. Dead links and + abandoned projects are removed. +- Check that the entry is not already listed elsewhere in the readme; duplicate + links fail CI. +- Do not add your own project more than once, and do not add affiliate links. + +## Quality bar + +An entry needs a reason to exist: firmware, client, library, tool, map, +documentation or community that a MeshCore operator would actually use. +Marketing pages, link farms and empty repositories are rejected. + +## Before opening the pull request + +- Run the linter: `npx awesome-lint`. +- Verify every link you added resolves (the `Dead links` workflow runs + [lychee](https://github.com/lycheeverse/lychee) on all Markdown files). +- Use a descriptive pull request title, for example `Add MeshCore Foo`. + +## Updating or removing an entry + +Corrections, renames and removals of dead projects are welcome. Explain the +reason in the pull request description. diff --git a/lychee.toml b/lychee.toml new file mode 100644 index 0000000..a689184 --- /dev/null +++ b/lychee.toml @@ -0,0 +1,18 @@ +# Config for lycheeverse/lychee link checker. +max_concurrency = 8 +max_retries = 3 +retry_wait_time = 5 +timeout = 30 +no_progress = true +user_agent = "Mozilla/5.0 (compatible; lychee link checker)" + +# Bot protection (Cloudflare, Reddit, Play Store, GitHub rate limits) answers +# real requests with these codes; treat them as reachable. +accept = ["200..=206", "403", "429", "503"] + +exclude = [ + # Login walls / heavy JS, cannot be validated headlessly. + "^https://www\\.facebook\\.com", + "^https://discord\\.gg", + "^https://t\\.me", +]