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

Switch off of deprecated pkg_resources library #676

Closed
kdmccormick opened this issue May 25, 2023 · 4 comments · Fixed by #716, openedx/xblock-sdk#350 or openedx/FeedbackXBlock#58
Closed
Assignees
Labels
maintenance Routine upkeep necessary for the health of the platform

Comments

@kdmccormick
Copy link
Member

Background

The pkg_resources library, used by XBlock to load static assets, is deprecated. The removal timeline is unknown.

xblock-utils uses pkg_resources in a couple places.

To do

First, choose a new resource loading interface. Options:

  • Use importlib.resources. Unfortunately, this will become deprecated in Python 3.11 and replaced with a yet-to-be-determined interface.
  • Wait until Python 3.11, and then switch to the 3.11 replacement.

Then:

  • Update the code in xblock-utils.

Related

@feanil feanil added the maintenance Routine upkeep necessary for the health of the platform label May 25, 2023
@feanil feanil transferred this issue from openedx-unsupported/xblock-utils Oct 5, 2023
@feanil feanil moved this to 🔖 Ready in Aximprovements Team Nov 14, 2023
@farhan farhan self-assigned this Jan 27, 2024
@farhan farhan moved this from 🔖 Ready to 🏗 In progress in Aximprovements Team Jan 29, 2024
@farhan
Copy link
Contributor

farhan commented Feb 1, 2024

After reading the related docs/blogs shared below I think we should choose importlib_resources library which is developed and maintained by Python developers and fixes the architecture issues related to importlib.resources module which is going to be deprecated in Python 3.11 as discussed here

Docs/Blogs
https://discuss.python.org/t/deprecating-importlib-resources-legacy-api/11386
https://importlib-resources.readthedocs.io/en/latest/using.html
https://docs.python.org/3/library/importlib.resources.html
https://www.geeksforgeeks.org/importlib-package-in-python/
https://dev.to/bowmanjd/easily-load-non-python-data-files-from-a-python-package-2e8g

FYI @kdmccormick @feanil

@kdmccormick
Copy link
Member Author

kdmccormick commented Feb 1, 2024

@farhan , thanks for the research. I took a look at the Python forum post and came to the conclusion that:

  • pkg_resources is what we use now. It is deprecated but will still work in Python 3.11.
  • importlib.resources was introduced in Python 3.7, but its API had design problems.
  • importlib_resources is a better, redesigned version of that API, available in Python 3.3+.
  • In Python 3.11, importlib_resources becomes official, as importlib.resources, thus deprecating the old, problematic version of the API.

So, it sounds like we could wait until edx-platform is upgraded to Python 3.11, and then just switch directly to the new, official importlib.resources package. Does that sound good?

@feanil
Copy link
Contributor

feanil commented Feb 1, 2024

As an additional note, it looks like pkg_resources is still around in 3.12 so it will be safe to jump to that as well so I think we can de-prioritize this until after the python upgrade which we'll hopefully kick-off soon.

@farhan farhan moved this from 🏗 In progress to 🔖 Ready in Aximprovements Team Feb 16, 2024
@farhan farhan added the blocked by other work PR cannot be finished until other work is complete label May 7, 2024
@farhan farhan moved this from 🔖 Ready to 🏗 In progress in Aximprovements Team May 21, 2024
@farhan farhan removed the blocked by other work PR cannot be finished until other work is complete label May 21, 2024
@farhan farhan moved this from 🏗 In progress to 👀 In review in Aximprovements Team May 23, 2024
@farhan farhan moved this from 👀 In review to 🛑 Blocked in Aximprovements Team Jun 10, 2024
@farhan
Copy link
Contributor

farhan commented Jun 10, 2024

PR is blocked as we are waiting for drop of Python v3.8 support from edx-platform

@farhan farhan moved this from 🛑 Blocked to 👀 In review in Aximprovements Team Jul 24, 2024
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in Aximprovements Team Jul 25, 2024
@github-project-automation github-project-automation bot moved this from Backlog to Done in Axim Engineering Tasks Jul 25, 2024
This was referenced Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Routine upkeep necessary for the health of the platform
Projects
Status: Done
Archived in project
3 participants