From 1a583576ab70eedf6baa9a9025c5a5ec29a80755 Mon Sep 17 00:00:00 2001 From: marijn Date: Wed, 9 Oct 2024 19:33:57 +0200 Subject: [PATCH] Update definition of done --- work/definition-of-done.md | 23 ++++++---------- work/dod-compliance-actions.md | 50 ---------------------------------- 2 files changed, 8 insertions(+), 65 deletions(-) delete mode 100644 work/dod-compliance-actions.md diff --git a/work/definition-of-done.md b/work/definition-of-done.md index 34cf5e4..e4a7bd3 100644 --- a/work/definition-of-done.md +++ b/work/definition-of-done.md @@ -1,6 +1,7 @@ # Definition of Done -This document outlines the specific criteria that must be met for a new releasable increment of our application to be considered complete. It serves as a checklist for developers and AI agents to ensure quality and consistency in our releases. +This document outlines the specific criteria that must be met for a new increment of our application to be considered releasable. +It serves as a checklist for developers and AI agents to ensure quality and consistency in our releases. ## Code Quality and Testing @@ -10,36 +11,29 @@ This document outlines the specific criteria that must be met for a new releasab - Running pre-commit hooks - Running non-integration tests with `pytest` - [ ] All new functionality has corresponding unit tests in the `tests/` directory -- [ ] No `TODO` comments remain in the code related to the current work - [ ] GitHub Actions CI workflow passes on the main branch ## Documentation -- [ ] Docstrings are added/updated for all new/modified functions, classes, and modules - [ ] README.md is updated with any new features, dependencies, or usage instructions - [ ] Any new environment variables are added to both `.env.example` and `mongo/.env.default` -- [ ] `docs/software_architecture.md` is updated if there are architectural changes +- [ ] `docs/software_architecture.md` is up-to-date with the current architecture and design forces. ## Functionality - [ ] All new CLI commands are implemented in `src/floridayvine/commands/` and properly integrated in `src/floridayvine/__main__.py` -- [ ] New database operations are added to `src/floridayvine/persistence.py` and tested -- [ ] MinIO operations in `src/floridayvine/minio.py` are updated and tested if affected -- [ ] Floriday-related functionality in `src/floridayvine/floriday/` is updated and tested if affected ## Performance and Security - [ ] No sensitive information (API keys, passwords) is hardcoded or logged - [ ] All database queries are optimized and indexed appropriately -- [ ] Large data operations use appropriate batching or streaming techniques - [ ] Environment variables are used for all configuration options ## DevOps and Deployment - [ ] `Dockerfile` and `docker-compose.yml` are updated if there are new dependencies or services - [ ] `requirements-dev.txt` is updated with any new development dependencies -- [ ] Version number in `src/floridayvine/commands/version.py` is incremented appropriately -- [ ] `floridayvine-crontab` is updated if there are changes to scheduled tasks +- [ ] Version number is incremented appropriately - [ ] Configuration files (.flake8, .pre-commit-config.yaml, .vscode/settings.json) are up-to-date and committed to the repository ## Cross-compatibility @@ -47,10 +41,6 @@ This document outlines the specific criteria that must be met for a new releasab - [ ] Application runs successfully on both development and production environments - [ ] Any new dependencies are added to `pyproject.toml` and are compatible with both Linux and macOS -## User Acceptance - -- [ ] New features or changes have been demonstrated and approved by the product owner - ## Release and Deployment - [ ] Code and documentation are pushed to the central code repository @@ -61,7 +51,6 @@ This document outlines the specific criteria that must be met for a new releasab ## Final Checks - [ ] GitHub Actions CI workflow passes on the main branch, running all quality checks -- [ ] `scripts/verify_credentials.sh` runs successfully with the updated code - [ ] Application can be built and run using `docker-compose up` without errors ## Undone for now @@ -71,5 +60,9 @@ The following items are considered important for future releases but are not cur - [ ] Implement test coverage measurement and maintain or improve coverage (verify with coverage tool) - [ ] Create a script to automatically check if all environment variables in `.env.example` and `mongo/.env.default` are up to date - [ ] Implement a zipped version of the code for download as part of the release process +- [ ] Test the application in both development and production environments. +- [ ] Cross platform compatibility + - [ ] Linux + - [ ] Mac OSX This Definition of Done should be reviewed and updated periodically to reflect the evolving needs of the project. Items from the "Undone for now" section should be considered for inclusion in the main DoD as they become implemented and integrated into our development process. diff --git a/work/dod-compliance-actions.md b/work/dod-compliance-actions.md deleted file mode 100644 index b8c7992..0000000 --- a/work/dod-compliance-actions.md +++ /dev/null @@ -1,50 +0,0 @@ -# Actions to Consider for DoD Compliance - -This document outlines actions to take to ensure compliance with the Definition of Done. These are steps to be taken during development and before considering a release complete. - -## Code Quality and Testing - -1. Review and add unit tests for any new functionality in the `tests/` directory. -2. Search for and address any remaining `TODO` comments in the code. - -## Documentation - -3. Review and update docstrings for all functions, classes, and modules in the project. -4. Update README.md with any new features, dependencies, or usage instructions. -5. Add instructions for setting up and using pre-commit hooks to README.md. - -## Functionality - -6. Review `src/floridayvine/commands/` and `src/floridayvine/__main__.py` to ensure all CLI commands are properly implemented and integrated. -7. Review `src/floridayvine/persistence.py` for any new database operations and ensure they are tested. -8. Check `src/floridayvine/minio.py` for any updates and ensure related tests are in place. -9. Review `src/floridayvine/floriday/` for any updates and ensure related tests are in place. - -## Performance and Security - -10. Conduct a security review to ensure no sensitive information is hardcoded or logged. -11. Review and optimize database queries, ensuring proper indexing. -12. Evaluate large data operations and implement batching or streaming techniques where necessary. - -## DevOps and Deployment - -13. Review `Dockerfile` and `docker-compose.yml` for any needed updates based on new dependencies or services. -14. Update `requirements-dev.txt` with any new development dependencies. -15. Increment the version number in `src/floridayvine/commands/version.py`. -16. Review and update `floridayvine-crontab` if there are changes to scheduled tasks. - -## Cross-compatibility - -17. Test the application in both development and production environments. -18. Review `pyproject.toml` for any new dependencies and ensure they are compatible with both Linux and macOS. - -## User Acceptance - -19. Schedule a demonstration of new features or changes with the product owner for approval. - -## Release Preparation - -20. Ensure all code and documentation are ready to be pushed to the central code repository. -21. Prepare release notes documenting new features, bug fixes, and any breaking changes. - -These actions should help bring the project into compliance with the Definition of Done for the next release. Review and prioritize these actions as needed during the development process.