Core Platform - Definition of Done

Please note that all items in checklist marked with [M] are mandatory.

Acceptance criteria for DevOps tasks are here: https://dev.folio.org/guides/devops-verify-task-acceptance/


Checklist

Feature/User Story

Sprint Demo/Review

Release

[M] Unit tests (backend: jUnit, RestAssured, frontend: BigTest) are written and are passing. At least 80% code coverage is expected and 100% is preferred for critical code.

Y



[M] Sample and reference data is updated to match the feature or schema change. Any configuration and/or build scripts are updated and tested.

Y



[M] Interface version (for backend modules) and module implementation version (for backend (pom.xml) and UI (package.json)) is updated according to the versioning procedure: https://dev.folio.org/guidelines/contributing/#version-numbers. The fixVersion field in JIRA is updated to match the version that ships the feature/bugfix.

Y



[M] All dependencies (both Okapi/FOLIO module dependencies and NPM deps) are updated to release dependencies (no pre-releases).Y

[M] UI Regression tests (https://github.com/folio-org/stripes-testing) are updated and pass on the local development machine.

Y



[M] Peer code review is performed and at least one developer from Core: platform; code can be merged to master only when building passes and after peer approval.

TODO: Establish review criteria

Y

[M] Build deployed successfully to folio-snapshot-stable environment (test, integration etc.). In the case of unresolved but unrelated integration testing issues, the feature will be accepted on folio-snapshot.

Y



[M] QA is performed and issues resolved: folio-snapshot-stable OR folio-snapshot (in case of unrelated integration test failures)

- The feature is tested against acceptance criteria

- Tests on supported browsers/devices/platforms pass (UI)

Y



[M] Feature implemented meets acceptance criteria defined by PO/Lead

Y



[M] Feature is accepted by PO
- Move the story to “in Review” and assign it to PO who will review and move it to Done if acceptable

Y



[M] Only backend modules: if feature blocks a UI module feature, the new version of the module is released (see https://dev.folio.org/guidelines/release-procedures/)

Y



[M] No open critical bugs on any user stories


Y


[M] DoD of each user story, included in the demo are met


Y


[M] All demo-able features are demoed from the same shared environment – folio-snapshot-stable OR folio-snapshot (in case of unrelated integration test failures)


Y


[M] Installation and deployment scripts are updated



Y

[M] Performance tests are created and pass – Example: All end user interactions < 2 seconds for 95 percentile or no degradation in response time for existing functionality



Y

[M] All bugs reported by QA, manual testing, UAT, PO etc and labelled for the release (e.g "q4-2018") are fixed



Y

[M] Release notes are created



Y

[M] User documentation updated (deployment documentation, scripts/packaging etc.)



Y

[M] Migration script added in case of schema update. (see https://github.com/folio-org/raml-module-builder/blob/master/DB-schema-migration.md)Y