Skip to content

[feat] include non-release commit and repo dirty state info in version reported by the executable #107

Open
@robbkidd

Description

@robbkidd

As a vendor receiving telemetry from thousands of independent customer sources, Honeycomb has found that telemetry clients that include nuanced version information in their transmissions will dramatically shorten the time involved in troubleshooting data issues. In addition to a standard release version number, builds can include in their reported version whether the build occurred directly on the release commit or on an identifiable commit some number of changes away from a recent release commit and/or whether the build occurred with modifications to version-controlled files (repo "dirty" state).

A disadvantage of version.go's hard-coded number being solely managed with multimod is that the version number set within a built executable does not communicate whether the build was on the commit the release tag is on (so Actual Release build or a Dev Build between releases) or whether the repository working copy was "ditry". This is one benefit of the common-but-fiddly technique of determining a version at build time based on the output of git describe and setting the version for the build through LDFLAGS.

Originally posted by @robbkidd in #94 (comment) and then revised in #94 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions