-
Notifications
You must be signed in to change notification settings - Fork 384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
raidboss: Add support for netregexes in timelines #5939
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this! Overall, I think the implementation and refactoring looks great. I have a couple of comments about some edge cases around translations and tests, but that's it.
Also cc @JLGarber here too for timeline thoughts |
Thanks! I think I want to give this a little bit more testing and I want to give this a little bit of time for feedback from anybody else too before merging it, but overall this looks good to me and I think we should be able to auto-convert most things to this format. |
Nothing to add here, this looks great. I'll look at updating |
A bunch of comments here. Sorry about the conflict, it's due to the moved regex block and is just from #5940 Am I right in understanding the code that we're matching all net/parsed log lines against all net/parsed regexes? Do you think it'd be worth separating out "this is a netregex" and "this is a regex" and only matching particular lines against particular ones? It'd certainly prevent duplicating the amount of matching work going on. One question I have is if you think it'd be worth supporting bareword keys (via an eval -> json stringify -> json parse), e.g. Finally, I ran into some timeline test issues. I did a search and replace on (1) do that replace If I do add a |
That's fine, I'll resolve it like I normally do (with a rebase/force-push) before I continue any other changes on this PR.
I'm assuming by this comment you're referring to this code, which just redirects I went for simplicity on this PR, rather than also trying to de-duplicate logic in It probably makes sense to make that a high-priority followup PR maybe, unless you're fine with adding a bunch of extra code to this PR?
I'm fine with handling this either way, it makes no difference to me, though a comment detailing the "why" for that sort of process would be required I think.
I'll investigate this. I didn't think to touch |
Yeah, that's exactly it.
I'm fine with extra code in this PR. I don't think you need to deduplicate What I'm really asking for is having a separate |
Also as a clarification, this is more of a style question than an implementation one (maybe there's a better way). This definitely is more of a follow-up sort of fix either way. I think really it's test_timeline and separating out the log handling that are the two pieces that I want to land with this PR. |
Co-authored-by: Adrienne Walker <[email protected]>
Fix issues with test_timeline
Rebased and force-pushed. I think this addresses all the outstanding issues, but please verify because I did this while juggling 4 other things. There were two issues in test_timeline, the fixes should be pretty obvious. Added more TODOs to address what was discussed here. Opted for a more simple splitting of syncs rather than a more thorough one for simplicity. Maybe someday I'll rewrite the entire Timeline codebase so it's less... dated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all these changes. Looks good to me, and test_timeline.ts
seems to work with both a file and fflogs with these fixes.
Yeahhhhh, there's still a good bit of 2017/2018 code in there for sure. |
Co-authored-by: Adrienne Walker <[email protected]>
) Closes #5145 Obviously needs plenty of testing etc. Example added to `test.txt` timeline, can be triggered with `/e testNetRegexTimeline`. Took the opportunity to refactor the `TimelineParser.parse` function to extract out some of the line matching, so there wasn't a need for a 30+-space-indented set of lines, and to allow reusing some of the logic for the rest of the line matching after the regex. 7b2adb3
) Closes #5145 Obviously needs plenty of testing etc. Example added to `test.txt` timeline, can be triggered with `/e testNetRegexTimeline`. Took the opportunity to refactor the `TimelineParser.parse` function to extract out some of the line matching, so there wasn't a need for a 30+-space-indented set of lines, and to allow reusing some of the logic for the rest of the line matching after the regex. 7b2adb3
Follow-up to #5939. This translates each parameter (only if needed) rather than the entire sync. It also prints out only the untranslated parameters in the find missing translations script / coverage report. This also improves the output of the translated timeline utility to use translated parameters and fixes a bug where it wouldn't have output any translated sync lines at all for netregex lines.
Follow-up to #5939. This translates each parameter (only if needed) rather than the entire sync. It also prints out only the untranslated parameters in the find missing translations script / coverage report. This also improves the output of the translated timeline utility to use translated parameters and fixes a bug where it wouldn't have output any translated sync lines at all for netregex lines.
…5962) Follow-up to #5939. This translates each parameter (only if needed) rather than the entire sync. It also prints out only the untranslated parameters in the find missing translations script / coverage report. This also improves the output of the translated timeline utility to use translated parameters and fixes a bug where it wouldn't have output any translated sync lines at all for netregex lines. 86f5ae1
Rather than eval (which is probably TOO lenient) switch to using json5 instead of json parsing. This is a followup to a TODO from #5939>
Rather than eval (which is probably TOO lenient) switch to using json5 instead of json parsing. This is a followup to a TODO from #5939.
This is a follow-up to #5962, which itself is related to #5939. I forgot that `find_missing_timeline_translations.ts` is only half of the testing picture and `test_timeline.ts` needed to be updated too. This was found by trying to test more lines and having test timeline complain that InCombat regex lines were not translated.
This is a follow-up to #5962, which itself is related to #5939. I forgot that `find_missing_timeline_translations.ts` is only half of the testing picture and `test_timeline.ts` needed to be updated too. This was found by trying to test more lines and having test timeline complain that InCombat regex lines were not translated.
…5968) This is a follow-up to #5962, which itself is related to #5939. I forgot that `find_missing_timeline_translations.ts` is only half of the testing picture and `test_timeline.ts` needed to be updated too. This was found by trying to test more lines and having test timeline complain that InCombat regex lines were not translated. 6a3869f
Closes #5145
Obviously needs plenty of testing etc.
Example added to
test.txt
timeline, can be triggered with/e testNetRegexTimeline
.Took the opportunity to refactor the
TimelineParser.parse
function to extract out some of the line matching, so there wasn't a need for a 30+-space-indented set of lines, and to allow reusing some of the logic for the rest of the line matching after the regex.