GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Upgrade hmac to Python 3.14.2 by Copilot · Pull Request #6863 · RustPython/RustPython

Conversation

Copilot AI commented Jan 24, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Upgrades hmac module and test suite from Python 3.14.2 as part of the ongoing stdlib modernization effort.

Changes

  • Lib/hmac.py: Updated to support three HMAC implementations (OpenSSL, HACL*, pure Python) with automatic fallback logic. Added _get_digest_constructor() helper and _compute_digest_fallback() for overflow handling.

  • Lib/test/test_hmac.py: Comprehensive rewrite using mixin-based architecture to test all three implementations. Increased test coverage from ~150 to 142 tests with better organization.

  • Test markers: 27 tests marked as @unittest.expectedFailure due to missing RustPython _hashlib features:

    • _hashlib.HMAC class
    • _hashlib.hmac_digest() function
    • Full hmac_new() implementation (currently raises UnsupportedDigestmodError)

Test Results

142 tests total: 68 passed, 48 skipped (platform/module dependencies), 26 expected failures.

Original prompt

This section details on the original issue you should resolve

<issue_title>Upgrade Python libraries and test from Python 3.14</issue_title>
<issue_description>## Summary

Check scripts/update_lib for tools. As a note, the current latest Python version is v3.14.2.

Previous versions' issues as reference

  • 3.13: Update Python libraries and tests from Python 3.13 #5529

Details

2026-01-24

$ python3 scripts/update_lib todo  --done
  • [no deps] types (40 dependents)
    • test_types (10 TODO)
  • [no deps] struct (17 dependents)
    • test_struct (4 TODO)
  • [no deps] stat (14 dependents)
    • test_stat
  • [no deps] operator (13 dependents)
    • test_operator (3 TODO)
  • [no deps] linecache (9 dependents)
    • test_linecache
  • [no deps] keyword (8 dependents)
    • test_keyword
  • [no deps] codecs (8 dependents)
    • test_codecs (98 TODO)
  • [no deps] future (6 dependents)
  • [no deps] copyreg (6 dependents)
    • test_copyreg
  • [no deps] reprlib (6 dependents)
    • test_reprlib (4 TODO)
  • [no deps] bisect (5 dependents)
    • test_bisect
  • [no deps] token (5 dependents)
  • [no deps] string (5 dependents)
    • test_string
  • [no deps] heapq (4 dependents)
    • test_heapq
  • [no deps] hashlib (2 dependents)
    • test_hashlib (10 TODO)
  • [no deps] hmac (2 dependents)
    • test_hmac (18 TODO)
  • [no deps] quopri (2 dependents)
    • test_quopri
  • [no deps] _sitebuiltins (2 dependents)
  • [no deps] _compat_pickle (1 dependents)
  • [no deps] _opcode_metadata (1 dependents)
  • [no deps] mimetypes (1 dependents)
    • test_mimetypes
  • [no deps] cmd (1 dependents)
    • test_cmd
  • [no deps] stringprep (1 dependents)
    • test_stringprep
  • [no deps] tty (1 dependents)
    • test_tty (2 TODO)
  • [no deps] hello
  • [no deps] phello
  • [no deps] colorsys
    • test_colorsys
  • [no deps] this
  • [no deps] _ios_support
  • [no deps] pydoc_data
  • [no deps] timeit
    • test_timeit
  • [no deps] zipimport
    • test_zipimport (2 TODO)
  • [0/3 deps] os (76 dependents)
    • test_os (18 TODO)
  • [0/4 deps] collections (32 dependents)
    • test_collections (3 TODO)
  • [0/1 deps] warnings (23 dependents)
    • test_warnings (40 TODO)
  • [0/1 deps] enum (17 dependents)
    • test_enum (15 TODO)
  • [0/1 deps] datetime (13 dependents)
    • test_datetime
  • [0/1 deps] _collections_abc (9 dependents)
  • [0/1 deps] base64 (8 dependents)
    • test_base64
  • [0/1 deps] textwrap (6 dependents)
    • test_textwrap
  • [0/1 deps] _weakrefset (4 dependents)
  • [0/2 deps] codeop (3 dependents)
    • test_codeop (5 TODO)
  • [0/1 deps] numbers (3 dependents)
  • [0/1 deps] contextvars (3 dependents)
  • [0/3 deps] decimal (2 dependents)
    • test_decimal (2 TODO)
  • [0/1 deps] _markupbase (1 dependents)
  • [0/1 deps] ipaddress (1 dependents)
    • test_ipaddress
  • [0/4 deps] fractions (1 dependents)
    • test_fractions (1 TODO)
  • [0/4 deps] rlcompleter (1 dependents)
    • test_rlcompleter (1 TODO)
  • [0/1 deps] graphlib
    • test_graphlib
  • [0/1 deps] nturl2path
    • test_nturl2path
  • [0/2 deps] sre_compile
  • [0/2 deps] sre_constants
  • [0/2 deps] sre_parse
  • [1/3 deps] re (45 dependents)
    • test_re (19 TODO)
  • [1/5 deps] functools (33 dependents)
    • test_functools (11 TODO)
  • [1/1 deps] abc (15 dependents)
    • test_abc (1 TODO)
  • [1/2 deps] weakref (14 dependents)
    • test_weakref (28 TODO)
  • [1/3 deps] copy (9 dependents)
    • test_copy
  • [1/2 deps] ast (7 dependents)
    • test_ast (104 TODO)
  • [1/1 deps] signal (6 dependents)
    • test_signal (3 TODO)
  • [1/3 deps] posixpath (6 dependents)
    • test_posixpath (4 TODO)
  • [1/4 deps] random (6 dependents)
    • test_random
  • [1/6 deps] typing (6 dependents)
    • test_typing (21 TODO)
  • [1/8 deps] dataclasses (5 dependents)
    • test_dataclasses (10 TODO)
  • [1/4 deps] queue (4 dependents)
    • test_queue
  • [1/4 deps] json (4 dependents)
    • test_json (18 TODO)
  • [1/2 deps] selectors (4 dependents)
    • test_selectors
  • [1/2 deps] gettext (3 dependents)
    • test_gettext (7 TODO)
  • [1/1 deps] shlex (3 dependents)
    • test_shlex (4 TODO)
  • [1/3 deps] locale (3 dependents)
    • test_locale
  • [1/3 deps] difflib (2 dependents)
    • test_difflib
  • [1/2 deps] genericpath (2 dependents)
    • test_genericpath (1 TODO)
  • [1/2 deps] html (2 dependents)
    • test_html
  • [1/3 deps] site (2 dependents)
    • test_site (5 TODO)
  • [1/3 deps] filecmp (1 dependents)
    • test_filecmp
  • [1/2 deps] ntpath (1 dependents)
    • test_ntpath
  • [1/1 deps] opcode (1 dependents)
  • [1/1 deps] pyclbr (1 dependents)
    • test_pyclbr (3 TODO)
      -...
  • Fixes Upgrade Python libraries and test from Python 3.14 #6839

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Copilot AI assigned Copilot and moreal Jan 24, 2026
Copilot started work on behalf of moreal January 24, 2026 08:31
View session
Copilot AI changed the title [WIP] Upgrade Python libraries and test from Python 3.14 Upgrade hmac to Python 3.14.2 Jan 24, 2026
Copilot finished work on behalf of moreal January 24, 2026 08:41
Copilot AI requested a review from moreal January 24, 2026 08:41
@fanninpm fanninpm mentioned this pull request Jan 30, 2026
Upgrade Python libraries and test from Python 3.14 #6839
Open
@moreal
moreal force-pushed the copilot/upgrade-python-libraries-yet-again branch from 75ea96d to b3cd2a6 Compare January 31, 2026 05:50
@coderabbitai

coderabbitai Bot commented Jan 31, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review

Comment @coderabbitai help to get the list of available commands and usage tips.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

moreal
moreal approved these changes Jan 31, 2026
View reviewed changes
@moreal
moreal marked this pull request as ready for review January 31, 2026 08:45
Copilot AI and others added 2 commits January 31, 2026 17:45
@moreal
Update hmac and test_hmac from Python 3.14.2
90c0962
Co-authored-by: moreal <[email protected]>
@moreal
Mark expected failures in test_hmac (27 TODOs)
e981603
Co-authored-by: moreal <[email protected]>
@moreal
moreal force-pushed the copilot/upgrade-python-libraries-yet-again branch from b3cd2a6 to e981603 Compare January 31, 2026 08:45
@github-actions

github-actions Bot commented Jan 31, 2026

Copy link
Copy Markdown
Contributor

📦 Library Dependencies

The following Lib/ modules were modified. Here are their dependencies:

[x] lib: cpython/Lib/hmac.py
[ ] test: cpython/Lib/test/test_hmac.py (TODO: 27)

dependencies:

  • hmac

dependent tests: (4 tests)

  • hmac: test_hmac test_smtplib
    • secrets: test_secrets
    • smtplib: test_smtpnet

Legend:

  • [+] path exists in CPython
  • [x] up-to-date, [ ] outdated
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

youknowone
youknowone approved these changes Jan 31, 2026
View reviewed changes
@youknowone
youknowone merged commit cdd47b6 into main Jan 31, 2026
14 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@youknowone
youknowone deleted the copilot/upgrade-python-libraries-yet-again branch January 31, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@youknowone youknowone youknowone approved these changes
+1 more reviewer
@moreal moreal moreal approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@moreal moreal

Copilot code review Copilot

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Upgrade Python libraries and test from Python 3.14

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@youknowone @moreal
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.