Repository navigation
fix: stop treating connector root components as a build error in sln import - #236
Merged
Merged
Conversation
…import (#235) txc env sln import's dotnet-build output scan counted any "Following root components are not defined in customizations" line as an error, even for connectors (type 372, ECConnector), which the Build SDK's own InvokeSolutionPackager task already treats as a known false positive after independently confirming the connector was actually staged - a genuinely missing connector still fails the build with a non-zero exit code, which this scan already honors separately. The header line itself carries no component type, so it's now only a warning; the per-component "Type='...', Id='...'" detail line that follows is what decides severity, and ECConnector is excluded from it. Every other type, and the older "Following objects, required by the solution, are not present" packager line, are still treated as errors unchanged. This is a quick, scoped fix for the lab's immediate blocker; the duplicate root-component false-positive logic now living independently in tools-cli, tools-devkit-build and platform-metadata should eventually be consolidated. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PfPrXnV6KJVEv7gTYwr2wY
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The unconditional connector exception can allow incomplete ZIP imports with older Build SDKs that lack independent connector validation.
1 open issue
What changed in this PR
This PR adjusts build-output classification for txc env sln import to avoid rejecting valid custom-connector solutions, addressing the false positive reported in #235.
Changes:
- Downgrades the missing-root-components header and
ECConnectordetails to warnings. - Preserves errors for other component types and missing required objects.
- Adds regression cases for connector diagnostics, case-insensitive matching, and non-connector errors.
| File | Description |
|---|---|
| tests/TALXIS.CLI.Tests/Environment/Solution/SolutionBuildOutputTests.cs | Updates expected severities and adds component-specific regression cases. |
| src/TALXIS.CLI.Features.Environment/Solution/SolutionBuildOutput.cs | Separates header and detail classification and introduces the connector exception. |
Review effort: Balanced
Comment on lines
+56
to
+58
| return KnownFalsePositiveRootComponentTypes.Contains(detail.Groups[1].Value) | ||
| ? BuildOutputSeverity.Warning | ||
| : BuildOutputSeverity.Error; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
txc env sln import <project folder>refuses to import a Build SDK solution containing a custom connector:SolutionBuildOutput.Classify()(added in #234, merged just before this issue was filed) treats anydotnet buildoutput line matching "Following root components are not defined in customizations" as a hard error, with no awareness of component type.This is a known false positive for connectors (type 372,
ECConnector):tools-devkit-build's ownInvokeSolutionPackagertask (#114, already released) independently confirms the connector was actually staged before letting such a build succeed — a genuinely missing connector still fails the build with a non-zero exit code, which this import command already checks separately.tools-cli's text scan is a second, independent implementation that never carried over that exception.Closes #235.
Fix
SolutionBuildOutput.Classify():Type='...', Id (or schema name)='...'.) is what decides severity.ECConnectoris excluded from counting as an error there; every other type still is.This is a scoped, low-risk fix for an active lab blocker. The underlying root-component false-positive logic now lives independently in three places (
tools-cli,tools-devkit-build,platform-metadata) and should eventually be consolidated — tracked as a separate follow-up, out of scope here.Verification
dotnet buildon the affected project: clean.dotnet test tests/TALXIS.CLI.Tests: 809/809 passed (full suite), including updated/new cases inSolutionBuildOutputTestscovering the exact line text from the issue's repro (Type='ECConnector', Id (or schema name)='ECConnector-lab_connectorsopenfoodfacts'.) and confirming other component types (Entity,SystemForm) are still treated as errors.tools-devkit-build's own packager-level check already succeeds for connectors end-to-end — this CLI-side text scan was the only remaining false positive.Generated by Claude Code