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

Add incremental build #1700

Merged
merged 4 commits into from
Aug 14, 2020
Merged

Conversation

dseefeld
Copy link
Contributor

@dseefeld dseefeld commented Aug 10, 2020

Add the following items to accomplish incremental builds in source-build:

  • Add defined semaphore files for each target that participates
    • Semaphores in Directory.Build.props apply to top-level targets and projects, i.e. Directory.Build.targets, Build.proj, tools-local/init-build.proj, etc.
    • Semaphores in repos/Directory.Build.props apply to all repo level targets and projects.
  • For each participating target, add Inputs (generally something larger and more static, like the project file) and assign the semaphore file as the output.
  • For each participating target, create the semaphore file when the target completes.
  • Add Timestamps to build binlogs to ensure that older binlogs don't get overwritten when build is restarted.

Accomplishes item #6 in #928 with the exception of clearing semaphore files for downstream repos when a repo starts building.

@dseefeld dseefeld self-assigned this Aug 10, 2020
Copy link
Member

@dagood dagood left a comment

Choose a reason for hiding this comment

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

This doesn't look like it addresses a lot of #928, could you describe more what this PR is doing, what scenarios it's tested for?

Directory.Build.targets Outdated Show resolved Hide resolved
Directory.Build.props Show resolved Hide resolved
build.sh Outdated Show resolved Hide resolved
@dagood
Copy link
Member

dagood commented Aug 13, 2020

Accomplishes item #6 in #928

It doesn't have the clearing part of it though, right?

When a repo starts building, all downstream repo semaphores should be removed so the new build's dependencies flow through to the end without question. This will help when making changes to e.g. CoreFX and expecting them show up in the Runtime without fully cleaning the repo first.

@dseefeld
Copy link
Contributor Author

Accomplishes item #6 in #928

It doesn't have the clearing part of it though, right?

When a repo starts building, all downstream repo semaphores should be removed so the new build's dependencies flow through to the end without question. This will help when making changes to e.g. CoreFX and expecting them show up in the Runtime without fully cleaning the repo first.

Right. I missed that part. I'll update.

@dseefeld
Copy link
Contributor Author

OSX issue is #1685

@dseefeld dseefeld merged commit 32a3fcd into dotnet:release/3.1 Aug 14, 2020
@dseefeld dseefeld deleted the incrementalBuild branch August 14, 2020 22:36
dseefeld added a commit to dseefeld/source-build that referenced this pull request Sep 11, 2020
* Add semaphores for incremental build

* Updates based on PR review comments

* One more PR comment update
Conflicts:
	build.proj
	repos/Directory.Build.targets
	repos/core-sdk.proj
	repos/core-setup.common.targets
	repos/coreclr-portable.proj
	repos/toolset.proj
	support/tarball/build.sh
	tools-local/init-build.proj
dseefeld added a commit to dseefeld/source-build that referenced this pull request Sep 17, 2020
* Add semaphores for incremental build

* Updates based on PR review comments

* One more PR comment update
Conflicts:
	build.proj
	repos/Directory.Build.targets
	repos/core-sdk.proj
	repos/core-setup.common.targets
	repos/coreclr-portable.proj
	repos/toolset.proj
	support/tarball/build.sh
	tools-local/init-build.proj
dseefeld added a commit that referenced this pull request Sep 17, 2020
* Add incremental build (#1700)

* Add semaphores for incremental build

* Updates based on PR review comments

* One more PR comment update
Conflicts:
	build.proj
	repos/Directory.Build.targets
	repos/core-sdk.proj
	repos/core-setup.common.targets
	repos/coreclr-portable.proj
	repos/toolset.proj
	support/tarball/build.sh
	tools-local/init-build.proj

* Trim trailing whitespace

* Fix spacing issue
@dagood dagood mentioned this pull request Sep 23, 2020
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.

3 participants