Funding Request: Neos 9.0

Neos 9.0 Funding Report

In July 2024, we requested funding to support dedicated and focused work on Neos 9.0, with the goal of advancing toward a stable release. This report provides an overview of our achievements and a breakdown of how the budget was spent.

We also want to thank all our sponsors for the financial support that allowed us to achieve these results within this limited timeframe. :clap:

Beta releases

Over the funding period, we released multiple beta versions, each introducing new features, bug fixes, and enhancements to stability, performance, and overall quality. Detailed information about each release can be found in the release notes and changelogs.

Topics we worked on

To provide a more detailed insight, what we reached with the given funding, we want to provide a list of topics we where working on. For more details, please refer to the linked issues and pull requests. This list represents only a portion of the team’s work on Neos 9 over the past months, as many contributions from volunteers were not connected to this funding request. Additionally, while not every topic on the list was fully funded, each received at least partial support from the provided funding.

Workspace/Publishing improvements #4726

  • Make all commands refer to their target “workspace” instead of “contentStream”
  • Fix initial workspace creation after login
  • Don’t rebase the user workspace on login if not required
  • Extract workspace metadata and user-assignment to Neos
  • New Workspace module (WIP)

AssetUsage Overhaul #4808

  • Rewrite of the AssetUsage to address known bugs
  • Improve performance
  • Reduce storage usage

CR Privileges #3732

  • Introduce concept of an AuthProvider with a Neos implementation that
    • controls read/edit access to nodes
    • controls access to workspaces
  • Documentation (WIP)

Overhaul ContentCacheFlusher #5175

  • Rewrite of the ContentCache Flusher to address known bugs and improve performance

Extract Content Subgraph caching #5243

  • Extract Content Subgraph in-memory caching to stabilize the system and remove complexity for better testing and debugging

Workspace ContentStreamMapping #5096

  • Move workspace contentstream mapping into the contentgraph projection

Rework Publishing #5301

  • Stabilization of the publishing to fix known bugs and improve performance and storage usage

Refactoring ContentStreamPruner #5297

  • Stabilize ContentStreamPruner and cleanup

Performance improvements for ES CR DBAL Adapter #4818

  • Debugging hierarchy relation and general tree UI performance and improve performance on ChildNode Queries (WIP)

Rework CatchUp mechanism #4746

  • Rework CatchUp mechanism into a subscription engine to stabilize events catchup (WIP)

Site import/export #4448

  • Adds the feature to import and export a all sites of a CR
  • Improve UX when migration “legacy” sites

Beside the bigger topics we worked on lot of bugfixes and improvements:

  • Stabalize Cut & paste in different dimensions and add test coverage. WIP #4614
  • Serializable i.e. low level commands #5353
  • Consider entry node when filtering in reference editor #5195
  • Bugfixing implementation and improving the documentation for the configuration of dimension in the new CR. #4984
  • Improve stability of contentstream status on errors during publishing and covered with parallel running tests. #5342 #5344
  • Copy node respect tethered nodes correctly WIP #5350
  • Improve performance on find*Aggregates #5269
  • Migrating old cr data with additional root nodes and their children #4895
  • Remove old NodeAddress #4564
  • Stabilize base workspace change #5331
  • Make single-field Value Objects stringable #5239
  • References on creation and copy #5148
  • Translation layer for Node read-model in Fusion to restore 8.3 syntax WIP #5022
  • Removal of magic underscore access for internal node properties #5015
  • Standalone ContentRepository.Core #4227
  • Structure adjustments “repaired” orphaned Nodes which is not replayable WIP #5352
  • CopyNodesRecursively WIP #5351
  • Cleanup projection catch-up trigger extensibility #5288
  • Bug removed content streams on partial replay WIP #5333
  • Introduce Workspace::hasPublishableChanges #5332
  • Fix workspace role assignment after migration, import and site creation #5283
  • Deprecate WorkspaceFinder and introduce new API #5279
  • Introduce first level content repository projection #5272
  • Restore Neos.Neos:NodeUri, neos:link.node and LinkingService #4886
  • Make ContentRepositoryServiceFactoryInterface internal, and remove usages in Neos.Neos #4634
  • Remove default value for subtreetags to fix MySQL support #5253
  • “internal” node properties in Fusion/UI #4208
  • Remove deprecations of beta 14 #5295
  • Improve test suite WIP #5346 #5284
  • Added rector migrations #85 #86 #87 #88 #89 #91, #92, #93
  • Update and bugfix Neos Demo
  • Upgrade Neos Form.Builder
  • Writing documentation

A lot more than this has been done. Please check out the merged PRs for Neos 9 in the funding period: Pull requests · neos/neos-development-collection · GitHub

4 Likes