version_info

Documentation for eth_defi.version_info Python module.

Read Docker image git version stamp.

During the Docker image build, the git revision of the source tree is written into GIT_VERSION_TAG.txt, GIT_COMMIT_MESSAGE.txt and GIT_VERSION_HASH.txt files at the install root — see Dockerfile.vault-scanner. This module reads those files back at runtime so long-running services can report which code revision they are running, e.g. the vault scanner embedding its version in the top-vaults JSON export.

Modelled on the trade-executor VersionInfo pattern, based on https://stackoverflow.com/a/74694676/315168

Example:

from eth_defi.version_info import VersionInfo

version = VersionInfo.read_docker_version()
print(version.commit_hash)  # None outside Docker

Classes

VersionInfo

Reflect the git version information embedded in the Docker image during build.

class VersionInfo

Bases: object

Reflect the git version information embedded in the Docker image during build.

All fields are None when running outside a stamped Docker image, e.g. from a source checkout. Individual fields can also be None inside a stamped image when the corresponding build ARG was not passed — in particular tag is None for images built from an untagged commit. See Dockerfile.vault-scanner for how the stamp files are written.

__init__(tag=None, commit_message=None, commit_hash=None)
Parameters
Return type

None

as_dict()

Return a JSON-serialisable dict for embedding in data exports.

Returns

Dict with tag, commit_message and commit_hash keys.

Return type

dict[str, str | None]

classmethod read_docker_version(root=PosixPath('/home/runner/work/web3-ethereum-defi/web3-ethereum-defi'))

Read version information burnt within the Docker file system during image build.

Parameters

root (pathlib.Path) – Directory holding the stamp files. Defaults to the eth_defi install root.

Returns

Populated version info, or None for every field when the stamp files are absent (e.g. running from a source checkout).

Return type

eth_defi.version_info.VersionInfo

static read_version_file(name, root=PosixPath('/home/runner/work/web3-ethereum-defi/web3-ethereum-defi'))

Read one version stamp file written by the Docker build.

Parameters
  • name (str) – Stamp file name, e.g. GIT_VERSION_HASH.txt.

  • root (pathlib.Path) – Directory holding the stamp files.

Returns

Stripped file content, or None if the file does not exist, is empty, or contains the UNSPECIFIED_SENTINEL placeholder written when the build ARG was not passed.

Return type

Optional[str]