Definition of Done

Acceptance Criteria

  • Have all acceptance criteria been met?

  • Do tests exist to cover the acceptance criteria?

    • For services, integration tests are preferred using the client with live or mocked service dependencies

    • Unit tests can be used to fill in gaps where integration testing can’t cover certain branches or for exception handling

    • Tests should cover both positive and negative scenarios, including but not limited to: errors documented in Swagger, security (with and without a JWT, with and without the correct role, resource, scope, etc.). Health indicator checks

Dependency & Plugin Updates

  • Minor version updates should also include dependency and plugin updates

    • If updating a dependency causes errors, update to the latest non-breaking version and notify the PO

  • Patch version updates should only update anything called out by the acceptance criteria

Successful Build

  • Builds locally, and when the feature branch is pushed, the branch builds in sandbox Jenkins

  • Address any build errors, compiler warnings, SCA

Changelog

  • Update the CHANGELOG.md with the story ID and a brief description of the changes

    • Include any new/changed Consul/Vault variables

    • Include framework updates (mobile-framework, ngss-maven-tiles)

README

  • Update README.md as needed if the story has made sections of the document out of date

Other Documents

  • If adding/changing/removing an endpoint, consult with the PO about SRVDD.md and diagram updates

Service Lint

  • Use the Service Lint tool to identify possible problems. Consult with the PO if unsure of what to do with the findings.