diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 059fd4e..c6f6d30 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -105,6 +105,12 @@ jobs: - name: Run Windows Clippy run: cargo clippy --locked --all-targets -- -D warnings + - name: Check reproducible CLI packages on Windows + shell: bash + env: + PYTHON_BIN: python + run: bash tests/package_cli_reproducibility.sh + - name: Test Windows development installation shell: bash run: bash tests/dev_install_windows_smoke.sh diff --git a/Cargo.lock b/Cargo.lock index 1fd02ee..b190909 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "chat2db" -version = "0.2.0" +version = "0.2.1" dependencies = [ "assert_cmd", "base64", diff --git a/Cargo.toml b/Cargo.toml index a2d9ea2..3196516 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chat2db" -version = "0.2.0" +version = "0.2.1" edition = "2024" rust-version = "1.88" description = "Official command-line interface for Chat2DB Community, Pro, and Local" diff --git a/scripts/package-cli.sh b/scripts/package-cli.sh index ce67b3a..e637154 100755 --- a/scripts/package-cli.sh +++ b/scripts/package-cli.sh @@ -207,28 +207,26 @@ else: raise SystemExit(f"error: unsupported archive type: {archive_type}") PY -archive_contents="$("$PYTHON_BIN" - "$REPO_ROOT/dist/$ARCHIVE_NAME" "$ARCHIVE_TYPE" <<'PY' +"$PYTHON_BIN" - "$REPO_ROOT/dist/$ARCHIVE_NAME" "$ARCHIVE_TYPE" "$BINARY_NAME" <<'PY' import sys import tarfile import zipfile -path, archive_type = sys.argv[1], sys.argv[2] +path, archive_type, binary_name = sys.argv[1:] if archive_type == "zip": with zipfile.ZipFile(path) as archive: - for name in archive.namelist(): - print(name) + archive_contents = archive.namelist() else: with tarfile.open(path, "r:gz") as archive: - for member in archive.getmembers(): - print(member.name) + archive_contents = [member.name for member in archive.getmembers()] + +expected_archive_contents = ["LICENSE", "THIRD_PARTY_LICENSES.txt", binary_name] +if archive_contents != expected_archive_contents: + print("error: non-sanitized archive contents:", file=sys.stderr) + for name in archive_contents: + print(f" {name!r}", file=sys.stderr) + raise SystemExit(1) PY -)" -expected_archive_contents="$(printf '%s\n' LICENSE THIRD_PARTY_LICENSES.txt "$BINARY_NAME")" -if [ "$archive_contents" != "$expected_archive_contents" ]; then - echo "error: non-sanitized archive contents:" >&2 - printf '%s\n' "$archive_contents" >&2 - exit 1 -fi # --- compute sha256 --------------------------------------------------------- if command -v shasum >/dev/null 2>&1; then diff --git a/skill/CHANGELOG.md b/skill/CHANGELOG.md index 6682b41..a1d90c5 100644 --- a/skill/CHANGELOG.md +++ b/skill/CHANGELOG.md @@ -1,5 +1,10 @@ # Skill Changelog +## [0.2.1] - 2026-07-23 + +- Fixed Windows release archive validation and added native Windows packaging + coverage. + ## [0.2.0] - 2026-07-23 - Moved the Chat2DB CLI Skill into the Chat2DB-CLI repository. diff --git a/skill/SKILL.md b/skill/SKILL.md index 3ebabe3..641655a 100644 --- a/skill/SKILL.md +++ b/skill/SKILL.md @@ -2,7 +2,7 @@ name: chat2db-cli description: "Operate Chat2DB Community, Pro, and Local through the chat2db CLI: inspect status, manage the app and headless runtime, work with datasources and SQL, configure MCP, manage the Skill, and update the CLI. Use for CLI-driven Chat2DB workflows, not GUI interaction." metadata: - version: "0.2.0" + version: "0.2.1" compatible-cli-versions: ">=0.2, <0.3" --- diff --git a/skill/references/installation.md b/skill/references/installation.md index c51c975..e22b4c1 100644 --- a/skill/references/installation.md +++ b/skill/references/installation.md @@ -2,7 +2,7 @@ This file is for installing, updating, and removing the `chat2db` CLI binary and the skill bundle. -The bundled Skill version is `0.2.0` and supports CLI versions +The bundled Skill version is `0.2.1` and supports CLI versions `>=0.2, <0.3`. ## CLI Binary diff --git a/tests/dev_install_scripts.sh b/tests/dev_install_scripts.sh index c8f1191..ab88341 100755 --- a/tests/dev_install_scripts.sh +++ b/tests/dev_install_scripts.sh @@ -86,7 +86,7 @@ cat > "$CARGO_TARGET_DIR/release/chat2db$suffix" <