Skip to content

Fix test script to use launcher.enabled and strict bash flags#792

Merged
dbkegley merged 6 commits intomainfrom
kegs-fix-connect-ci-check
Mar 3, 2026
Merged

Fix test script to use launcher.enabled and strict bash flags#792
dbkegley merged 6 commits intomainfrom
kegs-fix-connect-ci-check

Conversation

@dbkegley
Copy link
Contributor

@dbkegley dbkegley commented Feb 27, 2026

  • Use launcher.enabled=false instead of config.Launcher.Enabled=false
  • Add -euxo pipefail for stricter bash error handling

Related to #791 - CI is supposed to catch this case but it's been failing silently for a while.

and also: rstudio/rstudio-docker-products#1008

- Use `launcher.enabled=false` instead of
  `config.Launcher.Enabled=false`
- Add `-euxo pipefail` for stricter bash error handling
@dbkegley dbkegley requested review from a team as code owners February 27, 2026 22:27
@dbkegley dbkegley requested a review from a team as a code owner March 2, 2026 15:30
@dbkegley dbkegley requested a review from aronatkins March 2, 2026 15:30
Comment on lines 440 to +441
- /opt/python/3.12.11/bin/python
- /opt/python/3.11.13/bin/python
- /opt/python/3.13.9/bin/python
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this a significant change for end-users? Is there any reason to keep 3.11 around?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, we only support 2 versions of Python? 😞

Copy link
Contributor

Choose a reason for hiding this comment

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

@dbkegley Connect was significantly behind the other products in its dependency versions to where I had some issues raised related to versions being out of sync. I thought I had gotten approval to make these changes, but it wasn't given enough thought as is clear by the fact I forgot to update the charts.

We should have a conversation about how we can better manage synchronizing the image config with the helm config going forward and/or accelerate our move to the new images repos. Since Helm overrides the configs in the image, which we do try to keep up to date, it's always going to have a lagging problem unless we modify our release workflow. The new images should make that process easier since it will heavily diminish our chances of making a breaking in-release change due to each release pinning to versions present when the release is initially created. We should at least add a step to check dependency versions and consider upgrades/patches when updating the image and the Helm charts, with particular scrutiny over making sure the Helm chart dependency versions will match the image dependency versions for the tag being targeted.

As @kfeinauer said, we can provide multiple Python versions in the Connect image, but it's an image size issue for rstudio-docker-products. The new images use uv which significantly cuts down the Python installation size, but this repo still uses python-builds. We can include an additional version to mitigate the issue if you want, but it will inflate the image by around 700mb if memory serves. It's not as hefty as additional R versions at least.

Copy link
Contributor

Choose a reason for hiding this comment

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

@ianpittwood Can weigh in more here, but we can support more than 2 versions of Python, but with the current way of distributing Python in the images it is quite expensive in terms of size (the new images will use uv which is much more space efficient).

We could add back in Python 3.11.13 alongside the newer 3.13.9 to prevent a breakage for customers using Helm. Should we consider going down this route (and taking the size penalty), or should we proceed with a version break?

We should have consulted you more about upgrading Python, so apologies there. Connect was very behind the other products on Python version so we decided to update to keep the products more in parity, but we understand that dropping Python versions is a big deal for Connect so we should have gotten buy-in before doing so.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Totally understand why the change was made since we were way behind. I just wanted to make sure it was flagged so we could start the discussion about how we can change the process going forward. Right now it's challenging for us to time these upgrades in order to avoid breakages. We like to coordinate the upgrades with Connect version bumps which allows us to call out the change in the image/helm release notes and give customers a chance to plan to the change proactively.

We should at least add a step to check dependency versions and consider upgrades/patches when updating the image and the Helm charts, with particular scrutiny over making sure the Helm chart dependency versions will match the image dependency versions for the tag being targeted.

This PR fixes the CI checks that enforce this for the helm chart but we are lacking similar checks on the images repo upstream.

We could add back in Python 3.11.13 alongside the newer 3.13.9 to prevent a breakage for customers using Helm. Should we consider going down this route (and taking the size penalty), or should we proceed with a version break?

Given that this has been broken for a while now, I don't think we need to worry about re-adding the old version.

We should have a conversation about how we can better manage synchronizing the image config with the helm config going forward and/or accelerate our move to the new images repos. Since Helm overrides the configs in the image, which we do try to keep up to date, it's always going to have a lagging problem unless we modify our release workflow. The new images should make that process easier since it will heavily diminish our chances of making a breaking in-release change due to each release pinning to versions present when the release is initially created.

Agreed, let's move this discussion offline for now and make an announcement once we've reached a consensus on how we want to move forward. I think the migration to the new images is one part of the equation. I'd like to explore what it would look like to make the min images the helm chart defaults and rely more on executable scanning so we can eliminate the need to explicitly configure the interpreter versions.

@dbkegley dbkegley merged commit 87ae10f into main Mar 3, 2026
7 checks passed
@dbkegley dbkegley deleted the kegs-fix-connect-ci-check branch March 3, 2026 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants