Skip to content

Remove dead LibraryDevelopment and LocalLibrary build targets - #1113

Draft
jasonleenaylor wants to merge 1 commit into
mainfrom
retire-dead-local-library-targets
Draft

Remove dead LibraryDevelopment and LocalLibrary build targets#1113
jasonleenaylor wants to merge 1 commit into
mainfrom
retire-dead-local-library-targets

Conversation

@jasonleenaylor

@jasonleenaylor jasonleenaylor commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Build/LibraryDevelopment.targets lost its only importer when
Build/FieldWorks.proj was deleted, and it still called an
MSBuild.ExtensionPack console task whose UsingTask and package are
both gone. Build/LocalLibrary.targets held a LocalLibrary target that
no target or script invoked, passing a LibpalasoPlatform property
defined nowhere. Manage-LocalLibraries.ps1 replaced both.

Deleted the two .targets files, dropped the LocalLibrary.targets
import from InstallerBuild.proj, and removed the two UseLocalLibraries
reads in PackageRestore.targets, which gated only a Message nothing
could reach. Nothing outside LocalLibrary.targets referenced its items
or properties, so InstallerBuild.proj needs no replacement.

Also deleted DownloadLibraryDependencies.pl, whose only input was the
generated LibraryDevelopment.properties, dropped that file's .gitignore
entry, and pruned the stale references in the Localize.targets error
text and openspec build-phases.md.

Why these were unreachable

Both halves are leftovers from the migration in #789 (90bbc7a), which
replaced the shell half with Build/Manage-LocalLibraries.ps1 and
deleted Build/buildLocalLibraries.sh, but left the MSBuild halves
behind. LibraryDevelopment.targets was orphaned earlier still, when
Build/FieldWorks.proj went away in 5711bf6 (#678), and c2b1ffa
had already removed the UsingTask for the console task that lines 14
and 18 still call. UseLocalLibraries is set by nothing today — no CI
workflow, script, or doc passes /p:UseLocalLibraries=Y, so the one
path that could still reach the dead branch does not exist.

PalasoArtifactsDir / ChorusArtifactsDir / LcmArtifactsDir remain
live and untouched: their defaults in PackageRestore.targets and
Directory.Build.props and all seven consumers are unchanged. Only their
UseLocalLibraries-gated paths are gone. build.ps1 -UseLocalLcm and
scripts/Agent/Copy-LocalLcm.ps1 are also untouched — that is a fast
post-restore DLL overlay, complementary to Manage-LocalLibraries.ps1
rather than redundant with it.

Validation

  • .\build.ps1 -CommentHygiene — clean full native + managed build,
    0 warnings, 0 errors.
  • .\test.ps1 -CommentHygiene — exit 0, all 5897 tests passed.
  • An MSBuild /pp preprocess of InstallerBuild.proj resolves
    BuildInstaller with zero references to PalasoFileNamesForLL,
    ChorusDeps, ConfigName, LiblcmPlatform, or ChorusPlatform.
  • BuildWindowsXslAssemblies and VerifyLcmCloned both execute from
    InstallerBuild.proj after the import removal.
  • The Release installer build reaches Installer.legacy.targets and
    fails at buildBaseInstaller.bat (exit 9009). Restoring all three
    files and the import reproduces that failure byte-for-byte at the
    same line, so it is pre-existing and unrelated.

This change is Reviewable

Build/LibraryDevelopment.targets lost its only importer when
Build/FieldWorks.proj was deleted, and it still called an
MSBuild.ExtensionPack console task whose UsingTask and package are
both gone. Build/LocalLibrary.targets held a LocalLibrary target that
no target or script invoked, passing a LibpalasoPlatform property
defined nowhere. Manage-LocalLibraries.ps1 replaced both.

Deleted the two .targets files, dropped the LocalLibrary.targets
import from InstallerBuild.proj, and removed the two UseLocalLibraries
reads in PackageRestore.targets, which gated only a Message nothing
could reach. Nothing outside LocalLibrary.targets referenced its items
or properties, so InstallerBuild.proj needs no replacement.

Also deleted DownloadLibraryDependencies.pl, whose only input was the
generated LibraryDevelopment.properties, dropped that file's .gitignore
entry, and pruned the stale references in the Localize.targets error
text and openspec build-phases.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

NUnit Tests

    1 files  ±0      1 suites  ±0   10m 23s ⏱️ - 1m 15s
5 864 tests ±0  5 783 ✅ ±0  81 💤 ±0  0 ❌ ±0 
5 873 runs  ±0  5 792 ✅ ±0  81 💤 ±0  0 ❌ ±0 

Results for commit 412d578. ± Comparison against base commit 9a8a9b2.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 38.36%. Comparing base (17cdfba) to head (412d578).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1113      +/-   ##
==========================================
+ Coverage   38.34%   38.36%   +0.01%     
==========================================
  Files        1507     1507              
  Lines      350586   350634      +48     
  Branches    40294    40304      +10     
==========================================
+ Hits       134432   134505      +73     
+ Misses     186927   186897      -30     
- Partials    29227    29232       +5     

see 9 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants