Release 2.0

David Buchmann edited this page Nov 22, 2016 · 13 revisions
Clone this wiki locally

2.0 is the chance to clean out legacy code or even do radical BC breaks where we need them. (A comprehensive upgrade guide will be provided, of course)

See also Future ideas for some older discussion what could be done.

State

See the milestones of each repository:

Proposal

Standards

Do not use parameters for class names

Do not use parameters for class names in XML configuration:

Instead of:

    <parameters>
        <parameter key="sylius.grid_field.datetime.class">Sylius\Component\Grid\FieldTypes\DatetimeFieldType</parameter>
    </parameters>

    <services>
        <service id="sylius.grid_field.datetime" class="%sylius.grid_field.datetime.class%">
            <argument type="service" id="sylius.grid.data_extractor" />
            <tag name="sylius.grid_field" type="datetime" />
        </service>
    </services>

use

    <services>
        <service id="sylius.grid_field.datetime" class="Sylius\Component\Grid\FieldTypes\DatetimeFieldType">
            <argument type="service" id="sylius.grid.data_extractor" />
            <tag name="sylius.grid_field" type="datetime" />
        </service>
    </services>

Library / bundle file structure

Put all source code in src and all tests in tests.

e.g.

/
  src/
  tests/
    Unit/
    Functional
  composer.json
  README.md
  ..

Bump PHP requirement to ^5.5.6

This means that new packages can use:

  • Use of ::class
  • New array syntax.

Current code cannot be updated (as it causes many merge conflicts). These packages will be updated completely to PHP 5.5 as soon as CMF 1.x support is dropped (which is planned for May 2018).

Symfony 3.x support

Bundles should target Symfony 3 and 2.8. If possible (without BC layers), supporting 2.7 should be included as well.

Weed out deprecated stuff

Hunt down everything deprecated and remove it.

Features / Actions

REST interfaces - ContentBundle, ResourcesRestBundle

Implement the REST interfaces on both bundles. The ContentBundle will get a Controller that works on the content's routes as endpoint. The ResourcesRestBundle should extend the existing GET support on relevant resources - especially for phpcr-odm docment or nodes (both exist as GET)

Abandon unused Bundles

We should try to cut down on the number of bundles we support, to allow us to focus better. If new people turn up and volunteer to maintain something we can't maintain anymore, all the better.

See CMF-Packages for the list of what will become unmaintained.

Unbundling Sonata Admin + Provide Form Types for CMF Models

Move all sonata admins into one common bundle so that the feature bundles do not contain sonata things. Each bundle should provide symfony form types instead, useful for general purpose and making the sonata admin things trivial to build.