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

Implementation of BEP2 Proposal 2 #13

Merged
merged 4 commits into from
Jun 19, 2019

Conversation

tsmanner
Copy link
Collaborator

@tsmanner tsmanner commented Jun 9, 2019

If all Products produced by a Step have already been set, this will not actually call the target function. In the case of a Step that produces no Products, the Step always calls it's target.

… `Step`s `Product`s have been set already.
@tsmanner
Copy link
Collaborator Author

tsmanner commented Jun 9, 2019

Should this be the normal functionality? I'm honestly torn about whether this belongs in Step directly or if there's some work we should do to enable/disable this behavior when a Step is constructed. I think, if it is not in the base node, it should be another bolt-on bit of functionality, similar to the serializers.

Maybe we implement it as decorators that can be enabled/disabled by a library config API.

Another idea is to implement several run functions and use the same pattern as the serialization framework to allow users to select the run function that they want. i.e. by default steps just run the target once their consumes are set, but user code could call something like bazaarci.set_run_strategy(Step, Step.run_with_short_circuit).

@tsmanner
Copy link
Collaborator Author

tsmanner commented Jun 9, 2019

@dansvo @manistal I'm thinking about writing this up as another BEP, since it seems to me like another potentially disruptive framework discussion.

@tsmanner
Copy link
Collaborator Author

tsmanner commented Jun 9, 2019

I wrote up my idea here, mostly just as an exercise to think through the problem. I'm not sure it's necessary still, I think we need to come up with more potential use cases and more ways to solve it.

@tsmanner tsmanner added the WIP label Jun 9, 2019
@tsmanner tsmanner changed the title Short Circuit redundant Steps WIP: Short Circuit redundant Steps Jun 9, 2019
@tsmanner tsmanner changed the title WIP: Short Circuit redundant Steps WIP: Implementation of BEP2 P1 with decorators Jun 16, 2019
@tsmanner
Copy link
Collaborator Author

@dansvo @manistal We may have already talked about it, but it popped into my head just now. Another use case for the ability to inject code before/after the run step, regardless of type is that it could be used to add interactions with a cache like Artifactory.

@tsmanner tsmanner changed the title WIP: Implementation of BEP2 P1 with decorators WIP: Implementation of BEP2 Proposal 2 Jun 16, 2019
@tsmanner tsmanner changed the title WIP: Implementation of BEP2 Proposal 2 Implementation of BEP2 Proposal 2 Jun 19, 2019
@tsmanner tsmanner merged commit 5c8adfb into Vipyr:master Jun 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant