wiki:FixingWebKitDevelopmentAnnoyances

Version 1 (modified by Jon Davis, 5 years ago) (diff)

Notes from 2018 WebKit Contributors Meeting

Fixing WebKit Development Annoyances

by Simon Fraser

  • webkit-patch etc
    • Run from any directory
    • Support for webkit-patch upload —git-index
    • prepare-Changelog should work from any directory
  • IRC Bots
    • > webkitbot: rollo0ut 235772: doesn’t build on non-cocoa platforms
    • < ‘webkitbot rollout’ failed with “Exception executing command: ‘ascii’ codec can’t decode byte…
  • Bugzilla
    • Bulk-obsolete attachments (e.g. all the layout test failure archives)
    • Bulk marking of comments as obsolete
    • Show me a conflict one more time…
  • Debugging
    • Every thing should be luggable
      • WebCore: TextSTream& operator<<(TextStream& ts, …)
      • JSC: void dump(PrintStream&) const
    • LOG_WITHSTREAM(Channel, stream << … );
    • Can’t WTFLogAlways() with a stream
    • More log channels!
      • (“I never know how to enable the log lines!”)
      • Need documentation on enabling login?
      • Make it easier to enable log channels and document them
  • Debugging with lldb
    • We have formatters (with unit tests)
    • More lldb formatters please:
      • unique_ptr<>, Ref<>, RefPtr<>
      • HashMap<>/HashSet<>
    • Need a setup-my-machine-for-development, does setup that gives you all the debugging tools for development
  • Debugging Tests
    • Can’t runtime-enable log channels in WTR/DRT
    • Can’t get stderr as it happens (only post-hot via --debug-rwt-logging)
    • Can’t easily attach to WTR or the WebProcess
    • (“I want a way to interactively write a layout test (Playgrounds for LayoutTests”)
  • Test Expectations
    • Hard to maintain the 21 TestExpectations files
    • Hard to reason about the fallback path
  • Test Results
    • Hard to create new baselines in the right directory
      • —new-baseline puts it in the most specific directory but that’s usually wrong
    • Easy to create redundant results (identical in > 1 directory)
      • Need a. Script to remove redundant results (diff and hoist them up)
  • Commit Queue
    • Unattributed commits (at Apple)
    • 1630 unattributed commits in the past year (14%)
  • Crowd Annoyances
    • “Get a bug in gmail, save webarchive, but too many scripts, just want a save the DOM and styles but skip scripts”
    • “ChangeLogs… why?”, “ChangeLog conflicts…”
    • “Unified build… want a non-unified build so I can find what changes”, “this is a growing problem, at least in WebCore”