Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/bold-sites-fix.md

This file was deleted.

14 changes: 0 additions & 14 deletions .changeset/cuddly-clubs-marry.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/easy-months-cheer.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/fine-phones-serve.md

This file was deleted.

14 changes: 0 additions & 14 deletions .changeset/floppy-icons-laugh.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/full-taxes-poke.md

This file was deleted.

15 changes: 0 additions & 15 deletions .changeset/funky-rice-grin.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/gold-days-accept.md

This file was deleted.

29 changes: 0 additions & 29 deletions .changeset/green-hairs-clean.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/grumpy-kids-cough.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/jolly-sloths-argue.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/olive-forks-kiss.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/open-things-learn.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/plain-meals-pick.md

This file was deleted.

14 changes: 0 additions & 14 deletions .changeset/prune-prod-deps.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/public-llamas-beam.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/renovate-0eda5be.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/renovate-3a9777f.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/renovate-62b1326.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/renovate-7d08cce.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/renovate-a6551ec.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/renovate-c2d9fd6.md

This file was deleted.

10 changes: 0 additions & 10 deletions .changeset/ripe-rockets-tan.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/shaggy-kiwis-hug.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/stale-moments-camp.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/strict-flowers-fetch.md

This file was deleted.

109 changes: 109 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,114 @@
# skuba

## 16.0.0

### Major Changes

- **build, lint, test:** Migrate to ESM ([#2124](https://github.com/seek-oss/skuba/pull/2124))

As part of our [migration to ESM](https://seek-oss.github.io/skuba/docs/deep-dives/esm.html), skuba's source code is now pure ESM.

skuba will attempt to automatically transition your project to ESM and migrate your tests from Jest to Vitest.

The test migration will require some manual adjustments if you were using Jest-specific libraries for features. skuba will scaffold a new Vitest config for you, but will not attempt to migrate your existing Jest config.

For package publishers, `skuba build-package` should handle publishing dual ESM/CJS packages automatically. Test your packages thoroughly after the migration to confirm everything works as expected.

View the [migration guide](https://seek-oss.github.io/skuba/docs/cli/migrate#skuba-migrate-esm) for more details.

- **test:** Migrate to Vitest ([#2274](https://github.com/seek-oss/skuba/pull/2274))

`skuba test` now calls [Vitest](https://vitest.dev/) as the test runner instead of Jest.

**Breaking change:** Unlike Jest, when running `skuba test` on your local machine, Vitest will run in watch mode by default. When run in CI, Vitest will run in non-watch mode.

You can explicitly set the mode by passing the `--watch` or `--no-watch` flags to `skuba test` or use `skuba test run` to run in non-watch mode locally:

```shell
skuba test --watch
skuba test watch
```

```shell
skuba test --no-watch
skuba test run
```

`skuba test` will forward any additional arguments to Vitest, so you can also use Vitest's CLI flags:

```shell
skuba test --ui
```

This opens up the Vitest UI in your browser, which provides a visual interface for running and debugging tests

### Minor Changes

- **start:** Support named `app` export ([#2324](https://github.com/seek-oss/skuba/pull/2324))

`skuba start` now resolves a named `app` export as a request listener, in addition to the existing default export.

```ts
// works with both `export default` and `export const app = ...`
export const app = new Koa().use(/* ... */);
```

- **migrate:** Add ESM migration ([#2274](https://github.com/seek-oss/skuba/pull/2274))

If your project does not use `skuba` directly, you can still run our migration to ESM using `npx` or `pnpm dlx`:

```shell
pnpm dlx skuba migrate esm
npx skuba migrate esm
```

You can view the full migration guide in our documentation [here](https://seek-oss.github.io/skuba/docs/cli/migrate#skuba-migrate-esm).

- **lint:** Replace hoisted Jest dependencies with Vitest ([#2124](https://github.com/seek-oss/skuba/pull/2124))

- **lint:** Migrate Dockerfiles from `pnpm install --prod` to `pnpm prune --prod` ([#2326](https://github.com/seek-oss/skuba/pull/2326))

A new [patch](https://seek-oss.github.io/skuba/docs/cli/lint.html#patches) will replace any `RUN pnpm install ... --prod` (including variants with `CI=true`) with `RUN pnpm prune --prod`.

- **init:** Support `local:` prefix in template name ([#2333](https://github.com/seek-oss/skuba/pull/2333))

This enable project initialisation from a local directory path.

- **lint:** Remove `pnpm-plugin-skuba` from package.json ([#2351](https://github.com/seek-oss/skuba/pull/2351))

- **start:** Fix live reloading ([#2139](https://github.com/seek-oss/skuba/pull/2139))

- **test:** Remove GitHub annotations ([#2124](https://github.com/seek-oss/skuba/pull/2124))

Our first Vitest release does not support inline [GitHub annotations](https://seek-oss.github.io/skuba/docs/deep-dives/github.html#github-annotations) in CI. This feature may be restored in future.

### Patch Changes

- **template/\*-rest-api:** Use `pnpm prune --prod` to remove dev dependencies in Dockerfiles ([#2326](https://github.com/seek-oss/skuba/pull/2326))

Our API template Dockerfiles previously ran `CI=true pnpm install --offline --prod` after building to strip dev dependencies from `node_modules`. This has been replaced with `pnpm prune --prod`, which is a more explicit and reliable way to remove dev dependencies from the production image.

```diff
RUN pnpm install --offline
RUN pnpm build
- RUN CI=true pnpm install --offline --prod
+ RUN pnpm prune --prod
```

- **template/\*-npm-package:** Resolve `#src` alias to `./src` directory during package builds ([#2322](https://github.com/seek-oss/skuba/pull/2322))

- **deps:** esbuild ~0.28.0 ([#2320](https://github.com/seek-oss/skuba/pull/2320))

- **deps:** @inquirer/prompts ^8.0.0 ([#2303](https://github.com/seek-oss/skuba/pull/2303))

- **deps:** rolldown 1.0.0-rc.13 ([#2319](https://github.com/seek-oss/skuba/pull/2319))

- **deps:** read-package-up ^12.0.0 ([#2302](https://github.com/seek-oss/skuba/pull/2302))

- **deps:** @ast-grep/napi ^0.42.0 ([#2285](https://github.com/seek-oss/skuba/pull/2285))

- **lint:** Update `pnpm-workspace.yaml` `trustPolicyExclude` list ([#2300](https://github.com/seek-oss/skuba/pull/2300))

## 15.3.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "skuba",
"version": "15.3.0",
"version": "16.0.0",
"private": false,
"description": "SEEK development toolkit for backend applications and packages",
"homepage": "https://github.com/seek-oss/skuba#readme",
Expand Down
8 changes: 8 additions & 0 deletions packages/api/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @skuba-lib/api

## 2.1.0

### Minor Changes

- Migrate to ESM ([#2124](https://github.com/seek-oss/skuba/pull/2124))

This package is still being published as a dual ESM/CJS package, but the source code is now ESM.

## 2.0.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@skuba-lib/api",
"version": "2.0.2",
"version": "2.1.0",
"description": "Node.js development API for skuba",
"homepage": "https://github.com/seek-oss/skuba#readme",
"bugs": {
Expand Down
7 changes: 7 additions & 0 deletions packages/changesets-changelog/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# @skuba-lib/changesets-changelog

## 1.0.0

### Major Changes

- Publish first version ([#2334](https://github.com/seek-oss/skuba/pull/2334))
Loading
Loading