Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/skills/update-readme-docs/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: update-readme-docs
description: 'Update the plugin documentation sections in README.md (config example, supported types, join maps, feedbacks, methods). Use when: documenting a plugin, refreshing README after code changes, cleaning up generated README sections.'
---

# Update README plugin docs

Regenerates the marker-delimited documentation sections in `README.md` on the current branch, then reviews them.

## Procedure

1. From the repo root, run `dotnet msbuild -t:UpdateReadmeDocs` (the `UpdateReadmeDocs` target in `src/Directory.Build.targets`, implemented in `build/ReadmeDocs.cs`). Requires only the .NET SDK. Do not switch branches.
2. Read `git diff README.md` and compare each generated section against the source in `src/`:
- **Minimum Essentials Framework Versions**: one entry per distinct `MinimumEssentialsFrameworkVersion` in the factories; do not edit by hand or mark it `<!-- SKIP -->`, or it stops following version bumps.
- **Supported Types**: must match every `TypeNames` entry in the plugin's factory classes (any file name).
- **Config Example**: `type` is set by the target to the first `TypeNames` entry of the first C# file (by file name) that sets `TypeNames`; do not change it by hand. The target also removes the unused `uid` property. Always regenerated: do not edit it by hand or mark it `<!-- SKIP -->` (the marker is ignored). Each property's value comes from the first `<example><code>` block on that property that contains its JSON name; `pollTimeMs`, `warningTimeoutMs` and `errorTimeoutMs` default to `30000`, `180000` and `300000`. If a property still shows `SampleString`/`SampleValue`, add or fix the `<example>` block on it in the config class (`MakeModelPropertiesConfig.cs` in the template), using the JSON name exactly, then run the target again.
- **Join Maps**: generated from classes deriving from `JoinMapBaseAdvanced`, whatever their file name. If a join is missing (for example a `JoinDataComplete` without `JoinNumber` or `JoinType`), write the table by hand from the definitions and mark the section `<!-- SKIP -->`.
- **Base Classes / Interfaces**: the target lists the base classes (Base Classes) and interfaces (Interfaces) declared by the plugin's device classes, excluding factories and join maps. Verify against `src/`; do not edit by hand unless you add `<!-- SKIP -->`. Interfaces uses the generator's `Interfaces Implemented` markers and is empty when there are none.
- **Public Methods / Feedbacks**: remove noise (non-public API, base classes of factories, template-only members) by hand and mark `<!-- SKIP -->`; for a section that does not apply, keep the markers with only `<!-- SKIP -->` between them (deleting the markers does not work, the generator re-adds them).
3. Ensure a blank line precedes each `<!-- START ... -->` marker and the file ends with a newline.
4. Do not edit anything outside the `<!-- START -->`/`<!-- END -->` blocks.
5. Report which sections were regenerated, hand-edited (now `<!-- SKIP -->`), or removed. Do not commit unless asked.

## Rules

- `<!-- SKIP -->` inside a section makes the generator leave it untouched on later runs, except the Config Example, which is always regenerated. Use it only for sections you curated by hand, and say so in the summary.
- Never fabricate joins, feedbacks, or config properties; derive everything from `src/`.
14 changes: 0 additions & 14 deletions .github/workflows/essentialsplugins-updatereadme-caller.yml

This file was deleted.

Empty file removed .gitmodules
Empty file.
2 changes: 1 addition & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

## Lints the commit message against the Conventional Commits rules enforced in CI
## Lints the commit message against Conventional Commits (rules in .husky/csx/commit-lint.csx)
dotnet husky run --group commit-msg --args "$1"
21 changes: 19 additions & 2 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
"label": "Restore dotnet tools",
"type": "process",
"command": "dotnet",
"args": ["tool", "restore"],
"args": [
"tool",
"restore"
],
"presentation": {
"reveal": "silent",
"close": true
Expand All @@ -16,7 +19,10 @@
"label": "Install git hooks",
"type": "process",
"command": "dotnet",
"args": ["husky", "install"],
"args": [
"husky",
"install"
],
"dependsOn": "Restore dotnet tools",
"presentation": {
"reveal": "silent",
Expand All @@ -26,6 +32,17 @@
"runOn": "folderOpen"
},
"problemMatcher": []
},
{
"label": "Update README docs",
"type": "process",
"command": "dotnet",
"args": [
"msbuild",
"-nologo",
"-t:UpdateReadmeDocs"
],
"problemMatcher": "$msCompile"
}
]
}
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) <2020> PepperDash Technology Corporation
Copyright (c) 2020-2026 PepperDash Technology Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
Loading
Loading