Skip to content

Evaluate Develocity Build Scans for the Python client #966

Description

@jamesarich

Context

Every Meshtastic Gradle repo is now onboarded to the OSS Community
Develocity instance at https://community.develocity.cloud under project ID
meshtastic — Build Scans® plus a shared remote build cache:

Develocity now has a Python agent, so the question is whether this repo can join.
This issue records what was found; no change is proposed yet, because the
answer depends on something only Gradle can confirm.

What the Python agent is today

Per the Develocity Python Agent manual:

  • Beta, currently 0.10.x.
  • Not on PyPI. It installs from a vendor URL:
    https://develocity-python-pkgs.gradle.com/develocity_agent-0.10.1-py3-none-any.whl
  • Python support is off by default — "To enable it, contact Gradle."
  • Configuration lives in a .develocity.py at the repo root, exposing a
    develocity_configuration() function. develocity_url is required;
    access_key comes from the config or the DEVELOCITY_ACCESS_KEY environment
    variable.
  • Instruments pip, poetry, pytest, pylint, mypy, flake8, autopep8,
    isort, django, and others — but test results are pytest-only.
  • The manual states that publishing to Gradle's own hosted Develocity is not
    supported. Whether that wording excludes community.develocity.cloud is the
    open question.

This repo is otherwise a clean fit

Poetry-managed (pyproject.toml, poetry.lock), pytest-driven (pytest.ini),
with a CI job that runs lint + type check + tests via
poetry install --all-extras --with dev,powermon. The agent instruments
exactly that toolchain.

Blocking question

Can Python Build Scan publishing be enabled for project meshtastic on
community.develocity.cloud?
This needs an answer from the Develocity
Solutions team; it is not something we can determine or configure ourselves.

Decision needed if the answer is yes

Adding the agent means adding a wheel served outside PyPI to poetry.lock.
That is a supply-chain decision for the maintainers, not a mechanical change: it
would want a pinned hash, and a view on taking a beta dependency into the
dependency graph of a published client library. Worth considering whether it
belongs in the dev group only.

Shape of the change, if approved

  1. .develocity.py at the repo root setting develocity_url and
    project_id = "meshtastic".
  2. The agent wheel in the dev dependency group, pinned by hash.
  3. A DEVELOCITY_ACCESS_KEY repository secret, value
    community.develocity.cloud=<key> — the host prefix is required, and
    omitting it is the most common onboarding failure.
  4. The existing CI test job picks it up with no workflow restructuring.

Until question (1) is answered, nothing in this repo should change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions