Skip to content

Merge 0.1.11 into 0.2.0 (history only, no change to the tree) - #1956

Merged
swapnilpaliwal-sd merged 9 commits into
apps/integration-0.2.0from
merge/0.1.11-into-0.2.0
Oct 14, 2026
Merged

swapnilpaliwal-sd merged 9 commits into
apps/integration-0.2.0from
merge/0.1.11-into-0.2.0

Conversation

@swapnilpaliwal-sd

@swapnilpaliwal-sd swapnilpaliwal-sd commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

0.2.0 already carries every 0.1.11 change: #1949 cherry-picked them. This merge records 0.1.11 (dev = v0.1.11)
as part of 0.2.0's history, so the 0.2.0 release merges into dev and main without conflicts.

  • The seven conflicts (package.json and the four manifests, ax_fresh.py, ci.yml) resolve to 0.2.0's side, which
    holds the same fix adapted to 0.2.0 (version 0.2.0, watched_from, the shorter Windows gate).
  • The merged tree is identical to apps/integration-0.2.0: no file changes.
  • Checked in the tree: the cross-drive fix, the argument hand-over (CLI, MCP, build), the Windows build lock, the parser
    path fixes, the Windows CI gate and tests/windows_argv.py.
  • Simulated after this merge: apps/integration-0.2.0 → dev merges clean.

swapnilpaliwal-sd and others added 9 commits October 13, 2026 21:41
…s them

0.1.10 passed its release e2e on Windows while 43 of the query cases' 1,844 checks
failed there: the e2e is one case per language. Every cause is how Windows writes
paths and command lines, or how it holds files; none is platform-specific code.

Paths: repository-relative paths are written with `/`, as the graph stores them.
- parser: the Python and C# analyzers recorded `pkg\changed.py` in the IR, so rules
  joining a module's directory to a string (importlib's SourceFileLoader, Django's
  include()) matched nothing, and C# derived test attributes were missed.
- query scripts: os.path joined and normalised graph paths with `\` (runner
  setupFiles/globalSetup, spawned scripts, the JS/TS import resolver, the freshness
  snapshot), so tests reached through a file were not linked. posixpath now, the
  idiom axiomcode-test-impact already used.
- path/impact: an absolute file:line under the repository was refused as outside it
  (a `root + '/'` prefix test); commonpath on normcased paths.

Arguments: a native program cannot hand Git Bash an argument holding ' or ": msys
parses the command line by its own rules, so `context "the user's cart"` lost every
argument after the apostrophe and a quoted string arrived as \Key\. On Windows the
CLI, the MCP server and every build Python starts pass them in AXIOMCODE_ARGV
(ax_exec.bash_argv); the bash entry points turn them back into "$@". Elsewhere the
command line is used as before.

Build lock: on Windows it locked nothing (Git Bash's fd 9 is not a descriptor in a
native python), so a refresh and a second build of one repository could run at once.
A helper (ax_fresh.py hold) now holds a real lock for the build's lifetime; building()
sees it and a second build waits. POSIX keeps flock.

Tests and the gate:
- tests/run.py starts the CLI as the product does (Git Bash found by find-bash.js,
  MSYS=noglob, arguments via bash_argv), reads and prints UTF-8, uses the sqlite3
  module, and waits for a case's background refresh before removing its graph.
- tests/windows_argv.py: the argument hand-over through both entry points, with the
  command line as control.
- no_symlink / no_exec start Git Bash and UTF-8 Python as the product does.
- the release e2e on win32-x64 now runs every query case against the installed
  packages, and the Windows-only tests (.github/scripts/e2e-cases.sh).

Verified: Windows VM, every language's query cases (1,844 checks), the Windows-only
tests and the gate script; repeated asserted-links runs 25/25. Linux: the five engine
suites, the query cases and the standalone tests identical to dev (51 of 51 results).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er keeps its own version)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows: the query cases answer as on Linux, and the release gate runs them
relpath raises across drives on Windows, so a --library whose compiled IR sits in
the user cache on C: while the repository is on D: (as on GitHub's runner) failed the
whole index. axiomcode-index and axiomcode-graph read it as outside the repository, as
a `..` path is; a link or a changed file given absolutely on another drive is kept as
given. no_exec's control starts Git Bash, not a bare `bash` (WSL on GitHub's image).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows: a path on another drive is outside the repository, not an error (0.1.11)
Release 0.1.11: a path on another drive is not an error
0.2.0 already carries every 0.1.11 change: #1949 cherry-picked them. The merge records
0.1.11 as part of 0.2.0's history, so the 0.2.0 release merges into dev and main without
conflicts. Every conflict (version files, ax_fresh.py, ci.yml) resolves to 0.2.0's side,
which holds the same fix adapted to 0.2.0; the merged tree is identical to 0.2.0's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@swapnilpaliwal-sd
swapnilpaliwal-sd merged commit cb34f88 into apps/integration-0.2.0 Oct 14, 2026
4 checks passed
@swapnilpaliwal-sd
swapnilpaliwal-sd deleted the merge/0.1.11-into-0.2.0 branch October 14, 2026 20:31
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.

1 participant