Yeah, this sounds really nice. It also seems to let runners do "whatever they want" -- write to files, switch to some magic but small-scale state, etc.
On Thu, Mar 30, 2017 at 10:50 PM, Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > Hi Pablo, > > it sounds a good idea ! > > Regards > JB > > > On 03/31/2017 12:12 AM, Pablo Estrada wrote: > >> Hello all, >> >> BEAM-775 aims to remove Aggregators from the Java SDK. One of the blocking >> issues is BEAM-1148, porting PAssert away from using them. Let me >> summarize >> the issues that we should consider; and then propose a solution that seems >> reasonable: >> >> 1. We want the test Pipeline run to fail-fast in the case of a failed >> assertion. >> 2. We want the test Pipeline run to fail if not all of the assertions were >> executed. This catches bugs that would otherwise be hidden. >> 3. We want to provide a simple default implementation for PAssert. Metrics >> are not supported by all runners and when they are both of >> committed/attempted values may not be available.ut they seem like a >> reasonable default mechanism to count success/failure of assertions. >> >> With this in mind, I propose the following: >> 1. The mechanism to count/check assertions will be a composite PTransform >> that receives the results from the PAssert transforms. Test runners will >> be >> able to override the implementiation of this PTransform. >> >> * The current asserting DoFns in PAssert will go from being DoFn<ActualT, >> Void> to be DoFn<ActualT, SuccesOrFailure>, and pass the output >> SuccessOrFailure objects downstream to the checking >> PTransform<SuccessOrFailure, Void>. >> * This default PTransform<SuccessOrFailure, Void> will use metrics to >> count >> successes, and fail immediately on failures (after incrementing the >> failure >> counter). >> >> 2. A test runner can override the default implementations of this >> PTransform using the graph surgery API. >> >> 3. Every TestXRunner implements its own PAssert verification, so we may >> need to change that individually - though these changes are not likely to >> be very significant for the existing runners. >> >> What are your thoughts? >> If everyone is okay with this proposed idea, I will go ahead and implement >> it. >> Best >> -P. >> >> > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >