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 we 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. We wait for #10 to #16 (they touch build.sh, extract_version.py and native jar staging) before touching the build scripts, and will rebase on them.

Not planned: our benchmark tooling and matrix runners stay in humemai.

Each box becomes its own issue or PR; questions on any of them are welcome here. Is this order and PR size (roughly 500 to 1,500 lines per group) fine for review?

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 we 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).

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions