Quick-reference checklistΒΆ
This checklist is a rough guide to productionizing applications as part of arXiv NG.
[ ] Code quality goals are met or exceeded.
[ ] 90%+ of statements are exercised by automated tests.
[ ] Integration tests for each external dependency/upstream service.
[ ] Pydocstyle passes.
[ ] (UI only) Meets or exceeds WCAG 2.1 Level A.
[ ] Documentation:
[ ] Repository has a
gh-pages
branch with architectural and code API documentation.[ ] An OpenAPI schema describing the service API (with examples) is present in
schema/
, with references to JSON Schema as appropriate.[ ] A JSON Schema document for each API resource is present in
schema/resources/
.
[ ] Application considerations:
[ ] Implementation is consistent with Internal architecture & Flask implementation.
[ ] All parameters in the application configuration have informative doc-strings.
[ ] WSGI module (or other entry-point) creates a persistent Flask application object.
[ ] A status endpoint is defined that indicates the readiness of the service to handle requests. Should reflect availability of upstream dependencies.
[ ] The application factory initializes connections to all upstream dependencies.
[ ] A Dockerfile that extends the arXiv base image is present.
[ ] A
docker-compose.yml
configuration is present, demonstrating deployment for dev/test purposes.
[ ] Deployment considerations:
[ ] A Helm chart is present in
deploy/
.[ ] A readiness probe is defined for the deployment that uses the status endpoint.
[ ] Resource limits for the deployment are explicitly set.
[ ] Details about the deployment/scaling considerations and dependencies (including upstream services) are documented in
DEPLOYMENT.md
in the root of the repository.[ ] Travis is configured to package and distribute the Helm chart on tagged commits.
[ ] Travis is configured to deploy the application using the Helm chart to development and/or staging namespaces, as appropriate.