HI, Can we continue the review process with the next PR in the line? https://github.com/apache/metron/pull/1414
First three PR get merged to the feature branch by Ryan. Thanks for that! On Tue, Jun 11, 2019 at 10:20 PM Michael Miklavcic < michael.miklav...@gmail.com> wrote: > Agreed Ryan, I know this is a bit of a cart before the horse scenario. > > This isn't the most desirable of circumstances, and we're doing our best to > accommodate the contribution because it's a good feature to have, and the > work so far looks pretty solid. We have a bit more flexibility in a feature > branch than we would if this was (as it was originally) submitted against > master - I think the most important thing here is we do > architecture/code/test review on an individual PR basis. They've split up > this work pretty fine-grained, so I don't think it should be too hard for > us to work through. When we get through PRs 1-14 from a code review > perspective, we'll have to do a run of manual acceptance tests on the final > product before accepting the feature branch into master. Anything that > appears to be broken or missing will simply need another PR to address it, > and we can get it in. I actually don't think this should be too bad. Again, > thank you to Shane, Tibor, and Tamas for breaking this down. Just be > careful in the future when you're collaborating on something of this size > that you either A) split off the work in fully functioning PRs, e.g. > refactoring work or library changes can very easily be submitted against > master without breaking anything or B) start with a feature branch and > discuss thread that lays out your plan for delivering the feature in that > FB. > > Please review Apache's guide on consensus building, as well - > http://community.apache.org/committers/consensusBuilding.html > > On Tue, Jun 11, 2019 at 12:01 PM Ryan Merriman <merrim...@gmail.com> > wrote: > > > "We planning to add the changes to the latest PR as additional commits to > > avoid impacting the PR sequence. We will refer to the source PR in the > > commit message of the fix. Also adding a link to the comment section of > the > > source PR of the change request to the fixing commit to make them > > connected." > > > > I don't think this is going to work. If changes are requested and > applied > > in a different PR, how would you test the original PR? What would you do > > if there were merge conflicts introduced between the current and final > PR? > > What's the point of even having any PRs before the final one if they > won't > > get committed or changed? I don't see any way to avoid having to > propagate > > changes through all subsequent PRs. > > > > On Wed, May 29, 2019 at 7:03 AM Tibor Meller <tibor.mel...@gmail.com> > > wrote: > > > > > Hi all, > > > > > > *We still need some volunteer reviewers for this feature.* All > individual > > > PR is under 1000 line of changes except one and it is due to an > > > autogenerated package.lock.json file. > > > Just a heads up: parser aggregation by default turned on for bro, snort > > and > > > yarn parser on full dev. Without this changeset, full dev is broken. > > > > > > > > > https://lists.apache.org/thread.html/beeb4cfddfca7958a22ab926f72f52f46a33c42edce714112df9a2da@%3Cdev.metron.apache.org%3E > > > > > > > > > > > > On Fri, May 24, 2019 at 3:20 PM Tibor Meller <tibor.mel...@gmail.com> > > > wrote: > > > > > > > Please find below the list of the PRs we opened for Parser > Aggregation. > > > > With Shane, Tamas we tried to provide as much information as possible > > to > > > > make the reviewing process easier. > > > > Please keep that in mind these PRs are not against muster but a > Parser > > > > Aggregation feature branch. > > > > If you like to read more about the process we followed with these PRs > > > > please read the previous three message in this thread. > > > > > > > > PR#1 METRON-2114: [UI] Moving components to sensor parser module > > > > <https://github.com/apache/metron/pull/1410> > > > > PR#2 METRON-2116: [UI] Removing redundant AppConfigService > > > > <https://github.com/apache/metron/pull/1411> > > > > PR#3 METRON-2117: [UI] Aligning models to grouping feature > > > > <https://github.com/apache/metron/pull/1412> > > > > PR#4 METRON-2115: [UI] Aligning UI to the parser aggregation AP > > > > <https://github.com/apache/metron/pull/1414> > > > > PR#5 METRON-2122: [UI] Fixing early app config access issue > > > > <https://github.com/apache/metron/pull/1415> > > > > PR#6 METRON-2124: [UI] Move status information and start/stop to the > > > > Aggregate level <https://github.com/apache/metron/pull/1418> > > > > PR#7 METRON-2125: [UI] Making changes visible in the parser list by > > > > marking changed items <https://github.com/apache/metron/pull/1422> > > > > PR#8 METRON-2131: Add NgRx and related dependencies > > > > <https://github.com/apache/metron/pull/1423> > > > > PR#9 METRON-2133: Add NgRx effects to communicate with the server > > > > <https://github.com/apache/metron/pull/1424> > > > > PR#10 METRON-2134: Add NgRx reducers to perform parser and group > > changes > > > > in the store <https://github.com/apache/metron/pull/1425> > > > > PR#11 METRON-2135: Add NgRx actions to trigger state changes > > > > <https://github.com/apache/metron/pull/1426> > > > > PR#12 METRON-2136: Add parser aggregation sidebar > > > > <https://github.com/apache/metron/pull/1427> > > > > PR#13 METRON-2137: Implement drag and drop mechanism and wire NgRx > > > > <https://github.com/apache/metron/pull/1428> > > > > PR#14 METRON-2138: Code clean up > > > > <https://github.com/apache/metron/pull/1429> > > > > PR#15 METRON-2139: Refactoring sensor-parser-config.component and > wire > > > > NgRx <https://github.com/apache/metron/pull/1430> > > > > > > > > Thanks, > > > > Tibor > > > > > > > > > > > > On Thu, May 23, 2019 at 11:45 AM Tibor Meller < > tibor.mel...@gmail.com> > > > > wrote: > > > > > > > >> Yes, am expecting that some change request will rase due to the > > review. > > > >> We planning to add the changes to the latest PR as additional > commits > > to > > > >> avoid impacting the PR sequence. We will refer to the source PR in > the > > > >> commit message of the fix. Also adding a link to the comment section > > of > > > the > > > >> source PR of the change request to the fixing commit to make them > > > connected. > > > >> > > > >> On Wed, May 22, 2019 at 5:49 PM Michael Miklavcic < > > > >> michael.miklav...@gmail.com> wrote: > > > >> > > > >>> Tibor, that sounds reasonable to me. If PR #1 ends up requiring > code > > > >>> changes, will you guys just percolate those up through the > remaining > > k > > > >>> PRs > > > >>> in order, or just the final PR? I'm wondering how this works in > > > reference > > > >>> to your last point in #5 about rebasing. > > > >>> > > > >>> On Wed, May 22, 2019 at 8:47 AM Tibor Meller < > tibor.mel...@gmail.com > > > > > > >>> wrote: > > > >>> > > > >>> > I would like to describe quickly *our approach to breaking down > > > Parser > > > >>> > Aggregation PR for smaller chunks* > > > >>> > > > > >>> > *1. we squashed the commits in the original development branch* > > > >>> > - when we started to open smaller PRs from the commits from the > > > >>> original > > > >>> > branch, we found ourself opening PRs out of historical states of > > the > > > >>> code > > > >>> > instead of the final one > > > >>> > - none of those states of development are worth (or make sense) > to > > be > > > >>> > reviewed (initial phases of development are included in the > > original > > > >>> commit > > > >>> > history, multiple iterations of refactoring, etc.) > > > >>> > - while the actual development history was irrelevant, the > > > attribution > > > >>> > aspect of it was still important > > > >>> > *2. we divided** the changes by the original authors* > > > >>> > - the original contributors were sardell, ruffle1986 and tiborm > > > >>> > - we isolated the changes that belong to each individual > > contributor > > > >>> > *3. each of us identified smaller but belonging changesets * > > > >>> > - with this, we ended up opening 5 PRs from tiborm, 3 from > sardell > > > and > > > >>> 6 > > > >>> > from ruffle1986 > > > >>> > - each of these are smaller than 500 lines of changes, which > makes > > > the > > > >>> task > > > >>> > of reviewing easier > > > >>> > - they have their own context and purpose described by the PR and > > the > > > >>> > related Jira ticket > > > >>> > *4. Each PR introduces a single new commit which is meant to be > > > >>> reviewed* > > > >>> > - with this we were able to open PRs on top of each others work, > > but > > > >>> the > > > >>> > reviewer is still able to identify what changes were introduced > and > > > >>> > described by the pr simply by focusing on the last commit > > > >>> > - the commit introduced by the PR has the same commit message as > > the > > > >>> title > > > >>> > of the PR to make it easier to find > > > >>> > *5. Only the last PR is meant to be merged into the feature > branch* > > > >>> > - the last PR also introduces a single new commit to being > reviewed > > > >>> > - this contains all the commits from the previous PRs that belong > > to > > > >>> parser > > > >>> > aggregation > > > >>> > - it builds fine in Travis > > > >>> > - it's fully functional and ready to being tested against full > dev > > > >>> > - If we only merge the last PR, we don't have to rebase and > > recreate > > > >>> all of > > > >>> > our PRs due to merge conflicts that will result from to > conflicting > > > >>> > histories (which is common in feature branch work) > > > >>> > > > > >>> > Once all the Pull Requests are open, I will submit a list of all > of > > > >>> them to > > > >>> > this discussion thread. > > > >>> > > > > >>> > On Wed, May 8, 2019 at 3:58 PM Otto Fowler < > > ottobackwa...@gmail.com> > > > >>> > wrote: > > > >>> > > > > >>> > > You need to be a committer, that is all I think. > > > >>> > > I would not use the github UI for it though, I do it through > the > > > cli > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > On May 8, 2019 at 09:45:24, Michael Miklavcic ( > > > >>> > michael.miklav...@gmail.com > > > >>> > > ) > > > >>> > > wrote: > > > >>> > > > > > >>> > > Not that I'm aware of. Nick and Otto, you've created them > before, > > > >>> did you > > > >>> > > need any special perms? > > > >>> > > > > > >>> > > On Wed, May 8, 2019 at 3:57 AM Shane Ardell < > > > >>> shane.m.ard...@gmail.com> > > > >>> > > wrote: > > > >>> > > > > > >>> > > > This morning, we started to break down our work as Michael > > > >>> suggested in > > > >>> > > > this thread. However, it looks like I don't have permission > to > > > >>> create a > > > >>> > > new > > > >>> > > > branch in the GitHub UI or push a new branch to the > > apache/metron > > > >>> repo. > > > >>> > > Is > > > >>> > > > this action restricted to PMC members only? > > > >>> > > > > > > >>> > > > Shane > > > >>> > > > > > > >>> > > > On Wed, May 8, 2019 at 9:06 AM Tamás Fodor < > > > ftamas.m...@gmail.com> > > > >>> > > wrote: > > > >>> > > > > > > >>> > > > > Here's the process we've gone through in order to implement > > the > > > >>> > > feature. > > > >>> > > > > > > > >>> > > > > At the beginning we had some bootstrap work like creating a > > > mock > > > >>> API > > > >>> > > > > (written in NodeJS) because we were a few steps ahead the > > > backend > > > >>> > part. > > > >>> > > > But > > > >>> > > > > this is in a totally different repository so it doesn't > > really > > > >>> count. > > > >>> > > We > > > >>> > > > > also had to wire NgRX, our chosen 3rd party that supports > the > > > >>> flux > > > >>> > flow > > > >>> > > > to > > > >>> > > > > get a better state management. When we were ready to kick > off > > > >>> > > > implementing > > > >>> > > > > the business logic in, we splited up the work by > subfeatures > > > like > > > >>> > drag > > > >>> > > > and > > > >>> > > > > dropping table rows. At this point, we created a POC > without > > > NgRX > > > >>> > just > > > >>> > > to > > > >>> > > > > let you have the feeling of how it works in real life. > Later > > > on, > > > >>> > after > > > >>> > > > > introducing NgRX, we had to refactor it a little bit > > obviously > > > to > > > >>> > make > > > >>> > > it > > > >>> > > > > compatible with NgRX. There were other subfeatures like > > > creating > > > >>> and > > > >>> > > > > editing groups in a floating pane on the right side of the > > > >>> window. > > > >>> > > > > When the real backend API was ready we made the necessary > > > >>> changes and > > > >>> > > > > tested whether it worked how it was expected. There were a > > few > > > >>> > > difference > > > >>> > > > > between how we originally planned the API and the current > > > >>> > > implementation > > > >>> > > > so > > > >>> > > > > we had to adapt it accordingly. While we were implementing > > the > > > >>> > > features, > > > >>> > > > we > > > >>> > > > > wrote the unit tests simultaneously. The latest task on the > > > >>> feature > > > >>> > was > > > >>> > > > > restricting the user from aggregating parsers together. > > > >>> > > > > > > > >>> > > > > As a first iteration, we've decided to put the restriction > in > > > >>> because > > > >>> > > it > > > >>> > > > > requires a bigger effort on the backend to deal with that. > In > > > my > > > >>> > > opinion, > > > >>> > > > > we should get rid of the restriction because it's not > > intuitive > > > >>> and > > > >>> > > very > > > >>> > > > > inconvenient. In my opinion, we should let the users to > > > >>> aggregate the > > > >>> > > > > running parsers together and do the job to handle this edge > > > case > > > >>> on > > > >>> > the > > > >>> > > > > backend accordingly. > > > >>> > > > > > > > >>> > > > > What do you think, guys? > > > >>> > > > > > > > >>> > > > > Hope this helps. > > > >>> > > > > > > > >>> > > > > Tamas > > > >>> > > > > > > > >>> > > > > On Tue, May 7, 2019 at 4:34 PM Michael Miklavcic < > > > >>> > > > > michael.miklav...@gmail.com> wrote: > > > >>> > > > > > > > >>> > > > > > This was my expectation as well. > > > >>> > > > > > > > > >>> > > > > > Shane, Tibor, Tamas - how did you go about breaking this > > down > > > >>> into > > > >>> > > > chunks > > > >>> > > > > > and/or microchunks when you collaborated offline? As Nick > > > >>> > mentioned, > > > >>> > > > you > > > >>> > > > > > obviously split up work and shared it amongst yourselves. > > > Some > > > >>> > > > > explanation > > > >>> > > > > > around this process would be helpful for reviewers as > well. > > > We > > > >>> > might > > > >>> > > be > > > >>> > > > > > able to provide better guidance and examples to future > > > >>> contributors > > > >>> > > as > > > >>> > > > > > well. > > > >>> > > > > > > > > >>> > > > > > I talked a little bit with Shane about this offline last > > > week. > > > >>> It > > > >>> > > looks > > > >>> > > > > > like you guys effectively ran a local feature branch. > > > >>> Replicating > > > >>> > > that > > > >>> > > > > > process in a feature branch in Apache is probably what > you > > > guys > > > >>> > > should > > > >>> > > > > > be doing for a change this size. We don't have hard > limits > > on > > > >>> line > > > >>> > > > change > > > >>> > > > > > size, but in the past it's been somewhere around 2k-3k > > lines > > > >>> and > > > >>> > > above > > > >>> > > > > > being the tipping point for discussing a feature branch. > > > >>> Strictly > > > >>> > > > > speaking, > > > >>> > > > > > line quantity alone is not the only metric, but it's > > relevant > > > >>> here. > > > >>> > > If > > > >>> > > > > you > > > >>> > > > > > want to make smaller incremental changes locally, there's > > > >>> nothing > > > >>> > to > > > >>> > > > keep > > > >>> > > > > > you from doing that - I would only advise that you > consider > > > >>> > squashing > > > >>> > > > > those > > > >>> > > > > > commits (just ask if you're unclear about how to handle > > that) > > > >>> into > > > >>> > a > > > >>> > > > > single > > > >>> > > > > > larger commit/chunk when you're ready to publish them as > a > > > >>> chunk to > > > >>> > > the > > > >>> > > > > > public feature branch. So it would look something like > > this: > > > >>> > > > > > > > > >>> > > > > > Commits by person locally > > > >>> > > > > > Shane: 1,2,3 -> squash as A > > > >>> > > > > > Tibor: 4,5,6 -> squash as B > > > >>> > > > > > Tamas: 7,8,9 -> squash as C > > > >>> > > > > > > > > >>> > > > > > Commits by person in Apache > > > >>> > > > > > Shane: A > > > >>> > > > > > Tibor: B > > > >>> > > > > > Tamas: C > > > >>> > > > > > > > > >>> > > > > > We need to maintain a record of attribution. Your real > > > >>> workflow may > > > >>> > > not > > > >>> > > > > be > > > >>> > > > > > that cleanly delineated, but you can choose how you want > to > > > >>> squash > > > >>> > in > > > >>> > > > > those > > > >>> > > > > > cases. Even in public collaboration, there are plenty of > > > cases > > > >>> > where > > > >>> > > > > folks > > > >>> > > > > > submit PRs against PRs, abstain from accepting > attribution, > > > >>> and it > > > >>> > > all > > > >>> > > > > gets > > > >>> > > > > > squashed down into one person's final PR commit. There > are > > > many > > > >>> > > > options. > > > >>> > > > > > > > > >>> > > > > > Hope this helps. > > > >>> > > > > > > > > >>> > > > > > Best, > > > >>> > > > > > Mike > > > >>> > > > > > > > > >>> > > > > > On Mon, May 6, 2019 at 8:19 AM Nick Allen < > > > n...@nickallen.org> > > > >>> > > wrote: > > > >>> > > > > > > > > >>> > > > > > > Have you considered creating a feature branch for the > > > effort? > > > >>> > This > > > >>> > > > > would > > > >>> > > > > > > allow you to break the effort into chunks, where the > > result > > > >>> of > > > >>> > each > > > >>> > > > PR > > > >>> > > > > > may > > > >>> > > > > > > not be a fully working "master-ready" result. > > > >>> > > > > > > > > > >>> > > > > > > I am sure you guys tackled the work in chunks when > > > >>> developing it, > > > >>> > > so > > > >>> > > > > > > consider just replaying those chunks onto the feature > > > branch > > > >>> as > > > >>> > > > > separate > > > >>> > > > > > > PRs. > > > >>> > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > On Mon, May 6, 2019 at 5:24 AM Tibor Meller < > > > >>> > > tibor.mel...@gmail.com> > > > >>> > > > > > >>> > > > > > > wrote: > > > >>> > > > > > > > > > >>> > > > > > > > I wondered on the weekend how we could split that PR > to > > > >>> smaller > > > >>> > > > > chunks. > > > >>> > > > > > > > That PR is a result of almost 2 months of development > > > and I > > > >>> > don't > > > >>> > > > see > > > >>> > > > > > how > > > >>> > > > > > > > to split that to multiple WORKING parts. It is as it > > is a > > > >>> whole > > > >>> > > > > working > > > >>> > > > > > > > feature. If we split it by packages or files we could > > > >>> provide > > > >>> > > > smaller > > > >>> > > > > > > > non-functional PR's, but can end up having a broken > > > >>> Management > > > >>> > UI > > > >>> > > > > after > > > >>> > > > > > > > having the 1st PR part merged into master. I don't > > think > > > >>> that > > > >>> > > would > > > >>> > > > > be > > > >>> > > > > > > > acceptable by the community (or even by me) so I > would > > > >>> like to > > > >>> > > > > suggest > > > >>> > > > > > > two > > > >>> > > > > > > > other option to help review PR#1360. > > > >>> > > > > > > > > > > >>> > > > > > > > #1 We could extend that PR with our own author > comments > > > in > > > >>> > > Github. > > > >>> > > > > That > > > >>> > > > > > > > would help following which code part belongs to where > > and > > > >>> why > > > >>> > it > > > >>> > > > was > > > >>> > > > > > > > necessary. > > > >>> > > > > > > > #2 We can schedule an interactive code walkthrough > call > > > >>> with > > > >>> > the > > > >>> > > > ones > > > >>> > > > > > who > > > >>> > > > > > > > interested in reviewing or the particular changeset. > > > >>> > > > > > > > > > > >>> > > > > > > > Please share your thoughts on this! Which version > would > > > >>> support > > > >>> > > you > > > >>> > > > > the > > > >>> > > > > > > > best? Or if you have any other idea let us know. > > > >>> > > > > > > > > > > >>> > > > > > > > PS: I think the size of our PR's depends on how small > > > >>> > > independently > > > >>> > > > > > > > deliverable changesets we can identify before we > > starting > > > >>> to > > > >>> > > > > implement > > > >>> > > > > > a > > > >>> > > > > > > > relatively big new feature. Unfortunately, we missed > to > > > do > > > >>> that > > > >>> > > > with > > > >>> > > > > > this > > > >>> > > > > > > > feature. > > > >>> > > > > > > > > > > >>> > > > > > > > On Fri, May 3, 2019 at 1:49 PM Shane Ardell < > > > >>> > > > > shane.m.ard...@gmail.com> > > > >>> > > > > > > > wrote: > > > >>> > > > > > > > > > > >>> > > > > > > > > NgRx was only used for the aggregation feature and > > > >>> doesn't go > > > >>> > > > > beyond > > > >>> > > > > > > > that. > > > >>> > > > > > > > > I think the way I worded that sentence may have > > caused > > > >>> > > > confusion. I > > > >>> > > > > > > just > > > >>> > > > > > > > > meant we use it to manage more pieces of state > within > > > the > > > >>> > > > > aggregation > > > >>> > > > > > > > > feature than just previous and current state of > > grouped > > > >>> > > parsers. > > > >>> > > > > > > > > > > > >>> > > > > > > > > On Fri, May 3, 2019 at 1:32 AM Michael Miklavcic < > > > >>> > > > > > > > > michael.miklav...@gmail.com> wrote: > > > >>> > > > > > > > > > > > >>> > > > > > > > > > Shane, thanks for putting this together. The > > updates > > > >>> on the > > > >>> > > > Jira > > > >>> > > > > > are > > > >>> > > > > > > > > useful > > > >>> > > > > > > > > > as well. > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > (we used it for more than just that in this > > > feature, > > > >>> but > > > >>> > > that > > > >>> > > > > was > > > >>> > > > > > > the > > > >>> > > > > > > > > > initial reasoning) > > > >>> > > > > > > > > > What are you using NgRx for in the submitted work > > > that > > > >>> goes > > > >>> > > > > beyond > > > >>> > > > > > > the > > > >>> > > > > > > > > > aggregation feature? > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > On Thu, May 2, 2019 at 12:22 PM Shane Ardell < > > > >>> > > > > > > shane.m.ard...@gmail.com > > > >>> > > > > > > > > > > > >>> > > > > > > > > > wrote: > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > Hello everyone, > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > In response to discussions in the 0.7.1 release > > > >>> thread, I > > > >>> > > > > wanted > > > >>> > > > > > to > > > >>> > > > > > > > > > start a > > > >>> > > > > > > > > > > thread regarding the parser aggregation work > for > > > the > > > >>> > > > Management > > > >>> > > > > > UI. > > > >>> > > > > > > > For > > > >>> > > > > > > > > > > anyone who has not already read and tested the > PR > > > >>> > locally, > > > >>> > > > I've > > > >>> > > > > > > > added a > > > >>> > > > > > > > > > > detailed description of what we did and why to > > the > > > >>> JIRA > > > >>> > > > ticket > > > >>> > > > > > > here: > > > >>> > > > > > > > > > > > > https://issues.apache.org/jira/browse/METRON-1856 > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > I'm wondering what the community thinks about > > what > > > >>> we've > > > >>> > > > built > > > >>> > > > > > thus > > > >>> > > > > > > > > far. > > > >>> > > > > > > > > > Do > > > >>> > > > > > > > > > > you see anything missing that must be part of > > this > > > >>> new > > > >>> > > > feature > > > >>> > > > > in > > > >>> > > > > > > the > > > >>> > > > > > > > > UI? > > > >>> > > > > > > > > > > Are there any strong objections to how we > > > >>> implemented it? > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > I’m also looking to see if anyone has any > > thoughts > > > >>> on how > > > >>> > > we > > > >>> > > > > can > > > >>> > > > > > > > > possibly > > > >>> > > > > > > > > > > simplify this PR. Right now it's pretty big, > and > > > >>> there > > > >>> > are > > > >>> > > a > > > >>> > > > > lot > > > >>> > > > > > of > > > >>> > > > > > > > > > commits > > > >>> > > > > > > > > > > to parse through, but I'm not sure how we could > > > break > > > >>> > this > > > >>> > > > work > > > >>> > > > > > out > > > >>> > > > > > > > > into > > > >>> > > > > > > > > > > separate, smaller PRs opened against master. We > > > >>> could try > > > >>> > > to > > > >>> > > > > > > > > cherry-pick > > > >>> > > > > > > > > > > the commits into smaller PRs and then merge > them > > > >>> into a > > > >>> > > > feature > > > >>> > > > > > > > branch, > > > >>> > > > > > > > > > but > > > >>> > > > > > > > > > > I'm not sure if that's worth the effort since > > that > > > >>> will > > > >>> > > only > > > >>> > > > > > reduce > > > >>> > > > > > > > the > > > >>> > > > > > > > > > > number commits to review, not the lines > changed. > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > As an aside, I also want to give a little > > > background > > > >>> into > > > >>> > > the > > > >>> > > > > > > > > > introduction > > > >>> > > > > > > > > > > of NgRx in this PR. To give a little background > > on > > > >>> why we > > > >>> > > > chose > > > >>> > > > > > to > > > >>> > > > > > > do > > > >>> > > > > > > > > > this, > > > >>> > > > > > > > > > > you can refer to the discussion thread here: > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > >>> > > > > > > > >>> > > > > > > >>> > > > > > >>> > > > > > >>> > > > > >>> > > > > > > https://lists.apache.org/thread.html/06a59ea42e8d9a9dea5f90aab4011e44434555f8b7f3cf21297c7c87@%3Cdev.metron.apache.org%3E > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > We previously discussed introducing a better > way > > to > > > >>> > manage > > > >>> > > > > > > > application > > > >>> > > > > > > > > > > state in both UIs in that thread. It was > decided > > > that > > > >>> > NgRx > > > >>> > > > was > > > >>> > > > > a > > > >>> > > > > > > > great > > > >>> > > > > > > > > > tool > > > >>> > > > > > > > > > > for many reasons, one of them being that we can > > > >>> piecemeal > > > >>> > > it > > > >>> > > > > into > > > >>> > > > > > > the > > > >>> > > > > > > > > > > application rather than doing a huge rewrite of > > all > > > >>> the > > > >>> > > > > > application > > > >>> > > > > > > > > state > > > >>> > > > > > > > > > > at once. The contributors in this PR (myself > > > >>> included) > > > >>> > > > decided > > > >>> > > > > > this > > > >>> > > > > > > > > would > > > >>> > > > > > > > > > > be a perfect opportunity to introduce NgRx into > > the > > > >>> > > > Management > > > >>> > > > > UI > > > >>> > > > > > > > since > > > >>> > > > > > > > > > we > > > >>> > > > > > > > > > > need to manage the previous and current state > > with > > > >>> the > > > >>> > > > grouping > > > >>> > > > > > > > feature > > > >>> > > > > > > > > > so > > > >>> > > > > > > > > > > that users can undo the changes they've made > (we > > > >>> used it > > > >>> > > for > > > >>> > > > > more > > > >>> > > > > > > > than > > > >>> > > > > > > > > > just > > > >>> > > > > > > > > > > that in this feature, but that was the initial > > > >>> > reasoning). > > > >>> > > In > > > >>> > > > > > > > addition, > > > >>> > > > > > > > > > we > > > >>> > > > > > > > > > > greatly benefited from this when it came time > to > > > >>> debug > > > >>> > our > > > >>> > > > work > > > >>> > > > > > in > > > >>> > > > > > > > the > > > >>> > > > > > > > > UI > > > >>> > > > > > > > > > > (the discussion in the above thread link goes a > > > >>> little > > > >>> > more > > > >>> > > > > into > > > >>> > > > > > > the > > > >>> > > > > > > > > > > advantages of debugging with NgRx and > DevTools). > > > >>> Removing > > > >>> > > > NgRx > > > >>> > > > > > from > > > >>> > > > > > > > > this > > > >>> > > > > > > > > > > work would reduce the numbers of lines changed > > > >>> slightly, > > > >>> > > but > > > >>> > > > it > > > >>> > > > > > > would > > > >>> > > > > > > > > > still > > > >>> > > > > > > > > > > be a big PR and a lot of that code would just > > move > > > >>> to the > > > >>> > > > > > component > > > >>> > > > > > > > or > > > >>> > > > > > > > > > > service level in the Angular application. > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > Shane > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > >>> > > > > > > > >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >> > > > > > >