diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5df037838..b267b747c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: matrix: include: - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_actionAngle.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -32,7 +32,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_sphericaldf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -40,7 +40,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: true - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_actionAngleTorus.py tests/test_conversion.py tests/test_galpypaper.py tests/test_import.py tests/test_interp_potential.py tests/test_kuzminkutuzov.py tests/test_util.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -48,7 +48,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_SpiralArmsPotential.py tests/test_potential.py tests/test_scf.py tests/test_snapshotpotential.py REQUIRES_PYNBODY: true REQUIRES_ASTROPY: false @@ -56,7 +56,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_quantity.py tests/test_coords.py REQUIRES_PYNBODY: false # needs to be separate for different config @@ -65,7 +65,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation REQUIRES_PYNBODY: true REQUIRES_ASTROPY: true @@ -73,7 +73,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_orbit.py tests/test_orbits.py -k 'not test_energy_jacobi_conservation' REQUIRES_PYNBODY: true REQUIRES_ASTROPY: true @@ -81,7 +81,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_evolveddiskdf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -89,7 +89,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_jeans.py tests/test_dynamfric.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -97,7 +97,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_qdf.py tests/test_pv2qdf.py tests/test_streamgapdf_impulse.py tests/test_noninertial.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -105,7 +105,7 @@ jobs: REQUIRES_NUMBA: true REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_streamgapdf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -113,7 +113,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_diskdf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -121,13 +121,29 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: ubuntu-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_streamdf.py tests/test_streamspraydf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false REQUIRES_ASTROQUERY: false REQUIRES_NUMBA: false REQUIRES_JAX: false + - os: ubuntu-latest + python-version: "3.11" + TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation + REQUIRES_PYNBODY: true + REQUIRES_ASTROPY: true + REQUIRES_ASTROQUERY: true + REQUIRES_NUMBA: false + REQUIRES_JAX: false + - os: ubuntu-latest + python-version: "3.11" + TEST_FILES: tests/test_orbit.py tests/test_orbits.py -k 'not test_energy_jacobi_conservation' + REQUIRES_PYNBODY: true + REQUIRES_ASTROPY: true + REQUIRES_ASTROQUERY: true + REQUIRES_NUMBA: false + REQUIRES_JAX: false - os: ubuntu-latest python-version: "3.10" TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation @@ -177,7 +193,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: macos-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation REQUIRES_PYNBODY: true REQUIRES_ASTROPY: true @@ -185,7 +201,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: macos-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_orbit.py tests/test_orbits.py -k 'not test_energy_jacobi_conservation' REQUIRES_PYNBODY: true REQUIRES_ASTROPY: true @@ -193,7 +209,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false env: - PYTHON_COVREPORTS_VERSION: "3.11" + PYTHON_COVREPORTS_VERSION: "3.12" steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} @@ -226,6 +242,9 @@ jobs: pip install --upgrade --upgrade-strategy eager numpy scipy matplotlib numexpr setuptools cython pytest tqdm - name: Install pynbody if: ${{ matrix.REQUIRES_PYNBODY }} + env: + CC: gcc-11 + CXX: g++-11 run: | pip install --upgrade --upgrade-strategy eager h5py pandas pytz pip install --upgrade --upgrade-strategy eager wheel @@ -292,8 +311,9 @@ jobs: pip install pytest-cov # Turn astropy deprecation warnings into errors as well if astropy if $REQUIRES_ASTROPY; then export PYTEST_ADDOPTS="-W error::astropy.utils.exceptions.AstropyDeprecationWarning"; else export PYTEST_ADDOPTS=""; fi + export TQDM_DEPRECATION="-W ignore:\"datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version.\":DeprecationWarning -W ignore:\"datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC\":DeprecationWarning" # eval necessary for -k 'not ...' in TEST_FILES - eval "pytest -W error::DeprecationWarning -W error::FutureWarning $PYTEST_ADDOPTS -v $TEST_FILES --cov galpy --cov-config .coveragerc --disable-pytest-warnings --durations=0 --cov-report=term --cov-report=xml" + eval "pytest -W error::DeprecationWarning -W error::FutureWarning $PYTEST_ADDOPTS $TQDM_DEPRECATION -v $TEST_FILES --cov galpy --cov-config .coveragerc --disable-pytest-warnings --durations=0 --cov-report=term --cov-report=xml" - name: Generate code coverage if: ${{ matrix.python-version == env.PYTHON_COVREPORTS_VERSION && matrix.os == 'ubuntu-latest' }} run: | diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index 698f83ff2..3c165b468 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -24,7 +24,7 @@ jobs: matrix: include: - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_actionAngle.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -32,7 +32,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_sphericaldf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -40,7 +40,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_conversion.py tests/test_galpypaper.py tests/test_import.py tests/test_interp_potential.py tests/test_kuzminkutuzov.py tests/test_util.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -48,7 +48,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_SpiralArmsPotential.py tests/test_potential.py tests/test_scf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -56,7 +56,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_quantity.py tests/test_coords.py REQUIRES_PYNBODY: false # needs to be separate for different config @@ -65,7 +65,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation REQUIRES_PYNBODY: false REQUIRES_ASTROPY: true @@ -73,7 +73,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_orbit.py tests/test_orbits.py -k 'not test_energy_jacobi_conservation' REQUIRES_PYNBODY: false REQUIRES_ASTROPY: true @@ -81,7 +81,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_evolveddiskdf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -89,7 +89,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_jeans.py tests/test_dynamfric.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -97,7 +97,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_qdf.py tests/test_pv2qdf.py tests/test_streamgapdf_impulse.py tests/test_noninertial.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -105,7 +105,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_streamgapdf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -113,7 +113,7 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_diskdf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false @@ -121,13 +121,29 @@ jobs: REQUIRES_NUMBA: false REQUIRES_JAX: false - os: windows-latest - python-version: "3.11" + python-version: "3.12" TEST_FILES: tests/test_streamdf.py tests/test_streamspraydf.py REQUIRES_PYNBODY: false REQUIRES_ASTROPY: false REQUIRES_ASTROQUERY: false REQUIRES_NUMBA: false REQUIRES_JAX: false + - os: windows-latest + python-version: "3.11" + TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation + REQUIRES_PYNBODY: false + REQUIRES_ASTROPY: true + REQUIRES_ASTROQUERY: true + REQUIRES_NUMBA: false + REQUIRES_JAX: false + - os: windows-latest + python-version: "3.11" + TEST_FILES: tests/test_orbit.py tests/test_orbits.py -k 'not test_energy_jacobi_conservation' + REQUIRES_PYNBODY: false + REQUIRES_ASTROPY: true + REQUIRES_ASTROQUERY: true + REQUIRES_NUMBA: false + REQUIRES_JAX: false - os: windows-latest python-version: "3.10" TEST_FILES: tests/test_orbit.py -k test_energy_jacobi_conservation @@ -240,5 +256,6 @@ jobs: pip install pytest-cov # Turn astropy deprecation warnings into errors as well if astropy if $REQUIRES_ASTROPY; then export PYTEST_ADDOPTS="-W error::astropy.utils.exceptions.AstropyDeprecationWarning"; else export PYTEST_ADDOPTS=""; fi + export TQDM_DEPRECATION="-W ignore:\"datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version.\":DeprecationWarning -W ignore:\"datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC\":DeprecationWarning" # eval necessary for -k 'not ...' in TEST_FILES - eval "pytest -W error::DeprecationWarning -W error::FutureWarning $PYTEST_ADDOPTS -v $TEST_FILES --cov galpy --cov-config .coveragerc --disable-pytest-warnings --durations=0" + eval "pytest -W error::DeprecationWarning -W error::FutureWarning $PYTEST_ADDOPTS $TQDM_DEPRECATION -v $TEST_FILES --cov galpy --cov-config .coveragerc --disable-pytest-warnings --durations=0"