Skip to content

Fall release 🍂 (Clockwork 6.0) #498

@itsgoingd

Description

@itsgoingd

This issue tracks the progress on the next major release (Clockwork 6.0), scheduled for Fall 2021.

Clockwork 6.0 will be the next major release introducing new features, improvements and focusing on polishing the overall user experience.

Must have

The most important changes most likely to make it into the release.

  • explore an event-based metadata format
    • currently we use a json-based metadata format where each request is represented by a single object with pre-defined schema
      • pros: very simple and straight-forward implementation, plain-text readable
      • cons: requires the whole object to be loaded in memory before writing out the json (very memory intensive), updating partial metadata would require re-parsing the whole json
    • a different idea would be to have an array of events like "database-query" or "log-message" with respective payloads
      • pros: events can be written as they are processed (probably in batches, very low memory usage), updating partial metadata is free
      • cons: more complex implementation when both writing and parsing, less plain-text readable
    • Clockwork App would stay compatible with the old format forever
  • user-interface polish / improvements
    • improved UI for each specific platform
  • toolbar improvements
    • dark mode
    • ajax requests support
  • explore optional alternative ways to use Clockwork
    • adding an errors/warnings count to the browser toolbar would provide immediate feedback about performance issues in the current request
      • this would be part of the browser extensions
  • add tagging and starring requests
    • requests can be tagged both server-side and client-side additionally
    • requests should be searchable by tag
  • add ability to (temporarily) disable Clockwork on runtime
  • add ability to show only "my requests" in Clockwork App
    • this is implicit in the extension, but the web-app version shows all requests
    • implementation would most likely be based on client ip
  • upgrade Clockwork app to Vue 3.0
  • new open-source the website
  • consider requiring PHP 7.x
    • currently we still support PHP 5.5 as our lowest PHP version
    • previously we updated PHP requirements only when we actually needed some features from the newer version
  • password removal improvements
    • configurable password removal - feat
    • remove passwords from the Cookies header - feat
    • remove authentication tokens from headers

Nice to have

The less important changes and changes unlikely to make it due to time constraints or implementation concerns.

  • desktop app (beta)
  • Python/Django and Ruby/Rails integrations (alpha)
  • profiling levels with per-request selection
  • improve handling of large metadata
    • we should in general avoid running out of memory at all costs and prefer collecting partial or no data
  • improve assets handling
  • add api docs - feat
  • add ability to reorder tabs
    • first available tab in order would be the default tab
    • lots of annoying UI code to write (animations, touch support)
  • show duplicate queries in the performance tab - feat
  • add Laravel authentication support
  • don't instantiate storage when Clockwork is disabled
  • collect applied scopes for eloquent database queries
  • logging binary data - feat
    • if we find a way to detect binary data without a large performance impact
  • request replay
    • this is very tricky to implement for non-GET requests in cross-platform way
  • collect (simple) responses - feat
    • main concern here is the response size
  • unload old requests
  • better symfony support
  • monolog 2 support
  • Redis storage implementation
  • xhprof support
  • revisit tab badges for like fourth time
  • ugly scrollbars on light OS theme w/ dark Clockwork theme make me sad
  • log messages limit? - feat
  • health check command
  • add support for compressed Xdebug output
  • show multiple requests in a single timeline
    • the goal is to make the execution order more obvious - feat

Release schedule

Clockwork follows a loose yearly release schedule with one major release in late summer / fall and multiple minor releases in-between.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions