# Declarative GT4Py design improvements and cleanup ###### tags: `functional cycle 10` Appetite: Developer: Enrique, Rico (after C++ integration) ## Goals ### Project structure refactoring - [ ] Cleanup packages structure + move things to better places (e.g. embedded/iterator) + make implementations details private (e.g. most of `embedded` iterator module) - [ ] Define a better test structure + make it easy to find a test + make it easy to find the right place to put a test + Optional: add test coverage ### Development guidelines - [x] Add DEVELOPMENT_GUIDELINES.md + Adapted from master/CODING_GUIDELINES.rst + Add mention and link to [Google Python style guide](https://google.github.io/styleguide/pyguide.html) + Add Google docstrings conventions + using only lightweight RST markups (links to other items and `literal` strings) + Add section for test best practices + factories and test input data (factory boy? pytest-cases?) + running tests in parallel: pytest-xdist[psutil] (`-n auto`) + run only the tests that failed last time: `--lf / --last-failed` option. + run all the tests starting with the tests that failed last time: `--ff / --failed-first` option + use ` -l / --showlocalsflag` option to see the value of all local variables in tracebacks + Other topics + Comment CI ignores + In config files, try to keep sections and items within sections ordered logically. If there is not an evident logical order, just use alphabetical order - [ ] Quick overview presentation for development guidelines ### QA and development tools - [ ] pytest - [ ] coverage & pytest-cov - [x] parallelization: [pytest-xdist](https://pytest-xdist.readthedocs.io/en/latest/) - [ ] formatting & interface: [pytest-clarity](https://github.com/darrenburns/pytest-clarity)? [pytest-sugar](https://github.com/Teemu/pytest-sugar)? - [ ] advanced features: [pytest-randomly](https://github.com/pytest-dev/pytest-randomly)?, [pytest-lazy-fixture](https://github.com/tvorog/pytest-lazy-fixture)?, [https://pypi.org/project/pytest-deadfixtures/](pytest-deadfixtures)? - [ ] pre-commit - [ ] add license headers with pre-commit hook - [x] bump2version - [x] Cartesian: 0.1.xx - [x] Declarative: 0.2.xxx