<html><head></head><body><div class="ydp98f6a20ayahoo-style-wrap" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 16px;"><div style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 16px;"></div>
<div><p dir="ltr" style="line-height:1.38;margin-top:0.0pt;margin-bottom:0.0pt;"><span style="font-size: 7.2pt; font-family: Google Sans; color: rgb(0, 0, 0); background-color: transparent; vertical-align: baseline;">More than 4 years since v87. Many additions. See README.m116 all the way to README.m138 in the release notes directory for detailed changes.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0.0pt;margin-bottom:0.0pt;"><br></p><p dir="ltr" style="line-height:1.38;margin-top:0.0pt;margin-bottom:0.0pt;"><span style="font-size: 7.2pt; font-family: Google Sans; color: rgb(0, 0, 0); background-color: transparent; vertical-align: baseline;">IMPORTANT: Linux users: libEGL.so (from mesa-libEGL, libglvnd, or your graphic card's vendor e.g. NVidia) is required to be present on Linux hosts.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0.0pt;margin-bottom:0.0pt;"><br></p><p dir="ltr" style="line-height:1.38;margin-top:0.0pt;margin-bottom:0.0pt;"><span style="font-size: 7.2pt; font-family: Google Sans; color: rgb(0, 0, 0); background-color: transparent; vertical-align: baseline;">There is a small Migration Guide for upgrading from v87, added since 138.0rc1 .</span></p></div><div><br></div><div>https://github.com/kyamagu/skia-python/releases/tag/v138.0</div><div><br></div><div>v87.9 is the last of the v87 releases. Numpy 2.3.0 proper was out a few days ago.</div><div style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 16px;"><br></div>
<div id="ydp98f6a20ayahoo_quoted_0044633939" class="ydp98f6a20ayahoo_quoted" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 16px;">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
<div>
On Wednesday 4 June 2025 at 23:33:26 BST, Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div id="ydp98f6a20ayiv0875400900"><div><div> m138 includes a lot of changes in the CI build machinery, OpenGL, shader effects, and API coverage closer to other Skia bindings (Skia4Delphi and SkiaSharp). We now offers arm64 window wheels for windows 11. On Linux, we now offer OpenGL initializaion with EGL as an option (in addition to the GLX default). IMPORTANT: The presence of libEGL.so (part of mesa-libEGL / libglvnd-egl) is now a requirement on Linux.<br clear="none"><br clear="none">arm64 windows requires Numpy 2.3.0rc1 . (I submitted the arm64 windows CI build pull)<br clear="none"><br clear="none">There are examples of using OpenGL with skia-python in GLFW, SDL2, SDL3, WX, GTK3, GTK4, QT5, QT6 at https://github.com/HinTak/skia-python-examples/ . As noted earlier, OpenGL with skia-python under GTK4 (even in X11) requires the EGL init code. There is a QT6 regression bug filed https://bugreports.qt.io/browse/QTBUG-137158 .<br clear="none"><br clear="none">Longer details at https://github.com/kyamagu/skia-python/blob/main/relnotes/README.m138.md<br clear="none"><br clear="none">v87.9rc1 is out with just the arm64 windows addtion, and the EGL enhancement (backported from skia m122/m23-ish ...) on top of the previous v87 release.<br clear="none"><br clear="none">As I wrote a while ago, when numpy 2.3.0 proper comes out, the last of v87 will be out, and depending on when, a skia-python v138.1 / v139/v140 will be the next release. There are still some upgrade incompatibility between v87 and v13x, YMMV.<br clear="none"><br clear="none">Latest M138 tests: 2199 passed, 104 skipped, 18 xfailed, 26 warnings<br clear="none">M87: 2173 passed, 27 skipped, 8 xfailed<br clear="none">M87 went +2 from two new EGL/GLX tests from 2171.<br clear="none"><br clear="none">About 100 new tests have been added and another ~70 old one skipped (i.e. where the incompatibility is) between m87 and m138.<br clear="none"><br clear="none">My private repo has 2229 / 98 / 20 / 37 . I think the extras are with extra test files.<br clear="none"> </div> <div id="ydp98f6a20ayiv0875400900yqt73362" class="ydp98f6a20ayiv0875400900yqt1881442868"><div style="margin:10px 0px 0px 0.8ex;border-left:1px solid #ccc;padding-left:1ex;" class="ydp98f6a20ayiv0875400900yahoo_quoted"> <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;"> <div> On Thursday 24 April 2025 at 04:04:31 BST, Hin-Tak Leung <htl10@users.sourceforge.net> wrote: </div> <div><br clear="none"></div> <div><br clear="none"></div> <div><div dir="ltr">Hi,<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">The current idea is to just call the skia-python release which adds windows on ARM64 support (either v138 in about 5 weeks' time, or v140 in 3 months' time) the next stable. There will be one more v87 release, v87.9, just before that, with some aarch64 linux updates, with or without ARM64 windows support. The main reason is that it is increasingly hard trying to build the 4-year-old upstream m87 on modern compilers / platforms / newer python versions. It has been quite painful just continuing aarch64 linux builds, and it is not clear at this point whether m87 on ARM64 windows is feasible. Upstream Google never supported skia m87 on ARM64 linux or ARM windows, and upstream m87 was end-of-life over 4 years ago anyway. The numbering is about a month apart, so 138 - 87 is 51, or a bit more than 4 years (4x12=48). Typically, Google supports about 6 versions / 6 months. The numbering of Skia is identical with Chrome's - Chrome 136.x.y.z is built with Skia m136, etc.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">The skia-python m1xx series is currentlly v136.b13 , the 13th "beta" - it is called "beta" largely, because it is not 100% ( I think it is about 93%, with a small rarely used / obscure / withdrawn %) compatible / upgradable from m87 . Originally it was thought we'd continue for another year to about v15x and ~20th "beta" to get closer to smoother compatibility / upgradability with few surprises. Adding new platform seems to be a good clean exscue for breaking some backward compatibility / upgradability.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">Anyway, there are some significant new functionalilty - SVG support (and OT-SVG), COLRv1, runtime shader effects. etc.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">There are two new examples "SkSL_ShaderMulti+SDL2.py" and "SkSL_Mouse+SDL2.py" landed in<br clear="none"></div><div dir="ltr"><a shape="rect" href="https://github.com/HinTak/skia-python-examples/" rel="nofollow" target="_blank">https://github.com/HinTak/skia-python-examples/</a> , which tries to re-implements most of the animations on <a shape="rect" href="https://shaders.skia.org/" rel="nofollow" target="_blank">https://shaders.skia.org/</a> - have a go a running the former - it is quite pretty, honest. There will be some update in v138 / v140 to improve running sksl snipplets, unmodied from <a shape="rect" href="https://shaders.skia.org" rel="nofollow" target="_blank">https://shaders.skia.org</a> , in skia-python. (with v136, there are some sksl adjustments / hacks which I hope to remove).<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">I'd say, people give it some thought in upgrading to v1xx if they are still using v87. File issues - preferably with patches for fixes :-) - if there are important things missing. If you use skia-python for anything corporate / official / serious, please also consider commissioning / sponsoring me to finish off that last few (7?) %.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">FWIW, I think WebkitGTK switching from Cairo to Skia in 2.46 about 6 months ago(?) is poor towards the eco-system. Anyway.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">Thanks for reading so far.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr"><br clear="none"></div></div> </div> </div></div></div></div></div>
</div>
</div></div></body></html>