Skip to content

Add CI support for py3.8. #988

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

Merged
merged 7 commits into from
Nov 19, 2019
Merged

Add CI support for py3.8. #988

merged 7 commits into from
Nov 19, 2019

Conversation

matham
Copy link
Contributor

@matham matham commented Nov 14, 2019

This add CI support for py3.8 on Windows (appveyor).

I didn't add it for travis, because I'm not sure it is supported yet on travis (I recently switched all my CI to github so I'm not sure the status of travis).

@matham
Copy link
Contributor Author

matham commented Nov 15, 2019

Hmm, looks like it's failing here with pycparser not being installed. Somehow adding it to setup_requires here is too late.

I'm not sure how to explicitly add this for this project - because I don't see why it's only failing for 3.8?

@filmor
Copy link
Member

filmor commented Nov 15, 2019

If one of the interop*.cs files doesn't exist, it is generated on build. Generate it manually once and commit the resulting file, then pycparser will not be invoked.

@filmor
Copy link
Member

filmor commented Nov 15, 2019

Looks good, not quite sure what is going on on AppVeyor, though.

@matham
Copy link
Contributor Author

matham commented Nov 17, 2019

The error seems to be that System.EntryPointNotFoundException : Unable to find an entry point named 'Py_CompileString' in DLL 'python38'.. I traced it down to this bug in python: Py_CompileString and PyParser_SimpleParseString not exported in python38.dll.

Seems this will be fixed for the next release though, which will be in mid December. Not sure what to do about this PR in the meantime though.

@filmor
Copy link
Member

filmor commented Nov 17, 2019

Add the Windows/Python 3.8 builds as allow_failures in the appveyor.yaml (https://www.appveyor.com/docs/build-configuration/#allow-failing-jobs), a note to the README and we'll merge. No need to wait until December for this.

@matham
Copy link
Contributor Author

matham commented Nov 19, 2019

Ok, added a note to the readme and allow_failures. Apologies, but you may want to squash the PR as I was doing it in the browser so there's a commit for each change in a file.

Would it be possible to make a wheel of the last release for 3.8 and upload to pypi (e.g. by backporting this PR)? I'm not sure how you generate the wheels for the release - I can't find it happening on the CI. In my projects, we have a branch for each release called stable-x.y.z so we can backport and have the CI run again generating the wheels etc. But here it is only a tag so I'm not sure that is possible?

@codecov-io
Copy link

codecov-io commented Nov 19, 2019

Codecov Report

Merging #988 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #988   +/-   ##
=======================================
  Coverage   86.71%   86.71%           
=======================================
  Files           1        1           
  Lines         301      301           
=======================================
  Hits          261      261           
  Misses         40       40
Flag Coverage Δ
#setup_linux 65.44% <ø> (ø) ⬆️
#setup_windows 71.42% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e193126...d1cb35f. Read the comment docs.

@filmor filmor merged commit 2736094 into pythonnet:master Nov 19, 2019
@filmor
Copy link
Member

filmor commented Nov 19, 2019

It's probably easier to just do a 2.4.1 now, I'll see to it next weekend.

Thank you very much for this, in particular also for hunting down the bug! :)

@m-rossi
Copy link
Contributor

m-rossi commented Nov 19, 2019

The CI pipelines at conda-forge just started the Python 3.8 migration for the pythonnet-feedstock and failed: conda-forge/pythonnet-feedstock#3
So am I right we need a new version of pythonnet or Python 3.8.1 to get it working on Python 3.8?

@filmor
Copy link
Member

filmor commented Nov 19, 2019

pythonnet from current master should work fine for a lot of things, it will just fail on functions that run python code as a string from .net on Windows until 3.8.1.

@matham matham deleted the patch-1 branch November 19, 2019 18:04
@m-rossi
Copy link
Contributor

m-rossi commented Nov 19, 2019

conda-forge uses pypi uploads, so I will disable builds for Python 3.8 for now.

AlexCatarino pushed a commit to QuantConnect/pythonnet that referenced this pull request Jun 27, 2020
* Add CI support for py3.8
* Add interop38.cs
* Add PYTHON38
* Add support for 3.8
* Bump 3.7 to 3.8
* Allow failures for py3.8 because it's a Python 3.8.0 bug
* Add note about py3.8.0 to readme
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.

4 participants