Repository navigation
deps: skuba 16.4.0 - #258
Merged
Merged
Conversation
|
72636c
approved these changes
Oct 14, 2026
72636c
enabled auto-merge (squash)
October 14, 2026 01:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
16.3.0→16.4.0Release Notes
seek-oss/skuba (skuba)
v16.4.0Compare Source
Minor Changes
deps: Replace
@inquirer/promptswith@clack/prompts(#2564c887c8d)This internal change only affects the
skuba initinteractive prompts.lint: Replace Prettier with Oxfmt (#2557
438204c)skuba lintandskuba formatnow use Oxfmt instead of Prettier. Benchmarks show Oxfmt to be up to 30x faster.Oxfmt may format some code differently from Prettier, so you may see diffs in existing files particularly in
package.jsonfiles.skuba will attempt to auto-migrate your Prettier configuration to Oxfmt. Any manual calls to
prettierin any scripts will need to be manually replaced withoxfmt.Prettier
overridesare not automatically migrated. If your configuration applies different options to certain files, port them across to Oxfmt'soverridesyourself.Update your VS Code settings to use the Oxc extension instead of Prettier:
{ "[typescript]": { "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "oxc.oxc-vscode", + "editor.formatOnSave": true } }You may need to reload the IDE for formatting to work after the migration is complete.
oxfmtandoxc-config-seekare now hoisted in place ofprettier.lint: Disable
import-x/order(#2557438204c)As part of our transition to Oxfmt and Oxlint, import order is now handled by Oxfmt. Keeping
import-x/orderenabled conflicts with Oxfmt'ssortImportssetting.skuba formatrewriteseslint-disablecomments forimport-x/order(and legacyimport/order) tooxfmt-ignore, so intentional import order is preserved. Oxfmt only honours a comment whose body is exactlyoxfmt-ignore, so any-- reasonis moved to a separate comment above it:To restore the previous behavior, you can add the following rule to your ESLint config:
init: Support scaffolding into an existing repository (#2547
dc61c18)skuba initnow detects when it is run from inside an existing pnpm workspace and offers to scaffold the new project as an additional workspace project rather than a standalone repo. Any template works in this mode, whether it's a package or an application such as a Lambda worker or an API. Because detection is location-based, it asks you to confirm before switching modes.In this mode,
skuba init:git init, remote and push setup.gitignore,.prettierignore,.prettierrc.js,eslint.config.js,.dockerignore,.npmrc,.nvmrc, Renovate,.githuband.vscodepnpm-workspace.yamlwhen it isn't already covered, preserving surrounding keys, comments and formattingserviceNamefor services,moduleNamefor packages) rather than asking for the same thing twice. Where a template validates that field, the project name pre-fills the prompt instead of replacing it.Only pnpm workspaces (detected via a root
pnpm-workspace.yaml) are supported in this mode. Yarn/npm workspaces and plain Git repositories keep the standalone behaviour, and runningskuba initoutside of a repository is unchanged.Rolldown: Add
Rolldown.lambdaAssetplugin (#2543dcffd07)A new rolldown plugin that prepares a bundle output directory for deployment as a Lambda function, so CDK can pick it up with a plain
aws_lambda.Code.fromAsset.The plugin writes an ESM
package.json, and installs anynodeModulesinto the output directory with pnpm, copying across your workspace config and patches. The generatedpackage.jsonforwards your package manager pin by copying across thepackageManageranddevEnginesfields of your workspace rootpackage.json, so the install runs on the same pnpm version as your project. Install-only files, including.npmrc, are stripped from the output afterwards. It can also copy extraassetsinto the output directory alongside your bundle.It supports ESM output and pnpm only. It leaves the rest of your rolldown config alone, and does not wrap CDK.
skuba buildalso forwards a--config/-cflag through to rolldown, so a package can ship multiple bundles from separate config files, e.g.skuba build --config rolldown.worker1.config.ts.SEEKers can hand off the migration from
NodejsFunctiontoRolldown.lambdaAssetto the CDK Lambda bundling migration skill, which is also available via the seek-ai-toolkit.deps: vitest v5.0.0 (#2575
5bc2247)This release contains breaking changes. Please see the vitest v5.0.0 release notes for more information.
deps: @changesets/cli ^3.0.0 (#2562
8375293)deps: tsdown ~0.23.0 (#2574
8d3c9a7)This release contains breaking changes, please see the release notes for details.
skuba formatrewritesattw: truetoattw: { profile: 'node16' }so packages keep node16-compatible attw checks instead of picking up tsdown's newesm-onlydefault.lint: Migrate default
createLoggerimports from@seek/loggerto named imports (#258555aa6cd)skuba formatnow rewrites default imports ofcreateLoggerfrom@seek/loggerto named imports, including mixed named imports:lint: Run pnpm codemod to upgrade to pnpm v11 (#2388
acf31c2)The migration is skipped in projects using
aws-cdk-libNodejsFunction. The construct writes an emptypnpm-workspace.yamlinto its bundling output directory before runningpnpm install, which discards theallowBuildsallowlist that pnpm v11 requires. Affected projects stay on pnpm v10; see the pnpm deep dive for the recommended alternative.The skuba-managed settings written to
pnpm-workspace.yamlare now chosen based on the pnpm major version a project pins viapackageManagerordevEngines.packageManager, so projects that stay on pnpm v10 keep their v10 settings. Projects that do not pin pnpm are left alone.test: Upgrade skuba in CI before running tests (#2598
dd5ce1d)skuba testapplies skuba patches in CI before Vitest runs, then commits and pushes those changes when GitHub autofixes are enabled. The push still happens when the follow-up lint is clean.test: Annotate individual test failures on GitHub check runs (#2575
5bc2247)Vitest.mergePresetnow registers a reporter that creates askuba/testcheck run per Vitest project when running in CI with a GitHub API token. Test failures are annotated against the offending lines, so they show up in the Checks and Files changed tabs of a pull request.This restores functionality that was previously available when Jest was used as test runner.
Patch Changes
deps: Drop direct dependencies on
concurrentlyandnpm-run-path(#2602c490d44)template/*: Switch to repoName for custom conditions templating (#2565
f9f0911)deps: Remove
npm-registry-fetchdependency (#260728a7c7e)deps: @octokit/types ^17.0.0 (#2548
222af24)deps: @octokit/types ^18.0.0 (#2579
dd96c23)deps: simple-git ^4.0.0 (#2586
93a6207)deps: Replace
fast-globwith Node.jsfs.glob(#260352acb5a)template/oss-npm-package: Pin tsdown
attwto{ profile: 'node16' }so new packages keep node16-compatible checks instead of tsdown'sesm-onlydefault. (#25748d3c9a7)deps: vite 8 (#2634
cbaf058)lint: Sort skuba-managed entries in
pnpm-workspace.yaml(#25921da1387)Within each skuba-managed setting such as
publicHoistPatternandallowBuilds, skuba-managed entries are now sorted alphabetically at the top, and any entries you've added are kept in their original order below them.is rewritten to:
pnpm-workspace.yamlis now patched with theyamlpackage, so user comments and quoting are preserved more reliably.Your next
skuba lintmay report thatpnpm-workspace.yamlis out of date. Runskuba formatto reorder it.template/oss-npm-package: Migrate to changesets/action action v2 (#2580
f35cea0)Updated dependencies:
Configuration
📅 Schedule: (in timezone Australia/Melbourne)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.