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

Finalize the value of more types of task input and output properties when the task starts execution #7439

Open
adammurdoch opened this issue Oct 18, 2018 · 4 comments
Assignees
Labels
a:feature A new functionality in:configuration-model lazy api, domain object container

Comments

@adammurdoch
Copy link
Member

adammurdoch commented Oct 18, 2018

#7371 added support to finalize the value of Property typed input and output properties of a task when the task starts execution. We should also finalize the value of input and output properties with other types, such as FileCollection, FileTree, DomainObjectCollection and so on.

This fix should only apply to properties without setter methods. Feel free to raise another issue for these properties, though, which we can implement as another increment.

Expected Behavior

No changes to an input or output property of a task are observable once the task has started execution.

This has a number of immediate benefits:

  • Expensive values are calculated once and then the value reused for task input fingerprinting, snapshotting and by the task action.
  • The same value is used for each of these things, plus by any tasks that use the task outputs.

This also unblocks potential future performance improvements such as parallel file/directory fingerprinting and isolated task action execution.

Current Behavior

The value of some task input and output properties can be changed during task execution.

@adammurdoch adammurdoch changed the title Finalize the value of more task input and output properties when the task starts execution Finalize the value of more types of task input and output properties when the task starts execution Oct 18, 2018
@adammurdoch adammurdoch added the in:configuration-model lazy api, domain object container label Oct 18, 2018
@adammurdoch
Copy link
Member Author

#9766 adds support for ConfigurableFileCollection.

@stale
Copy link

stale bot commented Oct 6, 2020

This issue has been automatically marked as stale because it has not had recent activity. Given the limited bandwidth of the team, it will be automatically closed if no further activity occurs. If you're interested in how we try to keep the backlog in a healthy state, please read our blog post on how we refine our backlog. If you feel this is something you could contribute, please have a look at our Contributor Guide. Thank you for your contribution.

@stale stale bot added the stale label Oct 6, 2020
@stale
Copy link

stale bot commented Oct 28, 2020

This issue has been automatically closed due to inactivity. If you can reproduce this on a recent version of Gradle or if you have a good use case for this feature, please feel free to reopen the issue with steps to reproduce, a quick explanation of your use case or a high-quality pull request.

@stale stale bot closed this as completed Oct 28, 2020
@wolfs wolfs closed this as not planned Won't fix, can't repro, duplicate, stale Sep 16, 2022
@lptr
Copy link
Member

lptr commented Sep 21, 2022

We are working on this now.

@lptr lptr reopened this Sep 21, 2022
@lptr lptr added @execution and removed stale labels Sep 21, 2022
@lptr lptr self-assigned this Sep 21, 2022
@ov7a ov7a added the a:feature A new functionality label Aug 11, 2023
@lptr lptr removed the @execution label Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:feature A new functionality in:configuration-model lazy api, domain object container
Projects
None yet
Development

No branches or pull requests

4 participants