Skip to content

Conversation

@BryceStevenWilley
Copy link
Contributor

@BryceStevenWilley BryceStevenWilley commented Aug 11, 2025

Docassemble >=1.8.0 now installs locally incredibly slow / big enough that it's been breaking GitHub actions when run (https://github.com/SuffolkLITLab/docassemble-EFSPIntegration/actions/runs/16885202477, and https://github.com/SuffolkLITLab/docassemble-EFSPIntegration/actions/runs/16883689579).

Our options:

  • Just change our testing action here to switch to 1.7.7, we don't have to support 1.8.0 yet. Unfortunately, we can't switch to 1.7.7 because one of the hardcoded deps of docassemble was yanked (multidict 6.3.2, Memory leak creating istr in multidict 6.3.0,6.3.1,6.3.2 (fixed in 6.4.0) aio-libs/multidict#1131 (comment)). That version of multidict is pinned for all of 1.7.X, so we need something can work with the latest version.
  • Switching our build process to use uv instead of plain pip to run faster (and maybe use less disk? has to, because it works fine).

This PR takes option 2. To do so, it rewrites the unittest.yml action (if this works well, we'll push those changes upstream of ALAction), creating a pyproject.toml, and a uv.lock file that saves what versions of things to use (if things go well, we could fix those versions of things to what's present on PROD docassemble).

Speedwise, this is a great success! The new tests pass in < 3 minutes, whereas before this changes, successful tests would take 6 to 10 minutes (not even counting the now 28 minutes that DA 1.8 seems to be taking to just install).

Misc

  • The pyproject.toml has duplicate information compared to what's in setup.py, but unfortunately, for DA 1.7.7 and below, you can't install a project that just has a pyproject.toml and no setup.py. This seems to be changing, but while we support lower DA versions, we should keep the setup.py file around.
  • Our pyproject.toml also differs from what DA will generate for you, as we're using setuptools-scm to include all of the data files as a part of the package. We'll see what works best: I'm thinking / hoping this will be much simpler for our library projects (i.e. AssemblyLine, ALToolbox, etc.), and we can just stick with DA's default file for interview projects.

@BryceStevenWilley BryceStevenWilley self-assigned this Aug 11, 2025
@BryceStevenWilley BryceStevenWilley added bug Something isn't working Refactor labels Aug 11, 2025
@BryceStevenWilley BryceStevenWilley force-pushed the fix_gha_too_big branch 3 times, most recently from 9404eaa to 264b789 Compare August 11, 2025 22:11
Docassemble >=1.8.0 going too slow / too big / breaking GHA when run. Can't switch to
1.7.7 because one of the deps was yanked (multidict), so we need something can work with
the latest version. Going to try switching our build process to use `uv` instead of plain
pip to run faster (and maybe use less disk? unsure).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working Refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants