Skip to content

More usermod doc tweaks#331

Merged
willmmiles merged 5 commits into
mainfrom
more-usermod-docs
Jun 13, 2026
Merged

More usermod doc tweaks#331
willmmiles merged 5 commits into
mainfrom
more-usermod-docs

Conversation

@willmmiles

@willmmiles willmmiles commented Jun 12, 2026

Copy link
Copy Markdown
Member
  • Fix documentation for using example usermod as a template. Fork-based workflows don't work on GitHub.
  • Fix PlatformIO syntax for local usermod checkouts, (symlink://, not file://). I really should've caught this one earlier!
  • Add warning box to community usermods page
  • Add license column to community usermods page

Summary by CodeRabbit

  • Documentation
    • Added a prominent “Community content — use at your own risk” warning about unreviewed third‑party usermods and potential risks
    • Updated the usermod index/table to include a License column and adjusted example rows for clarity
    • Revised contribution and local development guidance to simplify setup and include repository-template and symlink-based instructions

willmmiles and others added 4 commits June 11, 2026 03:10
GitHub doesn't support multiple forks of the same repo, so instead the
example usermod should be used as a template.
Symlink instructs PlatformIO to track changes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 03f4dc32-b77e-4373-a9b3-407332648588

📥 Commits

Reviewing files that changed from the base of the PR and between f4ff5fa and 4ba4afc.

📒 Files selected for processing (1)
  • docs/advanced/custom-features.md
✅ Files skipped from review due to trivial changes (1)
  • docs/advanced/custom-features.md

Walkthrough

This PR adds a prominent community-use warning and a License column to the community usermods index, and updates the usermod development guide to prefer template-based repos and symlink-based local development paths.

Changes

Usermod Documentation Improvements

Layer / File(s) Summary
Community usermod index with safety disclosures
docs/advanced/community-usermods.md
Added community-content warning describing lack of official review/testing and risks of third-party usermods. Restructured Index table to include a License column and updated contribution instructions to require the license field in PR rows.
Usermod development workflow and local setup
docs/advanced/custom-features.md
Replaced fork-based usermod creation guidance with creating a new repository from the wled-usermod-example template. Updated local development configuration to reference custom_usermods via symlink:// URLs (including Windows format) in platformio_override.ini instead of file:// URLs.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • wled/WLED-Docs#312: Established the initial community usermods index structure that this PR extends with license tracking and safety warnings.

Suggested reviewers

  • DedeHai

Poem

🐰 I tied a symlink, neat and small,
A template made to help you all.
A warning hops upon the page,
“Use at your own risk” — wisdom for the age.
Happy hacking, hop onstage! 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title "More usermod doc tweaks" is vague and does not clearly convey the main changes in the PR, which include fixing fork-based workflows, correcting PlatformIO syntax, adding a warning, and introducing a license column. Use a more specific title that highlights the primary changes, such as "Update usermod documentation with symlink syntax, warnings, and license tracking" or focus on the most critical change.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch more-usermod-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/advanced/community-usermods.md`:
- Around line 9-31: The warning blanket currently states all listed usermods are
community-maintained but the table includes an official module (`user_fx` by
`@wled`) and the example template (`wled-usermod-example`), so update the text to
scope the warning to third-party usermods only: either change the heading/body
to say "third-party usermods" and ensure official entries like `user_fx` are
exempt, or move official entries (`user_fx`, `wled-usermod-example`) into a
separate "Official/Included modules" section and keep the warning box above the
third-party list; update any wording that implies the project doesn't maintain
those specific official modules accordingly.

In `@docs/advanced/custom-features.md`:
- Around line 66-76: Update the Windows symlink URI example in the docs to use
the correct PlatformIO format with two slashes
(symlink://C:/Users/you/projects/my-wled-usermod) instead of the triple-slash
form; leave the POSIX example (`symlink:///home/you/projects/my-wled-usermod`)
unchanged so the `platformio_override.ini` snippet and the explanatory sentence
reflect the proper `symlink://<path>` syntax.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 96a562c9-73e3-4219-a960-47cbe84633ce

📥 Commits

Reviewing files that changed from the base of the PR and between 282779a and f4ff5fa.

📒 Files selected for processing (2)
  • docs/advanced/community-usermods.md
  • docs/advanced/custom-features.md

Comment on lines +9 to +31
!!! warning "Community content — use at your own risk"
The usermods listed below are created and maintained by community members, **not** the WLED development team.
**The WLED project does not review, test, endorse, or provide support for any of these modules.**

Open a pull request to [WLED-Docs](https://github.com/wled/WLED-Docs) adding a row to the table below. One row, one PR.
Usermods are native C++ code compiled directly into your WLED firmware. A usermod runs with
**full, unrestricted access** to your device's hardware, network, and memory — there is no
sandbox or permission system to limit what it can do. Before installing a third-party build:

- **Read the source code** (or have someone you trust read it) before flashing.
- Be aware that a malicious or poorly written usermod could expose your network, **brick your
device**, or behave in ways its description does not mention.
- Only flash firmware from sources you trust. Prefer builds you compile yourself from
reviewed source code over pre-compiled binaries distributed by strangers.

The WLED project cannot verify the safety or quality of community usermods.
**You are solely responsible for any third-party code you choose to run on your devices.**

## Index

| Name | Description | Author | Platforms | License | Notes |
|---|---|---|---|---|---|
| [wled-usermod-example](https://github.com/wled/wled-usermod-example) | Annotated template — use as template to start your own usermod | @wled | both | EUPL | Official starting point |
| [user_fx](https://github.com/wled/WLED/tree/main/usermods/user_fx) | Community effects usermod — add your own effects here or use as a template | @wled | both | EUPL | Ships with WLED; enable with `custom_usermods = user_fx` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Scope the warning to third-party usermods.

The box says every usermod below is community-maintained, but Line 31 also lists user_fx, which is marked as shipping with WLED and authored by @wled. Narrow the warning or split the official example out so the statement stays accurate.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/advanced/community-usermods.md` around lines 9 - 31, The warning blanket
currently states all listed usermods are community-maintained but the table
includes an official module (`user_fx` by `@wled`) and the example template
(`wled-usermod-example`), so update the text to scope the warning to third-party
usermods only: either change the heading/body to say "third-party usermods" and
ensure official entries like `user_fx` are exempt, or move official entries
(`user_fx`, `wled-usermod-example`) into a separate "Official/Included modules"
section and keep the warning box above the third-party list; update any wording
that implies the project doesn't maintain those specific official modules
accordingly.

Comment thread docs/advanced/custom-features.md Outdated
@willmmiles willmmiles merged commit 71b6fd1 into main Jun 13, 2026
1 check passed
@netmindz netmindz deleted the more-usermod-docs branch June 14, 2026 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants