Skip to content

Restructure into a standard Python package: one tests/, no tools/, retire lite/, test/ and native #60

Closed

Description

@b-re-w

The maintainer's instruction (2026-10-03, relayed by the ecosystem lead): tidy the repository into a standard Python package layout. The root keeps pyproject.toml, README.md, LICENSE, PROJECT.md, AGENTS.md, pythonx/, one tests/, docs/, .github/, plus .gitignore and .gitattributes, and the maintainer's UI.ipynb, which is untouched and git-ignored.

Before the move, archive/pre-restructure is tagged on develop's head, so every deleted file stays reachable.

Current Destination Why
test/ (72 files: the 2023–24 Kotlin Multiplatform sample pycomposeui, Chaquopy era, Gradle) deleted (kept by the tag) Not tests, and not part of the package. A sample app is app-template's business, and no test or build reads it.
pythonx/compose/lite/ (116 files: the retired 2024 JPype prototype, a Gradle project, and 97 tracked binaries, incl. a Windows .exe/.dll and jars) deleted (kept by the tag) Retired mechanism (INTENT §3 excludes JPype). Binaries inside the package directory.
pythonx/compose/native (git submodule → thisisthepy/swing-graalvm-demo @ 090f0190) and .gitmodules removed (the pointer is recorded here and in the tag) Not in INTENT. Native/GraalVM work lives in compose-multiplatform-extended.
pythonx/compose/test/main.py (docstring-only record of a retired Chaquopy test app) deleted A test app inside the package; nothing imports it.
pythonx/compose/ui/unit/dp.py (docstring-only placeholder) deleted Its note belongs in ui/unit/__init__.py's docstring, which already says how Dp crosses.
tools/gen_stubs.py (stub generator) pythonx/_build/gen_stubs.py Builds the package's .pyi. Kept out of the wheel (packages.find includes pythonx.compose* only).
tools/check_guide.py (guide checker) .github/scripts/check_guide.py, plus tests/test_guide.py running it Runs in CI through pytest instead of by hand.
tools/release/* (sync-release.sh, its test, protect-main.sh, README) .github/scripts/release/ CI-only. release-sync.yml paths updated.
tests/ (35 files) stays The one test folder. test_legacy_modules.py drops its checks of the deleted lite/ and test/main.py.

Docs: AGENTS.md path rules (§2 tooling row, §4, §14, §16 — test/ and lite/ are no longer open decisions, §17), PROJECT.md structure and open questions, SPEC Outside intent 3/7/8, and README/README_ko where they mention these paths.

Done when CI passes in both jobs, the wheel test builds and lists the package, the with-binder suite passes, check_guide passes as a test, and git ls-files shows only the root set above.

Activity

  1. b-re-w commented on Oct 3, 2026

    @b-re-w
    MemberAuthor

    Landed in develop via #61. Deleted content is preserved in tag archive/pre-restructure (15b6fe7).

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