Skip to content

Tags: MelbourneDeveloper/dart_node

Tags

Release-Tier3/0.13.0-beta

Toggle Release-Tier3/0.13.0-beta's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add dart_node_sql_js as a publishable package (sql.js bindings) (#60)

## TLDR
Promote `dart_node_sql_js` from a `publish_to: none` stub into a full
tier-2 publishable package (typed sql.js / SQLite-on-WASM bindings) for
the 0.13.0-beta release.

## What Was Added?
- **`packages/dart_node_sql_js`** as a real publishable package:
`README.md`, `CHANGELOG.md` (`## 0.13.0-beta`), `LICENSE`,
`analysis_options.yaml` (austerity), `dart_test.yaml`, `package.json`
(`sql.js ^1.14.1`).
- **32 integration tests** in `test/database_test.dart` covering
open/prepare/exec/run/get/all/save/close/pragma, data types,
transactions and constraints — **100% line coverage** (71/71).
- Wiring: `tools/lib/packages.dart` (tier 2, node), `tools/test.sh`
(`NODE_PACKAGES` + `TIER2`), `coverage-thresholds.json`
(`dart_node_sql_js: 100.0`), `publish-tier1.yml` changelog validation,
`publish-tier2.yml` publish list, release skill.

## What Was Changed or Deleted?
- Rewrote `lib/src/database.dart` and `lib/src/statement.dart` to use
**typed `dart:js_interop` extension types** instead of nullable `as`
casts, so the package passes `dart analyze` under austerity.
- **Bug fix:** sql.js `export()` frees every live prepared statement, so
the previous "auto-save after each write" design broke
prepared-statement reuse (`Statement closed`) and rolled-back
transactions silently committed. Persistence now happens on `close()` /
explicit `save()` only. Added `save()` to the `Database` API. Removed
`publish_to: none`; set version `0.13.0-beta`.

## How Do The Automated Tests Prove It Works?
- `Statement.run inserts multiple rows with incrementing rowid`,
`updates rows and returns changes count`, `deletes rows and returns
changes count` — these **failed before the fix** (only the first write
survived because `export()` closed the reused statement) and pass now.
- `Transactions rolls back transaction` asserts the balance is restored
to 100 — previously reported 200 because the mid-transaction export
persisted uncommitted state.
- `save persists changes that survive reopen` and `loads an existing
database file` prove the new persistence model round-trips to disk.
- `openDatabase returns error when the path cannot be read` and
`Database.close returns error when the save target directory is missing`
cover the `Result` error paths. Full suite: 32/32 passing, 100% coverage
(enforced by the ratchet in `tools/test.sh`).

## Spec / Doc Changes
- New package `README.md` documents the async `initializeSqlJs()` +
`save`/`close` persistence model. Release skill (`SKILL.md`) tier-2
lists updated to include `dart_node_sql_js`.

## Breaking Changes
- [x] None (new package; first publish at 0.13.0-beta)

Release-Tier2/0.13.0-beta

Toggle Release-Tier2/0.13.0-beta's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add dart_node_sql_js as a publishable package (sql.js bindings) (#60)

## TLDR
Promote `dart_node_sql_js` from a `publish_to: none` stub into a full
tier-2 publishable package (typed sql.js / SQLite-on-WASM bindings) for
the 0.13.0-beta release.

## What Was Added?
- **`packages/dart_node_sql_js`** as a real publishable package:
`README.md`, `CHANGELOG.md` (`## 0.13.0-beta`), `LICENSE`,
`analysis_options.yaml` (austerity), `dart_test.yaml`, `package.json`
(`sql.js ^1.14.1`).
- **32 integration tests** in `test/database_test.dart` covering
open/prepare/exec/run/get/all/save/close/pragma, data types,
transactions and constraints — **100% line coverage** (71/71).
- Wiring: `tools/lib/packages.dart` (tier 2, node), `tools/test.sh`
(`NODE_PACKAGES` + `TIER2`), `coverage-thresholds.json`
(`dart_node_sql_js: 100.0`), `publish-tier1.yml` changelog validation,
`publish-tier2.yml` publish list, release skill.

## What Was Changed or Deleted?
- Rewrote `lib/src/database.dart` and `lib/src/statement.dart` to use
**typed `dart:js_interop` extension types** instead of nullable `as`
casts, so the package passes `dart analyze` under austerity.
- **Bug fix:** sql.js `export()` frees every live prepared statement, so
the previous "auto-save after each write" design broke
prepared-statement reuse (`Statement closed`) and rolled-back
transactions silently committed. Persistence now happens on `close()` /
explicit `save()` only. Added `save()` to the `Database` API. Removed
`publish_to: none`; set version `0.13.0-beta`.

## How Do The Automated Tests Prove It Works?
- `Statement.run inserts multiple rows with incrementing rowid`,
`updates rows and returns changes count`, `deletes rows and returns
changes count` — these **failed before the fix** (only the first write
survived because `export()` closed the reused statement) and pass now.
- `Transactions rolls back transaction` asserts the balance is restored
to 100 — previously reported 200 because the mid-transaction export
persisted uncommitted state.
- `save persists changes that survive reopen` and `loads an existing
database file` prove the new persistence model round-trips to disk.
- `openDatabase returns error when the path cannot be read` and
`Database.close returns error when the save target directory is missing`
cover the `Result` error paths. Full suite: 32/32 passing, 100% coverage
(enforced by the ratchet in `tools/test.sh`).

## Spec / Doc Changes
- New package `README.md` documents the async `initializeSqlJs()` +
`save`/`close` persistence model. Release skill (`SKILL.md`) tier-2
lists updated to include `dart_node_sql_js`.

## Breaking Changes
- [x] None (new package; first publish at 0.13.0-beta)

Release/0.13.0-beta

Toggle Release/0.13.0-beta's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add dart_node_sql_js as a publishable package (sql.js bindings) (#60)

## TLDR
Promote `dart_node_sql_js` from a `publish_to: none` stub into a full
tier-2 publishable package (typed sql.js / SQLite-on-WASM bindings) for
the 0.13.0-beta release.

## What Was Added?
- **`packages/dart_node_sql_js`** as a real publishable package:
`README.md`, `CHANGELOG.md` (`## 0.13.0-beta`), `LICENSE`,
`analysis_options.yaml` (austerity), `dart_test.yaml`, `package.json`
(`sql.js ^1.14.1`).
- **32 integration tests** in `test/database_test.dart` covering
open/prepare/exec/run/get/all/save/close/pragma, data types,
transactions and constraints — **100% line coverage** (71/71).
- Wiring: `tools/lib/packages.dart` (tier 2, node), `tools/test.sh`
(`NODE_PACKAGES` + `TIER2`), `coverage-thresholds.json`
(`dart_node_sql_js: 100.0`), `publish-tier1.yml` changelog validation,
`publish-tier2.yml` publish list, release skill.

## What Was Changed or Deleted?
- Rewrote `lib/src/database.dart` and `lib/src/statement.dart` to use
**typed `dart:js_interop` extension types** instead of nullable `as`
casts, so the package passes `dart analyze` under austerity.
- **Bug fix:** sql.js `export()` frees every live prepared statement, so
the previous "auto-save after each write" design broke
prepared-statement reuse (`Statement closed`) and rolled-back
transactions silently committed. Persistence now happens on `close()` /
explicit `save()` only. Added `save()` to the `Database` API. Removed
`publish_to: none`; set version `0.13.0-beta`.

## How Do The Automated Tests Prove It Works?
- `Statement.run inserts multiple rows with incrementing rowid`,
`updates rows and returns changes count`, `deletes rows and returns
changes count` — these **failed before the fix** (only the first write
survived because `export()` closed the reused statement) and pass now.
- `Transactions rolls back transaction` asserts the balance is restored
to 100 — previously reported 200 because the mid-transaction export
persisted uncommitted state.
- `save persists changes that survive reopen` and `loads an existing
database file` prove the new persistence model round-trips to disk.
- `openDatabase returns error when the path cannot be read` and
`Database.close returns error when the save target directory is missing`
cover the `Result` error paths. Full suite: 32/32 passing, 100% coverage
(enforced by the ratchet in `tools/test.sh`).

## Spec / Doc Changes
- New package `README.md` documents the async `initializeSqlJs()` +
`save`/`close` persistence model. Release skill (`SKILL.md`) tier-2
lists updated to include `dart_node_sql_js`.

## Breaking Changes
- [x] None (new package; first publish at 0.13.0-beta)

Release-Tier3/0.12.0-beta

Toggle Release-Tier3/0.12.0-beta's commit message
Add changelog

Release-Tier2/0.12.0-beta

Toggle Release-Tier2/0.12.0-beta's commit message
Add changelog

Release/0.12.0-beta

Toggle Release/0.12.0-beta's commit message
Add changelog

Release-Tier3/0.11.0-beta

Toggle Release-Tier3/0.11.0-beta's commit message
Fix ws dependencies

Release-Tier2/0.11.0-beta

Toggle Release-Tier2/0.11.0-beta's commit message
Fix ws dependencies

Release/0.11.0-beta

Toggle Release/0.11.0-beta's commit message
Skip already published packages

Release/0.10.0-beta

Toggle Release/0.10.0-beta's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Automates release publishing and finalization (#22)

## TLDR;

This pull request automates the release publishing process using GitHub
Actions. It streamlines the process of creating release branches,
updating dependencies, and creating pull requests.

## What Does This Do?

- Creates a new workflow to finalize the release, switching dependencies
back to local ones after publishing.
- Modifies the publish workflow to prepare the release branch and create
a pull request to main.
- Removes `publish_to: none` from `pubspec.yaml` files.

## Brief Details?

- The "Finalize Release" workflow is triggered after the "Publish Tier
3" workflow completes successfully. It checks out the release branch,
switches dependencies to local, commits, and pushes the changes.
- The "Publish Release" workflow now validates that the tag is on main,
extracts the version from the tag, creates a release branch, switches to
pub.dev dependencies, commits and pushes the changes, and creates a pull
request to main. The pull request body contains instructions to not
merge until publishing is complete.
- The workflows now use the `setup` action to setup Dart.

## How Do The Tests Prove The Change Works?

There are no specific tests included in this pull request, but the
workflows themselves serve as integration tests, ensuring that the
release process is automated and functions as expected.