Skip to content

chore: attempt upstream merge to tna branch - #92

Merged
omgoo merged 37 commits into
tna-newfrom
main-new
May 9, 2026
Merged

omgoo merged 37 commits into
tna-newfrom
main-new

Conversation

@omgoo

@omgoo omgoo commented May 9, 2026

Copy link
Copy Markdown
Member

No description provided.

ato and others added 30 commits April 16, 2025 12:00
- tests: fix or disable tests that no longer work reliably, eg. depend on external sites
- support python 3.9, 3.10, 3.11 in tests for now
- bump version to 2.9.0-beta.0
This PR adds optional client-side replay in pywb's framed replay mode, using wabac.js. This is implemented using wabac.js's live proxy mode, similar to the implementation by Alex Osborne's proof of concept and enabled via the config.yaml file. Documentation has also been added.

The service worker proxies to the original pywb URLs and allows for 'graceful fallback' if service workers are not supported.

Client side replay can be enabled by setting `client_side_replay: true` in config.yaml

The wabac.js service worker is added to the pywb static directory at installation time via setup.py. The wabac.js version can be bumped via a constant in that file (current version is 2.22.12)

In addition, a few small housekeeping changes are also included:
- The Python version in the pywb Dockerfile is updated to 3.11 to avoid using an unsupported version of Python
- Similarly, CI now runs on Python 3.9-3.11 to drop older versions that are no longer supported in GH Actions runners
- wombat updated to latest 2.8.10

bump version to 2.9.0-beta.0
---------

Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
* ci: attempt to fix tests for 3.9 by skipping test that intermittently hang.
* fixes for client-side replay
- always serve top frame resource in client-side-replay mode, fixes webrecorder#936
- deps: bump wabac.js to 2.23.8 for additional fixes

* skip test that relies on ait
* Update dependencies for Python 3.12 support

* Run tests for 3.12 via CI
Differentiate between when LiveWebLoader is used for
fully remote loading (eg. remote CDX + pywb) vs
just remote index (remote CDX + local WARCs)
by checking if 'archive_paths' has been explicitly set.
If it has, then skip LiveWebLoader when filename/offset
are provided (to fallback to revisit)
- bump wabac.js to 2.24.1
- bump gevent to 23.9.0.post1 also, since 23.9.0 had an issue with osx/windows builds (https://github.com/gevent/gevent/blob/master/CHANGES.rst#2390post1-2023-09-02)

bump pywb to 2.9.1
* Implement access rule date support for before, after, newer , older
* Add documentation
* Always remove zstd from the Accept-Encoding HTTP header.
* add additional string for vue to localization:
- update babel config to be compatible with latest jinja
- add .vue extractor (babel-vue-extractor) to i18n requirements
- update .vue files to render localizable attributes with localization
- update vue_loc.html to include additional runtime strings to be looked up server-side
- fixes webrecorder#875

* tests: fix tests to use example-com.webrecorder.net
Running pywb against older versions of warcio results in:

> Internal Error: timestamp_to_datetime() got an unexpected keyword argument \'tz_aware\'

Usage of the tz_aware argument was introduced in webrecorder#949.
…ebrecorder#970)

In Python 3.9.24, 3.10.19, 3.11.14, 3.12.12, 3.13.6 and 3.14.0  HtmlParser was changed as a security update to more correctly follow the HTML5 standard. This changed the output of one of our tests. The output change doesn't appear to have a meaningful impact in this case as browsers treat it as a comment either way, so this just updates the test to match the output of the latest Python versions.

Fixes webrecorder#969
…rder#968)

If you have client_side_replay on and later turn it off,
prior visitors will still have it registered in their browser until it expires unless they manually remove it through devtools or by clearing site data. While we don't expect to be regularly flipping it on and off in production, it's important to be able to roll back to the previous configuration if an issue is discovered.
- add setuptools as it may longer included by default
* Add inject_scripts option

This option enables injecting custom scripts from static/ into replayed pages in both the client-side and server-side replay modes. This is useful for emulating removed browser features (such as emulating Flash Player with Ruffle) or applying compatibility or behavior tweaks.

* Supports injecting scripts in both server-side and client-side replay

* Supports injecting scripts globally and per collection, eg:

```
inject_scripts:
  - all.js
  - ruffle.js

collections:
  mycoll:
    inject_scripts:
      - all.js                # static/all.js
      - _/mycoll/tweaks.js    # collections/mycoll/static/tweaks.js
```

Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
Co-authored-by: Lauren Ko <lauren.ko@unt.edu>
…eature/updateActions

Update github actions to current versions
It was removed in setuptools 82.

Fixes webrecorder#985
The IA CDX service frequently times out causing transient failures of this test.
ato and others added 6 commits March 31, 2026 10:05
Mock IA CDX response in test_agg_select_mem_unrewrite_headers
- setuptools is no longer included by default since Python 3.12 so add it
- cgi was removed in Python 3.13 so replace it with legacy-cgi
- use a compatible version of gevent
- update werkzeug, gevent, greenlet to latest version for 3.14 support but conditionally pin when necessary to not break older Python
- Flask 2.2.0 replaced JSONIFY_PRETTYPRINT_REGULAR with app.json.compact so support both
Co-authored-by: Lauren Ko <lauren.ko@unt.edu>
@coderabbitai

coderabbitai Bot commented May 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e852cec8-a885-446c-a72a-175c0cce77c8

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch main-new
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch main-new

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

@omgoo
omgoo merged commit f924f87 into tna-new May 9, 2026
2 of 14 checks passed
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.

9 participants