Add a master switch for copy type (actual copy, hard links, symlinks)
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 133
Description
Currently there is no single gesture for the user to specify the copy behaviour across the entire build. Targets use custom properties to control their Copy task behaviour (e.g. `CreateHardLinksForCopyAdditionalFilesIfPossible `, `CreateSymbolicLinksForCopyFilesToOutputDirectoryIfPossible`, etc). This makes it hard for third party copying tasks to know what to do. Should they add their own custom property? Should they scan `Microsoft.Common.CurrentVersion.targets` and OR all the linking properties they find?
Implementation variants:
- add a command line switch `/linking:||` which gets exposed to tasks via IBuildEngine.
- cons: tasks that already have custom linking properties now have to reconcile their inputs with a potential IBuildEngine.LinkType
- add a plain old property in `Microsoft.Common.CurrentVersion.targets` to act as the master switch
- cons: only available to builds that are based on `Microsoft.Common.CurrentVersion.targets`
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading Microsoft.Common.CurrentVersion.targets and the IBuildEngine interface, then trace the existing custom copy and linking properties named in the issue. Compare the proposed command-line and project-property approaches; done requires an agreed master copy-mode mechanism that third-party copy tasks can observe consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100