Skip to content
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

Make 3.11.3 patch release #4658

Closed
2 of 4 tasks
michaelosthege opened this issue Apr 22, 2021 · 14 comments
Closed
2 of 4 tasks

Make 3.11.3 patch release #4658

michaelosthege opened this issue Apr 22, 2021 · 14 comments

Comments

@michaelosthege
Copy link
Member

michaelosthege commented Apr 22, 2021

Steps towards a 3.11.3 patch release:

  • The line in the release notes about Add a type guard for intX #4569 should go into a 3.11.3 section.
  • Bump the version
  • Check with ArviZ team if we should set an upper bound for the compatibility, so future ArviZ versions can care less about PyMC3 3.11.x? (cc @OriolAbril )
  • Follow the release checklist
@OriolAbril
Copy link
Member

What ArviZ things are explicitly used in 3.11.3? rhat, ess and from_pymc3 only? The main pain point was that nearly all functions were imported explicitly to generate the pymc aliases, update a couple of arguments in the way and so on, so any naming change or deprecation ended up in incompatible versions and import errors.

Depending on the imports and things used explicitly it will be one thing or another. As a first approximation, 1.0.0 will most probably not work with python 3.x, but we also moved the inferencedata converter, so at some point it should be removed from ArviZ, probably before 1.0, and that will break compatibiltiy with pymc3 3.x.

The next function to be removed will be plot_joint which has been deprecated for quite some time, I think this is no problem with pymc3, if it were we should set <0.12 as condition.

I'll try to see what is used explicitly at some point, but if someone already knows that would be great.

@hectormz
Copy link
Contributor

Hi @michaelosthege @twiecki I'm under the impression that v3.x won't be changing much before v4 is out. Is it possible to get a patched version of theano-pymc/aesara with the next pymc3 patch release? Specifically, I'd love a patch with pymc-devs/pytensor#408 . Without it, Windows users are stuck using Python 3.6 to use pymc3 (which is generally unsupported)

@OriolAbril
Copy link
Member

OriolAbril commented May 26, 2021

This is a bit of a side note, but to add to the general "unsupportedness" of python 3.6, pymc3 should not install at all in python 3.6 anymore: https://github.com/pymc-devs/pymc3/blob/v3/setup.py#L85 🤔

@michaelosthege
Copy link
Member Author

Hi @hectormz ,
Technically we can make patch releases of theano-pymc and the cherry-picking linked above is how 👍

Without it, Windows users are stuck using Python 3.6 to use pymc3 (which is generally unsupported)

I am using PyMC3 3.11.x with Python 3.7 or 3.8 on Windows all the time and did not run into the DLL issue yet. Maybe it's more an issue of how the installation is done?

@hectormz
Copy link
Contributor

@michaelosthege perfect! Thanks! I should say that python 3.7 would still work. Are you using anaconda? I'm not. Otherwise it could be the manner that gcc is on your path...

@michaelosthege
Copy link
Member Author

@hectormz I'm always using miniconda to create environments, followed by a mix of conda and pip to install/uninstall, depending on the package.

FWIW these are the entries in my sys.path in one of my Python 3.8.5 environments having pymc3==3.11.2:

C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\python38.zip
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\DLLs
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\lib
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\lib\site-packages
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\lib\site-packages\win32
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\lib\site-packages\win32\lib
C:\Users\osthege\AppData\Local\Continuum\miniconda3\envs\pm3-dev\lib\site-packages\Pythonwin

@hectormz
Copy link
Contributor

@michaelosthege got it. I believe I tested before and it was a "vanilla python" which I usually use, because anaconda/miniconda must be doing something differently to inject the gcc dll path.

So this is a fix for "vanilla python" users running on Windows, on Python 3.8 or higher 😁. I have anaconda installed too, but try to do as much in "vanilla python" when possible.

@canyon289
Copy link
Member

Im going to be making a release sometime in the next couple of weeks

It seems like this windows fix is merged into Aesara, and since pymc3 v3 installs >2.0.1 we should be good right?

pymc-devs/pytensor#408

@michaelosthege
Copy link
Member Author

@canyon289 It's not v3 that has >2.0.1 !
Right now v3 pins the theano-pymc version. But I guess you could change that to a >=?

@canyon289
Copy link
Member

Im afraid to change things too much. Current released version of theano-pymc is still 1.1.2 so changing to >= wont fix anything today. Since theres no immediate benefit I wont change it, and in the future if we do release another version of theano-pymc we can do another release.

@hectormz I hope this is ok!

@hectormz
Copy link
Contributor

hectormz commented Jun 4, 2021

That's okay. I wish I had put the change in back in January! I just selfishly use my own fixed fork of 1.1.2 to install theano-pymc (https://github.com/hectormz/aesara/tree/fix-theano-dll).

Pymc3 is unusable on on Windows with python 3.8+ (without anaconda), so hopefully people find my solution and install it until pymc3 v4 comes out.

I recently learned that I think you can cut a release like 1.1.2a, and that would solve the problem and be grabbed without changing anything else, but I'm not expert enough to suggest that to people.

@OriolAbril
Copy link
Member

side note, please go over pymc-examples open PRs or talk to me before building and publishing the updated documentation. There are several PRs ready to merge (i.e. I have marked as approved for example) but as I have been the only one to review them I have not merged yet. I generally to on a merging spree once a month and merge all approved PRs anyways if it's been approx a week or more since approval which might not align with the release

@canyon289
Copy link
Member

canyon289 commented Jun 6, 2021

It sounds like we should just cut another 3.11.4 release sometime to get the docs and aesara in. No need to rush everything for this one release.

In terms docs @OriolAbril will this affect things given that v3 is not the latest branch anyway?

Release branch is here
#4745

@michaelosthege
Copy link
Member Author

@canyon289 did the 3.11.3 release: https://github.com/pymc-devs/pymc3/releases/tag/v3.11.3

If there were any docs/dependency things from this thread left on the ToDo list please open specific issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants