ament / ament/ament_index

introduce a version.txt for ament_python

Aberta
#125 5 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Python
Estrelas
15
Forks
32
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

Hey, onboarding to ros2. This `avent_python` template looks really good/standard for operational use from my perspective as a drone/embedded/hardware/IoT fleet CI/CD and C2 guy. It looks almost identical to the model templates I set up for employers actually, which has motivated me to make a comment :-).

Saw that the team here is still pretty small, and I'll be adapting this template with `version.txt`, thought I'd propose it here or at least start the conversation.

I really like the use of `version.txt` next to `setup.py` which I typically recommend referencing in the module's `__init__.py` file dynamically (along with other changes so that `setup.py` is standard and copy-able from one project to the next). I pulled this concept from `java` libraries, but it is something I've seen in production in IoT industry. I make use of it in my infra, and it's useful for allowing CI/CD + shell routines to easily hook into changes in the `version.txt` file in addition to Cxx sidecar libraries and other add ins that accumulate IRL.

Further, it is very easy to increment a semver in a `version.txt` rather than either `pyproject.toml`, `setup.py`, or `module_name/__init__.py` via normal `git` and CICD workflows (written in shell or abbreviated shell environments in alpine linux, for example), whereas jumping into any of those other file types can require extra work and packages in the build container to support whatever one liner we come up with (using perl/awk/sed, jq, etc.). It's also pretty fragile when not using `version.txt` and supporting many teams, as these python packaging approaches tend to be trendy rather than good, changing every 18 months (the versioning methods wind up being as numerous as the projects we support).

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Start by inspecting the ament_python template's setup.py and the package __init__.py, then compare how the proposed version.txt would fit into the existing template. Clarify the desired source of truth and update scope with maintainers; done should mean the template consistently exposes and packages its version without ambiguity.

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

Avaliação

Stack de tecnologia
python
Domínio
build-system
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Pouca atividade
Clareza
Precisa de esclarecimento
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.