Skip to content

Conversation

avivkeller
Copy link
Member

Fixes #3
Closes #185


This PR makes a few substantial changes to improve the DX of this tool.

  • Moves from INI/env files in templates/ to JSON configurations in configs/, this'll make it easier to edit and parse (See fix(properties): allow quote-less props #185 for an example of dotenv struggles)
  • Adds a --dry-run argument, as, when testing this, it's important not to create the issues and notes
  • Adds, and relies on, npx-style support. (i.e. npx . tsc or npx https://github.com/nodejs/create-node-meeting-artifacts tsc
    • With this in mind, it makes sense to put the entrypoint in src/, since it no longer really needs to be easily accessible for scripts, it'll be npx-ed.
  • Moves from a custom template system to Mustache.
  • Uses a dynamic matrix in GH Actions
  • Removes obsolete teams (with archived repositories)

The goal here is:

  • Improve DX
  • Less code to maintain

For example, running npx . web --dry-run produces:

[dry-run] Would create HackMD meeting notes document.
[dry-run] Would create GitHub issue with title: Node.js Web Team Meeting 2025-09-29
[dry-run] Would use the following content:
 ## Time

**UTC Mon, Sep 29, 2025, 07:00 PM**:

| Timezone | Date/Time |
| -------- | --------- |
| US / Pacific | Mon, Sep 29, 2025, 12:00 PM |
| US / Mountain | Mon, Sep 29, 2025, 01:00 PM |
| US / Central | Mon, Sep 29, 2025, 02:00 PM |
| US / Eastern | Mon, Sep 29, 2025, 03:00 PM |
| EU / Western | Mon, Sep 29, 2025, 08:00 PM |
| EU / Central | Mon, Sep 29, 2025, 09:00 PM |
| EU / Eastern | Mon, Sep 29, 2025, 10:00 PM |
| Moscow | Mon, Sep 29, 2025, 10:00 PM |
| Chennai | Tue, Sep 30, 2025, 12:30 AM |
| Hangzhou | Tue, Sep 30, 2025, 03:00 AM |
| Tokyo | Tue, Sep 30, 2025, 04:00 AM |
| Sydney | Tue, Sep 30, 2025, 05:00 AM |

Or in your local time:

* https://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+Node.js%20Web%20Team+Meeting+2025-09-29&iso=20250929T190000
* https://www.wolframalpha.com/input/?i=07%3A00%20PM+UTC%2C+Sep%2029%2C%202025+in+local+time

## Links

* https://hackmd.io/dry-run

## Agenda

Extracted from **web-agenda** labelled issues and pull requests from @nodejs prior to the meeting.

### nodejs/doc-kit

* Generate Type Declarations [#437](https://github.com/nodejs/doc-kit/issues/437)

### nodejs/nodejs.org

* content(`userland-migration`): make up to date [#8053](https://github.com/nodejs/nodejs.org/pull/8053)

### nodejs/web-team

* Create Means for Private Communications [#14](https://github.com/nodejs/web-team/issues/14)

## Invited

* @nodejs/web

### Observers/Guests


## Joining the meeting

* To join this meeting, visit <https://zoom-lfx.platform.linuxfoundation.org/meeting/91972207331?password=419d8029-a3c7-4536-9666-d9e97c0f0f93>.
* To observe this meeting, visit <https://livestream.openjsf.org>.
[dry-run] Would update HackMD document with self-referencing link.
[dry-run] Would use the following notes content:
 ## Time

**UTC Mon, Sep 29, 2025, 07:00 PM**:

| Timezone | Date/Time |
| -------- | --------- |
| US / Pacific | Mon, Sep 29, 2025, 12:00 PM |
| US / Mountain | Mon, Sep 29, 2025, 01:00 PM |
| US / Central | Mon, Sep 29, 2025, 02:00 PM |
| US / Eastern | Mon, Sep 29, 2025, 03:00 PM |
| EU / Western | Mon, Sep 29, 2025, 08:00 PM |
| EU / Central | Mon, Sep 29, 2025, 09:00 PM |
| EU / Eastern | Mon, Sep 29, 2025, 10:00 PM |
| Moscow | Mon, Sep 29, 2025, 10:00 PM |
| Chennai | Tue, Sep 30, 2025, 12:30 AM |
| Hangzhou | Tue, Sep 30, 2025, 03:00 AM |
| Tokyo | Tue, Sep 30, 2025, 04:00 AM |
| Sydney | Tue, Sep 30, 2025, 05:00 AM |

Or in your local time:

* https://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+Node.js%20Web%20Team+Meeting+2025-09-29&iso=20250929T190000
* https://www.wolframalpha.com/input/?i=07%3A00%20PM+UTC%2C+Sep%2029%2C%202025+in+local+time

## Links

* https://hackmd.io/dry-run
* https://github.com/dry-run/issue

## Agenda

Extracted from **web-agenda** labelled issues and pull requests from @nodejs prior to the meeting.

### nodejs/doc-kit

* Generate Type Declarations [#437](https://github.com/nodejs/doc-kit/issues/437)

### nodejs/nodejs.org

* content(`userland-migration`): make up to date [#8053](https://github.com/nodejs/nodejs.org/pull/8053)

### nodejs/web-team

* Create Means for Private Communications [#14](https://github.com/nodejs/web-team/issues/14)

## Invited

* @nodejs/web

### Observers/Guests


## Joining the meeting

* To join this meeting, visit <https://zoom-lfx.platform.linuxfoundation.org/meeting/91972207331?password=419d8029-a3c7-4536-9666-d9e97c0f0f93>.
* To observe this meeting, visit <https://livestream.openjsf.org>.
Created GitHub issue: https://github.com/dry-run/issue
Created HackMD document: https://hackmd.io/dry-run
Dry run mode: no data was created or updated.

@Copilot Copilot AI review requested due to automatic review settings September 28, 2025 20:09
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR performs a major refactoring to improve the developer experience by migrating from INI/env files to JSON configurations, replacing custom templating with Mustache, adding dry-run support, and enabling npx-style usage. The primary goal is to simplify configuration management and reduce maintenance overhead.

  • Migrates configuration from templates/ directory with custom parsing to structured JSON configs/ directory
  • Replaces custom template system with industry-standard Mustache templating
  • Adds --dry-run flag for testing without creating artifacts

Reviewed Changes

Copilot reviewed 117 out of 142 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/index.mjs New main entry point with Commander.js CLI and dry-run support
template.hbs Single Mustache template replacing multiple custom templates
configs/*.json JSON configuration files replacing template-based config system
src/meeting.mjs Simplified meeting logic using JSON configs and Mustache
package.json Updated dependencies and entry points for npx support

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@avivkeller avivkeller marked this pull request as draft September 28, 2025 20:33
@avivkeller avivkeller force-pushed the use-json-use-templates-use-npx-add-dry-run branch from 819adb5 to 37d1262 Compare September 30, 2025 20:10
@avivkeller avivkeller marked this pull request as ready for review September 30, 2025 20:10
@Copilot Copilot AI review requested due to automatic review settings September 30, 2025 20:10
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 117 out of 142 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

src/config.mjs:1

  • The comments reference outdated configuration properties. The meetingGroup is now handled by commander in src/index.mjs, and google.clientId is not used anywhere in the codebase. These comments should be updated to reflect the actual usage.
/**

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@avivkeller avivkeller force-pushed the use-json-use-templates-use-npx-add-dry-run branch from c4b93cb to 6436c01 Compare September 30, 2025 20:12
@avivkeller avivkeller force-pushed the use-json-use-templates-use-npx-add-dry-run branch from 6436c01 to 0ea464b Compare September 30, 2025 20:12
@richardlau richardlau mentioned this pull request Oct 3, 2025
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.

TODO: use template for issue
1 participant