Skip to content

Remove telemetry entirely (ADR-0010)#29

Closed
ChrisonSimtian wants to merge 3 commits into
mainfrom
chore/remove-telemetry
Closed

Remove telemetry entirely (ADR-0010)#29
ChrisonSimtian wants to merge 3 commits into
mainfrom
chore/remove-telemetry

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Owner

Gets rid of the telemetry feature inherited from NUKE — for good. Adds ADR-0010 recording the decision that Fallout collects no telemetry, and removes the subsystem in full.

Background

Telemetry has been inert since the fork: the Application Insights endpoint was the original maintainer's (unusable), the client dependency was dropped (Fallout-build#79), and TrackEvent was a stub. It was kept dormant to "wire up a Fallout-owned backend later" — an intent with no owner, endpoint, or plan. This closes that off: no telemetry, no dormant scaffolding.

What's removed

  • The Telemetry subsystem + [Telemetry] build extension, and every call site (the FalloutBuild attribute, the config-generation hook, the setup / add-package / cake-convert CLI events).
  • FALLOUT_TELEMETRY_OPTOUT / NUKE_TELEMETRY_OPTOUT, FalloutTelemetryVersion / NukeTelemetryVersion (incl. the legacy lift + FALLOUT001 warning), the FalloutTelemetryDocsUrl constant, the test-run opt-out, and the telemetry docs page.
  • fallout migrate now strips NUKE's telemetry knobs instead of renaming them to dead Fallout* equivalents.

Compatibility — not a breaking change

The env var and MSBuild property only ever gated a no-op, and an unset/unknown one is silently ignored — no consumer build errors, no behaviour change (telemetry was already off). The .NET SDK's own DOTNET_CLI_TELEMETRY_OPTOUT is left in place.

Commits

  1. Remove the inherited NUKE telemetry subsystem
  2. Strip telemetry knobs on migration instead of renaming them
  3. Document the no-telemetry decision (ADR-0010)

Testing

dotnet build fallout.slnx clean. Specs green: Migrate 24, Build 146, CLI 47, Common 131 (+7 unrelated skips).

🤖 Generated with Claude Code

@ChrisonSimtian ChrisonSimtian added enhancement New feature or request target/vCurrent Targets the current version labels Jul 20, 2026
@ChrisonSimtian
ChrisonSimtian marked this pull request as draft July 24, 2026 02:27
ChrisonSimtian and others added 3 commits July 24, 2026 14:57
The telemetry feature carried over from NUKE has been inert since the fork:
its Application Insights endpoint was the original maintainer's and can't be
reused, the client dependency was dropped (Fallout-build#79), and TrackEvent was a stub.
It was kept dormant on the intent of wiring up a Fallout-owned backend later —
an intent with no owner, endpoint, or plan. Per ADR-0010, Fallout collects no
telemetry, so the subsystem is removed rather than left as a dormant liability.

Removes the Telemetry classes and the [Telemetry] build extension, every call
site (the FalloutBuild attribute, the config-generation hook, and the setup /
add-package / cake-convert CLI events), the FALLOUT_TELEMETRY_OPTOUT /
NUKE_TELEMETRY_OPTOUT env vars, the FalloutTelemetryVersion / NukeTelemetryVersion
MSBuild property (including its legacy lift and FALLOUT001 warning), the
FalloutTelemetryDocsUrl constant, and the test-run opt-out plumbing.

Not a breaking change: the env var and property only ever gated a no-op, and an
unset/unknown one is silently ignored. The .NET SDK's own DOTNET_CLI_TELEMETRY_OPTOUT
is left in place.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The migrate tool rewrote NUKE's telemetry knobs to Fallout-branded equivalents:
NukeTelemetryVersion → FalloutTelemetryVersion and NUKE_TELEMETRY_OPTOUT →
FALLOUT_TELEMETRY_OPTOUT. With telemetry removed (ADR-0010) those targets no
longer exist, so renaming would plant dead, telemetry-branded cruft in every
migrated project.

Drop the rename rules and strip the knobs instead: RewriteCsprojsStep removes the
<(Nuke|Fallout)TelemetryVersion> element line, ScriptRewriter removes any
(NUKE|FALLOUT)_TELEMETRY_OPTOUT assignment line (bash/pwsh/cmd spellings).
Specs updated to assert the knobs are gone rather than renamed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Records the decision that Fallout collects no telemetry — reversing the prior
"kept dormant, wire up a Fallout endpoint later" stance — and its rationale,
non-breaking impact, and the alternatives (keep dormant / opt-in / local-only)
that were rejected. Adds a "No telemetry" convention, drops the now-removed
Microsoft.ApplicationInsights row from the dependency overview, updates the
from-nuke migration guide to show the telemetry knobs are stripped, and rewords
the build-events example that used telemetry as its illustration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisonSimtian
ChrisonSimtian force-pushed the chore/remove-telemetry branch from 0577e35 to ad69876 Compare July 24, 2026 02:57
@ChrisonSimtian

Copy link
Copy Markdown
Owner Author

Superseded by Fallout-build#538 — re-raised against upstream (as a draft) so it can feed back. Same branch, rebased onto current upstream/main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request target/vCurrent Targets the current version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant