Skip to content

Comments

Feature: Automatic Extension List Update in profile/README.md#3

Open
wubzbz wants to merge 14 commits intoloongcodium:mainfrom
wubzbz:feat/auto-update-extension-list
Open

Feature: Automatic Extension List Update in profile/README.md#3
wubzbz wants to merge 14 commits intoloongcodium:mainfrom
wubzbz:feat/auto-update-extension-list

Conversation

@wubzbz
Copy link
Contributor

@wubzbz wubzbz commented Jan 9, 2026

This PR transforms the extension compatibility list from a manually maintained document into a structured data management process with automated generation, improving the project's maintainability and collaboration efficiency.

1. What Has Been Added

An automated maintenance workflow for the extension compatibility list, including:

  • CSV data file (scripts/extensions.csv) – Stores extension compatibility information in a structured format
  • Table generator script (scripts/update_readme.py) – Automatically fetches extension information from Open VSX and generates the Markdown table
  • GitHub Actions workflow (.github/workflows/update-readme.yml) – Monitors CSV changes and automatically updates the profile/README.md
  • Detailed contribution guide (CONTRIBUTING.md) – Instructions and specifications for maintainers

2. Benefits

  • Simplified maintenance: Only need to edit a simple CSV file, no manual formatting of complex Markdown tables
  • Consistent formatting: Automatic uniform styling, sorting, and version badges ensure a clean and standardized list
  • Fewer errors: Automatic validation of data format reduces mistakes common in manual editing
  • Automated operation: Updates are executed automatically after a commit or PR merge, eliminating manual intervention

@darkyzhou
Copy link
Contributor

Thanks for the PR! I’m not sure I see why we need the CSV layer, I think the current way feels fine.

@wubzbz
Copy link
Contributor Author

wubzbz commented Jan 14, 2026

Let me illustrate with two examples from PR #5 of how the CSV layer simplifies maintenance:

Example 1: Adding a new extension
Currently, you must manually locate the correct alphabetical position in the Markdown table and craft the entire row:

图片

With the CSV layer, you simply add one line to the end of the file:

facebook.pyrefly, 1, loong-vsx.pyrefly,

The script automatically handles alphabetical sorting, generates all links and badges, and ensures consistent formatting without errors.

Example 2: Updating an existing extension
Currently, you need to find the corresponding row and manually edit the status, notes, and badge color, which is error-prone:

图片

With the CSV layer, you only need to modify one line in the CSV:
(before)

myriad-dreamin.tinymist, 3, , 

(after)

myriad-dreamin.tinymist, 0, , "Requires `tinymist` to be installed on the system beforehand."

My primary goal in creating this automated workflow was to reduce long-term maintenance burden and minimize human error. You may consider whether it is necessary. If you have any questions or require adjustments, I'm happy to collaborate on changes.

Thanks for you time and consideration! 😄

@wubzbz
Copy link
Contributor Author

wubzbz commented Jan 14, 2026

BTW, the link to original pyrefly extension in latest PR #5 appears to be wrong. See this commit. It should be https://open-vsx.org/extension/meta/pyrefly instead of https://open-vsx.org/extension/facebook/pyrefly.
This kind of human error can be rather difficult to find, but you can instantly check it out from abnormal name display if automatic table generator is adopted:

184610

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