Skip to content

chore(repo): add monthly curation workflow for community plugins#35321

Draft
FrozenPandaz wants to merge 1 commit intomasterfrom
refine-community-plugins
Draft

chore(repo): add monthly curation workflow for community plugins#35321
FrozenPandaz wants to merge 1 commit intomasterfrom
refine-community-plugins

Conversation

@FrozenPandaz
Copy link
Copy Markdown
Contributor

Current Behavior

The approved community plugins list at astro-docs/src/content/approved-community-plugins.json has no automated curation. Dead, abandoned, or Nx-incompatible plugins remain listed indefinitely, since there is no recurring process to check their maintenance status. The submission docs also only vaguely reserve "the right to remove unmaintained plugins" without spelling out what that means.

Expected Behavior

Adds a monthly scheduled GitHub Actions workflow (curate-community-plugins.yml) that runs an assessment script over every listed plugin and opens a PR to prune entries that no longer meet the bar. Also updates the publish-plugin docs to make the removal criteria explicit for submitters.

Assessment signals (per plugin):

  • npm last-month downloads and last publish date (from registry.npmjs.org)
  • Declared Nx peer/dep range (prefers @nx/devkit, falls back to @nx/workspace, nx)
  • GitHub repo status: stars, archived flag, 404 detection (via gh api)

Verdicts:

  • healthy — none of the below
  • stale — more than 12 months since last publish, or fewer than 100 downloads/month
  • incompatible — declared Nx range does not include any of the last 3 majors (current − 2)
  • abandoned — GitHub repo is 404, archived, or last published more than 24 months ago

Pruning (triggered by the --prune flag, which the workflow passes):

  • Removes abandoned and incompatible plugins from approved-community-plugins.json
  • Commits, pushes a new branch, and opens a PR detailing each removal
  • stale plugins are kept but flagged in the PR description

Safety:

  • All HTTP/CLI errors (non-404) throw rather than silently returning empty data, so a rate-limited or misconfigured run fails loudly instead of producing a misleading PR
  • The workflow only triggers on schedule (1st of every month at 09:00 UTC) and workflow_dispatch — never on pull_request — so externals cannot invoke it
  • No community plugin code is ever executed; only npm and GitHub metadata APIs are read

Local usage:

# Assessment only — writes report to tmp/notes/
npx tsx scripts/documentation/assess-community-plugins.ts

# Assessment + remove + commit + push + open PR
npx tsx scripts/documentation/assess-community-plugins.ts --prune

Docs update (astro-docs/src/content/docs/extending-nx/publish-plugin.mdoc):
Replaces the vague "we reserve the right to remove unmaintained plugins" aside with the concrete removal criteria listed above, along with rationale for the 24-month cutoff (Nx ships a major version every six months, so two years is four Nx majors behind).

Related Issue(s)

None.

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 17, 2026

Deploy Preview for nx-docs ready!

Name Link
🔨 Latest commit 653d8a5
🔍 Latest deploy log https://app.netlify.com/projects/nx-docs/deploys/69e1ada4d74acc0008aa65a4
😎 Deploy Preview https://deploy-preview-35321--nx-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 17, 2026

Deploy Preview for nx-dev ready!

Name Link
🔨 Latest commit 653d8a5
🔍 Latest deploy log https://app.netlify.com/projects/nx-dev/deploys/69e1ada4bef2ed00095ee050
😎 Deploy Preview https://deploy-preview-35321--nx-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud bot commented Apr 17, 2026

View your CI Pipeline Execution ↗ for commit 653d8a5

Command Status Duration Result
nx affected --targets=lint,test,build,e2e,e2e-c... ✅ Succeeded 13m 25s View ↗
nx run-many -t check-imports check-lock-files c... ✅ Succeeded 8s View ↗
nx-cloud record -- pnpm nx-cloud conformance:check ✅ Succeeded 17s View ↗
nx build workspace-plugin ✅ Succeeded <1s View ↗
nx-cloud record -- nx sync:check ✅ Succeeded 24s View ↗
nx-cloud record -- nx format:check ✅ Succeeded 14s View ↗

☁️ Nx Cloud last updated this comment at 2026-04-17 04:06:58 UTC

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.

1 participant