Skip to content

Modernize - #400

Merged
bergie merged 7 commits into
masterfrom
modernize
Oct 10, 2026
Merged

bergie merged 7 commits into
masterfrom
modernize

Conversation

@bergie

@bergie bergie commented Oct 10, 2026

Copy link
Copy Markdown
Member

No description provided.

- Convert all sources to ES Modules, with node: prefixes on stdlib imports,
  an exports map, and engines requiring Node.js 20+
- Replace Bluebird and callback-style APIs with native Promises and async/await
- Replace isomorphic-fetch with native fetch, commander with util.parseArgs,
  and slug with a local slugifier
- Reimplement expectation operators on node:assert, dropping Chai
- Keep Node-specific imports (fs, child_process) lazy so the library
  stays bundleable for browsers
- Replace grunt-yaml with scripts/build-schemas.js, which also emits
  a browser-loadable schema/schemas.js module
- Replace Mocha/Chai/grunt/karma/eslint test stack with node:test and
  node:assert; add a JavaScript mock FBP runtime so end-to-end tests
  run without the Python example runtime
- Remove the Mocha runner integrations (fbpspec.mocha.run and
  fbp-spec-mocha compat runtime), the webpack/babel browser build,
  and the Karma browser test harness
- Add Biome linting/formatting via .editorconfig, and tsc type checking
  with JSDoc types (tsconfig.json, types.d.ts)
The project has no external contributors (only the original authors),
so the license is updated from MIT to the European Union Public Licence
v1.2 (EUPL-1.2).
Replace CHANGES.md with CHANGELOG.md, restructured into the
Keep a Changelog format, with an Unreleased section documenting
the modernization.
- Remove claims about the Mocha runner, browser build and
  Flowhub integration, which have been removed
- Update license reference to EUPL-1.2
- Add library usage examples using the Promise-based ESM API
- Update CLI documentation for the current options
- Test against Node.js 20 and 22, and use current action versions
- Publish to npm via OpenID Connect with provenance, replacing
  the legacy NPM_TOKEN secret authentication
- Remove the Dependabot auto-merge configuration
The project has significant third-party contributions, so the
proposed EUPL-1.2 relicensing is reverted and the MIT license kept.
- Let the shell expand the spec glob in the test script: quoted globs
  are only handled by node --test itself since Node 21, so the CI job
  on older Node failed with 'Could not find spec/*.test.js'
- Test against Node.js 24 and 26 in CI, and publish on Node 26
- Drop the protocol-examples submodule checkout, as tests now use
  the JavaScript mock runtime
- Restrict publish workflow permissions to contents: read + id-token: write
@bergie
bergie merged commit fe6b3d4 into master Oct 10, 2026
4 checks passed
@bergie
bergie deleted the modernize branch October 10, 2026 03:06
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