Github user bdrillard commented on the issue:

    https://github.com/apache/spark/pull/16648
  
    @kiszk We could do that, definitely. Changes in Feature 1 (splitting excess 
code among classes) are limited to the `CodeGeneration` class, and the few 
`Generate...` classes included with CodeGeneration. The changes of Feature 2 
begin in the `CodeGeneration` class, but then impact any class that calls 
`addMutableState`. 
    
    I can either do two separate PRs, or I can refactor the commit history such 
that there are two commits that can be viewed separately in this same PR, one 
for each feature. 
    
    The only reason I'd hesitate to open two separate PRs (and so try to get 
the commit history to separate the two major features as two commits), is that 
code generation and state proliferation are tightly coupled: the test case that 
I include, 
[SPARK-18016](https://github.com/apache/spark/pull/16648/files#diff-c7f041fda7fd9aa1a5225f86bab4b1b0R69),
 cannot be resolved with just splitting into nested sub-classes or by 
compacting mutable state -- both features are required. Any class that would 
require sub-classes would probably also require mutable state compaction (and 
vice-versa). 
    
    So I'd suggest the strategy where we have a commit for Feature 1 and a 
commit for Feature 2. That way in the PR we can choose to only view one commit 
at a time during review, but the code is still tested against the more 
representative test case. Would that be alright? 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to