diff --git a/deployments/common/HASH b/deployments/common/HASH
index ffdca22..b11aba9 100644
--- a/deployments/common/HASH
+++ b/deployments/common/HASH
@@ -1 +1 @@
-2eebdbc018de2c101654e714ea59397feffb8289
+cf522870fed6a41fc43a45f04e4b08d01b256b9b
diff --git a/deployments/common/VERSION b/deployments/common/VERSION
index 3e3c2f1..ccbccc3 100644
--- a/deployments/common/VERSION
+++ b/deployments/common/VERSION
@@ -1 +1 @@
-2.1.1
+2.2.0
diff --git a/deployments/roman/MISSION_HASH b/deployments/roman/MISSION_HASH
index bac3aba..b11aba9 100644
--- a/deployments/roman/MISSION_HASH
+++ b/deployments/roman/MISSION_HASH
@@ -1 +1 @@
-f28c4e4ba7fdb9952e5f1a9f806667ec9196bbc7
+cf522870fed6a41fc43a45f04e4b08d01b256b9b
diff --git a/deployments/roman/MISSION_VERSION b/deployments/roman/MISSION_VERSION
index 2836acc..9c0d343 100644
--- a/deployments/roman/MISSION_VERSION
+++ b/deployments/roman/MISSION_VERSION
@@ -1 +1 @@
-roman-16.0.0
+roman-17.0.0
diff --git a/deployments/roman/env-frozen/base/requirements.yml b/deployments/roman/env-frozen/base/requirements.yml
index c7eec39..1034db9 100644
--- a/deployments/roman/env-frozen/base/requirements.yml
+++ b/deployments/roman/env-frozen/base/requirements.yml
@@ -4,7 +4,7 @@ channels:
 dependencies:
   - _libgcc_mutex=0.1
   - _openmp_mutex=4.5
-  - alembic=1.14.1
+  - alembic=1.15.1
   - altair=5.5.0
   - annotated-types=0.7.0
   - anyio=4.8.0
@@ -16,20 +16,20 @@ dependencies:
   - asttokens=3.0.0
   - async-lru=2.0.4
   - async_generator=1.10
-  - attrs=25.1.0
-  - aws-c-auth=0.8.1
-  - aws-c-cal=0.8.1
-  - aws-c-common=0.10.6
-  - aws-c-compression=0.3.0
-  - aws-c-event-stream=0.5.0
-  - aws-c-http=0.9.2
-  - aws-c-io=0.15.3
-  - aws-c-mqtt=0.11.0
-  - aws-c-s3=0.7.9
-  - aws-c-sdkutils=0.2.2
-  - aws-checksums=0.2.2
-  - aws-crt-cpp=0.29.9
-  - aws-sdk-cpp=1.11.489
+  - attrs=25.3.0
+  - aws-c-auth=0.8.6
+  - aws-c-cal=0.8.5
+  - aws-c-common=0.11.3
+  - aws-c-compression=0.3.1
+  - aws-c-event-stream=0.5.4
+  - aws-c-http=0.9.4
+  - aws-c-io=0.17.0
+  - aws-c-mqtt=0.12.2
+  - aws-c-s3=0.7.12
+  - aws-c-sdkutils=0.2.3
+  - aws-checksums=0.2.3
+  - aws-crt-cpp=0.31.0
+  - aws-sdk-cpp=1.11.510
   - azure-core-cpp=1.14.0
   - azure-identity-cpp=1.10.0
   - azure-storage-blobs-cpp=12.13.0
@@ -43,7 +43,7 @@ dependencies:
   - bleach-with-css=6.2.0
   - blinker=1.9.0
   - blosc=1.21.6
-  - bokeh=3.6.3
+  - bokeh=3.7.0
   - boltons=24.0.0
   - bottleneck=1.4.2
   - brotli=1.1.0
@@ -72,14 +72,14 @@ dependencies:
   - contourpy=1.3.1
   - cpp-expected=1.1.0
   - cpython=3.12.9
-  - cryptography=44.0.1
+  - cryptography=44.0.2
   - cycler=0.12.1
   - cython=3.0.12
   - cytoolz=1.0.1
   - dask=2025.2.0
   - dask-core=2025.2.0
   - dav1d=1.2.1
-  - debugpy=1.8.12
+  - debugpy=1.8.13
   - decorator=5.2.1
   - defusedxml=0.7.1
   - deprecation=2.1.0
@@ -92,9 +92,9 @@ dependencies:
   - fmt=11.0.2
   - fonttools=4.56.0
   - fqdn=1.5.1
-  - freetype=2.12.1
+  - freetype=2.13.3
   - frozendict=2.4.6
-  - fsspec=2025.2.0
+  - fsspec=2025.3.0
   - gflags=2.2.2
   - giflib=5.2.2
   - gitdb=4.0.12
@@ -119,12 +119,13 @@ dependencies:
   - importlib_resources=6.5.2
   - ipykernel=6.29.5
   - ipympl=0.9.6
-  - ipython=8.32.0
+  - ipython=8.34.0
   - ipython_genutils=0.2.0
+  - ipython_pygments_lexers=1.1.1
   - ipywidgets=8.1.5
   - isoduration=20.11.0
   - jedi=0.19.2
-  - jinja2=3.1.5
+  - jinja2=3.1.6
   - joblib=1.4.2
   - json5=0.10.0
   - jsonpatch=1.33
@@ -142,7 +143,7 @@ dependencies:
   - jupyter_server_terminals=0.5.3
   - jupyterhub-base=5.2.1
   - jupyterhub-singleuser=5.2.1
-  - jupyterlab=4.3.5
+  - jupyterlab=4.3.6
   - jupyterlab-git=0.51.0
   - jupyterlab_pygments=0.3.0
   - jupyterlab_server=2.27.3
@@ -156,14 +157,14 @@ dependencies:
   - lcms2=2.17
   - ld_impl_linux-64=2.43
   - lerc=4.0.0
-  - libabseil=20240722.0
+  - libabseil=20250127.0
   - libaec=1.1.3
   - libarchive=3.7.7
   - libarrow=19.0.1
   - libarrow-acero=19.0.1
   - libarrow-dataset=19.0.1
   - libarrow-substrait=19.0.1
-  - libavif16=1.1.1
+  - libavif16=1.2.0
   - libblas=3.9.0
   - libbrotlicommon=1.1.0
   - libbrotlidec=1.1.0
@@ -182,9 +183,9 @@ dependencies:
   - libgfortran=14.2.0
   - libgfortran5=14.2.0
   - libgomp=14.2.0
-  - libgoogle-cloud=2.35.0
-  - libgoogle-cloud-storage=2.35.0
-  - libgrpc=1.67.1
+  - libgoogle-cloud=2.36.0
+  - libgoogle-cloud-storage=2.36.0
+  - libgrpc=1.71.0
   - libhwy=1.1.0
   - libiconv=1.18
   - libjpeg-turbo=3.0.0
@@ -193,8 +194,8 @@ dependencies:
   - liblapacke=3.9.0
   - libllvm15=15.0.7
   - liblzma=5.6.4
-  - libmamba=2.0.5
-  - libmambapy=2.0.5
+  - libmamba=2.0.7
+  - libmambapy=2.0.7
   - libnghttp2=1.64.0
   - libnsl=2.0.1
   - libopenblas=0.3.29
@@ -202,7 +203,7 @@ dependencies:
   - libopentelemetry-cpp-headers=1.18.0
   - libparquet=19.0.1
   - libpng=1.6.47
-  - libprotobuf=5.28.3
+  - libprotobuf=5.29.3
   - libre2-11=2024.07.02
   - libsodium=1.0.20
   - libsolv=0.7.30
@@ -227,9 +228,9 @@ dependencies:
   - lz4-c=1.10.0
   - lzo=2.10
   - mako=1.3.9
-  - mamba=2.0.5
+  - mamba=2.0.7
   - markupsafe=3.0.2
-  - matplotlib-base=3.10.0
+  - matplotlib-base=3.10.1
   - matplotlib-inline=0.1.7
   - menuinst=2.2.0
   - mistune=3.1.2
@@ -238,7 +239,7 @@ dependencies:
   - mpmath=1.3.0
   - msgpack-python=1.1.0
   - munkres=1.1.4
-  - narwhals=1.27.1
+  - narwhals=1.30.0
   - nbclassic=1.2.0
   - nbclient=0.10.2
   - nbconvert-core=7.16.6
@@ -248,7 +249,7 @@ dependencies:
   - nest-asyncio=1.6.0
   - networkx=3.4.2
   - nlohmann_json=3.11.3
-  - nodejs=22.12.0
+  - nodejs=22.13.0
   - nomkl=1.0
   - notebook=7.3.2
   - notebook-shim=0.2.4
@@ -260,7 +261,7 @@ dependencies:
   - openjpeg=2.5.3
   - openpyxl=3.1.5
   - openssl=3.4.1
-  - orc=2.0.3
+  - orc=2.1.1
   - overrides=7.7.0
   - packaging=24.2
   - pamela=1.2.0
@@ -280,8 +281,8 @@ dependencies:
   - prometheus-cpp=1.3.0
   - prometheus_client=0.21.1
   - prompt-toolkit=3.0.50
-  - protobuf=5.28.3
-  - psutil=6.1.1
+  - protobuf=5.29.3
+  - psutil=7.0.0
   - pthread-stubs=0.4
   - ptyprocess=0.7.0
   - pure_eval=0.2.3
@@ -309,7 +310,7 @@ dependencies:
   - pytz=2024.1
   - pywavelets=1.8.0
   - pyyaml=6.0.2
-  - pyzmq=26.2.1
+  - pyzmq=26.3.0
   - qhull=2020.2
   - rav1e=0.6.6
   - re2=2024.07.02
@@ -323,15 +324,15 @@ dependencies:
   - rpds-py=0.23.1
   - ruamel.yaml=0.18.10
   - ruamel.yaml.clib=0.2.8
-  - s2n=1.5.11
+  - s2n=1.5.14
   - scikit-image=0.25.2
   - scikit-learn=1.6.1
   - scipy=1.15.2
   - seaborn=0.13.2
   - seaborn-base=0.13.2
   - send2trash=1.8.3
-  - setuptools=75.8.0
-  - simdjson=3.11.6
+  - setuptools=75.8.2
+  - simdjson=3.12.2
   - six=1.17.0
   - smmap=5.0.2
   - snappy=1.2.1
@@ -339,15 +340,15 @@ dependencies:
   - sortedcontainers=2.4.0
   - soupsieve=2.5
   - spdlog=1.15.1
-  - sqlalchemy=2.0.38
+  - sqlalchemy=2.0.39
   - stack_data=0.6.3
   - statsmodels=0.14.4
-  - svt-av1=3.0.0
+  - svt-av1=3.0.1
   - sympy=1.13.3
   - tblib=3.0.0
   - terminado=0.18.1
-  - threadpoolctl=3.5.0
-  - tifffile=2025.2.18
+  - threadpoolctl=3.6.0
+  - tifffile=2025.3.13
   - tinycss2=1.4.0
   - tk=8.6.13
   - tomli=2.2.1
@@ -384,11 +385,11 @@ dependencies:
   - zlib=1.3.1
   - zlib-ng=2.2.4
   - zstandard=0.23.0
-  - zstd=1.5.6
+  - zstd=1.5.7
   - pip:
-    - Sphinx==8.2.1
+    - Sphinx==8.1.3
     - black==25.1.0
-    - boto3==1.37.4
+    - boto3==1.37.12
     - bqplot==0.12.44
     - bqplot-image-gl==1.6.1
     - ci_watson==0.8.0
@@ -408,9 +409,9 @@ dependencies:
     - jupyter_server_proxy==4.4.0
     - jupyterlab_tour==4.0.1
     - nbgitpuller==1.2.2
-    - nbsphinx==0.9.6
+    - nbsphinx==0.9.7
     - papermill==2.6.0
-    - pipdeptree==2.25.0
+    - pipdeptree==2.25.1
     - playwright==1.50.0
     - pydeps==3.0.1
     - pyds9==1.8.1
diff --git a/deployments/roman/env-frozen/roman-cal/requirements.txt b/deployments/roman/env-frozen/roman-cal/requirements.txt
index 75769e0..dd364e6 100644
--- a/deployments/roman/env-frozen/roman-cal/requirements.txt
+++ b/deployments/roman/env-frozen/roman-cal/requirements.txt
@@ -1,18 +1,19 @@
 #
-# This file is autogenerated by pip-compile with Python 3.11
+# This file is autogenerated by pip-compile with Python 3.12
 # by the following command:
 #
 #    pip-compile --output-file=/opt/env-frozen/roman-cal/requirements.txt --pip-args='--no-color --default-timeout 100' /opt/common-env/common.pip /opt/common-env/docs.pip /opt/common-env/jupyter.pip /opt/common-env/required.pip /opt/common-env/testing.pip /opt/environments/common-hints.pip /opt/environments/roman-cal/build-hints.pip /opt/environments/roman-cal/roman-cal.pip
 #
-aiobotocore==2.21.0
+aiobotocore==2.21.1
     # via s3fs
-aiohappyeyeballs==2.4.6
+aiohappyeyeballs==2.6.1
     # via aiohttp
 aiohttp==3.11.13
     # via
     #   aiobotocore
     #   fsspec
     #   jupyter-server-proxy
+    #   papermill
     #   s3fs
 aioitertools==0.12.0
     # via aiobotocore
@@ -22,7 +23,7 @@ aiosqlite==0.21.0
     # via ypy-websocket
 alabaster==1.0.0
     # via sphinx
-alembic==1.14.1
+alembic==1.15.1
     # via jupyterhub
 annotated-types==0.7.0
     # via pydantic
@@ -41,7 +42,7 @@ argon2-cffi-bindings==21.2.0
     # via argon2-cffi
 arrow==1.3.0
     # via isoduration
-asdf==3.5.0
+asdf==4.1.0
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   asdf-astropy
@@ -58,8 +59,10 @@ asdf==3.5.0
     #   stcal
     #   stdatamodels
     #   stpipe
+    #   stpreview
 asdf-astropy==0.7.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   gwcs
     #   rad
     #   roman-datamodels
@@ -68,10 +71,12 @@ asdf-astropy==0.7.1
     #   stdatamodels
 asdf-coordinates-schemas==0.3.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   asdf-astropy
     #   asdf-wcs-schemas
 asdf-standard==1.1.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   asdf
     #   asdf-astropy
     #   asdf-coordinates-schemas
@@ -80,12 +85,15 @@ asdf-standard==1.1.1
     #   roman-datamodels
 asdf-transform-schemas==0.5.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   asdf
     #   asdf-astropy
     #   asdf-wcs-schemas
     #   stdatamodels
 asdf-wcs-schemas==0.4.0
-    # via gwcs
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   gwcs
 asteval==1.0.6
     # via jdaviz
 astrocut==0.12.0
@@ -123,25 +131,29 @@ astropy==7.0.1
     #   stdatamodels
     #   stips
     #   stpipe
+    #   stpreview
+    #   stpsf
     #   stsynphot
     #   synphot
     #   tweakwcs
-    #   webbpsf
-astropy-iers-data==0.2025.2.24.0.34.4
-    # via astropy
+astropy-iers-data==0.2025.2.17.0.34.13
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   astropy
 astropy-sphinx-theme==1.1
     # via sphinx-astropy
 astroquery==0.4.9.post1
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jdaviz
-    #   webbpsf
+    #   stpsf
 asttokens==3.0.0
     # via stack-data
 async-lru==2.0.4
     # via jupyterlab
 attrs==25.1.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   aiohttp
     #   asdf
     #   jsonschema
@@ -150,10 +162,9 @@ babel==2.17.0
     # via
     #   jupyterlab-server
     #   sphinx
-backports-tarfile==1.2.0
-    # via jaraco-context
 beautifulsoup4==4.13.3
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   astroquery
     #   nbconvert
     #   stsynphot
@@ -161,7 +172,7 @@ black==25.1.0
     # via -r /opt/common-env/common.pip
 bleach[css]==6.2.0
     # via nbconvert
-bokeh==3.6.3
+bokeh==3.7.0
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jupyter-bokeh
@@ -199,6 +210,7 @@ casa-formats-io==0.3.0
     # via spectral-cube
 certifi==2025.1.31
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   httpcore
     #   httpx
     #   requests
@@ -206,20 +218,25 @@ certipy==0.2.1
     # via jupyterhub
 cffi==1.17.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   argon2-cffi-bindings
     #   cryptography
 charset-normalizer==3.4.1
-    # via requests
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   requests
 ci-watson==0.8.0
     # via -r /opt/common-env/testing.pip
 click==8.1.8
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   black
     #   dask
     #   papermill
     #   pip-tools
     #   rich-click
     #   solara-server
+    #   typer
     #   uvicorn
 cloudpickle==3.1.1
     # via dask
@@ -231,27 +248,32 @@ comm==0.2.2
     #   ipywidgets
 contourpy==1.3.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   bokeh
     #   matplotlib
-crds==12.1.1
+crds==12.0.9
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   ci-watson
     #   romancal
     #   romanisim
     #   stpipe
-cryptography==44.0.2
+cryptography==44.0.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   certipy
     #   secretstorage
 cycler==0.12.1
-    # via matplotlib
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   matplotlib
 cython==3.0.12
     # via romanisim
 dask[array]==2025.2.0
     # via
     #   casa-formats-io
     #   spectral-cube
-debugpy==1.8.12
+debugpy==1.8.13
     # via ipykernel
 decorator==5.2.1
     # via ipython
@@ -272,6 +294,7 @@ docutils==0.21.2
     #   sphinx-rtd-theme
 drizzle==2.0.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   romancal
     #   stcal
 echo==0.9.0
@@ -284,7 +307,9 @@ entrypoints==0.4
 esutil==0.6.16
     # via -r /opt/environments/roman-cal/roman-cal.pip
 et-xmlfile==2.0.0
-    # via openpyxl
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   openpyxl
 executing==2.2.0
     # via stack-data
 fast-histogram==0.14
@@ -295,12 +320,15 @@ fastjsonschema==2.21.1
     # via nbformat
 filelock==3.17.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   crds
     #   solara-server
 flake8==7.1.2
     # via -r /opt/common-env/testing.pip
 fonttools==4.56.0
-    # via matplotlib
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   matplotlib
 fqdn==1.5.1
     # via jsonschema
 freetype-py==2.5.1
@@ -309,7 +337,7 @@ frozenlist==1.5.0
     # via
     #   aiohttp
     #   aiosignal
-fsspec[http]==2025.2.0
+fsspec[http]==2025.3.0
     # via
     #   astrocut
     #   dask
@@ -345,7 +373,7 @@ greenlet==3.1.1
     # via
     #   playwright
     #   sqlalchemy
-gwcs==0.21.0
+gwcs==0.24.0
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jdaviz
@@ -356,6 +384,7 @@ gwcs==0.21.0
     #   specreduce
     #   specutils
     #   stcal
+    #   stpreview
     #   tweakwcs
 h11==0.14.0
     # via
@@ -364,7 +393,9 @@ h11==0.14.0
 hsluv==5.0.4
     # via vispy
 html5lib==1.1
-    # via astroquery
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   astroquery
 httpcore==1.0.7
     # via httpx
 httpx==0.28.1
@@ -373,6 +404,7 @@ humanize==4.12.1
     # via solara-ui
 idna==3.10
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   anyio
     #   httpx
     #   jdaviz
@@ -382,15 +414,14 @@ idna==3.10
     #   yarl
 imageio==2.37.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   glue-vispy-viewers
     #   scikit-image
 imagesize==1.4.1
     # via sphinx
 importlib-metadata==8.6.1
     # via
-    #   asdf
-    #   dask
-    #   keyring
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   stpipe
 iniconfig==2.0.0
     # via pytest
@@ -413,7 +444,7 @@ ipykernel==6.29.5
     #   jupyterlab
     #   nbclassic
     #   solara-server
-ipympl==0.9.6
+ipympl==0.9.7
     # via
     #   -r /opt/common-env/jupyter.pip
     #   glue-jupyter
@@ -426,7 +457,7 @@ ipysplitpanes==0.2.0
     # via
     #   -r /opt/common-env/jupyter.pip
     #   jdaviz
-ipython==8.33.0
+ipython==9.0.2
     # via
     #   -r /opt/common-env/common.pip
     #   glue-core
@@ -437,6 +468,8 @@ ipython-genutils==0.2.0
     # via
     #   -r /opt/common-env/jupyter.pip
     #   nbclassic
+ipython-pygments-lexers==1.1.1
+    # via ipython
 ipyvolume==0.6.3
     # via
     #   -r /opt/common-env/jupyter.pip
@@ -484,20 +517,27 @@ ipywidgets==8.1.5
 isoduration==20.11.0
     # via jsonschema
 jaraco-classes==3.4.0
-    # via keyring
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   keyring
 jaraco-context==6.0.1
-    # via keyring
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   keyring
 jaraco-functools==4.1.0
-    # via keyring
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   keyring
 jdaviz==4.1.1
     # via -r /opt/environments/roman-cal/roman-cal.pip
 jedi==0.19.2
     # via ipython
-jeepney==0.9.0
+jeepney==0.8.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   keyring
     #   secretstorage
-jinja2==3.1.5
+jinja2==3.1.6
     # via
     #   bokeh
     #   jupyter-server
@@ -510,6 +550,7 @@ jinja2==3.1.5
     #   sphinx
 jmespath==1.0.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   aiobotocore
     #   asdf
     #   boto3
@@ -522,13 +563,16 @@ jsonpointer==3.0.0
     # via jsonschema
 jsonschema[format-nongpl]==4.23.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jupyter-events
     #   jupyterlab-server
     #   nbformat
     #   romancal
     #   romanisim
 jsonschema-specifications==2024.10.1
-    # via jsonschema
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   jsonschema
 jupyter-bokeh==4.0.5
     # via -r /opt/common-env/jupyter.pip
 jupyter-client==8.6.3
@@ -579,7 +623,7 @@ jupyterhub==5.2.1
     # via
     #   -r /opt/common-env/common.pip
     #   -r /opt/common-env/jupyter.pip
-jupyterlab==4.3.5
+jupyterlab==4.3.6
     # via
     #   -r /opt/common-env/jupyter.pip
     #   notebook
@@ -599,19 +643,30 @@ jupyterlab-widgets==3.0.13
     #   ipywidgets
     #   jupyter-rfb
 keyring==25.6.0
-    # via astroquery
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   astroquery
 kiwisolver==1.4.8
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   matplotlib
     #   vispy
 lazy-loader==0.4
-    # via scikit-image
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   scikit-image
 locket==1.0.0
     # via partd
 lsstdesc-coord==1.3.0
     # via galsim
 lxml==5.3.1
-    # via pysiaf
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   pysiaf
+lz4==4.4.3
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   roman-datamodels
 mako==1.3.9
     # via alembic
 markdown==3.7
@@ -619,13 +674,15 @@ markdown==3.7
     #   pymdown-extensions
     #   solara-ui
 markdown-it-py==3.0.0
-    # via rich
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   rich
 markupsafe==3.0.2
     # via
     #   jinja2
     #   mako
     #   nbconvert
-matplotlib==3.10.1
+matplotlib==3.10.0
     # via
     #   -r /opt/common-env/docs.pip
     #   -r /opt/environments/roman-cal/roman-cal.pip
@@ -638,7 +695,8 @@ matplotlib==3.10.1
     #   poppy
     #   pysiaf
     #   soc-roman-tools
-    #   webbpsf
+    #   stpreview
+    #   stpsf
 matplotlib-inline==0.1.7
     # via
     #   ipykernel
@@ -646,13 +704,16 @@ matplotlib-inline==0.1.7
 mccabe==0.7.0
     # via flake8
 mdurl==0.1.2
-    # via markdown-it-py
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   markdown-it-py
 mistune==3.1.2
     # via nbconvert
 montage-wrapper==0.9.9
     # via stips
 more-itertools==10.6.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jaraco-classes
     #   jaraco-functools
 mpl-scatter-density==0.8
@@ -664,6 +725,8 @@ multidict==6.1.0
     #   yarl
 mypy-extensions==1.0.0
     # via black
+narwhals==1.30.0
+    # via bokeh
 nbclassic==1.2.0
     # via jdaviz
 nbclient==0.10.2
@@ -684,7 +747,7 @@ nbformat==5.10.4
     #   solara-server
 nbgitpuller==1.2.2
     # via -r /opt/common-env/common.pip
-nbsphinx==0.9.6
+nbsphinx==0.9.7
     # via -r /opt/common-env/docs.pip
 ndcube==2.3.1
     # via specutils
@@ -693,8 +756,10 @@ nest-asyncio==1.6.0
     #   ipykernel
     #   nbclassic
 networkx==3.4.2
-    # via scikit-image
-notebook==7.3.2
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   scikit-image
+notebook==7.3.3
     # via
     #   -r /opt/common-env/jupyter.pip
     #   glue-jupyter
@@ -704,7 +769,9 @@ notebook-shim==0.2.4
     #   nbclassic
     #   notebook
 numexpr==2.10.2
-    # via poppy
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   poppy
 numpy==2.2.3
     # via
     #   -r /opt/common-env/common.pip
@@ -761,6 +828,8 @@ numpy==2.2.3
     #   stcal
     #   stdatamodels
     #   stips
+    #   stpreview
+    #   stpsf
     #   stsci-imagestats
     #   stsci-stimage
     #   stsynphot
@@ -768,22 +837,25 @@ numpy==2.2.3
     #   tifffile
     #   tweakwcs
     #   vispy
-    #   webbpsf
     #   xarray
 numpydoc==1.8.0
     # via sphinx-astropy
 oauthlib==3.2.2
     # via jupyterhub
 opencv-python-headless==4.11.0.86
-    # via stcal
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   stcal
 openpyxl==3.1.5
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   glue-core
     #   pysiaf
 overrides==7.7.0
     # via jupyter-server
 packaging==24.2
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   asdf
     #   asdf-astropy
     #   astropy
@@ -834,7 +906,9 @@ papermill==2.6.0
     #   -r /opt/common-env/common.pip
     #   -r /opt/common-env/required.pip
 parsley==1.3
-    # via crds
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   crds
 parso==0.8.4
     # via jedi
 partd==1.4.2
@@ -850,9 +924,10 @@ photutils==2.2.0
     #   pandeia-engine
     #   romancal
     #   stips
-    #   webbpsf
+    #   stpsf
 pillow==11.1.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   astrocut
     #   bokeh
     #   bqplot-image-gl
@@ -866,7 +941,7 @@ pillow==11.1.0
     #   sphinx-gallery
 pip-tools==7.4.1
     # via -r /opt/common-env/common.pip
-pipdeptree==2.25.0
+pipdeptree==2.25.1
     # via -r /opt/common-env/common.pip
 platformdirs==4.3.6
     # via
@@ -879,7 +954,9 @@ playwright==1.50.0
 pluggy==1.5.0
     # via pytest
 poppy==1.1.2
-    # via webbpsf
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   stpsf
 prometheus-client==0.21.1
     # via
     #   jupyter-resource-usage
@@ -907,7 +984,9 @@ pybind11==2.13.6
 pycodestyle==2.12.1
     # via flake8
 pycparser==2.22
-    # via cffi
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   cffi
 pydantic==2.10.6
     # via jupyterhub
 pydantic-core==2.27.2
@@ -919,11 +998,14 @@ pyds9==1.8.1
 pyee==12.1.1
     # via playwright
 pyerfa==2.0.1.5
-    # via astropy
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   astropy
 pyflakes==3.2.0
     # via flake8
 pygments==2.19.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   ipython
     #   ipython-pygments-lexers
     #   nbconvert
@@ -936,6 +1018,7 @@ pyopengl==3.1.9
     # via glue-vispy-viewers
 pyparsing==3.2.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   matplotlib
     #   romancal
 pyproject-hooks==1.2.0
@@ -946,7 +1029,7 @@ pysiaf==0.24.1
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   soc-roman-tools
-    #   webbpsf
+    #   stpsf
 pytest==8.3.5
     # via
     #   -r /opt/common-env/testing.pip
@@ -961,6 +1044,7 @@ pytest-openfiles==0.6.0
     # via -r /opt/common-env/testing.pip
 python-dateutil==2.9.0.post0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   aiobotocore
     #   arrow
     #   botocore
@@ -968,16 +1052,19 @@ python-dateutil==2.9.0.post0
     #   jupyterhub
     #   matplotlib
     #   pandas
-python-json-logger==3.2.1
+python-json-logger==3.3.0
     # via jupyter-events
 pythreejs==2.4.2
     # via ipyvolume
 pytz==2025.1
     # via pandas
 pyvo==1.6.1
-    # via astroquery
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   astroquery
 pyyaml==6.0.2
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   asdf
     #   astropy
     #   bokeh
@@ -988,13 +1075,13 @@ pyyaml==6.0.2
     #   pymdown-extensions
     #   stips
     #   stpipe
-pyzmq==26.2.1
+pyzmq==26.3.0
     # via
     #   ipykernel
     #   jupyter-client
     #   jupyter-resource-usage
     #   jupyter-server
-rad==0.22.0
+rad==0.23.1
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   roman-datamodels
@@ -1007,6 +1094,7 @@ readchar==4.2.1
     # via ci-watson
 referencing==0.36.2
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jsonschema
     #   jsonschema-specifications
     #   jupyter-events
@@ -1016,6 +1104,7 @@ regions==0.10
     #   jdaviz
 requests==2.32.3
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   astrocut
     #   astroquery
     #   ci-watson
@@ -1043,27 +1132,29 @@ rfc3986-validator==0.1.1
     #   jsonschema
     #   jupyter-events
 rich==13.9.4
-    # via rich-click
-rich-click==1.8.6
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   rich-click
+    #   typer
+rich-click==1.8.8
     # via solara-server
-roman-datamodels==0.22.0
+roman-datamodels==0.23.1
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   astrocut
     #   romancal
     #   romanisim
     #   soc-roman-tools
-roman-numerals-py==3.1.0
-    # via sphinx
-romancal==0.17.0
+romancal==0.18.0
     # via -r /opt/environments/roman-cal/roman-cal.pip
 romanisim==0.7.0
     # via -r /opt/environments/roman-cal/roman-cal.pip
-rpds-py==0.23.1
+rpds-py==0.22.3
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   jsonschema
     #   referencing
-s3fs==2025.2.0
+s3fs==2025.3.0
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   astrocut
@@ -1073,9 +1164,11 @@ s3transfer==0.11.3
     # via boto3
 scikit-image==0.25.2
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   glue-jupyter
     #   jdaviz
     #   stcal
+    #   stpreview
 scipy==1.15.2
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
@@ -1097,17 +1190,25 @@ scipy==1.15.2
     #   specutils
     #   stcal
     #   stips
+    #   stpsf
     #   stsynphot
     #   synphot
-    #   webbpsf
 secretstorage==3.3.3
-    # via keyring
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   keyring
 semantic-version==2.10.0
-    # via asdf
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   asdf
 send2trash==1.8.3
     # via jupyter-server
 shapely==2.0.7
     # via glue-core
+shellingham==1.5.4
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   typer
 sidecar==0.7.0
     # via
     #   -r /opt/common-env/jupyter.pip
@@ -1116,6 +1217,7 @@ simpervisor==1.0.0
     # via jupyter-server-proxy
 six==1.17.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   html5lib
     #   pyds9
     #   python-dateutil
@@ -1142,8 +1244,10 @@ solara-ui[all]==1.44.1
     #   solara
     #   solara-server
 soupsieve==2.6
-    # via beautifulsoup4
-specreduce==1.4.1
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   beautifulsoup4
+specreduce==1.5.1
     # via
     #   glue-astronomy
     #   jdaviz
@@ -1156,10 +1260,11 @@ specutils==1.19.0
     #   specreduce
 spherical-geometry==1.3.3
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   astrocut
     #   romancal
     #   tweakwcs
-sphinx==8.2.1
+sphinx==8.1.3
     # via
     #   -r /opt/common-env/docs.pip
     #   nbsphinx
@@ -1198,32 +1303,45 @@ sphinxcontrib-qthelp==2.0.0
     # via sphinx
 sphinxcontrib-serializinghtml==2.0.0
     # via sphinx
-sqlalchemy==2.0.38
+sqlalchemy==2.0.39
     # via
     #   alembic
     #   jupyterhub
 stack-data==0.6.3
     # via ipython
-starlette==0.46.0
+starlette==0.46.1
     # via solara-server
-stcal==1.10.0
-    # via romancal
-stdatamodels==2.2.0
+stcal==1.11.1
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   romancal
+stdatamodels==3.0.0
     # via jdaviz
 stdlib-list==0.11.1
     # via pydeps
 stips==2.2.2
     # via -r /opt/environments/roman-cal/roman-cal.pip
-stpipe==0.7.0
-    # via romancal
+stpipe==0.8.0
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   romancal
+stpreview==0.5.1
+    # via -r /opt/environments/roman-cal/roman-cal.pip
+stpsf==2.0.0
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   webbpsf
 stsci-imagestats==1.8.3
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   romancal
     #   tweakwcs
 stsci-rtd-theme==1.0.1
     # via -r /opt/common-env/docs.pip
 stsci-stimage==0.2.10
-    # via tweakwcs
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   tweakwcs
 stsynphot==1.4.0
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
@@ -1234,8 +1352,8 @@ synphot==1.5.0
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   pandeia-engine
     #   stips
+    #   stpsf
     #   stsynphot
-    #   webbpsf
 tabulate==0.9.0
     # via numpydoc
 tenacity==9.0.0
@@ -1245,7 +1363,9 @@ terminado==0.18.1
     #   jupyter-server
     #   jupyter-server-terminals
 tifffile==2025.2.18
-    # via scikit-image
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   scikit-image
 tinycss2==1.4.0
     # via bleach
 tomlkit==0.13.2
@@ -1301,18 +1421,23 @@ traittypes==0.2.1
     #   ipyvolume
 tweakwcs==0.8.9
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   romancal
     #   stcal
+typer==0.15.1
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   stpreview
 types-python-dateutil==2.9.0.20241206
     # via arrow
 typing-extensions==4.12.2
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   aiosqlite
     #   alembic
     #   anyio
     #   beautifulsoup4
     #   bqplot-image-gl
-    #   ipython
     #   pydantic
     #   pydantic-core
     #   pyee
@@ -1320,12 +1445,14 @@ typing-extensions==4.12.2
     #   referencing
     #   rich-click
     #   sqlalchemy
+    #   typer
 tzdata==2025.1
     # via pandas
 uri-template==1.3.0
     # via jsonschema
 urllib3==2.3.0
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   botocore
     #   requests
 uvicorn==0.34.0
@@ -1340,7 +1467,7 @@ watchfiles==1.0.4
     # via solara-server
 wcwidth==0.2.13
     # via prompt-toolkit
-webbpsf==1.5.0
+webbpsf==2.0.0
     # via
     #   -r /opt/environments/roman-cal/roman-cal.pip
     #   romancal
@@ -1350,12 +1477,13 @@ webcolors==24.11.1
     # via jsonschema
 webencodings==0.5.1
     # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
     #   bleach
     #   html5lib
     #   tinycss2
 websocket-client==1.8.0
     # via jupyter-server
-websockets==15.0
+websockets==15.0.1
     # via solara-server
 wheel==0.45.1
     # via
@@ -1384,7 +1512,9 @@ yarl==1.18.3
 ypy-websocket==0.12.4
     # via -r /opt/common-env/jupyter.pip
 zipp==3.21.0
-    # via importlib-metadata
+    # via
+    #   -r /opt/environments/roman-cal/roman-cal.pip
+    #   importlib-metadata
 
 # The following packages are considered to be unsafe in a requirements file:
 # pip
diff --git a/deployments/roman/env-frozen/roman-cal/requirements.yml b/deployments/roman/env-frozen/roman-cal/requirements.yml
index 8b98c95..42b9e78 100644
--- a/deployments/roman/env-frozen/roman-cal/requirements.yml
+++ b/deployments/roman/env-frozen/roman-cal/requirements.yml
@@ -38,7 +38,7 @@ dependencies:
   - libxcrypt=4.4.36
   - libzlib=1.3.1
   - ncurses=6.5
-  - nodejs=22.12.0
+  - nodejs=22.13.0
   - nomkl=1.0
   - openblas=0.3.29
   - openssl=3.4.1
@@ -46,10 +46,10 @@ dependencies:
   - pip=25.0.1
   - pip-tools=7.4.1
   - pyproject_hooks=1.2.0
-  - python=3.11.11
+  - python=3.12.9
   - python-build=1.2.2.post1
   - readline=8.2
-  - setuptools=75.8.2
+  - setuptools=75.8.0
   - sqlite=3.49.1
   - tk=8.6.13
   - tomli=2.2.1
diff --git a/deployments/roman/environments/roman-cal/roman-cal.pip b/deployments/roman/environments/roman-cal/roman-cal.pip
index 7a5a9a8..a85f679 100644
--- a/deployments/roman/environments/roman-cal/roman-cal.pip
+++ b/deployments/roman/environments/roman-cal/roman-cal.pip
@@ -1,30 +1,108 @@
-stips==2.2.2
-webbpsf==1.5.0
-synphot==1.5.0
-stsynphot==1.4.0
-jdaviz
-romanisim==0.7.0
-romancal==0.17.0
-roman_datamodels==0.22.0
-rad==0.22.0
-gwcs==0.21.0
-asdf==3.5.0
-numpy>=2.2.0
-matplotlib >=3.10.0
-galsim==2.6.3
-astropy>=7.0.0
-pandeia.engine==2024.12
+asdf-astropy==0.7.1
+asdf-coordinates-schemas==0.3.0
+asdf-standard==1.1.1
+asdf-transform-schemas==0.5.0
+asdf-wcs-schemas==0.4.0
+asdf==4.1.0
+astrocut>=0.11.1
+astropy-iers-data==0.2025.2.17.0.34.13
+astropy==7.0.1
+astroquery==0.4.9.post1
+attrs==25.1.0
+beautifulsoup4==4.13.3
 bokeh>=3.6.2
-scipy>=1.14.1
-astroquery>=0.4.7
-pandas>=2.2.3
-photutils>=2.0.2
-s3fs>=2024.10.0
-xarray>=2024.11.0
-esutil>=0.6.16
 boto3
-astrocut>=0.11.1
-pysiaf>=0.24.1
+certifi==2025.1.31
+cffi==1.17.1
+charset-normalizer==3.4.1
+click==8.1.8
+contourpy==1.3.1
+crds==12.0.9
+cryptography==44.0.1
+cycler==0.12.1
+drizzle==2.0.1
+esutil>=0.6.16
+et-xmlfile==2.0.0
+filelock==3.17.0
+fonttools==4.56.0
+galsim==2.6.3
+gwcs==0.24.0
+html5lib==1.1
+idna==3.10
+imageio==2.37.0
+importlib-metadata==8.6.1
 ipypopout==2.0.0
+jaraco-classes==3.4.0
+jaraco-context==6.0.1
+jaraco-functools==4.1.0
+jdaviz
+jeepney==0.8.0
+jmespath==1.0.1
+jsonschema-specifications==2024.10.1
+jsonschema==4.23.0
+keyring==25.6.0
+kiwisolver==1.4.8
+lazy-loader==0.4
+lxml==5.3.1
+lz4==4.4.3
+markdown-it-py==3.0.0
+matplotlib==3.10.0
+mdurl==0.1.2
+more-itertools==10.6.0
+networkx==3.4.2
+numexpr==2.10.2
+numpy==2.2.3
+opencv-python-headless==4.11.0.86
+openpyxl==3.1.5
+packaging==24.2
+pandas>=2.2.3
+pandeia.engine==2024.12
+parsley==1.3
+photutils==2.2.0
+pillow==11.1.0
+playwright
+poppy==1.1.2
+pycparser==2.22
+pyerfa==2.0.1.5
+pygments==2.19.1
+pyparsing==3.2.1
+pysiaf==0.24.1
+python-dateutil==2.9.0.post0
+pyvo==1.6.1
+pyyaml==6.0.2
+rad==0.23.1
+referencing==0.36.2
+requests==2.32.3
+rich==13.9.4
+roman-datamodels==0.23.1
+romancal==0.18.0
+romanisim==0.7.0
+rpds-py==0.22.3
+s3fs>=2024.10.0
+scikit-image==0.25.2
+scipy==1.15.2
+secretstorage==3.3.3
+semantic-version==2.10.0
+shellingham==1.5.4
+six==1.17.0
 solara
-playwright
\ No newline at end of file
+soupsieve==2.6
+spherical-geometry==1.3.3
+stcal==1.11.1
+stips==2.2.2
+stpipe==0.8.0
+stpreview==0.5.1
+stpsf==2.0.0
+stsci-imagestats==1.8.3
+stsci-stimage==0.2.10
+stsynphot==1.4.0
+synphot==1.5.0
+tifffile==2025.2.18
+tweakwcs==0.8.9
+typer==0.15.1
+typing-extensions==4.12.2
+urllib3==2.3.0
+webbpsf==2.0.0
+webencodings==0.5.1
+xarray>=2024.11.0
+zipp==3.21.0
diff --git a/deployments/roman/environments/roman-cal/roman-cal.yml b/deployments/roman/environments/roman-cal/roman-cal.yml
index 665d10d..b8dfae7 100644
--- a/deployments/roman/environments/roman-cal/roman-cal.yml
+++ b/deployments/roman/environments/roman-cal/roman-cal.yml
@@ -3,19 +3,37 @@ name: roman-cal
 channels:
     - conda-forge
 dependencies:
-    - freetds
+    - _libgcc_mutex=0.1=conda_forge
+    - _openmp_mutex=4.5=2_gnu
+    - bzip2=1.0.8=h4bc722e_7
+    - ca-certificates=2025.1.31=hbcca054_0
     - fftw
+    - freetds
+    - krb5
+    - ld_impl_linux-64=2.43=h712a8e2_2
+    - libedit
+    - libexpat=2.6.4=h5888daf_0
+    - libffi=3.4.6=h2dba641_0
+    - libgcc-ng=14.2.0=h69a702a_1
+    - libgcc=14.2.0=h77fa898_1
+    - libgomp=14.2.0=h77fa898_1
+    - liblzma=5.6.4=hb9d3cd8_0
+    - libnsl=2.0.1=hd590300_0
+    - libsqlite=3.49.1=hee588c1_1
+    - libuuid=2.38.1=h0b41bf4_0
+    - libxcrypt=4.4.36=hd590300_1
+    - libzlib=1.3.1=hb9d3cd8_2
+    - ncurses=6.5=h2d0b736_3
     - nomkl
     - openblas
-    - python~=3.11.0
-    - wheel
-    - freetds
+    - openssl=3.4.1=h7b32b05_0
+    - pip=25.0.1=pyh8b19718_0
+    - python=3.12.9=h9e4cc4f_0_cpython
+    - readline=8.2=h8228510_1
+    - setuptools=75.8.0=pyhff2d567_0
     - sqlite
+    - tk=8.6.13=noxft_h4845f30_101
+    - tzdata=2025a=h78e105d_0
     - unixodbc
-    - krb5
-    - tk
+    - wheel=0.45.1=pyhd8ed1ab_1
     - zlib
-    - readline
-    - libedit
-    - bzip2
-    - pip