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

BLD/REL: pcds-5.8.0 #302

Merged
merged 37 commits into from
Oct 19, 2023
Merged

BLD/REL: pcds-5.8.0 #302

merged 37 commits into from
Oct 19, 2023

Conversation

ZLLentz
Copy link
Member

@ZLLentz ZLLentz commented Oct 5, 2023

This is a new conda environment as described in https://jira.slac.stanford.edu/browse/ECS-3893

This closes the following issues:
closes #217 by removing the last remaining pin, leaning on the whatrecord recipe instead
closes #233 by testing this env with pyqt 5.15 and trusting Jessie's ACR pydm env that has 5.15 too
closes #250 by putting minimum pins on all packages, aligned with pcds-5.7.3's versions
closes #253 by having all the tests pass
closes #258 by confirming that a python 3.11 build is possible
closes #269 by adding pyqtwebengine
closes #288 by switching the deploy cleanup logic as described in the issue
closes #297 by switching tc-release from the missing conda builds to the not-missing pypi builds
closes #298 by having all the tests pass
closes #299 by switching whatrecord and epicsmacrolib to the conda-forge variants

I've also:

  • Put us on a modern openssl in line with the 1.1.1 version chain's EOL status, and brings openssl to "always update" status (though I think conda did this automatically anyway for the 1.1.1 branch)
  • Updated pyqt to 5.15
  • Removed gammaray, whose conda builds require qt 5.12
  • Removed some outdated pins
  • Added ophyd-async
  • Added a pip-audit check to the CI to stay on top of security vulnerabilities. Notably, this will give me a notice about the current env's known vulnerabilities every Monday during the CI cron job.
  • Made the release note builder script run even if the tests fail

To make this environment, we had to solve a 3-way conflict between openssl, qtads, and openldap. We decided to remove python-ldap as the current compromise (whatrecord and ads-log-daemon will need to run in standalone environments)
It might be possible to bring this back in new versions or when we implement #301

This is not an incremental release, so it should be subject to larger scrutiny than normal.

I think there were a lot of package renames that happened between these versions which bloats the release notes table a bit. I'm going to spend at least some time cleaning up the output.

PCDS Package Updates

Package Old New Release Notes
blark 0.6.0 0.7.1 https://github.com/klauer/blark/releases/tag/v0.7.0
https://github.com/klauer/blark/releases/tag/v0.7.1
elog 1.2.2 1.2.3 https://github.com/pcdshub/elog/releases/tag/v1.2.3
happi 2.3.0 2.4.0 https://github.com/pcdshub/happi/releases/tag/v2.4.0
hutch-python 1.18.3 1.18.5 https://github.com/pcdshub/hutch-python/releases/tag/v1.18.4
https://github.com/pcdshub/hutch-python/releases/tag/v1.18.5
hxrsnd 0.2.11 0.3.1 https://github.com/pcdshub/hxrsnd/releases/tag/v0.3.0
https://github.com/pcdshub/hxrsnd/releases/tag/v0.3.1
krtc 0.2.1 0.3.0 https://github.com/pcdshub/krtc/releases/tag/v0.3.0
lightpath 1.0.2 1.0.3 https://github.com/pcdshub/lightpath/releases/tag/v1.0.3
lucid 0.10.0 0.10.2 https://github.com/pcdshub/lucid/releases/tag/v0.10.1
https://github.com/pcdshub/lucid/releases/tag/v0.10.2
nabs 1.5.3 1.5.4 https://github.com/pcdshub/nabs/releases/tag/v1.5.4
pcdscalc 0.4.2 0.5.0 https://github.com/pcdshub/pcdscalc/releases/tag/v0.5.0
pcdsdaq 2.4.2 2.4.3 https://github.com/pcdshub/pcdsdaq/releases/tag/v2.4.3
pcdsdevices 7.4.3 8.1.0 https://github.com/pcdshub/pcdsdevices/releases/tag/v8.0.0
https://github.com/pcdshub/pcdsdevices/releases/tag/v8.1.0
pcdsutils 0.12.1 0.14.0 https://github.com/pcdshub/pcdsutils/releases/tag/v0.12.1
https://github.com/pcdshub/pcdsutils/releases/tag/v0.13.0
https://github.com/pcdshub/pcdsutils/releases/tag/v0.14.0
pcdswidgets 0.8.0 0.8.2 https://github.com/pcdshub/pcdswidgets/releases/tag/v0.8.1
https://github.com/pcdshub/pcdswidgets/releases/tag/v0.8.2
pytmc 2.15.1 2.16.0 https://github.com/pcdshub/pytmc/releases/tag/v2.16.0
tc-release 0.2.2 0.2.4 https://github.com/pcdshub/tc-release/releases/tag/v0.2.4
transfocate 0.5.7 0.5.8 https://github.com/pcdshub/transfocate/releases/tag/v0.5.8
typhos 2.4.1 3.0.0 https://github.com/pcdshub/typhos/releases/tag/v3.0.0
whatrecord 0.4.4 0.5.0 https://github.com/pcdshub/whatrecord/releases/tag/v0.5.0

SLAC Package Updates

Package Old New Release Notes
psdm_qs_cli 0.3.6 0.3.7 https://github.com/slaclab/psdm_qs_cli/releases/tag/v0.3.7
pydm 1.19.1 1.20.1 https://github.com/slaclab/pydm/releases/tag/v1.20.1

Lab Community Package Updates

Package Old New
tiled 0.1.0a85 0.1.0a107

Python Community Core Package Updates

Package Old New
flake8 6.0.0 6.1.0
numpy 1.23.5 1.24.4
opencv 4.5.1 4.8.1
pandas 1.5.3 2.1.1
pre-commit 3.3.3 3.4.0
pyqt 5.12.3 5.15.9
scikit-image 0.19.3 0.21.0
scikit-learn 1.2.2 1.3.1
scipy 1.10.1 1.11.3
sphinx 6.1.3 6.2.1
xarray 2023.3.0 2023.9.0

Other Python Community Major Updates

Package Old New
argon2-cffi 21.3.0 23.1.0
async-timeout 3.0.1 4.0.3
attrs 22.2.0 23.1.0
bcrypt 3.2.2 4.0.1
bokeh 2.4.3 3.2.2
boolean.py 3.7 4.0
chardet 4.0.0 5.2.0
contextlib2 0.5.5 21.6.0
cryptography 39.0.0 41.0.4
curl 7.86.0 8.4.0
cython 0.29.34 3.0.3
execnet 1.9.0 2.0.2
ffmpeg 4.3.2 6.0.0
flask 2.3.2 3.0.0
graphviz 2.47.2 8.1.0
greenlet 2.0.2 3.0.0
harfbuzz 2.9.1 8.2.1
icu 68.2 73.2
imagecodecs 2021.3.31 2023.9.18
importlib-resources 5.12.0 6.1.0
importlib_resources 5.12.0 6.1.0
jasper 1.900.1 4.0.0
jupyter_server 1.23.6 2.7.3
lerc 2.2.1 4.0.0
libabseil 20220623.0 20230802.1
libclang 11.1.0 15.0.7
libcst 0.4.9 1.1.0
libcurl 7.86.0 8.4.0
libgcc-ng 12.2.0 13.2.0
libgfortran-ng 12.2.0 13.2.0
libgfortran5 12.2.0 13.2.0
libpq 13.8 15.4
libprotobuf 3.21.12 4.23.4
librdkafka 1.9.2 2.2.0
libstdcxx-ng 12.2.0 13.2.0
license-expression 1.2 30.1.1
line_profiler 3.4.0 4.1.1
llvm-openmp 15.0.7 17.0.2
markdown-it-py 2.2.0 3.0.0
mistune 2.0.5 3.0.1
nodejs 16.12.0 20.8.0
notebook 6.5.4 7.0.4
openssl 1.1.1u 3.1.3
pandoc 2.19.2 3.1.3
panel 0.14.4 1.2.3
pillow 9.5.0 10.0.1
pyarrow 11.0.0 13.0.0
pyqt5-sip 4.19.18 12.12.2
pyqtads 3.8.2 4.1.1
python-confluent-kafka 1.9.2 2.2.0
python-libarchive-c 4.0 5.0
pyviz_comms 2.2.1 3.0.0
re2 2022.06.01 2023.03.02
reportlab 3.5.68 4.0.4
requests-toolbelt 0.10.1 1.0.0
setuptools 67.6.1 68.2.2
setuptools-scm 7.1.0 8.0.4
sphinx-click 4.4.0 5.0.1
sqlalchemy 1.4.46 2.0.21
tblib 1.7.0 2.0.0
tifffile 2021.4.8 2023.9.26
tzlocal 4.3 5.1
urllib3 1.26.15 2.0.7
werkzeug 2.3.4 3.0.0
x264 1!161.3030 1!164.3095
zfp 0.5.5 1.0.0
zict 2.2.0 3.0.0
cyclonedx-python-lib 2.7.1 4.2.2
laserbeamsize 1.9.4 2.0.3

Packages With Degraded Versions

Package Old New
fasteners 0.18 0.17.3

Added the Following Packages

  • ophyd-async
  • pyqtwebengine

Added the Following Dependencies

  • aiosignal (required by aiohttp, which is used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, whatrecord, xarray)
  • aiosqlite (required by sqlalchemy, tiled, which are used in pandas, pcdscalc)
  • aom (required by ffmpeg, libavif16, which are used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)
  • async-lru (required by jupyterlab, which is used in ipython, jupyter)
  • asyncpg (required by sqlalchemy, tiled, which are used in pandas, pcdscalc)
  • attr (required by libcap, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • awkward (required by tiled)
  • awkward-cpp (required by awkward, which is used in tiled)
  • aws-c-auth (required by aws-c-s3, aws-crt-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-cal (required by aws-c-auth, aws-c-http, aws-c-io, aws-c-s3, aws-crt-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-common (required by aws-c-auth, aws-c-cal, aws-c-compression, aws-c-event-stream, aws-c-http, aws-c-io, aws-c-mqtt, aws-c-s3, aws-c-sdkutils, aws-checksums, aws-crt-cpp, aws-sdk-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-compression (required by aws-c-http, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-event-stream (required by aws-crt-cpp, aws-sdk-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-http (required by aws-c-auth, aws-c-mqtt, aws-c-s3, aws-crt-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-io (required by aws-c-auth, aws-c-event-stream, aws-c-http, aws-c-mqtt, aws-c-s3, aws-crt-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-mqtt (required by aws-crt-cpp, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-s3 (required by aws-crt-cpp, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-c-sdkutils (required by aws-c-auth, aws-crt-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-checksums (required by aws-c-event-stream, aws-c-s3, aws-sdk-cpp, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-crt-cpp (required by aws-sdk-cpp, libarrow, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • aws-sdk-cpp (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • brotli-python (required by urllib3, which is used in ads-async, bluesky, bluesky-live, databroker, elog, happi, hutch-python, hxrsnd, ipython, jupyter, lightpath, nabs, ophyd, ophyd-async, pandas, pcdscalc, pcdsdevices, pcdsutils, pydm, scikit-image, sphinx, suitcase-tiff, tc-release, tiled, transfocate, typhos, whatrecord, xarray)
  • c-blosc2 (required by imagecodecs, pytables, which are used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)
  • conda-index (required by conda-build)
  • cssselect (required by lxml, pyquery, which are used in ads-async, blark, bluesky, bluesky-live, databroker, happi, hutch-python, hxrsnd, ipython, jupyter, lightpath, nabs, ophyd, ophyd-async, pandas, pcdscalc, pcdsdevices, pcdsutils, pytmc, scikit-image, sphinx, suitcase-tiff, tc-release, tiled, transfocate, typhos, whatrecord, xarray)
  • dav1d (required by ffmpeg, libavif16, which are used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)
  • fqdn (required by jsonschema, jsonschema-with-format-nongpl, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • freeglut (required by jasper)
  • freetype-py (required by reportlab, rlpycairo, which are used in transfocate)
  • frozenlist (required by aiohttp, aiosignal, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, whatrecord, xarray)
  • g-ir-build-tools (required by gobject-introspection)
  • g-ir-host-tools (required by gobject-introspection)
  • gflags (required by glog, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • glib (required by gstreamer)
  • glib-tools (required by glib)
  • glog (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • gobject-introspection (required by hkl)
  • h2 (required by dnspython, httpcore, httpx, which are used in databroker, happi, tiled)
  • hiredis (required by bluesky-queueserver, redis)
  • hpack (required by h2, which is used in databroker, happi, tiled)
  • hyperframe (required by h2, which is used in databroker, happi, tiled)
  • isoduration (required by jsonschema, jsonschema-with-format-nongpl, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • jaxtyping (required by linear-operator, linear_operator)
  • json5 (required by jupyterlab-server, jupyterlab_server, which are used in ipython, jupyter)
  • jsonschema-specifications (required by jsonschema, which is used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • jsonschema-with-format-nongpl (required by jupyter_events)
  • jupyter-lsp (required by jupyterlab, which is used in ipython, jupyter)
  • jupyter_events (required by jupyter_server)
  • jupyter_server_terminals (required by jupyter_server)
  • jupyterlab (required by notebook, which is used in ipython, jupyter)
  • jupyterlab_server (required by jupyterlab, notebook, which are used in ipython, jupyter)
  • lazy_loader (required by scikit-image)
  • libarrow (required by pyarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • libass (required by ffmpeg)
  • libavif16 (required by imagecodecs, which is used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)
  • libcap (required by libsystemd0, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libclang13 (required by libclang, qt-main, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libcrc32c (required by libgoogle-cloud, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • libcups (required by qt-main, qt-webengine, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libdrm (required by libva)
  • libflac (required by libsndfile, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libglu (required by jasper)
  • libgoogle-cloud (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • libhwloc (required by tbb)
  • libidn2 (required by gnutls)
  • libjpeg-turbo (required by gdk-pixbuf, imagecodecs, jasper, lcms2, libgd, libopencv, libtiff, libwebp, pillow, qt-main, qt-webengine, which are used in ads-async, bluesky, bluesky-live, databroker, happi, hutch-python, hxrsnd, ipython, jupyter, lightpath, lucid, nabs, ophyd, ophyd-async, pandas, pcdscalc, pcdsdevices, pcdsutils, pyqt, scikit-image, suitcase-tiff, tiled, transfocate, typhos, whatrecord, xarray)
  • libllvm14 (required by llvmlite, which is used in tiled)
  • libllvm15 (required by libclang, libclang13, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libnuma (required by ucx, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • libogg (required by gst-plugins-base, libflac, libsndfile, libvorbis, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libopenvino (required by libopenvino-auto-batch-plugin, libopenvino-auto-plugin, libopenvino-hetero-plugin, libopenvino-intel-cpu-plugin, libopenvino-intel-gpu-plugin, libopenvino-ir-frontend, libopenvino-onnx-frontend, libopenvino-paddle-frontend, libopenvino-pytorch-frontend, libopenvino-tensorflow-frontend, libopenvino-tensorflow-lite-frontend)
  • libopenvino-auto-batch-plugin (required by libopencv)
  • libopenvino-auto-plugin (required by libopencv)
  • libopenvino-hetero-plugin (required by libopencv)
  • libopenvino-intel-cpu-plugin (required by libopencv)
  • libopenvino-intel-gpu-plugin (required by libopencv)
  • libopenvino-ir-frontend (required by libopencv)
  • libopenvino-onnx-frontend (required by libopencv)
  • libopenvino-paddle-frontend (required by libopencv)
  • libopenvino-pytorch-frontend (required by libopencv)
  • libopenvino-tensorflow-frontend (required by libopencv)
  • libopenvino-tensorflow-lite-frontend (required by libopencv)
  • libpciaccess (required by libdrm)
  • libsndfile (required by pulseaudio-client, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libsystemd0 (required by pulseaudio-client, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libtasn1 (required by gnutls, p11-kit)
  • libthrift (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • libunistring (required by libidn2)
  • libutf8proc (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • libva (required by ffmpeg)
  • libvorbis (required by gst-plugins-base, libsndfile, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • libvpx (required by ffmpeg)
  • linear_operator (required by botorch, gpytorch)
  • linkify-it-py (required by markdown-it-py, panel, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • markdown2 (required by readtime)
  • mdit-py-plugins (required by markdown-it-py, panel, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • more-itertools (required by conda-index)
  • mpg123 (required by libsndfile, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • ocl-icd (required by libopenvino-intel-gpu-plugin, ocl-icd-system)
  • ocl-icd-system (required by libopenvino-intel-gpu-plugin)
  • opt_einsum (required by pyro-ppl)
  • orc (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • overrides (required by jupyter-server, jupyter_server, which are used in ipython, jupyter)
  • p11-kit (required by gnutls)
  • paginate (required by mkdocs-material)
  • parquet (required by tiled)
  • pkg-config (required by g-ir-build-tools)
  • pugixml (required by libopenvino, libopenvino-hetero-plugin, libopenvino-intel-cpu-plugin, libopenvino-intel-gpu-plugin, libopenvino-ir-frontend)
  • pulseaudio-client (required by qt-main, qt-webengine, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • py-serializable (required by cyclonedx-python-lib)
  • pyquery (required by readtime)
  • pyro-api (required by pyro-ppl)
  • pyro-ppl (required by botorch, gpytorch)
  • python-json-logger (required by jupyter-events, jupyter_events, which are used in ipython, jupyter)
  • qt-main (required by libopencv, pyqt, pyqtads, pyqtwebengine, qt-webengine, qt5-advanced-docking-system, which are used in hutch-python, ipython, jupyter, lucid)
  • qt-webengine (required by pyqtwebengine, which is used in hutch-python, ipython, jupyter)
  • qt5-advanced-docking-system (required by pyqtads, which is used in lucid)
  • rav1e (required by libavif16, which is used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)
  • rdma-core (required by ucx, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • readtime (required by mkdocs-material)
  • redis-py (required by bluesky-queueserver)
  • referencing (required by jsonschema, jsonschema-specifications, jupyter-events, jupyter_events, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • rfc3339-validator (required by jsonschema, jsonschema-with-format-nongpl, jupyter-events, jupyter_events, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • rfc3986-validator (required by jsonschema, jsonschema-with-format-nongpl, jupyter-events, jupyter_events, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • rlpycairo (required by reportlab, which is used in transfocate)
  • rpds-py (required by jsonschema, referencing, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • s2n (required by aws-c-io, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • sip (required by pyqt, pyqt5-sip, pyqtads, pyqtwebengine, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, lightpath, lucid, nabs, ophyd, ophyd-async, pandas, pcdsdevices, pcdsutils, pcdswidgets, pmgr, pytmc, scikit-image, suitcase-tiff, tiled, typhos, xarray)
  • svt-av1 (required by ffmpeg, libavif16, which are used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)
  • thriftpy2 (required by parquet, which is used in tiled)
  • typeguard (required by jaxtyping, linear-operator, linear_operator)
  • types-python-dateutil (required by arrow, which is used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • typing_utils (required by overrides, which is used in ipython, jupyter)
  • uc-micro-py (required by linkify-it-py, which is used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • ucx (required by libarrow, which is used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • uri-template (required by jsonschema, jsonschema-with-format-nongpl, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • webcolors (required by jsonschema, jsonschema-with-format-nongpl, which are used in bluesky, bluesky-live, databroker, happi, hutch-python, ipython, jupyter, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-csv, suitcase-json-metadata, suitcase-jsonl, suitcase-specfile, suitcase-tiff, tiled, xarray)
  • x265 (required by ffmpeg)
  • xcb-util (required by qt-main, xcb-util-image, which are used in hutch-python, ipython, jupyter, lucid, pyqt)
  • xcb-util-image (required by qt-main, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • xcb-util-keysyms (required by qt-main, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • xcb-util-renderutil (required by qt-main, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • xcb-util-wm (required by qt-main, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • xkeyboard-config (required by libxkbcommon)
  • xorg-compositeproto (required by xorg-libxcomposite, which is used in hutch-python, ipython, jupyter)
  • xorg-damageproto (required by xorg-libxdamage, which is used in hutch-python, ipython, jupyter)
  • xorg-fixesproto (required by xorg-libxfixes, which is used in hutch-python, ipython, jupyter)
  • xorg-inputproto (required by xorg-libxi, xorg-libxtst, which are used in hutch-python, ipython, jupyter)
  • xorg-libxcomposite (required by qt-webengine, which is used in hutch-python, ipython, jupyter)
  • xorg-libxdamage (required by qt-webengine, which is used in hutch-python, ipython, jupyter)
  • xorg-libxfixes (required by freeglut, libva, qt-webengine, xorg-libxcomposite, xorg-libxdamage, xorg-libxi, which are used in hutch-python, ipython, jupyter)
  • xorg-libxi (required by freeglut, xorg-libxtst, which are used in hutch-python, ipython, jupyter)
  • xorg-libxrandr (required by qt-webengine, which is used in hutch-python, ipython, jupyter)
  • xorg-libxtst (required by qt-webengine, which is used in hutch-python, ipython, jupyter)
  • xorg-randrproto (required by xorg-libxrandr, which is used in hutch-python, ipython, jupyter)
  • xorg-recordproto (required by xorg-libxtst, which is used in hutch-python, ipython, jupyter)
  • xorg-util-macros (required by xorg-libxdamage, which is used in hutch-python, ipython, jupyter)
  • xorg-xf86vidmodeproto (required by qt-main, which is used in hutch-python, ipython, jupyter, lucid, pyqt)
  • xyzservices (required by bokeh, panel, which are used in bluesky, bluesky-live, databroker, ophyd, ophyd-async, pandas, pcdsdevices, scikit-image, suitcase-tiff, tiled, xarray)
  • zlib-ng (required by c-blosc2, which is used in bluesky, databroker, scikit-image, suitcase-tiff, tiled)

Removed the Following Packages

  • aioredis
  • area-detector-handlers
  • async_generator
  • brotlipy
  • flit-core
  • gammaray
  • glob2
  • graphql-core
  • jinja2-time
  • jpeg
  • libgsasl
  • libllvm11
  • lockfile
  • mock
  • nbclassic
  • olefile
  • openldap
  • pcre
  • pooch
  • pyasn1-modules
  • pyqt-impl
  • pyqtchart
  • pyrsistent
  • pytest-aiohttp
  • python-ldap
  • pytz-deprecation-shim
  • qt
  • qtconsole
  • resolvelib
  • sqlite
  • typing
  • unidecode

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 6, 2023

This is a no go for now- it will require some work in lucid at minimum. We either need to update to the new qtads api and do the associated tests/bugfixes or we need to strip it out altogether, which seems reasonable because it's caused a lot of trouble, but also feels bad because it gives us some seemingly useful functionality.

There will be a separate PR for a much less ambitious update, and then a third PR to "queue up" this ambitious update again for when we decide what to do with lucid.

@ZLLentz ZLLentz closed this Oct 6, 2023
@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 6, 2023

I'm going to try again here given the terrible situation in #303

I'm going to re-open as is and then look closely at pcdshub/lucid#126

@ZLLentz ZLLentz reopened this Oct 6, 2023
@klauer
Copy link
Contributor

klauer commented Oct 10, 2023

Running/testing some guis interactively, the only new behavior I've seen is failures at shutdown while trying to clean up certain pydm channels:

I had started doing the following in typhos, after observing the same:
https://github.com/klauer/typhos/blob/107a1a808e3cd79a69827648725a2d74d5e722a9/typhos/plugins/core.py#L286-L295

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 10, 2023

Some environment oddities found/understood from further investigation:

The following added packages have no "someone asked for me" information in the final env, and here are their stories:

  • annotated-types
    • required by pydantic >2, but orphaned after the pip step (see below)
  • pydantic-core
    • required by pydantic >2, but orphaned after the pip step (see below)
  • setuptools_dso
    • required by epicscorelibs's conda builds, but not the pypi builds, so it gets orphaned after the pip step (see below)

The following packages were uninstalled/reinstalled by pip after being installed by conda:

  • pydantic: 2.4.2 -> 1.10.13
    • version downgrade required by tiled[all], not a problem
  • anyio: 4.0.0 -> 3.7.1
    • version downgrade required by tiled[all], not a problem
  • httpcore: 1.0.0 -> 0.18.0
    • version downgrade required by httpx, installed from tiled[all], not a problem
  • epicscorelibs: 7.0.7.99.0.0 -> 7.0.7.99.0.2
    • required by p4p: need to double-check e.g. pyca, pmgr compatibility, and update the env pin? (edit: seems to work OK)
  • event-model: 0.0.0 -> 1.19.7

@tangkong
Copy link
Contributor

RIP my boi gammaray

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 10, 2023

RIP my boi gammaray

The gammaray conda build dependencies are very restrictive. There's only one version available and it requires a specific qt version.

$ conda search gammaray --info
Loading channels: done
gammaray 2.11.2 h2264404_0
--------------------------
file name   : gammaray-2.11.2-h2264404_0.tar.bz2
name        : gammaray
version     : 2.11.2
build       : h2264404_0
build number: 0
size        : 5.0 MB
license     : GPL-3.0-or-later AND MIT
subdir      : linux-64
url         : https://conda.anaconda.org/conda-forge/linux-64/gammaray-2.11.2-h2264404_0.tar.bz2
md5         : 4c1341f726330435014c700365b27a24
timestamp   : 2021-01-29 19:27:24 UTC
dependencies:
  - libgcc-ng >=9.3.0
  - libstdcxx-ng >=9.3.0
  - qt >=5.12.9,<5.13.0a0

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 10, 2023

I should have included this as a line-item in the PR, editing now

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 11, 2023

I made a pmps-ui PR that manages to avoid the new C++ qt error spam by just "not using partials", which is good practice anyway as we've been discussing offline. I think since the solution is in line with other good coding practices I'm not too concerned about it.

I'll start tracking down the other most egregious examples parallel to this PR. If those finish in time we can include them in the env along with any other adjustments that seem simple, otherwise they can go into the dev env and we can try out the semi-automatic environment building mechanisms.

@klauer
Copy link
Contributor

klauer commented Oct 11, 2023

epicscorelibs: 7.0.7.99.0.0 -> 7.0.7.99.0.2

* required by p4p: need to double-check e.g. pyca, pmgr compatibility, and update the env pin?

I'm a maintainer on those feedstocks now. I rebuilt p4p to support multiple epicscorelibs versions a while back - we should double-check our pins on everything and probably do a similar multi-version support method.

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 11, 2023

I peeked around the various repos and I think they're all packaged correctly (with one small error on pmgr), and it's just here in pcds-envs that it's pinned too narrowly. I suspect it's time to remove the epicscorelibs pin altogether.

p4p's build matrix: https://github.com/conda-forge/p4p-feedstock/blob/main/recipe/conda_build_config.yaml
pyca's build matrix: https://github.com/conda-forge/pyca-feedstock/blob/main/recipe/conda_build_config.yaml
pmgr's simple recipe: https://github.com/conda-forge/pmgr-feedstock/blob/main/recipe/meta.yaml

the probable mistake: https://github.com/pcdshub/pmgr/blob/ff674f427819381b0880ef45706486465449514f/requirements.txt#L2
since pmgr doesn't use epicscorelibs directly

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 11, 2023

Optional things to consider doing prior to tagging:

  • Remove epicscorelibs pin entirely, letting the package dependencies do the lifting
  • manually uninstall the orphaned annotated-types and pydantic-core packages, or pin pydantic to <2 ourselves
  • add additional pins to force the conda build over the pypi build
  • tag pcdsdevices again
  • fix typhos/lucid (or wherever the C++ RuntimeError spam comes from) and tag again
  • wait for a pydm tag
  • update dependencies again because there's a new curl CVE

@@ -61,6 +62,7 @@ gammaray
gdb
gh
isort
line_profiler
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commenting here but really for line 61 further up. Gammaray isn't in the env anymore is it? It's still included here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch, I'll drop it from this file

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

All of the current env tests pass on CI and on psbuild-rhel7 and I think the environment is good
The other tests have varying degrees of success
I'm going to try it as my primary environment for all things tomorrow and I'll run it through some paces
It's in my ~/miniconda3 install if anyone else also wants to try it

@tangkong
Copy link
Contributor

Saving people some scrolling:

py39 next full: fails on pip audit
py310 next full: fails on pip audit, but typhos also segfaults once

looks like otherwise tests actually pass 🎉

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

I'm hoping that the urllib3 pip audit goes away from these other builds once the next version releases on conda-forge, since the fix is in the next tag on pypi. I'm being slightly lazy in not forcing the urllib pypi build and just expecting that this will be available in conda-forge soon. I manually installed the fix using pip in the current env.

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

The only things I've noticed running interactively are:

  1. hutch-python gives the pandas/numexpr userwarning, maybe it's worth just updating the package to see what happens
$ hutch-python
/cds/home/z/zlentz/miniconda3/envs/pcds-5.8.0/lib/python3.9/site-packages/pandas/core/computation/expressions.py:21: UserWarning: Pandas requires version '2.8.0' or newer of 'numexpr' (version '2.7.3' currently installed).
  from pandas.core.computation.check import NUMEXPR_INSTALLED
  Package       Version  Build                Channel           Size
──────────────────────────────────────────────────────────────────────
  Change:
──────────────────────────────────────────────────────────────────────

  - libblas       3.9.0  18_linux64_openblas  conda-forge     Cached
  + libblas       3.9.0  16_linux64_mkl       conda-forge       13kB
  - libcblas      3.9.0  18_linux64_openblas  conda-forge     Cached
  + libcblas      3.9.0  16_linux64_mkl       conda-forge       13kB
  - liblapack     3.9.0  18_linux64_openblas  conda-forge     Cached
  + liblapack     3.9.0  16_linux64_mkl       conda-forge       13kB
  - liblapacke    3.9.0  18_linux64_openblas  conda-forge     Cached
  + liblapacke    3.9.0  16_linux64_mkl       conda-forge       13kB

  Upgrade:
──────────────────────────────────────────────────────────────────────

  - numexpr       2.7.3  py39hde0f152_1       conda-forge     Cached
  + numexpr       2.8.7  mkl_py39h3458bc0_4   conda-forge      134kB
  1. the PYCA pydm plugin has worse behavior than before (sometimes doesn't work, drops more core dumps), we don't really leverage this at all but I've considered experimenting with it on pmps-ui to mitigate the open/close speed problems.

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

the annoying user warning happens on opening atef too, so I'm going to modify the env and hope openblas vs mkl doesn't make a huge difference

before doing that I'm also going to make sure clicking around on lucid screen buttons still works because earlier I was having trouble opening the pmps-ui from lucid

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

The pmps-ui buttons on the lucid screens assume that you have PYDM_DISPLAYS_PATH set appropriately, so they weren't working for me until I set that. Very annoying.

I will update to remove the pandas user warning and we'll roll the tests one more time.

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

it passed again, I'll cross-check the auto release notes with what's already in this PR's description but after that there aren't any more issues that I know about

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 18, 2023

I personally want to merge/tag and get this out there prior to the power being fully restored. We can roll back the default environment later if need be, or we can have a follow-up as needed.

Copy link
Contributor

@tangkong tangkong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. We've run the env through it's paces and I've looked through the diff. Rolling back in cases of emergency sounds good to me

@klauer
Copy link
Contributor

klauer commented Oct 19, 2023

I don't really know what to make of the massive changes that were introduced by the few desired package changes here...

It seems like you guys have been testing this out with good results, though, so I'm 👍 overall

@ZLLentz
Copy link
Member Author

ZLLentz commented Oct 19, 2023

Let's do the tl;dr for why the change is big, since I probably need to write one up for the release notes anyway.

The main goal of this release is to update from the EOL openssl 1.1.1 chain which may stop getting security updates, or any updates altogether. https://www.openssl.org/blog/blog/2023/09/11/eol-111/

I have only a cursory understanding of the underlying technical details here, but the jist of it is that a lot of compiled package builds only support either openssl=1.1.1 or openssl >=3.0.0, and there is a transition point between the two. One such package is qt, which caused some tremors through the environment as we needed to update from 5.12 to 5.15.

I think a lot of the resulting updates had huge shakeups in the dependency chains.

@ZLLentz ZLLentz merged commit 0bcfdcf into pcdshub:master Oct 19, 2023
@ZLLentz ZLLentz deleted the rel-5.8.0 branch October 19, 2023 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment