Skip to content

Rename the package to arcadedb (distribution arcadedb, import arcadedb) - #42

Merged
tae898 merged 4 commits into
mainfrom
rename/arcadedb
Oct 25, 2026
Merged

tae898 merged 4 commits into
mainfrom
rename/arcadedb

Conversation

@tae898

@tae898 tae898 commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Renames the package to its final names (owner decision 2026-10-25, tracker #19): distribution arcadedb (JVM wheel) and later arcadedb-native, import name arcadedb for both, and no arcadedb_embedded / arcadedb-embedded naming anywhere in this repository. There is no compatibility shim here: the old PyPI packages get a deprecation shim from the humemai repository. The stack of port PRs (#20 to #41) has merged, so the codemod ran on the merged tree and is deleted in this PR.

What changed

  • src/arcadedb_embedded moved to src/arcadedb (19 files). The codemod changed 140 other files with 406 replacements: tests 83 / 234, examples 30 / 56, build and verify scripts 8 / 31, docs 8 / 32, CI workflows 3 / 28, package source 6 / 16, packaging metadata 2 / 9 (files / replacements). By rule: distribution or package name 274, import statement 112, repository URL 4, native distribution name 3. All 13 exact-text edits applied. Against main the PR shows 158 files (19 renames, 4 added, 135 modified).
  • The codemod was re-run on its own output: nothing moved, every exact-text edit reported "already", zero files changed. scripts/rename_to_arcadedb.py and tests/test_rename_codemod.py are deleted in this PR.
  • scripts/check_no_embedded_name.py stays as a permanent guard. It runs as a pre-commit hook and as tests/test_no_embedded_name.py, which the CI test job runs on every platform (the repository has no separate lint job). The allowlist no longer names the codemod; it keeps docs/superpowers/, changelogs, humemai/arcadedb-embedded-python#N issue references, "published as" and "formerly" lines, and lines marked allow-old-name.
  • Docs line "This package was published as arcadedb-embedded until 26.10.x; install arcadedb now." in README.md and docs/modules/ROOT/pages/installation.adoc.
  • README: the packages table and the status paragraph are rewritten for the new names (arcadedb, arcadedb-native, and a row for the former names). The three places that point to the humemai fork by its URL or name keep it and carry the allow-old-name marker. The README had changed since the codemod was written (the readme-refresh PR), so three exact-text edits were added to the codemod before it ran.
  • New import-time warning: src/arcadedb/_dist_conflict.py, called from arcadedb/__init__.py. Both wheels import as arcadedb, so pip overwrites one with the other silently. Importing arcadedb now emits a RuntimeWarning when importlib.metadata finds both the arcadedb and the arcadedb-native distributions; unreadable metadata never breaks the import. tests/test_dist_conflict.py covers the function with a stand-in lookup (both, one, none, broken metadata) and the real import in a fresh interpreter with fake .dist-info directories. The installation page says to install only one of the two and mentions the warning.

Not touched: Java package names (com.arcadedb...), ARCADEDB_* environment variables, engine artifact names, history, and the generic word "embedded" (kept in the pyproject description and keywords).

Checks

  • pre-commit run --all-files passes black, isort, shfmt, actionlint and the new hook. "Pretty format YAML" fails on docs/antora.yml (version: ~, indented nav); it fails the same way on current main, so that file is left as it is.
  • Source-level import arcadedb (with PYTHONPATH=src, JPype installed) works.
  • 95 tests that need no wheel pass in 13 files, pinned to cores 0-3: the new test_dist_conflict.py and test_no_embedded_name.py, plus test_extract_version*, test_check_test_skips, test_build_scripts, test_build_wheel_check, test_build_no_uv_refresh, test_no_monorepo_wording, test_wheel_size, test_stage_jars, test_wheel_licences and test_example11_degree_matching. The wheel build and the engine tests were not run locally; CI builds and runs them.

Order on cutover day

Merge this, then release arcadedb 26.11.1 from this repository, then the humemai shims (see .notes/DECISIONS.md). Until 26.11.1 is on PyPI, pip install arcadedb gives the placeholder, and import arcadedb works only from a source checkout or a wheel built here.

🤖 Generated with Claude Code

tae898 and others added 3 commits October 25, 2026 01:14
scripts/rename_to_arcadedb.py moves src/arcadedb_embedded to src/arcadedb and rewrites every use of
arcadedb_embedded / arcadedb-embedded (imports, pyproject, build and verify scripts, CI paths and names,
tests, examples, README and the Antora pages) without touching Java package names, ARCADEDB_*
variables, engine artifact names, history, or the release guard. It is deterministic and idempotent,
and prints what it changed by category and by rule.

scripts/check_no_embedded_name.py fails when the old name reappears outside an allowlist (docs/superpowers,
changelogs, the codemod, issue references of the old repository, the "published as" line). The codemod
wires it into pre-commit and tests/test_no_embedded_name.py when it runs, so nothing fails on main
before the rename.

tests/test_rename_codemod.py runs both on a synthetic repository; it needs no wheel.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The distribution is now `arcadedb` (JVM wheel), later `arcadedb-native`, and both import as
`arcadedb`. No `arcadedb_embedded` or `arcadedb-embedded` name is left outside the allowlist of
scripts/check_no_embedded_name.py, which stays as a permanent guard (pre-commit hook and
tests/test_no_embedded_name.py).

Applied with scripts/rename_to_arcadedb.py on the merged tree (140 files, 406 replacements, a second
run changes nothing); the codemod and its test are deleted in this commit. The README packages table
and status paragraph are rewritten for the new names, and the docs carry the line "This package was
published as arcadedb-embedded until 26.10.x; install arcadedb now."

Both wheels import as `arcadedb`, so pip overwrites one with the other silently. Importing `arcadedb`
now emits a RuntimeWarning when both distributions are installed (importlib.metadata), with unit tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tae898 tae898 changed the title Rename codemod: arcadedb-embedded to arcadedb (draft, run after the stack merges) Rename the package to arcadedb (distribution arcadedb, import arcadedb) Oct 25, 2026
@tae898
tae898 marked this pull request as ready for review October 25, 2026 01:42
…and teach the name check about wildcard spellings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit 70e92a0 into main Oct 25, 2026
46 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.

1 participant