Page MenuHomePhabricator

CUJ 2: Create a function definition
Closed, ResolvedPublic

Description

Critical User Journey 2: Create a function definition

Job To Be Done

When <situation> I want to <job> so I can <expected outcome or motivation>

Acceptance criteria

An editor user...

  • Should be able to find the function creation links easily in the Wikifunctions landing page
  • Should be able to name the function with a primary unique label and a set of alternative names to increase the chances of it being found and used by other users
  • Should be able to easily define the necessary fields to create a custom function definition
    • Should be able to define the necessary number of inputs from 10 to n
    • Should be able to define what type each input should be
    • Should be able to define what is the expected type returned by the function
  • Should be able to easily understand what are the minimum necessary details to define a function
  • Should be able to create a function definition in at least my own language
  • Should be able to enrich a function definition with labels in more languages
  • Should be able to save my function so that other users can use it or edit it in the future
  • If the creation is not successful, should be able to understand what was wrong and how to fix it ---

Completion checklist

During the review process, edit and check these items to reflect the completion status of this epic

  • Functionality
    • Every project (repository) involved in this user story has its separate Phabricator task
    • Every related task should passes its completion checklist
    • The tests for every involved project pass successfully
    • The build process for every involved project passes successfully
    • Coverage for every involved project has improved or stayed the same
  • Design
    • Design review on updated software
    • Test concept via an Alpha, Beta or Prototype with partner communities and those potentially impacted by feature, in their preferred language
  • Documentation
    • Has related and updated documentation, E.g.:
      • Internal technical changes: internal repository documentation must be updated (README.md, JSDoc, PHPDoc)
      • Infrastructure technical changes: technical changes that reflect on environment, infrastructure, endpoints or any other area of interest for technical contributors should be reflected on MediaWiki extension pages.
      • Product or model changes: should have related documentation updated in meta
  • Versioning
    • If changes in submodule packages are involved, every project that uses this submodule has updated submodule version and passes tests and build

Event Timeline