Description
Right now we inject new pre-defined ZObjects from function-schemata as part of update.php, which works for local development and Beta Cluster but can't be used in production. We have a ReloadBuiltinData script but it's very heavy-weight, and (unlike T335418 is fixed) destructive of user-contributed labels/aliases/descriptions, and so should never be used.
Desired behaviour/Acceptance criteria (returned value, expected error, performance expectations, etc.)
- Provide a maintenance script that will create a given ZObject from function-schemata if it doesn't exist, safe to run in production.
Completion checklist
- Functionality:
- The solution meets the expected behaviour/acceptance criteria described above
- All the child tasks are closed
- The issue has been peer reviewed
- The issue has been merged
- Engineering:
- There are existing and passing unit/integration tests effectively testing its success and its failure
- All new classes/methods are covered by unit tests
- Documentation:
- All new functions/methods are annotated
- Related documentation for DUCT is updated
- Versioning:
- If changes in submodule packages are involved, every project that uses this submodule should pass tests and build
- Accessibility:
- New functionality is compared against the [[Accessibility guide for developers]]
- Accessibility concerns are either address or, if the work is sufficiently large, a new Phabricator ticket is created and linked to this ticket
- All user facing strings are internationalised