chore: un-nest package to repo root, archive research artifacts, add MIT LICENSE#16
Merged
Merged
Conversation
Move the Python package, C core, tests, packaging files, CI helper, and demos out of the nested out/ tree to the repository root: out/jl2py/src -> src out/jl2py/csrc -> csrc out/jl2py/tests -> tests out/jl2py/pyproject.toml -> pyproject.toml out/jl2py/setup.py -> setup.py out/jl2py/ci -> ci out/demos -> demos out/ is now empty and removed. All moves use git mv to preserve history. Path references are fixed in a later commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V9jVcSYDNXtbBGfcAEPwvh
Promote to live docs under docs/: part3/jl2py_prd.md -> docs/jl2py-prd.md part5/jl2py-toolchain-plan.md -> docs/jl2py-toolchain-plan.md reports/implementation_status.md -> docs/implementation-status.md Archive the remaining phased research corpus and session snapshots, preserving provenance via part subdirs: part1..part5/* -> docs/archive/research/partN/ reports/* -> docs/archive/session-notes/ Update docs/README.md to point at the new layout and list the promoted specs. part1..5/ and reports/ are now empty and removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V9jVcSYDNXtbBGfcAEPwvh
Add a standard MIT LICENSE at the repository root, copyright
Harmoniqs, Inc. Matches the existing pyproject.toml declaration
(license = {text = "MIT"}).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9jVcSYDNXtbBGfcAEPwvh
Update every reference to the old out/jl2py and out/demos layout:
- .github/workflows/test.yml: make -C csrc, JL2PY_LIB_PATH under
csrc/build, pytest tests
- .github/workflows/wheels.yml: package-dir "." and comment
- demos/demo_common.py: JL2PY_SRC now ../src (was ../jl2py/src)
- demos/*.py, tests/*.py docstrings: drop stale
scratch/jlpy-interop/out/... run instructions
- tests/test_kwargs_slice.py + docs/implementation-status.md:
code-location citations point at csrc/ and src/
setup.py, pyproject.toml, csrc/Makefile, ci/install_julia.sh, and
tests/conftest.py use relative paths that are unchanged because their
sibling layout moved together; verified no edits needed.
Archived session-notes retain historical scratch/jlpy-interop paths by
design (they describe past sessions).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9jVcSYDNXtbBGfcAEPwvh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements §1–2 of the convergence & bundle-pipeline design spec (PR #15,
docs/specs/2026-07-01-jl2py-convergence-and-bundle-pipeline-design.md) — nothingmore. The Python package is un-nested to the repo root, the phased research corpus
is archived, and an MIT LICENSE is added. All moves use
git mv, so history ispreserved (the diff shows renames, not delete+add).
Package un-nest (§1)
out/jl2py/srcsrcout/jl2py/csrccsrcout/jl2py/teststestsout/jl2py/pyproject.tomlpyproject.tomlout/jl2py/setup.pysetup.pyout/jl2py/ciciout/demosdemosout/is now empty and removed. (out/jl2py/had no README/MANIFEST.in — only thefiles above.)
Docs reorganization (§2)
Promoted to live docs under
docs/:part3/jl2py_prd.md→docs/jl2py-prd.mdpart5/jl2py-toolchain-plan.md→docs/jl2py-toolchain-plan.mdreports/implementation_status.md→docs/implementation-status.mddocs/jlpy-data-model.md,docs/jlpy-type-model.md,docs/README.mdunchanged/live)Archived (provenance preserved via part subdirs):
part1..part5/*(remaining) →docs/archive/research/partN/reports/*(remaining) →docs/archive/session-notes/part1..5/andreports/are gone.docs/README.mdupdated to point at the newlayout and list the promoted specs.
LICENSE
Added standard MIT
LICENSEat the repo root,Copyright (c) 2026 Harmoniqs, Inc.Matches the existing
pyproject.tomldeclarationlicense = {text = "MIT"}(leftas-is — no contradiction).
Path fixes
.github/workflows/test.yml:make -C csrc,JL2PY_LIB_PATHundercsrc/build,pytest tests..github/workflows/wheels.yml:package-dir: .and comment.CIBW_BEFORE_ALL's{project}/ci/install_julia.shstays valid ({project}is the package-dir, nowroot;
ci/is at root).JULIA_INCLUDE_PATH=/opt/julia/...unaffected.demos/demo_common.py:JL2PY_SRCnow../src(was../jl2py/src).demos/*.py+tests/*.pydocstrings: dropped stalescratch/jlpy-interop/out/...run instructions.tests/test_kwargs_slice.py+docs/implementation-status.md: code-locationcitations now point at
csrc/andsrc/.setup.py,pyproject.toml,csrc/Makefile,ci/install_julia.sh,tests/conftest.py— they use relative paths whose siblinglayout moved together.
Intentionally left: archived
docs/archive/session-notes/*retain historicalscratch/jlpy-interoppaths (they describe past sessions).Verification
git diff origin/master --stat --find-renames: all 60 moves show as renames(including
test_tuple_boxing.py/test_arg_rooting.pyfrom Autobox Python tuple -> Julia Tuple #13/Root freshly-boxed call args immediately, not after the whole list #14).python -m compileall src tests demos -q: passes.make -C csrc(dlopen mode, JULIA_INCLUDE_PATH → juliaup 1.12.6 headers): buildscsrc/build/libjl2py.socleanly, confirming the Makefile's relative output pathsurvives the move.
🤖 Generated with Claude Code
https://claude.ai/code/session_01V9jVcSYDNXtbBGfcAEPwvh