-
Notifications
You must be signed in to change notification settings - Fork 136
Switch from travis-ci to GitHub workflow. #185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
6423f32 to
ca21290
Compare
|
I'm in favor of getting this merged sooner than later--and it can happen now (vs. as part of a release) since it only affects the @anatoly-scherbakov we should separate the |
This comment was marked as off-topic.
This comment was marked as off-topic.
603c1b8 to
8383625
Compare
|
|
Can we not skip 3.14 for now or use xfail in tests? |
- Only test with supported Python versions. - Drop testing of 3.8 - 3.9. - Require >= 3.10. - Add testing of 3.13 - 3.14. - Lint with 3.14.
- Update aiohttp document loader to work with Python 3.14. - Minimize async related changes to library code in this release. - In sync environment use `asyncio.run`. - In async environment use background thread. - AI pair programming used for this patch. This seemed to be the best of a few alternatives to fix Python 3.14 support while minimizing other changes. Future work could enable better concurrency.
01fe0f8 to
f9772ea
Compare
|
@davidlehn @anatoly-scherbakov @BigBlueHat This looks ready to merge! Great work. One question about the python versions and versioning though: as it stands, we're doing 2.0.5 here. Are the breaking changes absolutely necessary here? I have a slight preference for doing some patch/minor releases first that setup testing (2.0.5) and reach spec compliance (2.1.0). I based this off on the milestones that were already there: https://github.com/digitalbazaar/pyld/milestones But bundling everything in a new major release is also fine (just more complex to manage the issues). |
It's been so long since a release that I think I once had trouble making testing even run on the old versions that were previously supported. I had figured we'd drop saying old versions were supported, mark it a major version to avoid any potential issues there, and move on with other changes. I look at that from the js semver policy though. Not sure if python community does it different. I'm not going to look into if those aiohttp changes work with old versions, and certainly not bother to fix compat issues. Maybe that alone is enough of a breaking change? Pardon if I missed an overall plan. I had kind of thought a major version with the workflow testing and that dropped old python support would be the next release. Other stuff could be done afterwards. But maybe some other path is better. |
I am really not up-to-date on how more advanced async code works in Python. My attempts at fixing aiohttp were headed towards needing to refactor the whole pyld api to be async. That's what JS code did. It might be the way to allow more parallelism. Not quite sure what the story is there with aiohttp. In any case, that's a future problem if that patch works. It's certainly possible to use other document loaders. That's why that interface exists. Static files, caching, other methods, other libraries, etc. It does get tricky when async is mixed into the story. |
That would be a very great breaking change for basically all client code, I guess 🤔 And not all such code is I guess another set of functions could be feasible, like |
oh jeez, that's not right. My bad! I guess I wasn't sure what the strategy was. There were a couple of force-pushes to the branch and that complicated the rebasing, so I went for a merge in the end. I think I might have ended up merging both branches.
Yeah that's what I prefer too, I just got confused by git and github. I'll be more careful. Sorry!
Please do. I can try reverting the branch, but I think that better leave this to you as you know what's supposed to happen
Yeah makes sense. 3.0.0 is probably best; I suggest I rename the 2.0.5 milestone to v3.0.0b-testing (or v3.0.0 or something like that) and merge the remaining two in v3.0.0 (or v3.1.0)
No it's perfectly fine, I just tried to make sense of what was already there. It's not that different either, v2.0.5 now becomes v3.0.0. I just wonder if it make sense to have a new major release with failing spec tests. A 3.0.0 with spec compliance would communicate so much better. |
I agree. Async is not that obvious in Python as it is in Javascript. Anyway, let's focus on a working sync version for now :) |
Yes, that was the plan. The new 3.14 APIs are tricky though. The patch to that should, in theory, allow both sync code and newer async code that has a top level async loop to work. Yet another reason to have a major release. In case this is somehow broken, the 2.x series will keep working as it did before. |
5598834 to
f7876f3
Compare
- Remove unused loader env. - Remove matrix and use direct python version.
No description provided.