Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor msbuild props and targets #10664

Merged
merged 31 commits into from
Dec 18, 2024
Merged

Refactor msbuild props and targets #10664

merged 31 commits into from
Dec 18, 2024

Conversation

jviau
Copy link
Contributor

@jviau jviau commented Dec 3, 2024

Pull request checklist

IMPORTANT: Currently, changes must be backported to the in-proc branch to be included in Core Tools and non-Flex deployments.

  • Backporting to the in-proc branch is not required
    • Otherwise: Link to backporting PR -- TODO
  • My changes do not require documentation changes
    • Otherwise: Documentation issue linked to PR
  • My changes should not be added to the release notes for the next release
    • Otherwise: I've added my notes to release_notes.md
  • My changes do not need to be backported to a previous version
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • My changes do not require diagnostic events changes
    • Otherwise: I have added/updated all related diagnostic events and their documentation (Documentation issue linked to PR)
  • I have added all required tests (Unit tests, E2E tests)

Additional information

This PR refactors our msbuild targets & props.

  • MSBuild files restructured, removing msbuild files in build/ and spreading that logic around in eng/build.
  • Versioning scheme overhauled.
    • Versions are now controlled for directory cones by adding a Directory.Version.props file.
    • Versioning scheme for non-release builds now calculates a suffix based on build reason and a number calculated from the current date.
    • dev for local, pr for PR builds, ci for all other non-release CI builds. eg: 4.38.0-dev.24306.0 for a local build.
  • Adds logic for incorporating release notes and README into nuget packages
    • not particularly needed for this repo, but I am using this as a staging ground for a set of reusable targets that will eventually be packaged up and consumed in all our repos.
  • initialize-pipeline.yml stage removed as it is no longer needed (this work is not done directly in msbuild)
  • Placeholder configurations removed and replaced with a props file approach that is uncommented only when needed
    • Has a safeguard to fail CI if it is accidentally included in a PR uncommented
  • DotnetIsolated*.csproj projects now built as a direct dependency of integration test project (and not in the test itself).

@jviau jviau added the area: engineering Engineering improvements label Dec 4, 2024
eng/build/Engineering.props Outdated Show resolved Hide resolved
@liliankasem liliankasem self-requested a review December 4, 2024 22:09
eng/res/icon.png Outdated Show resolved Hide resolved
Copy link
Member

@liliankasem liliankasem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, minor comments above ^

Copy link
Member

@kshyju kshyju left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving so we can take if forward and iterate as needed.

@jviau jviau merged commit c84ce0d into dev Dec 18, 2024
9 checks passed
@jviau jviau deleted the jviau/eng/props branch December 18, 2024 18:07
jviau added a commit that referenced this pull request Jan 10, 2025
* Address versioning and public release

* Adjust tag link in release notes

* resources -> res

* Clean up props and versioning

* Remove buildNumber from CI files

* Remove initialize pipeline stage

* Run test in parallel

* Skip readme if not present

* Fix missing Version.targets import

* Bring back tools PublicKey.snk

* Comment out tests for now

* Re-add delaysign

* TreatWarningAsError=false for ExtensionMetadataGenerator

* Re-enable tests

* Move 'UpdateBuildNumber'

* Fix spelling

* Remove old python.props code owners entry

* Remove Placeholder configurations, replace with props file

* Re-add AllowUnsafeBlocks

* Build DotnetIsolatedPlaceholder projects as p2p ref

* Private=false for test resource projects

* RunAnalyzers=false for DotnetIsolated test apps

* Revert Private=false change for TestFunctions

* Revert other test app ref changes

* Use property for placeholder simulation

* Fix Targets -> Target

* Fix indentation

* Add Build.Counter variable
jviau added a commit that referenced this pull request Jan 14, 2025
* Refactor msbuild props and targets (#10664)

* Address versioning and public release

* Adjust tag link in release notes

* resources -> res

* Clean up props and versioning

* Remove buildNumber from CI files

* Remove initialize pipeline stage

* Run test in parallel

* Skip readme if not present

* Fix missing Version.targets import

* Bring back tools PublicKey.snk

* Comment out tests for now

* Re-add delaysign

* TreatWarningAsError=false for ExtensionMetadataGenerator

* Re-enable tests

* Move 'UpdateBuildNumber'

* Fix spelling

* Remove old python.props code owners entry

* Remove Placeholder configurations, replace with props file

* Re-add AllowUnsafeBlocks

* Build DotnetIsolatedPlaceholder projects as p2p ref

* Private=false for test resource projects

* RunAnalyzers=false for DotnetIsolated test apps

* Revert Private=false change for TestFunctions

* Revert other test app ref changes

* Use property for placeholder simulation

* Fix Targets -> Target

* Fix indentation

* Add Build.Counter variable

* Fix sit ext template

* Remove ExtensionMetadataGenerator from in-proc branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: engineering Engineering improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants