-
Notifications
You must be signed in to change notification settings - Fork 70
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
Branching #21
Comments
Every target should know how to get a branch of itself. Maybe with methods |
No matter what we do, let's handle this at the target level before we even implement the DSL, the graph, or the priority queue. |
Got a good start with this. Non-branching targets can get and find their own branches and count the number of branches. |
Now we need to implement a branching target class that inherits from the regular non-branching class. The differences in methods will mainly be in how they store and retrieve data. A big challenge will be keeping track of branches and making sure to ignore or delete old stale branches from previous builds. |
Next actions:
|
The general idea of #21 (comment) is, as always, to chip away at the easiest cleanest fiddly bits of this large problem until the pieces all fall into place. |
I no longer think this is a good idea. We should have one target class. Some targets have branching, some are branches. That's pretty easy to tackle in settings, and creating a new class for that is overly complicated. Since branching is dynamic, it is really a job for the scheduler, which has the priority queue and graph. So that should be the next action item. |
Do we need #22 first? |
Whenever a target completes, we need to update which branches are available. We can create a new |
Changed my mind: inheritance is perfect for this. A target can be either a pattern or a singleton. Patterns are map or cross, singletons are unique or branches. |
For starters, let's separate out the fields and methods of the existing target class into the target, singleton, and unique classes. |
Notes to self:
|
I am so close now, I just need to debug with simpler plans. |
Almost done. Just need to amp up the testing. |
|
Done! |
Nope, had issues. Not quite figured out.
|
Fixed for real this time. The solution is clean. |
In
targets
, all branching will be dynamic branching.Let's tackle the infrastructure before we get too far ahead. One idea: we could use target iterators/generators. Maybe the abstract factory pattern?
The text was updated successfully, but these errors were encountered: