|
|
This page is in progress
|
|
|
|
|
|
## Project structure
|
|
|
venv (not pushed on code base), test(s) folder, requirements.txt and requirements_dev.txt or requirements_test.txt, README.md at root level, ...
|
|
|
At root level project should have :
|
|
|
- .gitignore file
|
|
|
- LICENSE.TXT
|
|
|
- README.md
|
|
|
- requirements.txt with all dependencies needed for running the lib/service
|
|
|
- requirements_xxx.txt xxx can be test or tests or dev with all dependencies needed for running the tests of the lib/service
|
|
|
- test or tests subfolder containing all the tests, unit tests and integration tests
|
|
|
|
|
|
## Testing
|
|
|
Project must contain unit tests
|
|
|
Test are done using pytest
|
|
|
New code have to be covered by unit tests
|
|
|
Tests must be ok when pushing new code
|
|
|
|
|
|
## Continuous integration
|
|
|
Project must define a CI pipeline with
|
|
|
- a mandatory stage running the unit tests and preventing the merge in case of failure
|
|
|
- for python libraries a stage creating the wheel and pushing it to the python package feed associated to the project. This stage is run only when merging to master
|
|
|
- for python services a stage for creating the docker image of the service and pushing it to the docker repository associated to the project
|
|
|
- for docker images, templates stages for running static code analysis tools
|
|
|
|
|
|
## Coding standards
|
|
|
PEP 8
|
... | ... | |