Deploying rubin-env 4.0.0

On Tuesday, 2022-05-24, we updated our build infrastructure to use version 4.0.0 of the rubin-env conda-forge metapackage. The d_2022_05_25 daily and w_2022_22 weekly will be the first tagged releases to incorporate this change.

This new environment updates the Python version used by the Science Pipelines and Rubin Science Platform from 3.8 to 3.10 (RFC-845). See “What’s new in Python 3.9” and “What’s new in Python 3.10” for more details. The other major user-visible change is that our flake8 version has been updated to 4.0. This is consistent with our Style Guide (and the black tool), but it does check more things, including that the names of exception classes end in Error (see our naming convention carried over from the C++ guide and PEP 8).

It adds the pyLD and skyproj packages as requested in RFC-847 and RFC-852, respectively. The cfitsio package has been updated to version 4.1.0.

rubin-env 4.0.0 should be used with all Science Pipelines code on or after w_2022_22. As indicated by its major version number increment, this cannot be used to build or run older versions of the Science Pipelines due to the cfitsio and flake8 changes (although there is not yet anything in the source that requires 4.0.0 so it can still be built against 3.0.0).

I have migrated the shared stack on lsst-* resources at NCSA to rubin env-4. Weekly w_2022_22 is available. The old stack can be found at the path /software/lsstsw/stack-env3/loadLSST.*