Skip to content

Drop eol python#259

Open
anarkiwi wants to merge 126 commits into
faucetsdn:mainfrom
c65sdn:drop-eol-python
Open

Drop eol python#259
anarkiwi wants to merge 126 commits into
faucetsdn:mainfrom
c65sdn:drop-eol-python

Conversation

@anarkiwi
Copy link
Copy Markdown
Member

@anarkiwi anarkiwi commented May 5, 2026

No description provided.

anarkiwi and others added 30 commits June 1, 2021 11:49
anarkiwi and others added 30 commits March 3, 2024 07:48
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.8.12 to 1.8.14.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](pypa/gh-action-pypi-publish@v1.8.12...v1.8.14)

---
updated-dependencies:
- dependency-name: pypa/gh-action-pypi-publish
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [pytype](https://github.com/google/pytype) from 2024.2.27 to 2024.3.11.
- [Changelog](https://github.com/google/pytype/blob/main/CHANGELOG)
- [Commits](https://github.com/google/pytype/commits/2024.03.11)

---
updated-dependencies:
- dependency-name: pytype
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…action-pypi-publish-1.8.14

Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14
Bump pytype from 2024.2.27 to 2024.3.11
Bumps [pytype](https://github.com/google/pytype) from 2024.3.19 to 2024.4.11.
- [Changelog](https://github.com/google/pytype/blob/main/CHANGELOG)
- [Commits](google/pytype@2024.03.19...2024.04.11)

---
updated-dependencies:
- dependency-name: pytype
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bump pytype from 2024.3.19 to 2024.4.11
eventlet is in long-term maintenance ("we strongly recommend against
using it for new projects") and forces beka's only consumer (faucet)
to keep monkey-patching the runtime. Port the four greenlet-spawning
loops in Peering and the accept loop in StreamServer to plain
threading + ThreadPoolExecutor, swap the two eventlet.queue.Queue
instances in StateMachine for stdlib queue.Queue, and drop the
eventlet dependency.

Cooperative shutdown:
* threading.Event signals stop; each loop checks it.
* output_messages and route_updates queues get a poison-pill sentinel
  to wake any thread blocked in Queue.get().
* socket.shutdown(SHUT_RDWR) unblocks the recv side of receive_messages.
* kick_timers uses Event.wait(timeout=1) so it bails immediately
  instead of waiting out the full second.

Tests:
* test_peering switched off GreenPool; test_print_route_updates now
  uses a real Thread and exercises Peering.shutdown() to verify the
  poison-pill path. test_run_starts_threads patches threading.Thread
  and asserts the four expected start/join cycles.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Drop eventlet, port to stdlib threading
Python 3.8 reached EOL on 2024-10-07; 3.9 on 2025-10-07. Drop both
from the test matrices and bump python_requires to >=3.10. While
here, extend coverage with 3.13 and 3.14 to match faucet's supported
range.

* tests-unit.yml: matrix 3.9, 3.10, 3.11, 3.12 -> 3.10, 3.11, 3.12,
  3.13, 3.14.
* tests-codecheck.yml: pytype matrix 3.8, 3.9, 3.10 -> 3.10, 3.11,
  3.12, 3.13, 3.14.
* setup.py: python_requires >=3.8 -> >=3.10; refresh the
  pre-install version check to match.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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