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

Modernize Repo for Latest Python #1020

Open
MattReimer opened this issue Sep 19, 2024 · 0 comments
Open

Modernize Repo for Latest Python #1020

MattReimer opened this issue Sep 19, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@MattReimer
Copy link
Member

MattReimer commented Sep 19, 2024

The problem(s)

  • According to https://devguide.python.org/versions/ Python 3.8 is losing support at the end of 2024
  • The riverscapes-tools repo at present CANNOT work with the rsxml pip module which is unfortunately (and accidentally) gated at Python 3.9. This is incredibly inconvenient because there are two modules inside this repo that need it (CybercastorAPI and RiverscapesAPI)
  • Our environments contain impossible mismatches of python pip modules which creates all kinds of conflicts when we need to recreate them locally.
  • The GDAL Docker box we use for cybercastor is no longer supported and could have security implications if we become locked to our Ubuntu version.
  • For many developers Codespaces is now the only way to develop this repo

Python Version Upgrade

We've got a decision to make here. 3.9 is the version that QGIS LTR uses but that only gets us to the end of 2025. Regardless of what we choose, rsxml MUST continue to work with 3.9 and above.

Python 3.11 is the safe option but if we go a little further and try for Python 3.12 that gets us to 2028. Apple is shipping Python 3.12.5 with last year's OSX and if it's good enough for them...

Software Python Version
OSX Sonoma 14.6.1 3.12.5
QGIS 3.34 LTS 3.9
QGIS Latest (3.38 at the time of writing) 3.9.5

There may be some caveats here we need to address because later versions of python don't ship setuptools. There may be other breaking considerations too.


GDAL Version upgrade

TODO: There's not enough coffee in the universe for me to think about this right now. I'll do it later


Scope of Work

  • Update python to the desired version (TBD)
  • Update GDAL to the desired version (TBD)
  • Migrate all our tools that write riverscapes XML to use rsxml instead of classes inside RSCommons
  • Make sure there's a path to set up working developer environments for the following platforms:
    • Windows 11
    • macOS 15 Sequoia
    • Ubuntu (=>20.04 but probably whatever the GDAL Docker box requires) for Cybercastor and Codespaces
  • Review and curate all versions of pip modules and clean up requirements.txt. Deal with any collisions.
  • Finally: Update Cybercastor repo to work with this
  • Finally finally. This task needs to ripple out to any other repos we use python in. The QGiS repos do NOT need to be updated past python 3.9 (because that is LTR) but they do need to be tested to makre sure that nothing we change here affects them:
@MattReimer MattReimer added the enhancement New feature or request label Sep 19, 2024
@MattReimer MattReimer self-assigned this Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant