hundreds-breakfast-49010
01/09/2020, 9:10 PMaloof-angle-91616
01/09/2020, 9:10 PMhundreds-breakfast-49010
01/09/2020, 9:10 PMaloof-angle-91616
01/09/2020, 9:10 PMhundreds-breakfast-49010
01/09/2020, 9:11 PMhundreds-breakfast-49010
01/09/2020, 9:12 PMaloof-angle-91616
01/09/2020, 9:12 PMhundreds-breakfast-49010
01/09/2020, 9:12 PMaloof-angle-91616
01/09/2020, 9:13 PMawait Get[...](...)
hundreds-breakfast-49010
01/09/2020, 9:13 PMaloof-angle-91616
01/09/2020, 9:13 PMultimately incompatiblewhat conflicts are you seeing?
hundreds-breakfast-49010
01/09/2020, 9:14 PMhundreds-breakfast-49010
01/09/2020, 9:15 PMhundreds-breakfast-49010
01/09/2020, 9:16 PMaloof-angle-91616
01/09/2020, 9:17 PMScm
class, so we don't need to muck around with that right now. should have made that more clear in my response on the ticketaloof-angle-91616
01/09/2020, 9:17 PMhundreds-father-404
01/09/2020, 9:18 PM@uncachable_rule
type that can be used by non-console-rules
As argued in https://github.com/pantsbuild/pants/pull/8931#issuecomment-572758552, I find the name @console_rule
to be very helpful and that it should continue to be mapped to top-level goals. Or, perhaps we should rename it to be a goal_rule
?hundreds-breakfast-49010
01/09/2020, 9:18 PMinteractive
flag to EPR, and this is related to the HTTP requesting functionality that I'm trying to build right nowaloof-angle-91616
01/09/2020, 9:20 PM@console_rule
-- it sounds like the use of the Scm
class is one of many things we'd like to formalize control overhundreds-breakfast-49010
01/09/2020, 9:20 PMhundreds-breakfast-49010
01/09/2020, 9:20 PM@console_rule
to bealoof-angle-91616
01/09/2020, 9:21 PMaloof-angle-91616
01/09/2020, 9:21 PM@console_rule
should behundreds-breakfast-49010
01/09/2020, 9:22 PM@console_rule
- but if we change the semantics of `@console_rule`s or get rid of them entirely, that re-opens that discussion about HTTPaloof-angle-91616
01/09/2020, 9:22 PMHTTP requests are inherently side effecting
i personally disagree with that conclusion
hundreds-breakfast-49010
01/09/2020, 9:23 PMhundreds-breakfast-49010
01/09/2020, 9:23 PMaloof-angle-91616
01/09/2020, 9:23 PMaloof-angle-91616
01/09/2020, 9:23 PMhundreds-breakfast-49010
01/09/2020, 9:27 PMhundreds-breakfast-49010
01/09/2020, 9:27 PMaloof-angle-91616
01/09/2020, 9:29 PMaloof-angle-91616
01/09/2020, 9:30 PMhundreds-breakfast-49010
01/09/2020, 9:30 PMaloof-angle-91616
01/09/2020, 9:31 PMaloof-angle-91616
01/09/2020, 9:32 PMaloof-angle-91616
01/09/2020, 9:33 PMhundreds-breakfast-49010
01/09/2020, 9:33 PMconsole_rule
that's what I made https://github.com/pantsbuild/pants/pull/8922 as prework foraloof-angle-91616
01/09/2020, 9:34 PMhundreds-breakfast-49010
01/09/2020, 9:34 PMhundreds-breakfast-49010
01/09/2020, 9:34 PMhundreds-breakfast-49010
01/09/2020, 9:35 PMhundreds-breakfast-49010
01/09/2020, 9:36 PMHttpRequester
that works like Console
hundreds-breakfast-49010
01/09/2020, 9:36 PMWorkspace
aloof-angle-91616
01/09/2020, 9:36 PMit's hard to create an exact representation of HTTP requests without making some sort of decision about how the engine will invoke them, and that decision can't be made without having some idea of cacheabilityyes. i'm thinking that a way to structure this is: (1) in making the http PR, define the cacheability guarantees needed for the https requests impl (having this explicitly written out with reference to #6598 would be cool) (2) we can then agree "are these reasonable assumptions we are all ok agreeing with" for #8922 (3) later, separately, we can agree on the http PR
aloof-angle-91616
01/09/2020, 9:37 PMit basically would amount to having a new uncacheable type calledlove it, this is aligned with what i was thinkingthat works like ConsoleHttpRequester
hundreds-breakfast-49010
01/09/2020, 9:37 PM@console_rule
."hundreds-breakfast-49010
01/09/2020, 9:37 PMhundreds-breakfast-49010
01/09/2020, 9:38 PM@console_rules
a permanent and significant part of the pants rule execution modelhundreds-breakfast-49010
01/09/2020, 9:38 PM@console_rule
entirelyaloof-angle-91616
01/09/2020, 9:38 PMI'm going down a path that involves making noncacheable @console_rules a permanent and significant part of the pants rule execution modelhm, i'm not sure i understand how your PR does that
hundreds-breakfast-49010
01/09/2020, 9:39 PMhundreds-breakfast-49010
01/09/2020, 9:39 PMhundreds-father-404
01/09/2020, 9:40 PM@console_rule
. I only want some way to signify that the rule that hooks up to a Goal is special. For example, I want to keep the new lint to ensure that goal rules return a Goal
.
I’d be very happy if we added @goal_rule
.hundreds-breakfast-49010
01/09/2020, 9:40 PMaloof-angle-91616
01/09/2020, 9:40 PM@dataclass
params for validity -- i don't think checking args for validity is venturing too far outside the box yethundreds-breakfast-49010
01/09/2020, 9:40 PM@console_rule
is a sort of side-issue - I certainly have no problem renaming this or adding additional types of @rule
aloof-angle-91616
01/09/2020, 9:40 PMaloof-angle-91616
01/09/2020, 9:41 PM@goal_rule
is cool toohundreds-breakfast-49010
01/09/2020, 9:41 PMwitty-crayon-22786
01/09/2020, 9:41 PMwitty-crayon-22786
01/09/2020, 9:41 PMaloof-angle-91616
01/09/2020, 9:41 PMhundreds-breakfast-49010
01/09/2020, 9:41 PMhundreds-breakfast-49010
01/09/2020, 9:42 PMaloof-angle-91616
01/09/2020, 9:42 PMbut I think you'd agree that there's a set of interlocking issues here, where a decision about one depends on decisions made about othersyes, and it's possible to structure this so that we don't have to depend upon a big decision before moving forward, and it's possible to also structure this so that the precise application of the cacheability guarantees we're looking for can be shown in their full and proper context -- this can make it easier to have the discussion about what we want those guarantees to be
aloof-angle-91616
01/09/2020, 9:43 PMwitty-crayon-22786
01/09/2020, 9:43 PMaloof-angle-91616
01/09/2020, 9:44 PMwitty-crayon-22786
01/09/2020, 9:49 PMwitty-crayon-22786
01/09/2020, 10:39 PMwitty-crayon-22786
01/09/2020, 10:40 PMhundreds-breakfast-49010
01/09/2020, 10:41 PMhundreds-breakfast-49010
01/09/2020, 10:42 PMhundreds-breakfast-49010
01/09/2020, 10:42 PMwitty-crayon-22786
01/09/2020, 10:43 PMcacheable
method/propertyhundreds-breakfast-49010
01/09/2020, 10:44 PM@console_rule
is currently poking that boolean on one of the rust data structures pertaining to nodes?hundreds-breakfast-49010
01/09/2020, 10:44 PMwitty-crayon-22786
01/09/2020, 10:44 PMNode
... going from "type" to Node
is a bit weirder.witty-crayon-22786
01/09/2020, 10:44 PMwitty-crayon-22786
01/09/2020, 10:44 PMhundreds-breakfast-49010
01/09/2020, 10:45 PMNode
trait has a method cacheable(&self) -> bool
witty-crayon-22786
01/09/2020, 10:45 PMwitty-crayon-22786
01/09/2020, 10:45 PMwitty-crayon-22786
01/09/2020, 10:46 PMwitty-crayon-22786
01/09/2020, 10:46 PMhundreds-breakfast-49010
01/09/2020, 10:46 PM@rule
implements this trait method in terms of whether cacheable
is set on a rule, which is controlled by @console_rule
vs @rule
witty-crayon-22786
01/09/2020, 10:47 PMNode
level cacheability is likely how things will stay in the graph. and that means that if you're going to go with the "uncachable type" semantics, you need to decide how that plays into whether a Node
is cacheable.witty-crayon-22786
01/09/2020, 10:47 PMhundreds-breakfast-49010
01/09/2020, 10:47 PMwitty-crayon-22786
01/09/2020, 10:48 PMhundreds-breakfast-49010
01/09/2020, 10:48 PMhundreds-breakfast-49010
01/09/2020, 10:48 PMwitty-crayon-22786
01/09/2020, 10:48 PMwitty-crayon-22786
01/09/2020, 10:49 PMwitty-crayon-22786
01/09/2020, 10:50 PMwitty-crayon-22786
01/09/2020, 10:51 PMhundreds-breakfast-49010
01/09/2020, 10:52 PMhundreds-breakfast-49010
01/09/2020, 10:52 PMwitty-crayon-22786
01/09/2020, 10:53 PMwitty-crayon-22786
01/09/2020, 10:54 PMhundreds-breakfast-49010
01/09/2020, 10:54 PMhundreds-breakfast-49010
01/09/2020, 10:54 PMhundreds-breakfast-49010
01/09/2020, 10:54 PMwitty-crayon-22786
01/09/2020, 10:55 PMhundreds-breakfast-49010
01/09/2020, 10:55 PMhundreds-breakfast-49010
01/09/2020, 10:55 PMwitty-crayon-22786
01/09/2020, 10:55 PMhundreds-breakfast-49010
01/09/2020, 10:55 PMhundreds-breakfast-49010
01/09/2020, 10:56 PMwitty-crayon-22786
01/09/2020, 10:56 PMhundreds-breakfast-49010
01/09/2020, 10:56 PMwitty-crayon-22786
01/09/2020, 10:56 PMhundreds-breakfast-49010
01/09/2020, 10:57 PMwitty-crayon-22786
01/09/2020, 10:57 PMhundreds-breakfast-49010
01/09/2020, 10:57 PMwitty-crayon-22786
01/09/2020, 10:57 PMwitty-crayon-22786
01/09/2020, 10:57 PMwitty-crayon-22786
01/09/2020, 10:57 PMwitty-crayon-22786
01/09/2020, 10:58 PMhundreds-breakfast-49010
01/09/2020, 10:58 PMhundreds-breakfast-49010
01/09/2020, 10:59 PMhundreds-breakfast-49010
01/09/2020, 10:59 PMwitty-crayon-22786
01/09/2020, 10:59 PMhundreds-breakfast-49010
01/09/2020, 11:01 PMhundreds-breakfast-49010
01/09/2020, 11:01 PMwitty-crayon-22786
01/09/2020, 11:02 PMhundreds-breakfast-49010
01/09/2020, 11:02 PMhundreds-breakfast-49010
01/09/2020, 11:02 PMhundreds-breakfast-49010
01/09/2020, 11:02 PMwitty-crayon-22786
01/09/2020, 11:04 PMwitty-crayon-22786
01/09/2020, 11:04 PMhundreds-breakfast-49010
01/09/2020, 11:05 PMhundreds-breakfast-49010
01/09/2020, 11:05 PMwitty-crayon-22786
01/09/2020, 11:05 PMwitty-crayon-22786
01/09/2020, 11:06 PMhundreds-breakfast-49010
01/09/2020, 11:06 PMhundreds-breakfast-49010
01/09/2020, 11:07 PMwitty-crayon-22786
01/09/2020, 11:07 PMhundreds-breakfast-49010
01/09/2020, 11:08 PM@rule
that requests a HttpResponse
from the engine, and the engine intrinsic that provides the HttpResponse
itself, right?witty-crayon-22786
01/09/2020, 11:08 PMwitty-crayon-22786
01/09/2020, 11:08 PMhundreds-breakfast-49010
01/09/2020, 11:09 PMwitty-crayon-22786
01/09/2020, 11:09 PMhundreds-breakfast-49010
01/09/2020, 11:09 PMwitty-crayon-22786
01/09/2020, 11:09 PMhundreds-breakfast-49010
01/09/2020, 11:09 PMhundreds-breakfast-49010
01/09/2020, 11:10 PMhundreds-breakfast-49010
01/09/2020, 11:10 PMhundreds-breakfast-49010
01/09/2020, 11:11 PMhundreds-breakfast-49010
01/09/2020, 11:11 PMhundreds-breakfast-49010
01/09/2020, 11:11 PMwitty-crayon-22786
01/09/2020, 11:13 PMhundreds-breakfast-49010
01/09/2020, 11:13 PMwitty-crayon-22786
01/09/2020, 11:14 PMhundreds-breakfast-49010
01/09/2020, 11:18 PMhundreds-breakfast-49010
01/09/2020, 11:18 PMwitty-crayon-22786
01/09/2020, 11:20 PMwitty-crayon-22786
01/09/2020, 11:21 PMwitty-crayon-22786
01/09/2020, 11:22 PMNode
is completing, it should see whether any of its dependencies are uncacheable, and if they are, it should go to the Completed
state with dirty: true
sethundreds-breakfast-49010
01/09/2020, 11:23 PMsrc/entry.rs
somewhre probablyhundreds-breakfast-49010
01/09/2020, 11:24 PMfn complete
on the Node
trait it looks likehundreds-breakfast-49010
01/09/2020, 11:25 PMEntry<N>
typewitty-crayon-22786
01/09/2020, 11:26 PM