Dust off and update V8 to 12.2
Lots of changes here. From HISTORY.md:
- Update V8 to 12.2
- Drop Python 2 support
- Fix small Python 3.12 issue and add testing for Python 3.9-3.12
- Add aarch64 support for Mac and Linux
- Revamp DLL loading to be compliant with Python 3.9-style resource loading. This may
present a small breaking change for advanced usage; the
EXTENSION_PATHandEXTENSION_NAMEmodule variables, andMiniRacer.v8_flagsandMiniRacer.extclass variable have all been removed. - Add support for the ECMAScript internalization API and use fast startup snapshots
- Switch from setuptools to Hatch
- Switch from tox to Hatch
- Switch from flake8 and isort to Hatch's wrapper of Ruff
- Switch from Sphinx to mkdocs (and hatch-mkdocs)
- Switch from reStructuredText to Markdown
- Switch from unittest to pytest
- Add ARCHITECTURE.md and lots of code comments
A lot of these changes are just trying to update the package to "Python ecosystem 2024" (i.e., Hatch and friends).
I ended up making these updates in interleaved order in a way that's not useful for incremental review, so I just squashed to one commit. I could split this back out into logical changes if that's useful, but it will take some hours. :)
I'm not sure if this should be a PR, or if we should move the official repo, or what; depends on what the ex-Sqreen folks think!
BTW docs can be previewed at https://bpcreech.com/PyMiniRacer
Update: after discussion with @nizox and @aviat we decided to fork PyMiniRacer into https://github.com/bpcreech/PyMiniRacer for its continued life.
This PR (and more) are landed there.