unsubscribe -----Original Message----- From: Tibor Meller [mailto:tibor.mel...@gmail.com] Sent: Monday, July 1, 2019 11:07 AM To: dev@metron.apache.org Subject: Re: [DISCUSS] Parser Aggregation in Management UI
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/beeb4cfddfca7958a22ab926f72f52f46 > a33c42edce714112df9a2da@%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/06a59ea42e8d9a9dea5f90aab4011e444 > 34555f8b7f3cf21297c7c87@%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 > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > >>> > > > > > > > >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >> > > > > > >