dotnet / dotnet/msbuild

Unify item parsing and item matching clones

Open
#1,122 4 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

[GetItemProvenance](https://github.com/Microsoft/msbuild/blob/31ccfa3cc54d20da3edf0d862280d2a0e572f80a/src/XMakeBuildEngine/Definition/Project.cs#L1332-L1360), [GetAllGlobs](https://github.com/Microsoft/msbuild/blob/31ccfa3cc54d20da3edf0d862280d2a0e572f80a/src/XMakeBuildEngine/Definition/Project.cs#L1096-L1111), and match based evaluation time item operations (update, remove) have been changed to use the same [itemspec representation](https://github.com/Microsoft/msbuild/blob/master/src/Build/Evaluation/ItemSpec.cs) and item matching logic. It would be nice if [build time match based item operations](https://github.com/Microsoft/msbuild/blob/d38f1c59428795e3a125d99742141646613a6eff/src/Build/BackEnd/Components/RequestBuilder/IntrinsicTasks/ItemGroupIntrinsicTask.cs#L454) also reuse this code to avoid behaviour drift. Right now eval time matching has some extra capabilities that makes it behave differently from build time matching (e.g. the ability to compare absolute paths with relative paths).

Clones that parse / expand itemspecs or match items:
- [ ] https://github.com/Microsoft/msbuild/blob/31ccfa3cc54d20da3edf0d862280d2a0e572f80a/src/XMakeBuildEngine/Definition/Project.cs#L2181-L2200
- [ ] https://github.com/Microsoft/msbuild/blob/master/src/XMakeBuildEngine/BackEnd/Components/RequestBuilder/IntrinsicTasks/ItemGroupIntrinsicTask.cs#L448-L511

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.