DiamondLightSource / DiamondLightSource/python-copier-template

Move to using ubuntu as base with feature already installed for devcontainer

未關閉
#277 3 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Jinja
星號
25
分支
10
平均合併
4 小時 4 分鐘
30 天內合併 PR
6

描述

At the moment we:
- Use `python:3.xx` as the base container
- Make a venv
- Install into it and use that
- Apply the `bash-config` feature on top

This means that vscode is taking up to 30s adding in the feature every time. We were thinking of putting the feature in the base container for `epics-containers` but publishing this for multiple python bases would be prohibitive for the copier template.

However with `uv` we now have a different option:
- Publish an ubuntu LTS derived devcontainer with uv, bash and zsh, and the `bash-config` feature installed
- Use it for both `python-copier-template` and `epics-containers`
- Get `uv` to manage the version of python

This should allow us to have a much better out of the box experience by pulling a single rarely changing base image that will be used for many purposes. The only downside is that every `devcontainer.json` will need to provide the mount of `${localEnv:HOME}/.config/bash-config` to do persistent history, but as we use copier that is easy to arrange for.

As discussed with @gilesknap @callumforrester

貢獻指南

開啟貢獻指南

研究方向

檢查 devcontainer.json 和現有的 base-container 設定,然後追蹤 python-copier-template 和 epics-containers 如何使用它。確認 Ubuntu LTS 映像包含 uv、bash、zsh 和 bash-config feature,並驗證產生的設定提供了持久的 bash-config mount。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
bash, docker, python, ubuntu, zsh
領域
developer-experience, devops, tooling
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。