Skip to content

Tracking: porting the rest of the humemai bindings work #19

Open

Description

@tae898

Tracking the rest of the work that lives in humemai/arcadedb-embedded-python bindings/python and not yet here. The repo moved at ArcadeData/arcadedb ee04bd202a plus the c0f9647 port, and I compared both trees. A wholesale patch does not apply (138 rejected hunks in 39 files, mostly from the black/isort pass and the jar-derived version), so each group is ported by hand as its own PR, smallest first.

Status as of 2026-10-26, after #80. Everything ticked is merged.

Not planned: my benchmark tooling and what depends on it (examples/bench_exec.py, examples/scripts/, tests/test_bench_exec.py, tests/test_render_ab_tables.py, tests/test_jvm_payload.py, scripts/render_ab_tables.py, docs/benchmarks, docs/brand) stays in humemai.

Each open box becomes its own issue or PR; questions on any of them are welcome here.

Activity

  1. tae898 commented on Oct 23, 2026

    @tae898
    CollaboratorAuthor

    Docs item: proposal for moving the user-facing pages into ArcadeData/arcadedb-docs (Antora/AsciiDoc) is ArcadeData/arcadedb-docs#502, first PR ArcadeData/arcadedb-docs#503.

  2. tae898 commented on Oct 23, 2026

    @tae898
    CollaboratorAuthor

    Python runtime fixes item, Ctrl-C part: #26 (SIGINT and SIGTERM given back to Python after the JVM starts; ported from humemai/arcadedb-embedded-python#494). The item stays open for the other fixes in that group.

  3. tae898 commented on Oct 24, 2026

    @tae898
    CollaboratorAuthor

    Python runtime fixes item, the rest of the group: #27 (serialized start_jvm(), heap default, log directory, XML limits, read-only open, async executor docs, with their tests). With #26 that covers every fix in the group except the opt-in Leyden AOT cache (humemai#490, not merged there yet), which follows as its own PR. The box stays unticked until then.

  4. tae898 commented on Oct 24, 2026

    @tae898
    CollaboratorAuthor

    JRE module trim, Jackson/snappy/commons-math3 handling, jar closure and server payload tests: #28 (ported from humemai/arcadedb-embedded-python#409 and #452). Wheel linux/amd64, measured: 73,973,014 to 67,547,260 bytes. The polyglot-default test moves with the runtime-fixes PR.

  5. tae898 commented on Oct 24, 2026

    @tae898
    CollaboratorAuthor

    Features item: #29 (Python functions in SQL and openCypher, record events, Document.save()/delete() raising ArcadeDBError, example 28; ported from humemai/arcadedb-embedded-python#391; adds two Java glue classes to the existing bridge jar, no build change) and #30 (DataFrame/Arrow ingest, to_polars(), PRODUCT quantization, vector SQL options, example 27, the polars extra; ported from humemai#390, #384, #446, #395; no new Java). Both are based on #27 (port/runtime-fixes). Documentation pages for these features are not in them; they go with the Antora component.

  6. tae898 commented on Oct 24, 2026

    @tae898
    CollaboratorAuthor

    AOT cache port (humemai/arcadedb-embedded-python#490): #31 (based on #27; docs part left out until the Antora component #23 is in).

  7. tae898 commented on Oct 24, 2026

    @tae898
    CollaboratorAuthor

    Status as of 2026-10-24 14:46 UTC, from gh and git. Every open PR below has 46 of 46 checks green.

    Item PR State
    Move with history, temporal encoder, build-script fixes, docs wording, CLAUDE.md #1, #2, #10 to #16, #21, #24 merged
    Docs: Antora component, first slice #23 merged 2026-10-24 12:23 UTC
    Docs: "Which package for which mode" #25 open, waiting for 24 h (base is still the docs/antora-component branch)
    Docs: concurrency, processes and crashes #34 open, waiting for 24 h (stacked on #25)
    Studio jar out of the wheels #20 open, needs robfrank's OK (changes what the wheels contain)
    Release workflow #22 open, needs robfrank's OK (nothing has run on GitHub yet)
    JRE module trim, Jackson/snappy/commons-math3, jar closure, payload tests #28 open, approved by robfrank 2026-10-24 13:46 UTC; the 24 h notice on the PR was posted 11:22 UTC
    Runtime fixes: SIGINT and SIGTERM (humemai#494) #26 open, waiting for 24 h
    Runtime fixes: serialized start_jvm(), heap default, log dir, XML limits, read-only open, async docs #27 open, waiting for 24 h
    Runtime fixes: opt-in AOT cache (humemai#490) #31 open, waiting for 24 h (stacked on #27)
    Features: Python functions in SQL/Cypher, record events #29 open, waiting for 24 h (stacked on #27)
    Features: DataFrame/Arrow ingest, to_polars(), PRODUCT quantization, vector SQL options, example 27 #30 open, waiting for 24 h (stacked on #27)
    Float vectors cross as one binary buffer (humemai#496) #33 open, waiting for 24 h (stacked on #29)
    Example 29, hybrid agent-memory retrieval (not in the original list) #32 open, waiting for 24 h

    Remaining, in the order I suggest. Paths are compared with bindings/python in humemai/arcadedb-embedded-python at origin/main and with the files of the PRs above; files present on both sides can still differ in content.

    1. Small build and test fixes: humemai#463 (scripts/build.sh follows a symlinked JAR_LIB_DIR: find -H, cp -aL), humemai#466 (server tests start on a free port: tests/conftest.py and four server test files), humemai#469 (example 21 runs one query through the view after a reopen, then polls the counts). None is in a PR here.
    2. Release scripts, same box as Add release workflow publishing to PyPI by trusted publishing #22: scripts/after_tag_verify.sh (humemai#479) and scripts/check_version.py with tests/test_check_version.py (humemai#501, the devN/postN counting rule). No wheel-content change.
    3. Remaining tests: test_sql_constraints_and_maintenance.py, test_collection_equality_known_issues.py (humemai#445), test_guide_graph_analytics.py, test_guide_timeseries.py, and test_equivalence.py with test_equivalence_ladybug.py. The last two need a test extra with duckdb, ladybug and networkx. That is 6 files, down from the "about 30" in the issue, because Python runtime fixes in src: serialized start_jvm(), heap default, log directory, XML limits, read-only open, async docs #27 to Bridge: float vectors cross as one binary buffer, not as JSON text or one JPype call per element (stacked on #29) #33 carry the others.
    4. Docs beyond the first slice, as AsciiDoc in the Antora component: guide (12 pages), API reference (14), examples (30), development (12), getting-started (2), the pages for the features in Python functions in SQL and openCypher, record events, Document.save()/delete() errors (#19) #29, DataFrame/Arrow ingest, to_polars(), PRODUCT quantization, vector SQL options, example 27 (#19) #30, JVM: opt-in JDK 25 AOT cache (ARCADEDB_AOT=1 / start_jvm(aot=True)) (#19) #31 and Bridge: float vectors cross as one binary buffer, not as JSON text or one JPype call per element (stacked on #29) #33, and the vector docs of humemai#499 (docstrings in core.py and vector.py, plus guide/vectors.md). mkdocs.yml, docs-build.yml and deploy-python-docs.yml are not ported, since the Antora component replaces them.
    5. Native-image wheel: native-wheel/, src/arcadedb_embedded/_native/, native-preview.yml, native-alias.yml, together with humemai#495, #500, #504 and #505 (the JVM wheel ships _native). It lives on the humemai branch native-preview (77 commits not on main; main has 204 not on it), so I rebase that branch on main first. The arcadedb-native job for Add release workflow publishing to PyPI by trusted publishing #22 comes with it.
    6. Small dev scripts, port or drop file by file: scripts/build_and_install_locally.sh, scripts/list_image_jars_by_size.sh, scripts/fix_markdown.py, scripts/profile-python/ (4 files), AGENTS.md.

    Not planned, as before: benchmark tooling and what depends on it (examples/bench_exec.py, examples/scripts/, the bench_exec changes in examples 07 to 12 including humemai#502, tests/test_bench_exec.py, tests/test_render_ab_tables.py, tests/test_jvm_payload.py, scripts/render_ab_tables.py, docs/benchmarks, docs/brand).

  8. added 5 commits that reference this issue on Oct 24, 2026
  9. tae898 commented on Oct 28, 2026

    @tae898
    CollaboratorAuthor

    Docs item, 2026-10-29: #115 builds the Antora component as a site of its own in CI (Docs workflow, any Antora warning fails it, the rendered site is attached as the docs-site artifact; local build in development/ci.adoc), so docs-only pull requests now get a check. #119 adds the Vectors how-to page (the vector docs of humemai#499, without the 26.10.x measurements), and tests/test_docs_vectors_page.py runs every Python block on it on both backends. Publishing at docs.arcadedb.com/arcadedb-python/ is ArcadeData/arcadedb-docs#505.

  10. tae898 commented on Nov 5, 2026

    @tae898
    CollaboratorAuthor

    26.11.1 is out on PyPI for both packages (arcadedb and arcadedb-jvm), and arcadedb-embedded 26.11.1 is published as the last release of the old name, a shim that installs arcadedb. The announcement is at ArcadeData/arcadedb#11347 and the release notes are at https://github.com/ArcadeData/arcadedb-python/releases/tag/26.11.1. Thank you @robfrank and @lvca.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    parent-issueTracks a group of issues and pull requests

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions