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

Drop py3.8 support | Replace pkg_resources lib with importlib.resources #350

Merged
merged 1 commit into from
Aug 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-20.04]
python-version: ['3.8', '3.11', '3.12']
python-version: ['3.11', '3.12']
toxenv: [django42]
steps:
- uses: actions/checkout@v2
Expand All @@ -31,7 +31,7 @@ jobs:
run: tox -e ${{ matrix.toxenv }}

- name: Upload coverage to CodeCov
if: matrix.python-version == '3.8' && matrix.toxenv == 'django42'
if: matrix.python-version == '3.11' && matrix.toxenv == 'django42'
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pypi-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: setup python
uses: actions/setup-python@v2
with:
python-version: 3.8
python-version: 3.11

- name: Install pip
run: pip install -r requirements/pip.txt
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ Change history for XBlock SDK

These are notable changes in XBlock.

1.0.0 - 2024-05-30
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@farhan The version in workbench/__init__.py is 0.12.0, and that is what matters to PyPI, so everything else should match that. Please fix the changelog to say 0.12.0, and then publish a 0.12.0 release.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kdmccormick I have created the PR
My point was we had dropped support of Python 3.8 now which means we should upgrade the major version.
So should we update version to 1.0.0 now or should keep it below 1 yet?

------------------
* dropped python 3.8 support
* transitioned from deprecated pkg_resources lib to importlib.resources

0.9.0
-----
* Xblock bumped to 3.0.0. Removed the deprecated id_generator method parameter in xblock.runtime
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ COPY . /usr/local/src/xblock-sdk
WORKDIR /usr/local/src/xblock-sdk

ENV VIRTUAL_ENV=/venvs/xblock-sdk
RUN python3.8 -m venv $VIRTUAL_ENV
RUN python3.11 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

RUN pip install --upgrade pip && pip install -r /usr/local/src/xblock-sdk/requirements/dev.txt
Expand Down
6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Getting Started
Developing
==========

This code runs on Python 3.8 or newer.
This code runs on Python 3.11 or newer.

One Time Setup
--------------
Expand All @@ -40,7 +40,7 @@ One Time Setup

# Set up a virtualenv with the same name as the repo and activate it
# Here's how you might do that if you have virtualenvwrapper setup.
mkvirtualenv -p python3.8 xblock-sdk
mkvirtualenv -p python3.11 xblock-sdk

# Install system requirements needed to run this on ubuntu.
# Note: Debian 10 needs libjpeg62-turbo-dev instead of libjpeg62-dev.
Expand Down Expand Up @@ -107,7 +107,7 @@ On the first startup run the following command to create the SQLite database.

Command::

$ docker container exec -it edx.devstack.xblock-sdk python3.8 manage.py migrate
$ docker container exec -it edx.devstack.xblock-sdk python3.11 manage.py migrate

You should now be able to access the XBlock SDK environment in your browser at http://localhost:8000

Expand Down
15 changes: 6 additions & 9 deletions sample_xblocks/filethumbs/filethumbs.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,10 @@

"""



import json
import logging

import pkg_resources
import importlib.resources
import png
from web_fragments.fragment import Fragment
from xblock.core import XBlock
Expand Down Expand Up @@ -72,8 +70,9 @@ def student_view(self, context=None): # pylint: disable=W0613
"""

# Load the HTML fragment from within the package and fill in the template
html_str = pkg_resources.resource_string(__name__,
"static/html/thumbs.html").decode('utf-8')
html_str = importlib.resources.files(__package__).joinpath(
"static/html/thumbs.html"
).read_text(encoding="utf-8")
frag = Fragment(str(html_str))

if not self.fs.exists("thumbsvotes.json"):
Expand All @@ -86,12 +85,10 @@ def student_view(self, context=None): # pylint: disable=W0613
self.downvotes = votes['down']

# Load the CSS and JavaScript fragments from within the package
css_str = pkg_resources.resource_string(__name__,
"static/css/thumbs.css").decode('utf-8')
css_str = importlib.resources.files(__package__).joinpath("static/css/thumbs.css").read_text(encoding="utf-8")
frag.add_css(str(css_str))

js_str = pkg_resources.resource_string(__name__,
"static/js/src/thumbs.js").decode('utf-8')
js_str = importlib.resources.files(__package__).joinpath("static/js/src/thumbs.js").read_text(encoding="utf-8")
frag.add_javascript(str(js_str))

with self.fs.open('uparrow.png', 'wb') as file_output:
Expand Down
15 changes: 6 additions & 9 deletions sample_xblocks/thumbs/thumbs.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
"""An XBlock providing thumbs-up/thumbs-down voting."""



import logging

import pkg_resources
import importlib.resources
from web_fragments.fragment import Fragment
from xblock.core import XBlock, XBlockAside
from xblock.fields import Boolean, Integer, Scope
Expand Down Expand Up @@ -36,17 +34,16 @@ def student_view(self, context=None): # pylint: disable=W0613
"""

# Load the HTML fragment from within the package and fill in the template
html_str = pkg_resources.resource_string(__name__,
"static/html/thumbs.html").decode('utf-8')
html_str = importlib.resources.files(
__package__
).joinpath("static/html/thumbs.html").read_text(encoding="utf-8")
frag = Fragment(str(html_str).format(block=self))

# Load the CSS and JavaScript fragments from within the package
css_str = pkg_resources.resource_string(__name__,
"static/css/thumbs.css").decode('utf-8')
css_str = importlib.resources.files(__package__).joinpath("static/css/thumbs.css").read_text(encoding="utf-8")
frag.add_css(str(css_str))

js_str = pkg_resources.resource_string(__name__,
"static/js/src/thumbs.js").decode('utf-8')
js_str = importlib.resources.files(__package__).joinpath("static/js/src/thumbs.js").read_text(encoding="utf-8")
frag.add_javascript(str(js_str))

frag.initialize_js('ThumbsBlock')
Expand Down
1 change: 0 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ def get_version(*file_paths):
'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
],
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = py{38,311,312}-django{42},quality
envlist = py{311,312}-django{42},quality

[pycodestyle]
exclude = .git,.tox,migrations
Expand Down
2 changes: 1 addition & 1 deletion workbench/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Provide a djangoapp for XBlock development
"""

__version__ = '0.11.0'
__version__ = '0.12.0'