Skip to content

1.23 beta - #876

Merged
peter-leonov-ch merged 3 commits into
releasefrom
main
Jun 22, 2026
Merged

1.23 beta#876
peter-leonov-ch merged 3 commits into
releasefrom
main

Conversation

@peter-leonov-ch

Copy link
Copy Markdown
Collaborator

Summary

A short description of the changes with a link to an open issue.

Checklist

Delete items not relevant to your PR:

  • Unit and integration tests covering the common scenarios were added
  • A human-readable description of the changes was provided to include in CHANGELOG
  • For significant changes, documentation in https://github.com/ClickHouse/clickhouse-docs was updated with further explanations or tutorials

Copilot AI and others added 2 commits June 22, 2026 21:08
## Summary

QA workflows should validate every PR targeting the `release` branch.
All test/examples workflows already do (their path filters match the
version bump a release PR always carries under
`packages/**`/`package-lock.json`), but `e2e-skills` was the only QA
workflow with **no `pull_request` trigger at all** — it never ran on any
PR.

- **`e2e-skills.yml`**: add a path-free `pull_request` trigger scoped to
the `release` branch, so the skills packaging E2E runs unconditionally
on release-branch PRs.

```yaml
  pull_request:
    branches:
      - release
```

A path-free `branches: [release]` trigger is used because GitHub ANDs
`branches` + `paths` within a single `pull_request` trigger, and a
workflow cannot declare two — this guarantees the suite runs regardless
of which files changed.

Out of scope (separate lifecycles, left unchanged): `upstream-sql-tests`
(nightly upstream-compat harness) and `tests-skill-rowbinary-parser`
(independently-versioned `@clickhouse/rowbinary` package, not published
by `publish.yml`).

## Checklist

- [ ] For significant changes, documentation in
https://github.com/ClickHouse/clickhouse-docs was updated with further
explanations or tutorials

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…nto per-package jobs (#845)

## Summary

`@clickhouse/client-common` requires platform hacks to serve both
Node.js and Web well, and no longer pulls its weight as a
separately-published package. This bundles the shared sources directly
into each client, marks common deprecated, and restructures the
bump/publish workflows into explicit per-package jobs.

## Changes

### Bundle common into each client

- `packages/client-node/src/common` and `packages/client-web/src/common`
are git-tracked symlinks to `packages/client-common/src`; both clients
import via relative paths (`./common/index`) and compile their own copy
into `dist/common`.
- Dropped the `@clickhouse/client-common` dependency from both client
`package.json` files — the clients are now self-contained.

### Mark common deprecated

- `@deprecated` package-level notice in `client-common/src/index.ts`, a
DEPRECATED package description, a CHANGELOG migration note (under
`1.22.0`), and an `npm deprecate` step in `RELEASING.md`.

### Per-package release workflows

- `bump-version.yml` and `publish.yml` are each split into **one job per
package**, selected by a required `package` input (`@clickhouse/client`,
`@clickhouse/client-web`, or `@clickhouse/client-common`). There is no
`all` option — release a package by dispatching its workflow; to release
several, dispatch once per package. The automatic `head` publish (on
push to `release`) still runs a job per package and releases them all
together.
- Version bumping is inlined into the jobs (`npm version` + the
`src/version.ts` rewrite); the shared `.scripts/update_version.sh` and
the short-lived `head_version.sh` helper were removed. `RELEASING.md` is
rewritten to be workflow-driven.
- Manual publishes are scoped by package in the concurrency group so
dispatching one does not cancel another; each per-package publish job
builds and publishes only its own workspace and pushes a package-scoped
git tag via `.scripts/push_release_tag.sh`. The `e2e` job runs whenever
`@clickhouse/client` is published (head or manual), since the downstream
test project imports it.

## Checklist

- [x] A human-readable description of the changes was provided to
include in CHANGELOG

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Peter Leonov <peter.leonov@clickhouse.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 22, 2026 21:24
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@CLAassistant

CLAassistant commented Jun 22, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ peter-leonov-ch
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR deprecates @clickhouse/client-common as a runtime dependency by bundling its sources directly into @clickhouse/client (Node.js) and @clickhouse/client-web (Web), updates internal imports accordingly, and adjusts release/publish automation to support per-package publishing with additional pre-publish smoke checks.

Changes:

  • Switched Node/Web clients from @clickhouse/client-common imports to local ./common/index re-exports and removed the @clickhouse/client-common dependency from their package.json.
  • Marked @clickhouse/client-common as deprecated (package docs + npm metadata) and documented the migration.
  • Reworked release automation (bump/publish workflows) and added a tarball-install smoke test to catch packaging/export issues before publishing.

Reviewed changes

Copilot reviewed 36 out of 37 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tests/e2e/smoke/check.mjs New ESM smoke test to validate bundled common-origin exports from a packed install.
tests/e2e/smoke/check.cjs New CJS smoke test to validate bundled common-origin exports from a packed install.
RELEASING.md Updated release process docs for per-package bump/publish and deprecation guidance.
packages/client-web/src/utils/encoder.ts Switched common imports to bundled ../common/index.
packages/client-web/src/result_set.ts Switched common imports to bundled ./common/index.
packages/client-web/src/index.ts Updated public re-exports to source from bundled common and clarified comments.
packages/client-web/src/connection/web_connection.ts Switched common imports to bundled ../common/index.
packages/client-web/src/config.ts Switched common imports to bundled ./common/index.
packages/client-web/src/client.ts Switched common imports to bundled ./common/index.
packages/client-web/package.json Removed runtime dependency on @clickhouse/client-common.
packages/client-node/src/utils/encoder.ts Switched common imports to bundled ../common/index.
packages/client-node/src/result_set.ts Switched common imports to bundled ./common/index.
packages/client-node/src/index.ts Updated public re-exports to source from bundled common and clarified comments.
packages/client-node/src/connection/stream.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/socket_pool.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/node_https_connection.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/node_http_connection.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/node_custom_agent_connection.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/node_base_connection.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/create_connection.ts Switched common imports to bundled ../common/index.
packages/client-node/src/connection/compression.ts Switched common imports to bundled ../common/index.
packages/client-node/src/config.ts Switched common imports to bundled ./common/index.
packages/client-node/src/client.ts Switched common imports to bundled ./common/index.
packages/client-node/package.json Removed runtime dependency on @clickhouse/client-common.
packages/client-common/src/index.ts Added package-level deprecation notice for @clickhouse/client-common.
packages/client-common/package.json Updated npm description to clearly indicate deprecation and migration targets.
package-lock.json Removed client-common dependency edges for node/web workspaces.
CHANGELOG.md Added migration note about deprecating @clickhouse/client-common.
AGENTS.md Documented the new bundling approach via src/common symlink and relative imports.
.scripts/update_version.sh Removed old jq-based multi-package version bump script.
.scripts/smoke_test_pack.sh Added tarball pack/install/run smoke test for pre-publish validation.
.scripts/push_release_tag.sh Added helper script to push package-scoped annotated release tags.
.github/workflows/publish.yml Refactored publish workflow to per-package jobs, added smoke test, and package-scoped tagging.
.github/workflows/e2e-skills.yml Ensured skills E2E runs on PRs targeting release.
.github/workflows/bump-version.yml Refactored bump workflow to bump a selected package and open a PR automatically.

Comment thread CHANGELOG.md Outdated
Comment thread RELEASING.md Outdated
Comment thread tests/e2e/smoke/check.mjs Outdated
Comment thread tests/e2e/smoke/check.mjs Outdated
Comment thread tests/e2e/smoke/check.cjs Outdated
Comment thread tests/e2e/smoke/check.cjs Outdated
## Summary

Addresses the Copilot review comments on #876.

- **CHANGELOG.md** — moved the `@clickhouse/client-common` deprecation
*Migration Notes* from the `1.22.0` heading to the unreleased `1.23.0`
heading, since that observable change (node/web no longer depend on
client-common) ships in this release.
- **RELEASING.md** — clarified the npm `11.x` requirement: it's newer
than the npm bundled with Node.js `20.x`/`22.x` (`10.x`); either upgrade
npm in place or use Node.js `24.x` (which ships npm `11.x`).
- **tests/e2e/smoke/check.mjs** / **check.cjs** — use
`assert.strictEqual` instead of loose `assert.equal`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@peter-leonov-ch
peter-leonov-ch merged commit c8dc8d8 into release Jun 22, 2026
137 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants