Skip to content

build!: require python >=3.11, remove dill dependency - #677

Merged
korikuzma merged 4 commits into
v3from
issue-477
Oct 27, 2026
Merged

korikuzma merged 4 commits into
v3from
issue-477

Conversation

@korikuzma

@korikuzma korikuzma commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

close #477

  • Also update dev python version from 3.12 to 3.14
  • Replace dill with pickle

close #477

* Excluding 3.15 for now until dill compatibility is fixed
* Also update dev python version from 3.12 to 3.14
@korikuzma korikuzma self-assigned this Oct 27, 2026
@korikuzma
korikuzma requested review from a team as code owners October 27, 2026 17:25
@korikuzma korikuzma added priority:low Low priority build Changes that affect the build system or dependencies labels Oct 27, 2026
@theferrit32

Copy link
Copy Markdown
Contributor

Hmm we may be able to avoid this code path entirely, so that we can include 3.15

@korikuzma

Copy link
Copy Markdown
Contributor Author

Hmm we may be able to avoid this code path entirely, so that we can include 3.15

I'll defer to you. I will admit, I was being lazy

theferrit32 and others added 2 commits October 27, 2026 14:54
Sqlite3MutableMapping used dill to serialize values. Nothing in the
library needs dill's by-value pickling: enref/deref only stores VRS
models, which pickle by reference. The only dependent was
test_classes, which stored a class defined inside the test function.

Move that class to module level, switch to pickle, and drop the dill
dependency. dill 0.3.x also fails on Python 3.15, where code objects
no longer have co_lnotab.

Values written by dill for importable classes contain no dill
references and load with pickle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The <3.15 cap was only needed for dill compatibility, and dill is no
longer a dependency. Add 3.15 to the classifiers and CI matrix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@theferrit32

Copy link
Copy Markdown
Contributor

I'm removing dill. Another PR coming soon.

@korikuzma

Copy link
Copy Markdown
Contributor Author

I'm removing dill. Another PR coming soon.

🚫🥒

Targets #677. Instead of capping Python at `<3.15`, this removes the
reason for the cap.

1. **build!: replace dill with stdlib pickle in object store.** Moves
the test class to module level, switches `dill.dumps`/`dill.loads` to
`pickle`, and drops `dill~=0.3.7` from the `extras` extra. Breaking
because the dependency is removed, and because a store holding values
that only dill can read (classes pickled by value) would no longer load.
Values dill wrote for importable classes, such as VRS models, contain no
dill references and load fine with `pickle`.
2. **build: allow python 3.15.** Removes the `<3.15` cap, adds the 3.15
classifier, and puts 3.15 back in the CI matrix. The dev Python version
stays at 3.14.
@theferrit32 theferrit32 changed the title build!: require python >=3.11,<3.15 build!: require python >=3.11 Oct 27, 2026
@theferrit32 theferrit32 changed the title build!: require python >=3.11 build!: require python >=3.11, remove dill dependency Oct 27, 2026
@korikuzma
korikuzma merged commit 935065a into v3 Oct 27, 2026
18 checks passed
@korikuzma
korikuzma deleted the issue-477 branch October 27, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Changes that affect the build system or dependencies priority:low Low priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants