mirror of
https://github.com/lukaszraczylo/go-telegram.git
synced 2026-06-05 22:43:59 +00:00
404411b20c
Replaces the hand-bumped client.Version="0.7.11" with telemetry.SendForModule which reads the actual module version from runtime/debug.BuildInfo.Deps at the consumer's build time. This means future releases (v0.7.12, v0.8.0, …) will be reported by the running bot WITHOUT requiring a manual edit of client/version.go on every tag — consumers just `go get -u` and rebuild. client.Version is preserved as a fallback for replace directives / detached `go run`, and remains overridable via -ldflags. Bumps oss-telemetry to v0.2.1.
34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
package client
|
|
|
|
import (
|
|
"sync"
|
|
|
|
telemetry "github.com/lukaszraczylo/oss-telemetry"
|
|
)
|
|
|
|
// telemetryOnce guards the single anonymous "library used" ping that is sent
|
|
// on the first call to New. Long-running bots typically construct one Bot;
|
|
// short-lived programs or test suites may construct many, but the Once gate
|
|
// keeps the fire-and-forget call from amplifying into per-construction pings.
|
|
var telemetryOnce sync.Once
|
|
|
|
// fireTelemetryOnce dispatches a fire-and-forget anonymous adoption ping.
|
|
//
|
|
// The call is failproof by contract of oss-telemetry: it never blocks New,
|
|
// never panics, never returns errors, and silently no-ops if disabled or
|
|
// if the network is unavailable.
|
|
//
|
|
// Opt-out is honored via any of these environment variables (case-insensitive
|
|
// truthy values "1", "true", "yes", "on"):
|
|
//
|
|
// - DO_NOT_TRACK
|
|
// - OSS_TELEMETRY_DISABLED
|
|
// - GO_TELEGRAM_DISABLE_TELEMETRY
|
|
//
|
|
// See README §Telemetry for the full disclosure.
|
|
func fireTelemetryOnce() {
|
|
telemetryOnce.Do(func() {
|
|
telemetry.SendForModule("go-telegram", "github.com/lukaszraczylo/go-telegram", Version)
|
|
})
|
|
}
|