Open
Conversation
🦋 Changeset detectedLatest commit: f1abb37 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
d026b6a to
92a9bc4
Compare
d3e25e8 to
d9791bd
Compare
2c4c1d0 to
0b4575c
Compare
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
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:
14.1.1→15.3.0Release Notes
seek-oss/skuba (skuba)
v15.3.0Compare Source
Minor Changes
deps: Require Node.js 22.18.0+ (#2261)
This change should only impact projects using
skuba build-packagelint: Migrate tsdown configs to support 0.21 (#2261)
This patch attempts to migrate the
external,noExternal,inlineOnlyandskipNodeModulesBundlefields to their new equivalents and setsfailOnWarntotrue.Read the tsdown release notes for more information.
Patch Changes
lint: Avoid scaffolding pnpm-workspace.yaml in yarn repos (#2278)
deps: @ast-grep/lang-yaml ^0.0.6 (#2281)
deps: @ast-grep/lang-json ^0.0.7 (#2280)
deps: tsdown ~0.21.0 (#2261)
v15.2.0Compare Source
Minor Changes
build: Add experimental rolldown build support (#2275)
skuba now supports rolldown as a build mode. You can opt in by setting
"build": "rolldown"in yourskubaconfig inpackage.json, which will invoke rolldown using a config file:{ "skuba": { - "build": "esbuild", + "build": "rolldown", "template": "koa-rest-api", "type": "application" } }See the rolldown documentation for details on configuring rolldown via a config file.
Example config file (
rolldown.config.mjs):Patch Changes
lint: Disable
trustPolicyandstrictDepBuilds(#2276)Due to issues with how
pnpmparses thetrustPolicyandstrictDepBuildsoptions, we are disabling them temporarilyThese will be re-enabled in a future release once the underlying issues have been resolved.
v15.1.0Compare Source
Minor Changes
lint: Restore managed
pnpm-workspace.yamlsections (#2265)This patch restores sections of
pnpm-workspace.yamlthat were previously removed in the previous release because Renovate is not fully compatible with pnpm config dependencies.These new managed sections should allow for greater flexibility than the previous configurations. Please reach out if you run into any issues.
Patch Changes
v15.0.1Compare Source
Patch Changes
v15.0.0Compare Source
Major Changes
build-package: Migrate to tsdown (#2194)
As part of our migration to ESM, we are updating our package build process to support generating both CJS and ESM outputs, regardless of whether projects use CJS or ESM. Since our current tsc-based build does not support this, we are switching to tsdown for package builds.
lint: Enable
allowBuilds,trustPolicy,blockExoticSubdepsandignorePatchFailuresinpnpm-plugin-skuba(#2188)In light of recent security vulnerabilities plaguing the JavaScript ecosystem, we are enabling some additional pnpm features to help mitigate the risk of supply chain attacks.
We have allowlisted a set of known packages as our default but you may need to update your
pnpm-workspace.yamlconfiguration to add any additional packages you use that are not included in the default allowlist.Example:
lint: Migrate
pnpm-workspace.yamlskuba configuration topnpm-plugin-skuba(#2188)This change replaces the managed skuba section in
pnpm-workspace.yamlwith a pnpm configuration plugin.The migration includes removing the
minimumReleaseAgeExcludeOverloadsettings frompackage.jsonand migrating them topnpm-workspace.yamlThis simplifies the managed configuration
skubaprovides, allowing you to override and extend previously un-configurable settings such asminimumReleaseAgefrom yourpnpm-workspace.yamlfile.Example:
lint: Migrate
skuba build-packageusage to use tsdown for building packages (#2194)This patch will attempt to do a best effort migration of your
skuba build-packageusage to use tsdown for building packages. It is highly recommended that you manually review and test the changes. This includes:tsdown.config.mtsfile to your package directories with a basic configurationcustomConditionsentry to your roottsconfig.jsonfileskipLibCheckto your packagetsconfig.jsonfiles to work around issues with type checking againsttsdown.package.jsonfiles to point to the new build outputsassetsusage to usetsdowncopyconfigurationtsconfig.build.jsonfilesFile changes
The output between what
skuba build-packagegenerates before and after this change will be different, so you may need to update any references to the output files in your project.For example the output for a simple
src/index.tsfile produces the following outputs:This change may break consumers who directly access these output paths.
To check if your consumers are affected, search GitHub with:
org:SEEK-Jobs content:"@​seek/MY_PACKAGE/"If needed, export those references from your package entry point to help consumers migrate to the new build outputs.
Note: if you choose to remove the
unbundle: trueoption fromtsdown.config.mts, tsdown may emit bundled/chunked outputs and internallib/...file paths can change between builds. Consumers should avoid importing from build output files directly, and instead import from the package entry point (or explicitly exported sub paths)Format changes
tsdownselects what ECMAScript target version to build for based on theengines.nodefield in yourpackage.json.This means that for consumers previously relying on the
lib-es2015output may need to update their runtime to match your package'sengines.nodefield.An example changeset you may want to include for a package:
Debugging
Additional Entrypoints
If your package has additional entry points, for example:
You will need to add them as additional entry points in your
tsdown.config.mtsfile, for example:This must be followed by a run of
skuba build-packagewhich will update yourpackage.jsonexports field.attw (Are the types wrong?)
If you run into the following error:
You have a couple different options to resolve this:
tsdown.config.mtsand update theattwconfiguration to use anode16profile. This tells the attw tool to ignore thenode/node10module resolution. Projects using skuba 13 or above will be compatible with this by default.import { defineConfig } from 'tsdown/config'; export default defineConfig({ entries: ['src/index.ts', 'src/subpath/index.ts'], - attw: true, + attw: { + profile: 'node16', + }, });package.jsonfileFor an entrypoint such as
@seek/my-package/foo, create a folder calledfoowith an additionalpackage.jsonfile with the following content.{ "main": "../lib/foo/index.cjs", "module": "../lib/foo/index.mjs", "types": "../lib/foo/index.d.cts" }and ensure that the folder is exported in your
filesarray in your rootpackage.jsonfile.{ "files": ["lib", "foo"] }Jest
If your project utilises a
mainfield which points to a.tsfile within a monorepo setup, eg.You may need to create a
moduleNameMapperentry in your Jest config files to point to the source file, eg.{ "moduleNameMapper": { "^@​seek/my-package": "<rootDir>/packages/my-package/src/index.ts" } }This will work natively with custom conditions when we migrate to
vitestin the future, but is required for Jest to continue working with the new build outputs.Minor Changes
init: Add support for private SEEK templates (#2198)
Adds support for downloading templates from the private SEEK-Jobs/skuba-templates repository. Users can now select "seek →" from the template list and specify a private template name, which will be downloaded using sparse checkout via SSH.
template/*-npm-package: Migrate to
tsdownfor bundling (#2193)lint: Ignore
coverage,dist,libandtmpfolders at any depth (#2256)Patch Changes
deps: @ast-grep/napi ^0.41.0 (#2245)
template/lambda-sqs-worker-cdk: Update Datadog secret configuration to support custom KMS keys (#2239)
Configuration
📅 Schedule: Branch creation - "after 3:00 am and before 6:00 am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined).
🚦 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.