DiamondLightSource / DiamondLightSource/python-copier-template

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

Aberta
#277 3 comentários 3 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Jinja
Estrelas
25
Forks
10
Merge médio
4h 4min
PRs com merge (30d)
6

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Revise devcontainer.json e a configuração existente do base-container e, em seguida, rastreie como python-copier-template e epics-containers a utilizam. Confirme que a imagem Ubuntu LTS inclui uv, bash, zsh e a feature bash-config, e verifique se a configuração gerada fornece o mount persistente de bash-config.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
bash, docker, python, ubuntu, zsh
Domínio
developer-experience, devops, tooling
Tipo de issue
Funcionalidade
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.