Releases: alandefreitas/cpp-actions
v1.9.3
🚀 Features
New features and additions
- ✨ gh-inputs: Filter comments and blank lines in multiline inputs. 4137715
🐛 Fixes
Bug fixes and error corrections
- boost-clone: Scan patch module dependencies during submodule init. (fix #28) 9e8a1bb
- b2-workflow: Broadcast module-target to every module instead of positional mapping. (fix #26) f72b80d (thanks @ashtum)
♻️ Refactor
Code refactoring and restructuring
- Modularize long files across all actions and common packages. 091785a
- Schema-driven action definitions with single source of truth.1 fb6761d
📦️ Build
Build system and configuration changes
- Support ESM-only @actions/* v3 packages.2 58a1b2f
- Simplify npm scripts and split build utility.3 7a6f90c
🚦 Continuous Integration
Changes related to continuous integration
- Developer workflow tests and fix workspace build order.4 ec66209
- Check dist bundles against fresh build instead of git history. 0788de7
- Use kebab-case input names for flamegraph and create-changelog.5 d408338
- Use underscore for github_token input in peaceiris/actions-gh-pages. 4ce1e29
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- Bump version to 1.9.3. 5d97986
-
Introduce common/action-schema package that lets each action define inputsand outputs once in a schema.ts file, then derives TypeScript types, runtimeparsing, and action.yml generation from it.- Add action-schema library: types, parser, runner, shared schemas, and action.yml generator- Add schema.ts to all 13 actions, replacing manual input extraction- Wire action.yml generation into npm build pipeline- Add CI checks that fail on stale action.yml or dist/ files- Deduplicate compiler prefix removal, setup inputs, and compiler outputs via shared helpers (createSetupInputs, createCompilerOutputs, createCompilerPrefixRemover)- Auto-discover schema actions instead of hardcoded list. ↩
-
The new @actions/* v3/v4 packages are ESM-only ("type": "module",exports only has "import" condition). This breaks the CJS-based buildpipeline (tsc → esbuild), Jest test runner, and Node.js scripts thatresolve these packages.- Add
conditions: ['import']to esbuild config so bundling resolves ESM export conditions- Add--conditions=importto the update-action-ymls Node.js script- Add custom Jest resolver (jest-resolver.js) for @actions/* packages- Configure Jest to transform ESM node_modules with ts-jest (allowJs)- Bump @actions/core, exec, io, http-client, tool-cache, cache, and artifact to v3/v4 across all workspaces. ↩ -
Replace the monolithic build orchestrator with direct npm scripts.Each script does one thing:- prepare/build: compile all workspaces (via npm run build --workspaces)- test: jest- lint: jsdoc-linter (renamed from lint:jsdoc)- docs: generate documentation (new utils/docs package)- update-data: fetch compiler tags and version data (new utils/update-data package)- validate: update-data + build + test + lintOther changes:- Rename workspace "all" script to "build" (tsc + esbuild in one step)- Reorder workspaces array by dependency order- Remove prepare:foundation/prepare:actions (replaced by --workspaces)- Split utils/build into utils/update-data and utils/docs- Delete dead code: prepare.ts, test.ts, lint.ts, workspace.ts, cli.ts- Add @throws JSDoc to fix lint warnings in setup-program and cmake-workflow- Update CI to run lint step- Update contribute.adoc (scripts reference, project structure, esbuild). ↩
-
The prepare script now builds packages in dependency order:1. Utils/esbuild (no deps)2. Common/trace-commands, gh-inputs, pretty-errors (pretty-errors needs trace-commands)3. Utils packages4. Action packages in dependency order (setup-program first, then dependents)This fixes "Cannot find module" errors on fresh clones where npm wasrunning workspace prepare scripts in parallel without respectingdependencies.Added dev-workflow CI job that tests npm install/build/test on allplatforms, blocking the main build matrix if it fails. ↩
-
The schema-driven action.yml generation converts underscore input namesto kebab-case. Update the CI workflow to match. ↩
v1.9.2
🚀 Features
New features and additions
- ✨ cpp-matrix: More comprehensive Handlebars helper library. 71d0532
- 💫 cmake-workflow: Ctest-timeout input for per-test timeout control. ff2e2fc
- 🌟 release: Rolling major/minor version tags. 52c1b35
🐛 Fixes
Bug fixes and error corrections
- boost-clone: Layer-by-layer discovery for non-release branches. 368e856
⚡️ Performance
Performance optimizations and enhancements
- cpp-matrix: Parallelize failure rate job fetches. a3485a4
♻️ Refactor
Code refactoring and restructuring
- cmake-workflow: Centralize exponential factors with Cartesian product combinator. 03c8ec9
- setup-program: Split APT install logic from find logic. 6ecc62a
v1.9.1
🚀 Features
New features and additions
- cpp-matrix:
- ✨ setup-cpp: Find MSVC executables. 8e9cbc2
- 💫 setup-msvc: Add standalone MSVC setup action. 3187067
- 🌟 Source-mapped error reporting. aa67e0b
- create-changelog:
- ✨ boost-clone: Archive download strategy. 0acc14f
- setup-clang:
🐛 Fixes
Bug fixes and error corrections
- create-changelog:
- package-install: Harden semver handling and document helpers. 324c798
- setup-cmake: Ensure git for tag extraction. 8c8193f
- boost-clone: Restore cache short-circuit and improve logging. 0b2733f
- cpp-matrix:
- tests: Use centralized tsconfig for test compilation. 2b3495c
- cmake-workflow: Add force option to patch copying for overwrites. 07cdd0a
- pretty-errors: Replace youch-terminal.1 7f49ade
- setup-gcc: Install matching g++ to keep C++ toolchain complete. 2a7a236
♻️ Refactor
Code refactoring and restructuring
- docs: Discover actions dynamically in parser. 85d159d
- Migrate codebase to TypeScript with npm workspaces.2 9482107
📖 Documentation
Documentation updates and improvements
- cpp-matrix: Fix a few typos. afe87c1
- Add JSDoc linter and comprehensive inline documentation. 99cb590
- Add JSDoc documentation to all non-exported symbols. a91506c
- create-changelog: Add global installation instructions via npm link. 12e1bac
📦️ Build
Build system and configuration changes
- release: Update prompt defaults. 9ce10e3
- Improve release.sh handling of untracked files. 3f3397b
- Migrate shell scripts to TypeScript utilities. aa3c41d
- docs: Vendor PyYAML for Antora build. dafb9cd
💬 Other
Other changes not covered by specific categories
- Refactor(cpp-matrix) move compiler cache files into an ignored repo directory. 9b55ee2
-
This fixes CI bundling issues. ↩
-
- Convert all 16 action packages from JavaScript to TypeScript- Move source files to src/ directories with tsconfig in .config/- Implement npm workspaces for unified dependency management- Centralize Jest configuration in root jest.config.js- Extract shared utilities to common/ packages: - gh-inputs: action input parsing - pretty-errors: error formatting with source maps - trace-commands: debug logging- Update build.sh to use workspace commands- Convert create-changelog CLI to TypeScript- Update contributor guide for new workflow.
v1.9.0
🚀 Features
New features and additions
🐛 Fixes
Bug fixes and error corrections
- Custom uuidV4. 76b7bbd
- Cache key accounts for all config options. (fix #22) 1220d1d (thanks @ashtum)
- Normalize path inputs for Windows compatibility. (fix #24) a39b39f (thanks @K-ballo)
📖 Documentation
Documentation updates and improvements
- setup-cmake:
- Clarify behavior of check-latest. (fix #19) 0dae13a (thanks @grafikrobot)
- Enhance cmake path descriptions. (fix #18) 6370bd9 (thanks @grafikrobot)
- Important design scope details. (fix #15) bed7043 (thanks @grafikrobot)
- Quick contributor guide. (fix #14) 791cde2 (thanks @grafikrobot)
📦️ Build
Build system and configuration changes
- Depcheck.sh includes common packages. d501f8e
- Release.sh includes consent prompts. 0b605e3
- New update-dependencies.sh script. a1e991e
- Simplify version.sh. 8251a17
- Include a final message aggregating success and error messages. 8504827
- Tag suggestion logic in release script considers feat commits. 65fb75d
- Release.sh has smart checkouts. ecb3d71
- Release.sh can't commit after checking out master.1 f66a76a
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- Update dependencies. (fix #21) 0eddcc4 (thanks @ashtum)
- Gitignore AGENTS.md. 4ffc439
- Version is 1.9.0. 2170767
- Update Windows image references. 09eb74d
- Remove unused package. fa82a2a
-
Changes should already be in develop. ↩
v1.8.12
chore: build files are marked as git binary
v1.8.11
ci: test standards >=14
v1.8.10
v1.8.9
🚀 Features
New features and additions
🐛 Fixes
Bug fixes and error corrections
- Tags match whole line. 1b9c09e
- Use getBoolean function. 5814e5f
- Option env is BUILD_SHARED_LIBS. bfb2b60
- C++17 is supported by clang >=6. c806ba8
- Support maps of size 1. 93929e5 (thanks @betterqualityassuranceuser)
- Handle Source events with no filename. 927fc67
- Max exponential backoff is 1 minute. 8ba734e
⚡️ Performance
Performance optimizations and enhancements
- Setup actions provide default version tags when git fails. 5929559
- Ubuntu versions are fetched during the build process. d4d4dac
♻️ Refactor
Code refactoring and restructuring
- Find git tags looks for latest git version. cc1b015
📖 Documentation
Documentation updates and improvements
- Contributor guide. 7a79185
🧪 Tests
Test cases and testing-related changes
- Update fmt version in fetch-content tests. 33f9edc
🚦 Continuous Integration
Changes related to continuous integration
- Enable fmt vcpkg package when not fetching it. a6db56e
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- Update MSVC versions. fc22731
💬 Other
Other changes not covered by specific categories
- Chore(.gitattributes): add common/dist to eol=lf files. a36f24c
v1.8.8
🚀 Features
New features and additions
🐛 Fixes
Bug fixes and error corrections
♻️ Refactor
Code refactoring and restructuring
- create-changelog:
- Unify finding GCC and Clang versions in the setup-program action. d2ec182
- Modularize core input functions. 95cb680
- boost-clone:
- Javascript action. 2ad0e52
- BoolOrString type validation. 4c7f128
- Remove empty group. 8f1d21d
- Minimize options for single-config generators. 72860fa
📖 Documentation
Documentation updates and improvements
- Handlebars helpers. 7fbfe2f
📦️ Build
Build system and configuration changes
- Tree shaking and minification. 5f83e00
🚦 Continuous Integration
Changes related to continuous integration
- Remove msvc asan factor. efd1af7
🏗️ Chores
Routine tasks, maintenance, and housekeeping
-
Besides footers (
[footer]: [msg]), this commit includes support for tags (#<tag-str>) in commit messages. If tags match common commit types, such asfeat, they are also used to set the type when absent. ↩
v1.8.7
♻️ Refactor
Code refactoring and restructuring
- create-changelog:
- undefined:
- boost-clone:
- flamegraph: Javascript action. () 2ad0e52
- gh-inputs: BoolOrString type validation. () 4c7f128
📦️ Build
Build system and configuration changes
- undefined: Tree shaking and minification. () 5f83e00
🚦 Continuous Integration
Changes related to continuous integration
- undefined: Remove msvc asan factor. () efd1af7