Skip to content

Floor findimports at the first MIT release - #7

Merged
thorwhalen merged 1 commit into
masterfrom
claude/findimports-mit-floor
Aug 4, 2026
Merged

Floor findimports at the first MIT release#7
thorwhalen merged 1 commit into
masterfrom
claude/findimports-mit-floor

Conversation

@thorwhalen

Copy link
Copy Markdown
Member

unbox is Apache-2.0 and depends on findimports, which was GPL-2.0-or-later through 2.3.0 and MIT from 2.4.0 (2024-02-01, upstream issue 27) onward. Latest is 3.0.0, MIT.

The dependency was declared unpinned, so the licence outcome was accidental rather than stated: a fresh resolve happens to pick an MIT release, but a constraints file, an old lockfile or a stale wheel cache could select a GPL-era one.

findimports>=2.4 makes the guarantee explicit at zero cost.

Why not make it optional

That was the original plan, on the belief that findimports was still GPL. It is not, so an opt-in extra would have bought nothing and cost real UX — the dependency is load-bearing (unbox subclasses ModuleGraph; without it unbox does essentially nothing). It stays required.

Worth recording why the belief was wrong, since it will mislead the next reader too: findimports 2.x still carries a stale GPL paragraph inside its module docstring, ~30 lines above __licence__ = 'MIT'. Any scan that greps source text for "GNU General Public License" flags it; reading the distribution metadata, the bundled LICENSE, or the trove classifier does not. That blurb is gone in 3.0.0.

Verified

  • PyPI metadata per version: 1.5.2 GPL v2 or later; 2.0.0–2.3.0 GPL v2 or v3; 2.4.0/2.5.0/2.6.0/3.0.0 MIT.
  • The 3.0.0 wheel's bundled dist-info/licenses/LICENSE is the MIT text.
  • Current resolves unaffected: unbox requires Python >=3.11, findimports 3.0.0 requires >=3.10.
  • Suite unchanged: 32 passed.

https://claude.ai/code/session_01Kug7UUbVeCQgruvNXUq63c

unbox is Apache-2.0 and depends on findimports, which was GPL-2.0-or-later
through 2.3.0 and MIT from 2.4.0 (2024-02-01) onward. The dependency was
declared unpinned, so the licence outcome was accidental rather than stated:
a fresh resolve happens to pick an MIT release, but a constraints file, an
old lockfile or a stale wheel cache could select a GPL-era one.

`findimports>=2.4` makes the guarantee explicit at zero cost. The dependency
stays required -- it is load-bearing (unbox subclasses ModuleGraph) -- and
current resolves are unaffected: latest is 3.0.0, and unbox already requires
Python >=3.11 while findimports 3.0.0 requires >=3.10.

Suite unchanged at 32 passed.

Claude-Session: https://claude.ai/code/session_01Kug7UUbVeCQgruvNXUq63c
@thorwhalen
thorwhalen merged commit b9a3a1c into master Aug 4, 2026
12 checks passed
@thorwhalen
thorwhalen deleted the claude/findimports-mit-floor branch August 4, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant