coffea-casa 2024.8.7__tar.gz → 2025.9.24.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. coffea_casa-2025.9.24.2/.github/workflows/autotag.yaml +57 -0
  2. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.github/workflows/dockercd-dev.yml +12 -13
  3. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.github/workflows/dockerci-dev.yml +1 -1
  4. coffea_casa-2025.9.24.2/.github/workflows/pypi-tag-deploy.yml +34 -0
  5. coffea_casa-2025.9.24.2/.github/workflows/update_docker.yml +64 -0
  6. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/PKG-INFO +2 -2
  7. coffea_casa-2025.9.24.2/coffea_casa/_version.py +34 -0
  8. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/coffea_casa/coffea_casa.py +67 -16
  9. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/Dockerfile.cc-analysis-alma9 +47 -33
  10. coffea_casa-2024.8.7/docker/Dockerfile.cc-analysis-alma8 → coffea_casa-2025.9.24.2/docker/Dockerfile.cc-analysis-combine-alma9 +55 -37
  11. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/Dockerfile.cc-dask-alma9 +53 -47
  12. coffea_casa-2024.8.7/docker/Dockerfile.cc-dask-alma8 → coffea_casa-2025.9.24.2/docker/Dockerfile.cc-dask-combine-alma9 +65 -52
  13. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/README.md +10 -69
  14. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/distributed/0001-Patch-from-bbockelman-adaptive-scaling.patch +6 -16
  15. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/labextension.yaml +2 -2
  16. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/prepare-env/prepare-env-cc-analysis.sh +5 -16
  17. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/prepare-env/prepare-env-cc.sh +6 -0
  18. coffea_casa-2025.9.24.2/scripts-extra/submit_vine_workers_to_condor +53 -0
  19. coffea_casa-2024.8.7/.github/workflows/pypi-tag-deploy.yml +0 -44
  20. coffea_casa-2024.8.7/coffea_casa/_version.py +0 -16
  21. coffea_casa-2024.8.7/docker/Dockerfile.cc-analysis-centos7 +0 -205
  22. coffea_casa-2024.8.7/docker/Dockerfile.cc-analysis-ubuntu +0 -205
  23. coffea_casa-2024.8.7/docker/Dockerfile.cc-base-alma8 +0 -327
  24. coffea_casa-2024.8.7/docker/Dockerfile.cc-base-centos7 +0 -324
  25. coffea_casa-2024.8.7/docker/Dockerfile.cc-base-ubuntu +0 -346
  26. coffea_casa-2024.8.7/docker/ceph/ceph.conf +0 -26
  27. coffea_casa-2024.8.7/docker/ceph/keyring +0 -6
  28. coffea_casa-2024.8.7/docker/skyhook/.coffea.toml +0 -3
  29. coffea_casa-2024.8.7/docker/skyhook/build-skyhook.sh +0 -47
  30. coffea_casa-2024.8.7/docker/uproot/uproot_xrd_source.patch +0 -11
  31. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.gitattributes +0 -0
  32. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.github/dependabot.yml +0 -0
  33. /coffea_casa-2024.8.7/.github/workflows/charts-lint.yml → /coffea_casa-2025.9.24.2/.github/workflows/charts-lint.yml_ +0 -0
  34. /coffea_casa-2024.8.7/.github/workflows/charts-publish.yml → /coffea_casa-2025.9.24.2/.github/workflows/charts-publish.yml_ +0 -0
  35. /coffea_casa-2024.8.7/.github/workflows/charts-test.yaml_k3d → /coffea_casa-2025.9.24.2/.github/workflows/charts-test-k3d.yaml_ +0 -0
  36. /coffea_casa-2024.8.7/.github/workflows/charts-test-minikube.yaml → /coffea_casa-2025.9.24.2/.github/workflows/charts-test-minikube.yaml_ +0 -0
  37. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.github/workflows/pypi-ci.yml +0 -0
  38. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.gitignore +0 -0
  39. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.gitmodules +0 -0
  40. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.pre-commit-config.yaml +0 -0
  41. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/.readthedocs.yml +0 -0
  42. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/LICENSE +0 -0
  43. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/MAINTAINERS +0 -0
  44. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/MANIFEST.in +0 -0
  45. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/README.md +0 -0
  46. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/chartpress.yaml +0 -0
  47. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/.helmignore +0 -0
  48. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/Chart.yaml +0 -0
  49. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/README.md +0 -0
  50. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/ingressroute.yaml +0 -0
  51. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/ingressroutetcp.yaml +0 -0
  52. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/ingressrouteudp.yaml +0 -0
  53. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/middlewares.yaml +0 -0
  54. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/middlewarestcp.yaml +0 -0
  55. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/serverstransports.yaml +0 -0
  56. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/tlsoptions.yaml +0 -0
  57. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/tlsstores.yaml +0 -0
  58. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/crds/traefikservices.yaml +0 -0
  59. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/docs/DEVNOTES.md +0 -0
  60. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/files/hub-extra/auth.py +0 -0
  61. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/files/hub-extra/oauthenticator-coffea.py +0 -0
  62. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/files/hub-extra/oauthenticator-generic.py +0 -0
  63. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/files/hub-extra/oauthenticator-oauth2-14.2.0.py +0 -0
  64. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/files/hub-extra/secret_creation_hook.py +0 -0
  65. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/pebble-config.yaml +0 -0
  66. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/schema.yaml +0 -0
  67. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/NOTES.txt +0 -0
  68. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/_helpers.tpl +0 -0
  69. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/af-secrets.yaml +0 -0
  70. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/hub-extra-config-d.yaml +0 -0
  71. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/hub-extra-rbac.yaml +0 -0
  72. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/traefik/deployment.yaml +0 -0
  73. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/traefik/service.yaml +0 -0
  74. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/traefik/traefik-dashboard.yaml +0 -0
  75. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/templates/traefik/traefik-rbac.yaml +0 -0
  76. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/unl-extra/login.html +0 -0
  77. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/unl-extra/logo.png +0 -0
  78. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/unl-extra/logo.png.bin +0 -0
  79. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/values-prod.yaml +0 -0
  80. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/coffea-casa/values.yaml +0 -0
  81. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/dev-requirements.txt +0 -0
  82. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/charts/requirements.txt +0 -0
  83. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/ci/common +0 -0
  84. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/coffea_casa/__init__.py +0 -0
  85. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/coffea_casa/_version.pyi +0 -0
  86. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/coffea_casa/config.py +0 -0
  87. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/coffea_casa/jobqueue-coffea-casa.yaml +0 -0
  88. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/coffea_casa/plugin.py +0 -0
  89. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/README.IDAP.md +0 -0
  90. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/certs/hcc-flatiron.pem +0 -0
  91. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/certs/isrgrootx1.pem +0 -0
  92. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/certs/lets-encrypt-r3.pem +0 -0
  93. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/certs/lets-encrypt-r4.pem +0 -0
  94. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/condor/condor_config +0 -0
  95. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/condor/config.d/99-coffea-condor-master-config +0 -0
  96. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/dask.yaml +0 -0
  97. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/dask_tls.yaml +0 -0
  98. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/distributed/0002-Allow-scheduler-to-preserve-worker-hostnames.patch +0 -0
  99. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/distributed/0003-Activate-patch.patch +0 -0
  100. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/distributed/0004-Add-possibility-to-setup-external_adress-for-schedul.patch +0 -0
  101. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/distributed/0005-Add-nanny-patch.patch +0 -0
  102. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/dask/jobqueue-coffea-casa.yaml +0 -0
  103. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/jupyterhub/fix-permissions +0 -0
  104. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/jupyterhub/jupyter_notebook_config.py +0 -0
  105. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/jupyterhub/jupyterlab-workspace.json +0 -0
  106. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/jupyterhub/start-notebook.sh +0 -0
  107. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/jupyterhub/start-singleuser.sh +0 -0
  108. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/jupyterhub/start.sh +0 -0
  109. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docker/k8s-worker/supervisord.conf +0 -0
  110. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/Makefile +0 -0
  111. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/atlas-auth.web.cern.ch_login.png +0 -0
  112. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/browser.png +0 -0
  113. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-cilogon.png +0 -0
  114. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-email.png +0 -0
  115. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-enter.png +0 -0
  116. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-invitation.png +0 -0
  117. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-login.png +0 -0
  118. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-reg1.png +0 -0
  119. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-reg2.png +0 -0
  120. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/cc-request.png +0 -0
  121. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-authz-approval.png +0 -0
  122. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-authz.png +0 -0
  123. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-connection_success.png +0 -0
  124. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-dashboard.png +0 -0
  125. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-dashboard_taskstream.png +0 -0
  126. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-dashboard_workers.png +0 -0
  127. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-draft.png +0 -0
  128. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-enter.png +0 -0
  129. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-image.png +0 -0
  130. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-labext.png +0 -0
  131. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-newlauncher.png +0 -0
  132. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-newtab.png +0 -0
  133. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-performance_report.png +0 -0
  134. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-pytest.png +0 -0
  135. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-resources.png +0 -0
  136. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-server_stop.png +0 -0
  137. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-start.png +0 -0
  138. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-startr.png +0 -0
  139. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea-casa-tutorials.png +0 -0
  140. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea.af.uchicago.edu_hub_login.png +0 -0
  141. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea.af.uchicago.edu_hub_spawn.png +0 -0
  142. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea.af.uchicago.edu_user_clusters.png +0 -0
  143. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea.af.uchicago.edu_user_clusters.scale.png +0 -0
  144. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/coffea.af.uchicago.edu_user_fengping.hu.png +0 -0
  145. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/dask-labextention-address.png +0 -0
  146. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/example1-plot.png +0 -0
  147. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/examplezpeak-plot.png +0 -0
  148. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/git.png +0 -0
  149. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/git2.png +0 -0
  150. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/servicex-coffea-workflow.png +0 -0
  151. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/servicex-dashboard.png +0 -0
  152. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/servicex-profile.png +0 -0
  153. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/_static/servicex-registration.png +0 -0
  154. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_api.rst +0 -0
  155. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_condor.rst +0 -0
  156. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_configuration.rst +0 -0
  157. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_deployment.rst +0 -0
  158. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_issues.rst +0 -0
  159. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_metrics.rst +0 -0
  160. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_packages.rst +0 -0
  161. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_setup.rst +0 -0
  162. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_support.rst +0 -0
  163. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_user.rst +0 -0
  164. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/cc_user_registration.rst +0 -0
  165. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/conf.py +0 -0
  166. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/agc_schema.py +0 -0
  167. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/analysis-casa.ipynb +0 -0
  168. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/analysis_tutorial.ipynb +0 -0
  169. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/coffea-casa-template.ipynb +0 -0
  170. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/coffea_analysis.ipynb +0 -0
  171. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example1.ipynb +0 -0
  172. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example2.ipynb +0 -0
  173. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example3.ipynb +0 -0
  174. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example4.ipynb +0 -0
  175. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example5.ipynb +0 -0
  176. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example6.ipynb +0 -0
  177. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example7.ipynb +0 -0
  178. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/example8.ipynb +0 -0
  179. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/ttbar_HT.ipynb +0 -0
  180. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/utilities/columnar.png +0 -0
  181. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/utilities/processor.png +0 -0
  182. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/gallery/zpeak_example.ipynb +0 -0
  183. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/index.rst +0 -0
  184. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs/make.bat +0 -0
  185. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_B&W_500X500.png +0 -0
  186. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_IconOnlyI_B&W_500X500.png +0 -0
  187. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_InverseB&W_500X500.png +0 -0
  188. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_1080X1080_TransparentBG.png +0 -0
  189. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_TransparentBG.png +0 -0
  190. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_WhiteBG.png +0 -0
  191. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_IconOnly_Brown_500X500_TransparentBG.png +0 -0
  192. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_TextOnly_1080X182_Brown.png +0 -0
  193. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_IconOnly_Purple_500X500_TransparentBG.png +0 -0
  194. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_1080X1080_TransparentBG.png +0 -0
  195. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_TransparentBG.png +0 -0
  196. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_WhiteBG.png +0 -0
  197. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_TextOnly_1080X182_Purple.png +0 -0
  198. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/pyproject.toml +0 -0
  199. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/requirements.txt +0 -0
  200. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests/ca.pem +0 -0
  201. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests/key.pem +0 -0
  202. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests/test_coffeacasa.py +0 -0
  203. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests/test_coffeacasa_args.py +0 -0
  204. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests/test_config.py +0 -0
  205. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests-charts/conftest.py +0 -0
  206. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tests-charts/test_hub.py +0 -0
  207. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tools/generate-json-schema.py +0 -0
  208. {coffea_casa-2024.8.7 → coffea_casa-2025.9.24.2}/tools/values.lint-validate.yaml +0 -0
@@ -0,0 +1,57 @@
1
+ name: Auto CalVer Tag on Master Push
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ calver-tag:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set CalVer date
17
+ id: calver
18
+ run: |
19
+ # Get current date in YYYY.MM.DD format
20
+ date_tag=$(date +'%Y.%m.%d')
21
+ echo "base_tag=$date_tag" >> $GITHUB_OUTPUT
22
+
23
+ - name: Fetch all tags
24
+ run: |
25
+ git fetch --tags
26
+
27
+ - name: Determine next CalVer tag
28
+ id: next_tag
29
+ run: |
30
+ base=${{ steps.calver.outputs.base_tag }}
31
+ # List all existing tags that match today's date
32
+ existing=$(git tag --list "${base}*")
33
+
34
+ if ! echo "$existing" | grep -q "^$base$"; then
35
+ # No base tag exists yet, use the base tag (no suffix)
36
+ new_tag="$base"
37
+ else
38
+ # Base tag exists, find the highest numbered suffix
39
+ max=1 # because base tag is already used
40
+ for tag in $existing; do
41
+ suffix=$(echo $tag | sed -n "s/^$base\.//p")
42
+ if [[ "$suffix" =~ ^[0-9]+$ && "$suffix" -gt "$max" ]]; then
43
+ max=$suffix
44
+ fi
45
+ done
46
+ new_tag="$base.$((max + 1))"
47
+ fi
48
+
49
+ echo "New tag: $new_tag"
50
+ echo "new_tag=$new_tag" >> $GITHUB_OUTPUT
51
+
52
+ - name: Create and push new tag
53
+ run: |
54
+ git config user.name "github-actions"
55
+ git config user.email "github-actions@github.com"
56
+ git tag ${{ steps.next_tag.outputs.new_tag }}
57
+ git push origin ${{ steps.next_tag.outputs.new_tag }}
@@ -1,9 +1,10 @@
1
1
  name: Push tag of docker images
2
2
 
3
3
  on:
4
+ release:
5
+ types:
6
+ - published
4
7
  push:
5
- tags:
6
- - "*"
7
8
  paths:
8
9
  - docker/**
9
10
  branches:
@@ -20,24 +21,22 @@ jobs:
20
21
  strategy:
21
22
  fail-fast: false
22
23
  matrix:
23
- image: [cc-base-ubuntu, cc-analysis-ubuntu, cc-dask-alma8, cc-analysis-alma8, cc-dask-alma9, cc-analysis-alma9]
24
- # Keep this line in sync with gh actions @ coffea-dask repo
25
- # python: [3.8, 3.9, '3.10']
26
- #exclude:
27
- # - image: cc7
28
- # python: 3.8
24
+ image: [cc-dask-alma9, cc-analysis-alma9, cc-dask-combine-alma9, cc-analysis-combine-alma9]
29
25
  name: ${{ matrix.image }}
30
26
  runs-on: ubuntu-latest
31
27
  steps:
28
+
29
+ - name: Identify event type
30
+ run: |
31
+ echo "Triggered by: ${{ github.event_name }}"
32
+
32
33
  - name: Generate tags
33
34
  id: tags
34
35
  env:
35
36
  image: ${{ env.REGISTRY }}/coffea-casa/${{ matrix.image }}
36
- #python: ${{ matrix.python }}
37
- release: ${{ github.ref_name }}
38
- stable: ${{ startsWith(github.ref, 'refs/tags') }}
37
+ release: ${{ github.event.release.tag_name }}
39
38
  run: |
40
- if [ "$stable" == "true" ]; then
39
+ if [ "${{ github.event_name }}" == 'release']; then
41
40
  tag="${image}:${release}"
42
41
  tags=$tag
43
42
  releasetag=${release}
@@ -72,9 +71,9 @@ jobs:
72
71
  with:
73
72
  context: docker/
74
73
  file: docker/Dockerfile.${{ matrix.image }}
75
- push: ${{ github.event_name == 'push' }}
76
74
  platforms: linux/amd64
77
75
  tags: ${{ steps.tags.outputs.tags }}
76
+ push: true
78
77
  build-args: |
79
78
  TAG=${{ steps.tags.outputs.releasetag }}
80
79
  PROJECT=${{ env.PROJECT }}
@@ -18,7 +18,7 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- image: [cc-base-ubuntu, cc-analysis-ubuntu, cc-dask-alma8, cc-analysis-alma8, cc-dask-alma9, cc-analysis-alma9]
21
+ image: [cc-dask-alma9, cc-analysis-alma9, cc-dask-combine-alma9, cc-analysis-combine-alma9]
22
22
  # Keep this line in sync with gh actions @ coffea-dask repo
23
23
  # python: [3.8, 3.9, '3.10']
24
24
  #exclude:
@@ -0,0 +1,34 @@
1
+ name: Deploy to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ release:
6
+ types:
7
+ - published
8
+
9
+ jobs:
10
+ build-and-inspect-package:
11
+ name: Build & inspect package.
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: hynek/build-and-inspect-python-package@v2
16
+
17
+ upload-to-pypi:
18
+ name: Upload package to PyPI
19
+ needs: build-and-inspect-package
20
+ environment:
21
+ name: pypi
22
+ url: https://pypi.org/project/coffea-casa/
23
+ runs-on: ubuntu-latest
24
+ permissions:
25
+ # IMPORTANT: this permission is mandatory for trusted publishing, but
26
+ # should NOT be granted anywhere else!
27
+ id-token: write
28
+ steps:
29
+ - name: Download built artifact to dist/
30
+ uses: actions/download-artifact@v4
31
+ with:
32
+ name: Packages
33
+ path: dist
34
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,64 @@
1
+ name: Auto Update Base Docker Images
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 6 * * *' # Every day at 6am UTC
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ update-base-images:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout repo
13
+ uses: actions/checkout@v3
14
+
15
+ - name: Get latest base image tag from Docker Hub
16
+ id: latest
17
+ run: |
18
+ LATEST_TAG=$(curl -s https://registry.hub.docker.com/v2/repositories/coffeateam/coffea-dask-almalinux9-noml/tags |
19
+ jq -r '.results[].name' |
20
+ grep 'py3.12$' |
21
+ sort -V |
22
+ head -n 1 )
23
+ echo "Found latest tag: $LATEST_TAG"
24
+ echo "latest_tag=$LATEST_TAG" >> $GITHUB_OUTPUT
25
+
26
+ - name: Find and update all Dockerfiles
27
+ id: update
28
+ run: |
29
+ set -e
30
+
31
+ UPDATED=false
32
+ LATEST_TAG=${{ steps.latest.outputs.latest_tag }}
33
+ IMAGE_NAME="coffeateam/coffea-dask-almalinux9-noml"
34
+
35
+ for dockerfile in $(find . -name "Dockerfile*"); do
36
+ echo "Checking $dockerfile..."
37
+
38
+ # Extract current tag
39
+ CURRENT_TAG=$(grep -E "^FROM $IMAGE_NAME:" "$dockerfile" | sed "s|FROM $IMAGE_NAME:||")
40
+
41
+ if [ -n "$CURRENT_TAG" ] && [ "$CURRENT_TAG" != "$LATEST_TAG" ]; then
42
+ echo "Updating $dockerfile: $CURRENT_TAG → $LATEST_TAG"
43
+ sed -i "s|$IMAGE_NAME:$CURRENT_TAG|$IMAGE_NAME:$LATEST_TAG|" "$dockerfile"
44
+ UPDATED=true
45
+ else
46
+ echo "No update needed in $dockerfile"
47
+ fi
48
+ done
49
+
50
+ echo "UPDATED=$UPDATED" >> $GITHUB_ENV
51
+
52
+ - name: Create Pull Request
53
+ if: env.UPDATED == 'true'
54
+ uses: peter-evans/create-pull-request@v5
55
+ with:
56
+ token: ${{ secrets.REPO_ACCESS_TOKEN }}
57
+ commit-message: "chore: update base image to coffeateam/coffea-dask-almalinux9-noml:${{ steps.latest.outputs.latest_tag }}"
58
+ title: "chore: update base image to coffeateam/coffea-dask-almalinux9-noml:${{ steps.latest.outputs.latest_tag }}"
59
+ author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
60
+ branch: "update-coffea-base-image"
61
+ body: |
62
+ A new Coffea image version has been detected.
63
+
64
+ This PR updates all Dockerfiles that use `coffeateam/coffea-dask-almalinux9-noml:<old>` to `coffeateam/coffea-dask-almalinux9-noml:${{ steps.latest.outputs.latest_tag }}`.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: coffea-casa
3
- Version: 2024.8.7
3
+ Version: 2025.9.24.2
4
4
  Summary: Wrappers for Dask clusters to be used from coffea-casa AF
5
5
  Project-URL: Homepage, https://github.com/CoffeaTeam/coffea-casa
6
6
  Project-URL: Documentation, https://coffea-casa.readthedocs.io/en/latest/
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '2025.9.24.2'
32
+ __version_tuple__ = version_tuple = (2025, 9, 24, 2)
33
+
34
+ __commit_id__ = commit_id = None
@@ -1,8 +1,8 @@
1
1
  """CoffeaCasaCluster class
2
2
  """
3
3
  import os
4
- import sys
5
4
  from pathlib import Path
5
+ import sys
6
6
  import dask
7
7
  from dask_jobqueue.htcondor import HTCondorCluster, HTCondorJob
8
8
  from distributed.security import Security
@@ -17,17 +17,11 @@ DEFAULT_NANNY_PORT = 8001
17
17
  # REMOVE ME (backward compatibity for now)
18
18
  SECRETS_DIR = Path("/etc/cmsaf-secrets")
19
19
  SECRETS_DIR_CHOWN = Path("/etc/cmsaf-secrets-chown")
20
- # CEPH (Skyhook)
21
- CEPH_DIR = Path("/opt/ceph")
22
- CEPH_CONF = CEPH_DIR / "ceph.conf"
23
- KEYRING_CONF = CEPH_DIR / "keyring"
24
20
  CA_FILE = SECRETS_DIR / "ca.pem"
25
21
  CERT_FILE = SECRETS_DIR / "hostcert.pem"
26
22
  HOME_DIR = Path.home()
27
23
  # XCache
28
- # REMOVE ME (backward compatibity for now)
29
- XCACHE_FILE = SECRETS_DIR / "xcache_token"
30
- XCACHE_SCITOKEN_FILE = SECRETS_DIR_CHOWN / "access_token"
24
+ #XCACHE_SCITOKEN_FILE = SECRETS_DIR_CHOWN / "access_token"
31
25
  # pip
32
26
  PIP_REQUIREMENTS = HOME_DIR / "requirements.txt"
33
27
  # conda, with yml/yaml both supported
@@ -36,6 +30,56 @@ if (HOME_DIR / "environment.yaml").is_file():
36
30
  else:
37
31
  CONDA_ENV = HOME_DIR / "environment.yml"
38
32
 
33
+ import os
34
+ from pathlib import Path
35
+
36
+ def bearer_token_path():
37
+ """Return the path to the user's X.509 proxy or None if not found"""
38
+
39
+ def check_token_path(path, suffix=''):
40
+ token_path = f'{path}{suffix}'
41
+ if Path(token_path).is_file():
42
+ return token_path
43
+ return None
44
+
45
+ # 1. Check BEARER_TOKEN_FILE env variable
46
+ try:
47
+ path = check_token_path(os.environ['BEARER_TOKEN_FILE'])
48
+ if path:
49
+ return path
50
+ except KeyError:
51
+ pass
52
+
53
+ # 2. Check XDG_RUNTIME_DIR + /bt_u$UID
54
+ try:
55
+ xdg_runtime_dir = os.environ['XDG_RUNTIME_DIR']
56
+ path = check_token_path(xdg_runtime_dir, suffix=f'/bt_u{os.geteuid()}')
57
+ if path:
58
+ return path
59
+ except KeyError:
60
+ pass
61
+
62
+ # 3. Check /tmp/bt_u$UID
63
+ try:
64
+ path = check_token_path(f'/tmp/bt_u{os.geteuid()}')
65
+ if path:
66
+ return path
67
+ except KeyError:
68
+ pass
69
+
70
+ return None
71
+
72
+ def x509_user_proxy_path():
73
+ """Return the path to the user's X.509 proxy or raise FileNotFoundError if it doesn't exist on disk
74
+ """
75
+ try:
76
+ path = os.environ['X509_USER_PROXY']
77
+ except KeyError:
78
+ path = f'/tmp/x509up_u{os.geteuid()}'
79
+
80
+ if open(path):
81
+ return path
82
+ return None # we shouldn't get here; failure to open should raise OSError
39
83
 
40
84
  def merge_dicts(*dict_args):
41
85
  """
@@ -136,23 +180,21 @@ class CoffeaCasaCluster(HTCondorCluster):
136
180
  ):
137
181
  job_config = job_kwargs.copy()
138
182
  input_files = []
139
- if CEPH_CONF.is_file() and KEYRING_CONF.is_file():
140
- input_files += [CEPH_CONF, KEYRING_CONF]
141
183
  if PIP_REQUIREMENTS.is_file():
142
184
  input_files += [PIP_REQUIREMENTS]
143
185
  if CONDA_ENV.is_file():
144
186
  input_files += [CONDA_ENV]
187
+ opendata = os.environ.get('OPENDATA_INSTANCE')
145
188
  # If we have certs in env, lets try to use TLS
146
189
  if (CA_FILE.is_file() and CERT_FILE.is_file() and cls.security().get_connection_args("scheduler")["require_encryption"]):
147
190
  job_config["protocol"] = "tls://"
148
191
  job_config["security"] = cls.security()
149
192
  input_files += [CA_FILE, CERT_FILE]
150
- if (XCACHE_SCITOKEN_FILE.is_file()):
193
+ XCACHE_SCITOKEN_FILE = bearer_token_path()
194
+ if XCACHE_SCITOKEN_FILE:
151
195
  input_files += [XCACHE_SCITOKEN_FILE]
152
- if (XCACHE_FILE.is_file()):
153
- input_files += [XCACHE_FILE]
154
196
  else:
155
- raise KeyError("Please check with system administarator why you do not have a certificate.")
197
+ print("Warning: No bearer token found proceeding without it.")
156
198
  files = ", ".join(str(path) for path in input_files)
157
199
  ## Networking settings
158
200
  try:
@@ -187,6 +229,14 @@ class CoffeaCasaCluster(HTCondorCluster):
187
229
  dask.config.get(f"jobqueue.{cls.config_name}.scheduler-options"),
188
230
  ),
189
231
  )
232
+ # try in case we have x509 proxy
233
+ try:
234
+ proxy = x509_user_proxy_path()
235
+ if proxy:
236
+ use_proxy = True
237
+ except:
238
+ use_proxy = False
239
+ pass
190
240
  ## Job extra settings (HTCondor ClassAd)
191
241
  job_config["job_extra_directives"] = merge_dicts(
192
242
  {
@@ -198,6 +248,7 @@ class CoffeaCasaCluster(HTCondorCluster):
198
248
  "dask_container_port": DEFAULT_CONTAINER_PORT,
199
249
  "nanny_container_port": DEFAULT_NANNY_PORT,
200
250
  },
251
+ {"use_x509userproxy": use_proxy},
201
252
  {"transfer_input_files": files},
202
253
  {"encrypt_input_files": files},
203
254
  {"transfer_output_files": ""},
@@ -205,9 +256,9 @@ class CoffeaCasaCluster(HTCondorCluster):
205
256
  {"should_transfer_files": "YES"},
206
257
  {"Stream_Output": "False"},
207
258
  {"Stream_Error": "False"},
208
- {"+CoffeaCasaWorkerType": "dask"},
259
+ {"+CoffeaCasaWorkerType": '"dask"'},
209
260
  {"+DaskSchedulerAddress": external_ip_string},
210
- {"+AccountingGroup": "cms.other.coffea.$ENV(HOSTNAME)"},
261
+ {"+AccountingGroup": '"cms.other.coffea.$ENV(HOSTNAME)"'},
211
262
  job_kwargs.get(
212
263
  "job_extra_directives", dask.config.get(f"jobqueue.{cls.config_name}.job_extra_directives")
213
264
  ),
@@ -1,5 +1,5 @@
1
1
  #FROM coffeateam/coffea-base-almalinux8:0.7.22-py3.10
2
- FROM coffeateam/coffea-dask-almalinux9:latest-py3.10
2
+ FROM coffeateam/coffea-dask-almalinux9-noml:2025.9.0-py3.12
3
3
 
4
4
 
5
5
  USER root
@@ -9,6 +9,8 @@ ARG TAG="development"
9
9
  ARG NB_USER="cms-jovyan"
10
10
  ARG NB_UID="6440"
11
11
  ARG NB_GID="11265"
12
+ ARG CONDOR_USER="condor"
13
+ ARG CONDOR_GID="989"
12
14
  ARG CERT_DIR="/etc/cmsaf-secrets"
13
15
  # Hack for GH Actions
14
16
  ARG GITHUB_ACTIONS="false"
@@ -38,10 +40,12 @@ ENV LANGUAGE en_US.UTF-8
38
40
 
39
41
  # Install all OS dependencies for notebook server that starts but lacks all
40
42
  # features (e.g., download as all possible file formats)
41
- RUN yum -y update \
43
+ RUN yum install -y https://repo.osg-htc.org/osg/24-main/osg-24-main-el9-release-latest.rpm \
44
+ && yum -y update \
42
45
  && yum -y group install "Development Tools" \
43
46
  && yum -y install \
44
47
  wget \
48
+ osg-ca-certs \
45
49
  epel-release \
46
50
  gettext \
47
51
  bzip2 \
@@ -50,6 +54,7 @@ RUN yum -y update \
50
54
  langpacks-en \
51
55
  glibc-langpack-en \
52
56
  glibc-all-langpacks \
57
+ glibc-headers \
53
58
  liberation-fonts \
54
59
  wget \
55
60
  nss_wrapper \
@@ -78,11 +83,6 @@ RUN chmod +x /usr/bin/tini
78
83
  COPY jupyterhub/fix-permissions /usr/local/bin/fix-permissions
79
84
  RUN chmod a+rx /usr/local/bin/fix-permissions
80
85
 
81
- RUN rm -rf /etc/grid-security && \
82
- ln -s /usr/local/etc/grid-security /etc/grid-security && \
83
- chmod 755 /etc/grid-security/certificates && \
84
- chmod g-w /etc/grid-security/certificates
85
-
86
86
  # Enable prompt color in the skeleton .bashrc before creating the default NB_USER
87
87
  # hadolint ignore=SC2016
88
88
  RUN sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' /etc/skel/.bashrc && \
@@ -113,20 +113,25 @@ RUN mkdir $HOME/work && \
113
113
  mkdir -p $HOME/.condor/tokens.d && \
114
114
  fix-permissions $HOME
115
115
 
116
+ # FIXME:
117
+ # Terrible bug in all .r0 not allowing to use our xcache +
118
+ # + wrongly activated conda base environment in base image
119
+ RUN conda init && \
120
+ source /home/cms-jovyan/.bashrc && \
121
+ mamba uninstall -y ca-policy-lcg
122
+
116
123
  #Dask dependencies and HTCondor
117
124
  RUN mamba install --yes \
118
125
  -c conda-forge \
119
126
  xgboost \
120
- pyhf \
121
- xrootd \
122
- scipy>=1.8.1 \
123
127
  cabinetry \
124
- vector \
125
- hist \
126
- mplhep \
127
- iminuit \
128
+ pyhf \
129
+ atlas-schema \
128
130
  cmake \
129
131
  ndcctools \
132
+ # last working version with x509
133
+ #htcondor=10.8.0 \
134
+ #openssl=3.3.1 \
130
135
  && mamba clean \
131
136
  --all \
132
137
  --force-pkgs-dirs \
@@ -135,15 +140,14 @@ RUN mamba install --yes \
135
140
  RUN pip install --no-cache-dir \
136
141
  aiostream \
137
142
  supervisor \
138
- correctionlib \
139
- funcx \
143
+ #funcx \ outdated dependencies
144
+ pixi-kernel \
145
+ scikit-hep-testdata \
140
146
  pyyaml \
141
- # ML packages
142
- dask-ml \
143
- dask-gateway \
144
147
  prometheus_client \
145
148
  comm>=0.1.2 \
146
- mlflow
149
+ mlflow \
150
+ s3fs
147
151
 
148
152
  #RUN if [ "${TAG:-}" == "development" ]; then pip install --no-cache-dir git+https://github.com/CoffeaTeam/coffea-casa.git#egg=coffea_casa ; else pip install --no-cache-dir coffea_casa -U ; fi
149
153
  RUN pip install --no-cache-dir git+https://github.com/CoffeaTeam/coffea-casa.git#egg=coffea_casa
@@ -154,17 +158,13 @@ RUN cd /tmp && \
154
158
  cd xrdcl-authz-plugin && \
155
159
  mkdir build && \
156
160
  cd build && \
157
- cmake /tmp/xrdcl-authz-plugin -DCMAKE_INSTALL_PREFIX=${CONDA_DIR} && \
161
+ cmake /tmp/xrdcl-authz-plugin -DCMAKE_INSTALL_PREFIX=${CONDA_DIR} -DCMAKE_POLICY_VERSION_MINIMUM=3.5 && \
158
162
  make && \
159
163
  make install
160
164
 
161
165
  ENV XRD_PLUGINCONFDIR="${CONDA_DIR}/etc/xrootd/client.plugins.d/"
162
166
  ENV XRD_PLUGIN="${CONDA_DIR}/lib/libXrdClXcachePlugin-5.so"
163
167
 
164
- # Include additional CA certificates beyond ca-policy-lcg
165
- COPY certs/* /etc/grid-security/certificates/
166
- RUN openssl rehash /etc/grid-security/certificates/
167
-
168
168
  # TODO: RETEST IF WE STILL NEED THIS
169
169
  ENV LD_LIBRARY_PATH="${CONDA_DIR}/lib/:$LD_LIBRARY_PATH"
170
170
  ENV PATH="${CONDA_DIR}/bin/:$PATH"
@@ -172,21 +172,35 @@ ENV PATH="${CONDA_DIR}/bin/:$PATH"
172
172
  USER root
173
173
  # Setup supervisord files
174
174
  COPY k8s-worker/supervisord.conf /etc/supervisor/
175
+
176
+ # Fix permission after all packages installations are done
177
+ RUN fix-permissions "${CONDA_DIR}"
178
+
179
+ # Include additional CA certificates beyond ca-policy-lcg
180
+ COPY certs/* /etc/grid-security/certificates/
181
+ RUN openssl rehash /etc/grid-security/certificates/
182
+
183
+ RUN chmod -R g-w /usr/local/etc/grid-security/ && chmod -R g-w /etc/grid-security/
184
+ #chown -h "${NB_USER}:${NB_GID}" /etc/grid-security && \
185
+ #test -d /usr/local/etc/grid-security && chmod -R 755 /usr/local/etc/grid-security && \
186
+ #find /usr/local/etc/grid-security -type f -exec chmod g-w {} + && \
187
+ #test -d /etc/grid-security && chmod -R 755 /etc/grid-security
175
188
  # Setup HTCondor user/group and change group for user $NB_USER
176
189
  # Fix error (submitting jobs as user/group 0 (root) is not allowed for security reasons) and
177
190
  # it configured from kubernetes side and updated in docker container to match it
178
- RUN groupadd -r condor && \
179
- useradd -r -g condor -d /var/lib/condor -s /sbin/nologin condor
191
+
192
+ RUN groupadd -g 989 condor && \
193
+ useradd -u 989 -g 989 -d /var/lib/condor -s /sbin/nologin condor && \
194
+ mkdir -p /var/lib/condor/spool && \
195
+ #chown -R "${CONDOR_USER}:${CONDOR_GID}" /var/lib/condor && \
196
+ chmod -R 755 /var/lib/condor
180
197
 
181
198
  # FIXME: merge PRs open in distributed.git (oshadura)
182
199
  # Distributed: we need to install patched version of distributed version
183
- COPY dask/distributed ${CONDA_DIR}/lib/python3.10/site-packages/distributed
184
- RUN cd ${CONDA_DIR}/lib/python3.10/site-packages/distributed && \
200
+ COPY dask/distributed ${CONDA_DIR}/lib/python3.12/site-packages/distributed
201
+ RUN cd ${CONDA_DIR}/lib/python3.12/site-packages/distributed && \
185
202
  patch -p2 < 0001-Patch-from-bbockelman-adaptive-scaling.patch && \
186
203
  patch -p2 < 0002-Allow-scheduler-to-preserve-worker-hostnames.patch
187
- # && patch -p2 < 0003-Activate-patch.patch
188
- # && patch -p2 < 0004-Add-possibility-to-setup-external_adress-for-schedul.patch
189
- # && patch -p2 < 0005-Add-nanny-patch.patch
190
204
 
191
205
  # FIXME: we have a wrong path, let's make a link.
192
206
  # cms-jovyan@jupyter-oksana-2eshadura-40cern-2ech:~$ echo $PATH
@@ -200,7 +214,7 @@ RUN rm -rf /tmp/* \
200
214
  && find ${CONDA_DIR} -type f -name '*.a' -delete \
201
215
  && find ${CONDA_DIR} -type f -name '*.pyc' -delete \
202
216
  && find ${CONDA_DIR} -type f -name '*.js.map' -delete \
203
- && (find ${CONDA_DIR}/lib/python3.10/site-packages/bokeh/server/static -type f,l -name '*.js' -not -name '*.min.js' -delete || echo "no bokeh static files to cleanup") \
217
+ && (find ${CONDA_DIR}/lib/python3.12/site-packages/bokeh/server/static -type f,l -name '*.js' -not -name '*.min.js' -delete || echo "no bokeh static files to cleanup") \
204
218
  && rm -rf ${CONDA_DIR}/pkgs
205
219
 
206
220
  # Mkdir CVMFS mount directory. Mount done upstream in configs. Harmless