moorepants / me41055

Course website for TU Delft's Multibody Dynamics B course
https://moorepants.github.io/me41055
Creative Commons Attribution 4.0 International
1 stars 3 forks source link

Asses and setup Vocareum for 2022-2023 #65

Closed moorepants closed 1 year ago

moorepants commented 1 year ago

Due Date: Feb 6, 2023

moorepants commented 1 year ago

Related issue: https://github.com/moorepants/me41055-homework/issues/23

tjstienstra commented 1 year ago

I have not checked the version of nbgrader yet. The version of the other packages used are:

The sympy version is outdated. The Point.vel bug (#23358) is still in there (also in the 1.10.1 version for the exam). It is fixed in 1.11.

The code below also didn't seem to work to update it (the version remained 1.9).

import os
import sys
if [k for k in os.environ if k.startswith("VOC_")]:
    !{sys.executable} -m pip install -U sympy

Defaulting to user installation because normal site-packages is not writeable
Collecting sympy
  Downloading sympy-1.11.1-py3-none-any.whl (6.5 MB)
     |████████████████████████████████| 6.5 MB 28.6 MB/s eta 0:00:01
Requirement already satisfied, skipping upgrade: mpmath>=0.19 in /usr/local/lib/python3.8/site-packages (from sympy) (1.1.0)
Installing collected packages: sympy
  WARNING: The script isympy is installed in '/mnt/data2/students/sub1/ddd_v1_t_r709_111253/work/asn901428_1/asn901429_1/work/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed sympy-1.11.1
WARNING: You are using pip version 20.2.3; however, version 23.0 is available.
You should consider upgrading via the '/usr/local/bin/python3.8 -m pip install --upgrade pip' command.

I have not checked the version of nbgrader (wasn't currently able to get it working locally for several version, some of which worked last year).

moorepants commented 1 year ago

For numpy, scipy, and matplotlib it would be nice if Vocareum matched the versions we have available in the exam software.

For SymPy, since we can't update the exam software, I guess we should ask Vocareum to update to 1.11 and then we have to figure out an easier way to patch the exam. The only alternative is to develop a work around for 1.10 that we teach the students to use, so that they can use it on the exam also.

For scikits.odes, it recently had a new update that uses sundials 6. I don't think we need to update it on vocareum and it isn't even available on the exam software so we can't use it there. We should test this works though by running some code.

We will not attempt to use pythreejs this year as it seemed impossible for Vocareum to install because they use an outdated jupyter system.

moorepants commented 1 year ago

@TJStienstra we should put in our request to Vocareum for any software version changes ASAP. Can you determine the request we should make?

tjstienstra commented 1 year ago

In determining a version I use the following rule: max(<version_exam>, <current_vocareum_version>). Overall you don't want to downgrade, but using a newer version than on the exam would result in possible missing features. Note that I do not subject sympy to this rule, due to the previously pointed out bug.

Library Newest Exam Current Vocareum Advised Vocareum
Python 3.11.1 3.9.12 3.8 3.9.12
matplotlib 3.6.3 3.5.1 3.5.1 3.5.1
numpy 1.24.1 1.21.5 1.22.1 1.22.1
scipy 1.10.0 1.7.3 1.7.3 1.7.3
sympy 1.11.1 1.10.1 ??? 1.11.1
scikits.odes 2.7.0 - 2.6.3 2.6.3

P.S. when actually rechecking the sympy version in vocareum it now is 1.11.1. Also 1.12 is coming out soon for sympy, but I don't think that is worth waiting for.

Here is a useful method to find the version of scikits.odes or any other library:

import pkg_resources
pkg_resources.get_distribution("scikits.odes").version
tjstienstra commented 1 year ago

@moorepants Any packages I'm forgetting to check?

moorepants commented 1 year ago

We use "scikits.odes" not "scikit-learn"

moorepants commented 1 year ago

We've concluded that we will not request any software updates from Vocareum. We will go with the packages that are currently tied to the Vocareum Python 3.8 kernel. Python 3.8 has just under 2 years left of official support and it is probably not worth the trouble to ask Vocareum to move us to Python 3.9+.

This means that the only thing we have to figure out now is how to patch the SymPy available on the exam computers to be at least SymPy 1.11. We need a smoother approach that last year. Maybe we can make a little script that runs on the exam computers after the student logs in and patches the installed sympy.

moorepants commented 1 year ago

Calling this closed! Thanks Timo.