diff --git a/README.md b/README.md index 717c89a9..a757feb9 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Asynchronous, non-blocking [SQLite3](https://sqlite.org/) bindings for [Node.js] # Features - - Bundles SQLite v3.54.0, or you can build using a local SQLite (or SqlCipher,...) + - Bundles SQLite v3.54.1, or you can build using a local SQLite (or SqlCipher,...) - Straightforward query and parameter binding interface - Full Buffer/Blob support - Extensive debugging support via [verbose mode](docs/API.md#verbose-mode) diff --git a/deps/common-sqlite.gypi b/deps/common-sqlite.gypi index 1401bd94..d5d1e8b0 100644 --- a/deps/common-sqlite.gypi +++ b/deps/common-sqlite.gypi @@ -1,6 +1,6 @@ { 'variables': { - 'sqlite_version%':'3540000', + 'sqlite_version%':'3540100', "toolset%":'', }, 'target_defaults': { diff --git a/deps/sqlite-amalgamation-3540000.zip b/deps/sqlite-amalgamation-3540000.zip deleted file mode 100644 index 5071fc0d..00000000 Binary files a/deps/sqlite-amalgamation-3540000.zip and /dev/null differ diff --git a/deps/sqlite-amalgamation-3540100.zip b/deps/sqlite-amalgamation-3540100.zip new file mode 100644 index 00000000..af6664c1 Binary files /dev/null and b/deps/sqlite-amalgamation-3540100.zip differ diff --git a/docs/DEVELOP.md b/docs/DEVELOP.md index faed70d9..c5b853e3 100644 --- a/docs/DEVELOP.md +++ b/docs/DEVELOP.md @@ -95,7 +95,7 @@ tools/bin/maintenance.sh --skip-version-check The script performs these steps: -1. **Upgrade** dependencies and SQLite via [`upgrade-deps.sh`](../tools/bin/upgrade-deps.sh) +1. **Upgrade** dependencies and SQLite via [`upgrade-deps.sh`](../tools/bin/upgrade-deps.sh) — a SQLite bump and dependency upgrades from one run land on the same feature branch and are covered by a single PR 2. **Create** a pull request with the upgrade changes 3. **Wait** for CI checks to pass, then **merge** the PR 4. **Release** — if the PR contains a SQLite bump or unpublished security fix, bump the patch version, push tags, and trigger npm publish @@ -156,8 +156,8 @@ tools/bin/upgrade-deps.sh --no-push The script performs these steps: 1. **Check** if the source tree is clean -2. **Check** for a new SQLite version — if available, delegates to [`upgrade-sqlite.sh`](../tools/bin/upgrade-sqlite.sh) which handles the full bump process (including build, lint, test, commit, and push). If the cooldown period has not elapsed, the bump is skipped with a notice and the dependency upgrade continues (use `--force-sqlite` to override) -3. **Check** for outdated npm dependencies via `yarn outdated` +2. **Check** for a new SQLite version — if available, delegates to [`upgrade-sqlite.sh`](../tools/bin/upgrade-sqlite.sh) which handles the full bump process (including build, lint, test, commit, and push) on its own feature branch. The dependency upgrade then continues on the same branch, so one run produces one PR combining both (if the cooldown period has not elapsed, the bump is skipped with a notice and only the dependency upgrade proceeds — use `--force-sqlite` to override) +3. **Check** for outdated npm dependencies via `npm-check-updates` (direct dependencies only — `yarn outdated` also reports transitive and sub-project deps, which are not actionable here) 4. **Ensure** a feature branch — if already on a `feature/*` branch (e.g., after a SQLite bump), reuses it; otherwise creates `feature/deps_upgrade_YYYYMMDD` 5. **Upgrade** dependencies via `npx npm-check-updates -u && yarn install` (main project and `tools/benchmark-drivers/` sub-project) 6. **Run semver check** (`node tools/semver-check.js`) to verify dependency Node.js version compatibility diff --git a/memory-bank/custom-instructions.md b/memory-bank/custom-instructions.md index 546f87a4..6b3105ac 100644 --- a/memory-bank/custom-instructions.md +++ b/memory-bank/custom-instructions.md @@ -44,13 +44,9 @@ After implementing changes, follow this procedure: Co-authored-by: () ``` - Zoo's address is `zoo@glm.ai`, e.g.: - - ```text - Co-authored-by: Zoo (glm-5.3) - ``` - - Never invent or substitute an email address that merely comes to mind (e.g. a generic placeholder domain) — if the concrete address is not stated here, check the repository history (`git log`) for prior trailers, or ask the user. + In you don't have any email configured: + - In case you are Zoo please use `zoo@glm.ai` + - Never invent or substitute an email address that merely comes to your mind — if the concrete address is not stated here ask the user. This checkpoint exists because implementing changes, committing them, and publishing them are separate concerns. The user may want to review, adjust, or split changes before they become part of the repository history, and may want to control when and how changes reach the remote. diff --git a/package.json b/package.json index 07b4e10a..62241f54 100644 --- a/package.json +++ b/package.json @@ -45,12 +45,12 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "eslint": "^10.12.0", + "eslint": "^10.13.0", "globals": "^17.13.0", "mocha": "12.0.3", "nyc": "^18.0.0", "prebuildify": "^6.0.1", - "tinybench": "^6.2.1" + "tinybench": "^6.2.2" }, "peerDependencies": { "node-gyp": "12.x" diff --git a/tools/benchmark-drivers/package.json b/tools/benchmark-drivers/package.json index 54e26286..24965e99 100644 --- a/tools/benchmark-drivers/package.json +++ b/tools/benchmark-drivers/package.json @@ -9,10 +9,10 @@ "license": "ISC", "description": "", "dependencies": { - "@homeofthings/sqlite3": "^7.0.5", + "@homeofthings/sqlite3": "^7.0.6", "better-sqlite3": "^13.0.3", "cli-color": "^2.0.4", "fs-extra": "^11.4.1", - "tinybench": "^6.2.1" + "tinybench": "^6.2.2" } } diff --git a/tools/benchmark-drivers/yarn.lock b/tools/benchmark-drivers/yarn.lock index b85966ac..041d214d 100644 --- a/tools/benchmark-drivers/yarn.lock +++ b/tools/benchmark-drivers/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@homeofthings/sqlite3@^7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@homeofthings/sqlite3/-/sqlite3-7.0.5.tgz#85d523237067589a857b1294581f85e398e18bdb" - integrity sha512-GFNgQFSfQH527pdqrBYsrlAIUeAoBkaQMetNraVpCKCA8DwHy+H6fgOij4BDoMaxlL8a5bJ1GLbsg2r8lyDc9g== +"@homeofthings/sqlite3@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@homeofthings/sqlite3/-/sqlite3-7.0.6.tgz#6af6557796b94ae8a54bdc2228cd34cd0a2dfa3f" + integrity sha512-J8DIvGkb2x+eOHDiFTynYSWc3LwVy/7oK/zzJPr9MtQmNutjpUHj8Ngcl/rNL0dVnB9tl6pR0hbOviYaCFL+iQ== dependencies: node-addon-api "^8.9.2" node-gyp-build "^4.8.4" @@ -270,10 +270,10 @@ timers-ext@^0.1.7: es5-ext "^0.10.64" next-tick "^1.1.0" -tinybench@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.2.1.tgz#84184d41be7d18815cc63daaf1f5057dafe2b3dd" - integrity sha512-IAbQaPJIIdhVxi0mqy9lez1wEwje0UQf9F1vwtbelEG5Nbgn0nPOxCvU+mNeNS9gyJTAhrHp74CbUaSynQpZcQ== +tinybench@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.2.2.tgz#e03ffd4d46fabebae1d5bb292bd25e39505551ee" + integrity sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA== tinyglobby@^0.2.12: version "0.2.16" diff --git a/tools/bin/maintenance.sh b/tools/bin/maintenance.sh index 3f8af2c3..106f2a4c 100755 --- a/tools/bin/maintenance.sh +++ b/tools/bin/maintenance.sh @@ -248,12 +248,28 @@ step2_create_pr() { # Push to remote (upgrade-deps.sh may have already pushed, but this is idempotent) git push -u origin "$current_branch" - # Determine PR title based on changed files - local pr_title="chore: upgrade dependencies" - if git diff main...HEAD --name-only 2>/dev/null | grep -q "deps/common-sqlite.gypi"; then + # Determine PR title from the files actually changed on the branch + local changed_files + changed_files="$(git diff main...HEAD --name-only 2>/dev/null || true)" + local sqlite_bumped=false deps_changed=false + if grep -qx "deps/common-sqlite.gypi" <<<"$changed_files"; then + sqlite_bumped=true + fi + if grep -qx "package.json" <<<"$changed_files"; then + deps_changed=true + fi + + local pr_title + if [[ "$sqlite_bumped" == true && "$deps_changed" == true ]]; then local sqlite_ver sqlite_ver="$(sqlite_version_human)" pr_title="chore: upgrade SQLite${sqlite_ver:+ to ${sqlite_ver}} and dependencies" + elif [[ "$sqlite_bumped" == true ]]; then + local sqlite_ver + sqlite_ver="$(sqlite_version_human)" + pr_title="chore: upgrade SQLite${sqlite_ver:+ to ${sqlite_ver}}" + else + pr_title="chore: upgrade dependencies" fi local pr_body="Automated dependency upgrade via \`maintenance.sh\`." diff --git a/tools/bin/upgrade-deps.sh b/tools/bin/upgrade-deps.sh index c9e2954e..03a71ac1 100755 --- a/tools/bin/upgrade-deps.sh +++ b/tools/bin/upgrade-deps.sh @@ -58,9 +58,11 @@ The script will: 3. Create a feature branch and apply upgrades 4. Run semver check, rebuild, lint, and test -If the SQLite cooldown period has not elapsed, the SQLite bump is skipped -with a notice and the dependency upgrade continues. Use --force-sqlite to -override the cooldown. +If a SQLite bump is performed, it lands on its own feature branch and the +dependency upgrade continues on the same branch, so one run produces one +PR combining both. If the SQLite cooldown period has not elapsed, the +bump is skipped with a notice and the dependency upgrade continues. +Use --force-sqlite to override the cooldown. Options: --dry-run Show what would be done without making changes @@ -293,8 +295,7 @@ step2_check_sqlite() { exit "$EXIT_GENERAL_ERROR" fi - log "SQLite bump completed. Exiting — dependency upgrade should be run separately." - exit "$EXIT_SUCCESS" + log "SQLite bump completed. Continuing with dependency upgrades on the same branch." else log "SQLite is up to date (${current_human})" fi @@ -548,12 +549,11 @@ main() { step1_check_clean_tree # Step 2: Check for new SQLite version - # If a new SQLite version is available, upgrade-sqlite.sh handles everything - # (including creating a branch, building, testing, and pushing), - # so we exit after it runs. If only the cooldown blocked the bump, the - # check returns and the dependency upgrade continues. + # If a new SQLite version is available, upgrade-sqlite.sh handles the full + # bump (branch, build, test, commit, push) and returns; the dependency + # upgrade then continues on the same feature branch (step4 reuses it). + # If only the cooldown blocked the bump, the same continuation happens. if [[ "$SKIP_SQLITE" != true ]]; then - # step2_check_sqlite may exit the script if a bump was performed step2_check_sqlite fi diff --git a/yarn.lock b/yarn.lock index fb4bf1c7..96316a8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -636,10 +636,10 @@ eslint-visitor-keys@^5.0.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@^10.12.0: - version "10.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.12.0.tgz#4f2f7e679bdce9d71438c2900f2c8d4d297332b0" - integrity sha512-npHjrHb2o4ehH3mE+YuxABR+0gyb0aVWCIolgJDArwCiHEIsonBm3ZKjel5b0U5+a+MbEvIyRCGCzD3eKKK2NA== +eslint@^10.13.0: + version "10.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.13.0.tgz#a8a4742648c0fa9131f429b509de5407682d4864" + integrity sha512-UohDjD4zSzEwhf58M3O7vc/ycc8O1I7dNlhtD0WxE8Px8EHNJKtUwzBqrzeGhisRuv2ag4sAYswszCJRgKXYUg== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.2" @@ -1638,10 +1638,10 @@ test-exclude@^8.0.0: glob "^13.0.6" minimatch "^10.2.2" -tinybench@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.2.1.tgz#84184d41be7d18815cc63daaf1f5057dafe2b3dd" - integrity sha512-IAbQaPJIIdhVxi0mqy9lez1wEwje0UQf9F1vwtbelEG5Nbgn0nPOxCvU+mNeNS9gyJTAhrHp74CbUaSynQpZcQ== +tinybench@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-6.2.2.tgz#e03ffd4d46fabebae1d5bb292bd25e39505551ee" + integrity sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA== tinyglobby@^0.2.12: version "0.2.17"