1.0 Roadmap Tasks

Functional Features

These components are being targeted for completion and delivery as part of a 1.0 release. The order of completion in the list below is less of a focus than final availability of each feature.

Test Coverage

Prior to a final 1.0 release, test coverage for all primary features should be in place to maintain functionality moving forward.

A listing of tickets focused on test coverage of previously completed features should be added here.

Documentation

Prior to delivery of a final 1.0 release, all primary features and example usage fo them should be adequately documented.

A listing of tickets focused on documentation of previously completed features should be added here.

1.0 Release User Stories

Switch Creation and Management

User Permissions

  • As a site administrator I may grant user roles permission to administer all switches.
  • As a site administrator I may grant user roles permission to update existing switches.
  • As a site administrator I may grant user roles permission to create new switches.
  • As a site administrator I may grant user roles permission to delete existing switches.
  • As a site administrator I may grant user roles permission to configure Switches system settings.

Switch Creation and Updates

  • As a site builder with appropriate permissions I may create a new
    Switch.
  • As a site builder with permission to update existing switches I may disable an existing, enabled Switch.
  • As a site builder with permission to update existing switches I may enable an existing, disabled Switch.
  • As a site builder creating a new Switch I may define the
    following:
    • Administrative label
    • Machine name
    • Description
    • Activation conditions
  • As a site builder editing an existing Switch I may not change the configured machine name.
  • As a site builder editing or creating a switch I may...
    • enter or update the Administrative label text.
    • enter or update the description text with basic rich text support.
    • select and add any Condition plugin available within the system.
    • populate a Condition plugin's configuration form while adding the Condition to the Switch's activation conditions.
    • edit configuration for any previously added Condition plugins.
    • remove any previously added Condition plugins.

Switch Settings

  • As a site administrator I may configure a default activation status to be returned when an enabled Switch is not found.
  • As a site builder who has installed the Switches module, I may confirm the default activation status for missing or disabled Switches is true.

Switch Usage

Activation Status Conditions

  • When checking the status of a non-existent or disabled Switch, the default activation status from Switch system settings is returned.
  • When checking the status of a non-existent Switch a warning is logged.
  • When checking the status of an existing Switch with no configured activation conditions the Switch is assumed to be inactive and returns false.
  • When checking the status of an existing Switch with configured activation conditions all conditions are evaluated using AND logic.

Condition API Exposure

  • When configuring a component leveraging Condition plugins, like Block visibility, I may configure dependency on an existing Switch.

Status Overrides

  • As a developer I may override and force the activation status of a configured Switch from settings.php.
  • When viewing the edit form for an overridden Switch, a notification is displayed indicating the overridden status.

Theme Layer Integration

  • As a developer varying output within a Twig file, I may conveniently reference the activation status of a Switch within Twig.

Cacheability Metadata

  • As a developer referencing a Switch in custom code I may fetch cacheability metadata from the Switch instance being used.
  • When referencing a Switch within Twig, cacheability metadata for the referenced Switch is added to the render context automatically.

Comments

robpowell created an issue. See original summary.

slucero’s picture

Issue summary: View changes

Revising early roadmap steps based on the pivot to use a Condition plugin-based approach for determining switch status.

  1. Implement a configuration entity to create and configure switches
  2. Integrate switches with Condition plugins a la Block visibility
  3. Implement condition plugin execution against configured conditions to determine a switch's value
  4. Implement a switch manager service to simplify and consolidate switch value checking
  5. Create a Twig extension to check flag values
  6. Implement additional conditions for switch configuration
    • Static configuration value
  7. Implement switch override handler to support methods of enforced overrides for a switch's status
    • Environment-specific switch overrides
    • Override support from settings.php
    • Query parameter override to support QA testing?
  8. Implement handling for undefined switches during value checks
    • Configurable default response
    • Logging
slucero’s picture

Issue summary: View changes

Formatting update.

robpowell’s picture

Issue summary: View changes
robpowell’s picture

Issue summary: View changes
slucero’s picture

slucero’s picture

slucero’s picture

robpowell’s picture

Issue summary: View changes
slucero’s picture

Title: RoadMap » RoadMap: 1.0 Release
Issue summary: View changes

Added a range of user stories to the description to drive target functionality for a 1.0 release.

Next Steps

  • Update roadmap tasks to reflect prioritized implementation of user stories
robpowell’s picture

We have a little sprint planned for the next week. We want to complete the following user stories:

User Permissions

  • As a site administrator I may grant user roles permission to administer all switches.

Status Overrides

  • As a developer I may override and force the activation status of a configured Switch from settings.php.

Activation Status Conditions

  • When checking the status of a non-existent or disabled Switch, the default activation status from Switch system settings is returned.
  • When checking the status of a non-existent Switch a warning is logged.
  • When checking the status of an existing Switch with no configured activation conditions the Switch is assumed to be inactive and returns false.
  • When checking the status of an existing Switch with configured activation conditions all conditions are evaluated using AND logic.

Theme Layer Integration

slucero’s picture

User Permissions

* As a site administrator I may grant user roles permission to administer all switches.

I'm getting started on this under #3009381: Permissions: Administer Switches.

robpowell’s picture

Status Overrides

As a developer I may override and force the activation status of a configured Switch from settings.php.

Starting here #3009719: Make activationStatus override-able via config

slucero’s picture

I've split out the initial feature set for this dev release into #3010014: Roadmap: Initial Dev Release so we can track progress against it specifically there more cleanly.

slucero’s picture

Version: » 8.x-1.x-dev
Component: Code » Miscellaneous
Issue summary: View changes
slucero’s picture

With the tickets under #3010014: Roadmap: Initial Dev Release merged and the dev release created, the focus on next priorities can shift back to this ticket. As such, I've updated the summary to reflect a suggested list of tickets to be targeted for a 1.0 release.

I've also stubbed out a section for listing tickets focused on documentation and test coverage that should be completed as well as part of a 1.0 release.