Missing py2neo package causing build issues in ALL edx-platform releases

As of today, the py2neo Python package was removed from Pypi: https://pypi.org/project/py2neo/

Unfortunately, edx-platform depends on this package. In practice, it means that all builds of the “openedx” Docker image with Tutor will fail with the following error:

$ tutor images build openedx
...
#58 48.17 ERROR: Could not find a version that satisfies the requirement py2neo==2021.2.3 (from versions: none)
#58 48.17 ERROR: No matching distribution found for py2neo==2021.2.3

A fix was introduced in the latest Tutor version and backported to earlier versions as well: fix: build error caused by removed py2neo package by regisb · Pull Request #916 · overhangio/tutor · GitHub

Depending on your Open edX release, you should upgrade to the following version of Tutor:

  • Palm: 16.1.3
  • Olive: 15.3.9
  • Nutmeg: 14.2.5
  • Maple: 13.3.2

There are currently no fix for Lilac or Koa.

7 Likes

Are the back port releases ready? I wasn’t able to find the tag for nutmeg

Temporary fix, for example I’m still using maple, and what i did is to apply the patch manually from fix: build error caused by removed py2neo package by regisb · Pull Request #916 · overhangio/tutor · GitHub into the Dockerfile (in my case /home/ubuntu/.pyenv/versions/3.7.17/lib/python3.7/site-packages/tutor/templates/build/openedx/Dockerfile) and then run tutor config save to update the Dockerfile in the current env, and the build process was no longer error.

1 Like

14.2.5 is out: tutor · PyPI

and so is 13.3.2: tutor · PyPI

Hi Mr. Regis, I am using Nutmeg Version 14.0.4 and I installed it by the binary method, how I can upgrade my current binary version 14.0.4 to 14.2.5 but with binary way? Appreciate your help.

Do you run Linux?

Yes, I run on Ubuntu 20.04

Here’s the Linux binary for v14.2.5: tutor-Linux_x86_64_v14.2.5 - Google Drive

So all I need is to uploaded on github then use it inside the curl to upgrade,

Could you please provide me the steps I should do after downloading the binary version from google drive. Thank you so much Mr. Regis

This the Line I used to install Tutor:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v14.0.4/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor

Will the binary releases be available for the rest of the versions as well? Will they be released on github?

This raises an interesting questions. Should we be installing using pip instead of the binary format? What is the “best practice”?

I can manually build the binaries and publish them here if necessary.

No.

You should try to install with pip. Unless you are unable to install Python in your environment, in which case you should download the binaries.

This is a sensible answer, but if you don’t mind could you share the reason? We use a build CI that uses TVM and can only take tagged versions of tutor as input. So I’d like to understand how this could come up in the future to update our CI scripts.

If we published the tags on GitHub, then we would also have to publish the release branches. There is nothing confidential there, but it would be leading us down a slippery road, where we would have to maintain branches of past releases.

I understand this is inconvenient, and I’m prepared to change my mind on this. But it’s an important change of direction, and thus we are not going to make that change overnight.

1 Like

Our CI is built to use only tagged versions from github as well. I’m sure that I can adjust the script to install from pip instead.

If the docs state that installing from binaries is supported, I would assume that it meant it is supported for all version, including any patches. I appreciate that keeping the binaries updated as well as pip for a number of past versions uses valuable time, but it would be appreciated.

Maybe the docs need to be updated to better push users to use the pip install method rather than the binaries. I will be scheduling time in the future to update our CI scripts to use pip.

In CMS pods
[botocore.vendored.requests.packages.urllib3.connectionpool] [user None] [ip None] connectionpool.py:734 - Starting new HTTPS connection (5): file.domain.com

In LMS pod

MySQLdb.OperationalError: (1045, “Access denied for user ‘openedx’@‘10.250.16.43’ (using password: YES)”)

Due to this table is not creating

django.db.utils.ProgrammingError: (1146, “Table ‘openedx.waffle_switch’ doesn’t exist”)
[pid: 41|app: 0|req: 6/12] 10.250.16.33 () {30 vars in 335 bytes} [Mon Oct 16 17:09:03 2023] GET / => generated 0 bytes in 49 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)

1 Like

How can I upgrade my nutmeg into its binary release 14.2.5?

I run my tutor by

sudo curl -L “https://github.com/overhangio/tutor/releases/download/v14.2.3/tutor-$(uname -s)_$(uname -m)” -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor
tutor --version

I’m only using PUTTY.

2 posts were split to a new topic: Py2neo issue still affecting v14.2.5 release

I am using TVM(tutor version manager) so, Any suggestions on how I should update to the latest version?

1. Install the latest stable release of TVM.

pip install git+https://github.com/eduNEXT/tvm.git

2. Verify the installation.

tvm --version

3. Create a new project with TVM.

 tvm project init tvm-palm v16.1.0

4. Open the project folder.

cd <project-name>

5. Activate the project environment.

source .tvm/bin/activate

6. Run your project.

tutor local launch

thanks :blush:

2 Likes

A post was split to a new topic: ERROR: No matching distribution found for py2neo==2021.2.3

@regis Please update tutor/CHANGELOG.md at master · overhangio/tutor · GitHub to indicate the existence of v13.3.2 and this bug. I was using the changelog to find the latest version of each release as I try to do a version-by-version upgrade. So since the changelog only mentioned 13.3.1, I thought that was the latest version, so I hit this error and had to google it to find this. (Apparently the same thing with 15.3.9 which isn’t mentioned, as 15.3.7 is the last thing in the changelog…14.2.5 (14.2.3 is the latest), etc. I guess I’ll have to start using tutor · PyPI instead as the source of truth for latest versions since there’s not even a 13.3.2 tag on the github…)