Skip to content

Commit

Permalink
Merge pull request #121 from Colin-Fredericks/master
Browse files Browse the repository at this point in the history
Chore!: Updating for Python 3.12
  • Loading branch information
feanil authored Nov 19, 2024
2 parents 9a69f6b + 7cbc046 commit ccac343
Show file tree
Hide file tree
Showing 17 changed files with 259 additions and 130 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
os: [ ubuntu-latest ]
python-version: [ 3.8, 3.11 ]
python-version: [ 3.11, 3.12 ]
toxenv: [ py, quality ]

steps:
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 @@ -15,7 +15,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
155 changes: 152 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,16 +1,165 @@
openedx-calc
============
############

|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge| |status-badge|


Purpose
*******

A helper library for mathematical calculations and symbolic mathematics, used by the `edx-platform`_.

This code originally lived in the `edx-platform`_ repo, but now exists here independently.


License
Getting Started with Development
********************************

General
-------

The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. Please see the `LICENSE`_ file for details.
Please see the Open edX documentation for `guidance on Python development`_ in this repo.

.. _guidance on Python development: https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html

Instructions
------------

Fork and clone the repository, then open a terminal and cd into the repo folder.

Create a virtual environment with one of the python versions specified for the repo.
Currently those are Python 3.11 and 3.12. Example:

.. code-block:: bash
python3.11 -m venv ../openedx-calc-venv
source ../openedx-calc-venv/bin/activate
Install the dependencies:

.. code-block:: bash
make requirements
Then you can run the tests with just `tox`.

When Upgrading Requirements
---------------------------

Run `make upgrade` to get new versions, and `tox -r` to build the new virtual environment.


Getting Help
************

Documentation
=============

PLACEHOLDER: Start by going through `the documentation`_. If you need more help see below.

.. _the documentation: https://docs.openedx.org/projects/{{cookiecutter.repo_name}}

(TODO: `Set up documentation <https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs>`_)

More Help
=========

If you're having trouble, we have discussion forums at
https://discuss.openedx.org where you can connect with others in the
community.

Our real-time conversations are on Slack. You can request a `Slack
invitation`_, then join our `community Slack workspace`_.

For anything non-trivial, the best path is to open an issue in this
repository with as many details about the issue you are facing as you
can provide.

https://github.com/openedx/openedx-calc/issues

For more information about these options, see the `Getting Help <https://openedx.org/getting-help>`__ page.

.. _Slack invitation: https://openedx.org/slack
.. _community Slack workspace: https://openedx.slack.com/

License
*******

The code in this repository is licensed under version 3 of the AGPL unless otherwise noted.
Please see the `LICENSE`_ file for details.

.. _edx-platform: https://github.com/openedx/edx-platform
.. _LICENSE: https://github.com/openedx/openedx-calc/blob/master/LICENSE


Contributing
************

Contributions are very welcome.
Please read `How To Contribute <https://openedx.org/r/how-to-contribute>`_ for details.

This project is currently accepting all types of contributions, bug fixes,
security fixes, maintenance work, or new features. However, please make sure
to discuss your new feature idea with the maintainers before beginning development
to maximize the chances of your change being accepted.
You can start a conversation by creating a new issue on this repo summarizing
your idea.

Because this repo is used for a wide variety of mathematical calculations,
including learner grades, it may occasionally be desirable to maintain
bug-for-bug compatibility with previous versions. Additions to the repo
are more likely to be accepted than changes that could alter the outputs
of existing functions.


The Open edX Code of Conduct
****************************

All community members are expected to follow the `Open edX Code of Conduct`_.

.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/

People
******

The assigned maintainers for this component and other project details may be
found in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml``
file in this repo.

.. _Backstage: https://backstage.openedx.org/catalog/default/component/openedx-calc

Reporting Security Issues
*************************

Please do not report security issues in public. Please email [email protected].

.. |pypi-badge| image:: https://img.shields.io/pypi/v/openedx-calc.svg
:target: https://pypi.python.org/pypi/openedx-calc/
:alt: PyPI

.. |ci-badge| image:: https://github.com/openedx/openedx-calc/workflows/Python%20CI/badge.svg?branch=main
:target: https://github.com/openedx/openedx-calc/actions
:alt: CI

.. |codecov-badge| image:: https://codecov.io/github/openedx/openedx-calc/coverage.svg?branch=main
:target: https://codecov.io/github/openedx/openedx-calc?branch=main
:alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/openedx-calc/badge/?version=latest
:target: https://docs.openedx.org/projects/openedx-calc
:alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/openedx-calc.svg
:target: https://pypi.python.org/pypi/openedx-calc/
:alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/openedx/openedx-calc.svg
:target: https://github.com/openedx/openedx-calc/blob/main/LICENSE.txt
:alt: License

.. TODO: Choose one of the statuses below and remove the other status-badge lines.
.. |status-badge| image:: https://img.shields.io/badge/Status-Experimental-yellow
.. .. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen
.. .. |status-badge| image:: https://img.shields.io/badge/Status-Deprecated-orange
.. .. |status-badge| image:: https://img.shields.io/badge/Status-Unsupported-red
2 changes: 1 addition & 1 deletion calc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@

from .calc import *

__version__ = '3.1.2'
__version__ = '4.0.0'
14 changes: 7 additions & 7 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# make upgrade
#
lxml==5.2.1
lxml==5.3.0
# via -r requirements/base.in
markupsafe==2.1.5
markupsafe==3.0.2
# via -r requirements/base.in
mpmath==1.3.0
# via sympy
numpy==1.24.4
numpy==2.1.3
# via
# -r requirements/base.in
# scipy
pyparsing==3.1.2
pyparsing==3.2.0
# via -r requirements/base.in
scipy==1.10.1
scipy==1.14.1
# via -r requirements/base.in
sympy==1.12
sympy==1.13.3
# via -r requirements/base.in
39 changes: 17 additions & 22 deletions requirements/ci.txt
Original file line number Diff line number Diff line change
@@ -1,72 +1,67 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# make upgrade
#
cachetools==5.3.3
cachetools==5.5.0
# via
# -r requirements/tox.txt
# tox
certifi==2024.2.2
certifi==2024.8.30
# via requests
chardet==5.2.0
# via
# -r requirements/tox.txt
# tox
charset-normalizer==3.3.2
charset-normalizer==3.4.0
# via requests
colorama==0.4.6
# via
# -r requirements/tox.txt
# tox
coverage==6.5.0
coverage[toml]==7.6.4
# via coveralls
coveralls==3.3.1
coveralls==4.0.1
# via -r requirements/ci.in
distlib==0.3.8
distlib==0.3.9
# via
# -r requirements/tox.txt
# virtualenv
docopt==0.6.2
# via coveralls
filelock==3.13.3
filelock==3.16.1
# via
# -r requirements/tox.txt
# tox
# virtualenv
idna==3.6
idna==3.10
# via requests
packaging==24.0
packaging==24.2
# via
# -r requirements/tox.txt
# pyproject-api
# tox
platformdirs==4.2.0
platformdirs==4.3.6
# via
# -r requirements/tox.txt
# tox
# virtualenv
pluggy==1.4.0
pluggy==1.5.0
# via
# -r requirements/tox.txt
# tox
pyproject-api==1.6.1
pyproject-api==1.8.0
# via
# -r requirements/tox.txt
# tox
requests==2.31.0
requests==2.32.3
# via coveralls
tomli==2.0.1
# via
# -r requirements/tox.txt
# pyproject-api
# tox
tox==4.14.2
tox==4.23.2
# via -r requirements/tox.txt
urllib3==2.2.1
urllib3==2.2.3
# via requests
virtualenv==20.25.1
virtualenv==20.27.1
# via
# -r requirements/tox.txt
# tox
19 changes: 11 additions & 8 deletions requirements/common_constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,19 @@ Django<5.0

# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process.
# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html
# See https://github.com/openedx/edx-platform/issues/35126 for more info
elasticsearch<7.14.0

# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected
django-simple-history==3.0.0

# opentelemetry requires version 6.x at the moment:
# https://github.com/open-telemetry/opentelemetry-python/issues/3570
# Normally this could be added as a constraint in edx-django-utils, where we're
# adding the opentelemetry dependency. However, when we compile pip-tools.txt,
# that uses version 7.x, and then there's no undoing that when compiling base.txt.
# So we need to pin it globally, for now.
# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407
importlib-metadata<7
# Cause: https://github.com/openedx/event-tracking/pull/290
# event-tracking 2.4.1 upgrades to pymongo 4.4.0 which is not supported on edx-platform.
# We will pin event-tracking to do not break existing installations
# This can be unpinned once https://github.com/openedx/edx-platform/issues/34586
# has been resolved and edx-platform is running with pymongo>=4.4.0
event-tracking<2.4.1

# Cause: https://github.com/openedx/edx-lint/issues/458
# This can be unpinned once https://github.com/openedx/edx-lint/issues/459 has been resolved.
pip<24.3
12 changes: 7 additions & 5 deletions requirements/pip.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# make upgrade
#
wheel==0.43.0
wheel==0.44.0
# via -r requirements/pip.in

# The following packages are considered to be unsafe in a requirements file:
pip==24.0
# via -r requirements/pip.in
setuptools==69.2.0
pip==24.2
# via
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
# -r requirements/pip.in
setuptools==75.3.0
# via -r requirements/pip.in
Loading

0 comments on commit ccac343

Please sign in to comment.