Skip to content

Latest commit

 

History

History
152 lines (94 loc) · 4.93 KB

ROADMAP.md

File metadata and controls

152 lines (94 loc) · 4.93 KB

These are main plans that are additional to open issues.

2.0

2.0.14 (1st quarter of 2018)

Will be last release with features and enhancements the last one that will be merged into 3.0 directly.

2.0.15 (2nd quarter of 2018)

  • Since this release main focus is bug fixing.
  • No full-branch merges into 3.0.
  • No enhancements are accepted.

2.0.16 (3rd quarter of 2018)

  • Bugfixes.

2.0.17 (4th quarter of 2018)

  • Bugfixes.
  • Announce bugfixes EOL (a year more?).
  • Security fixes only.

Additional releases

We can tag additional releases in case someone will take the role of release manager. Otherwise we'll focus on 3.0.

3.0 (2018)

Documentation

  • Prepare changes description.
  • Prepare upgrading instructions.

Infrastructure

Requirements

Cleanup

Dependency injection

  • Declare an interface for DI container in yiisoft/yii2. Make it an extension of PSR if possible.
  • Port cycles in dependencies detection from yiisoft/di (@hiqsol)
  • Port method calls support from yiisoft/di (@hiqsol)
  • Update guide and docs to reflect DI container additions.

Client side

Security

  • Remove custom random number generation in favor of what's in PHP 7.
  • Remove custom bcrypt password hashing in favor of what's in PHP 7.

Databases

Logging

  • Separate profiling and logging.

Cache

  • PSR compatibility.

Request

App templates

i18n

  • Use - instead of _ for view files, message files etc. See #8057

Extensions

  • Make sure all official extensions have releases for 3.0.0.

4.0 (2018)

  • Announce LTS.
  • PHP 7 strict scalar types everywhere.
  • Decouple routing from controllers and modules. Allow specifying any class method as a callback for a matching route.
  • Merge components and DI container configs.
  • Try to eliminate Object and Component turning these into traits. Could extract AccessorTrait, EventTrait etc. Alternatively we can drop accessors. Will get PSR-2 and stricter interfaces in exchange additionally to possibility to get more performance.
  • When triggering events, pass data as a separate argument instead of a part of event object (commonly referred to as inconvenient).
  • Move methods from Yii class into helpers. For example, Yii::getAlias() could be FileHelper::getAlias().
  • Use HTML-5 data attributes to specify validation rules + global validation script that doesn't require additional config.

Dependency injection

  • Remove ability to set constructor options from method signatures, move it to __construct.

Features

  • Introduce configuration manager.
  • Implement change() for migrations.

Post 4.0 (but could be done independently)

Start extracting separate independent components:

  • DBAL layer.
  • ActiveRecord.
  • i18n.
  • Gii.

Bootstrap extension

  • Remove all widgets that doing things that could be done simpler via plain HTML.

Gii extension

Debug extension

1.0

  • Tag 1.1.20.