DiamondLightSource / DiamondLightSource/python-copier-template
Move to using ubuntu as base with feature already installed for devcontainer
- 主要語言
- 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