Skip to content
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

Meerkat 4 Planning #241

Open
19 of 69 tasks
JohnathonKoster opened this issue May 24, 2024 · 1 comment
Open
19 of 69 tasks

Meerkat 4 Planning #241

JohnathonKoster opened this issue May 24, 2024 · 1 comment

Comments

@JohnathonKoster
Copy link
Contributor

JohnathonKoster commented May 24, 2024

Issue to track/plan Meerkat 4

If you see this and have ideas/wish list items for v4, feel free to drop them in the comments!

  • Test Suite/Coverage
  • Support for new validation syntax
  • Refactor storage to be database only (performance, make some features easier to implement, etc.)
    • Migration utility/command
    • Customizable database configuration (default SQLite)
    • Provide default models/etc.
    • Change Sets (Meerkat Revisions)
    • Threads
    • Tasks
    • Spam Guard Reports
    • Supplemental configuration
    • Email Reporting
    • Comments
    • Threads Metadata/Attributes
  • Eloquent Drivers/General behaviors
    • Convert to comment instances when querying directly
    • Lazy load comment data instead of needing to explicitly set when hydrating
    • Refactor int timestamps to Carbon instances
    • Thread creating (and related) events
  • Refactor DataObject to not conflict with Eloquent model methods
  • Remove all *Factory implementations
  • Remove separate CommentManager implementation and rely entirely on repository
  • Remove separate ThreadManager implementation and rely entirely on repository
  • Re-organize namespaces/classes to better co-locate related features
  • Refactor to Laravel HTTP client
  • Generalize comment systems
    • Refactor existing filter/sorting/etc. systems to leverage Eloquent builders/etc. 🏋️
      • is:spam
      • is:published
      • is:deleted
      • is:before
      • is:after
      • is:between
      • like
      • not:like
      • search:terms
      • thread:in
      • not:thread:in
      • where
      • where:in
      • not:where:in
  • Modernize code base (>= PHP 8.2)
    • Refactor Configuration Manager behaviors from class constants to enum
  • Comment Search rewritten (database implementation)
  • Simplify Core implementation
    • Remove custom YAML parser
    • Remove custom markdown parser
    • Remove custom sanitizers (move to templates, front-end implementations, etc. instead)
    • Remove telemetry systems
    • Remove translation patches (Control Panel) - testing in recent versions of Laravel/Statamic suggest this is no longer required
  • Improved addon APIs
  • Rewrite Control Panel integration
    • Modernize build tools
    • Port helper utilities
    • Port avatar drivers/etc.
    • Port HTTP Driver & Responses
    • Port JS API
    • Port Comment components
    • Port Configuration components
    • Port translation components
    • Remove Control Panel hooks system
    • Port backend tasks system
    • Statamic Dark Mode
  • Rewrite tags to better leverage Antlers Runtime features
  • Updated documentation
    • Upgrade guide
      • List of deprecated/removed APIs/etc.
      • Warning that its not a simple composer update if people have made customizations/etc.
  • Pre-built front-end? Livewire?
@JohnathonKoster JohnathonKoster pinned this issue May 24, 2024
@JohnathonKoster
Copy link
Contributor Author

JohnathonKoster commented May 28, 2024

Meerkat 4 Changes (WIP)

General

  • Meerkat now requires PHP >= 8.2

API/Namespaces

  • Stillat\Meerkat\Contracts\StorableContract has been removed entirely
  • Everything inside the Stillat\Meerkat\Core namespace has been moved up a namespace to Stillat\Meerkat
  • The Stillat\Meerkat\Support\Facades namespace has been moved to Stillat\Meerkat\Facades
  • validate has been removed from ThreadStorageManagerContract
  • determineVirtualPathById has been removed from ThreadStorageManagerContract
  • The query method has been removed from Stillat\Meerkat\Contracts\Threads\ThreadContract
  • The following methods have been removed from Stillat\Meerkat\Contracts\Storage\CommentStorageManagerContract
    • getPaths
    • generateVirtualPath
    • getPathById
    • getReplyPathById
    • getRelatedCommentsPaths

Extensions/Addons

  • Meerkat no longer automatically creates the meerkat base directory. The following files are no longer automatically created (they will still be loaded, if available):
    • meerkat/filters.php
    • meerkat/events.php

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant