Overview
Here is available a list of project references.
Dependencies
List of Paasify dependencies:
- Paasify runtime dependencies:
- Python 3.8+: Recent version of Python
- Docker: Docker
- Paasify python dependencies
Typer
: Command line handlingjsonnet
: Jsonnet parsingsh
: Easy library to execute shell commandsjsonschema
: handle jsonscheme specsanyconfig
: load any configs
- Developper dependencies
- System dependencies:
- bash 5: Recent version of bash5+
- git: Git is a version control system
- virtualenv: Manage python virtual env
- Linux binaries:
curl
,sed
,wget
...
- Project external dependencies:
- Development:
commitizen
: ensure commit respect standardspytest
: test the code is not brokenpylint
: test the code is always first qualityblack
: test the code is always perfectly formattedpre-commit
: prevent you to commit too early
- Documentation: (optional)
mkdocs
: Project documentation websitemike
: manage many version of mkdocsjupyter
: generate docs from commands
- System dependencies:
Most of these dependencies are handled byt the scripts/bootstrap_deps.sh
script, please check setup for more details.
Workflow
Each commit should ideally contains:
- code
- tests
- related documentation
- valid commit message
This is the general workflow:
-
Code Development
- Update code
- Update tests
- Update related documentation
- Update docker image
-
Documentation:
- Update documentation
- Generate mkdocs:
- Include other files of the project
- Import jsonschema documentation
- Generate python code reference
-
Contributing:
- Code Quality:
- Run autolinter
black
- Run linting report
pylint
- Run tests:
- Run unit tests
- Run code-coverage
- Run functional tests
- Run examples tests
- Run autolinter
- Contribution
- Create a git commit with relevant git message
- Create a pull request
- Review of the commit
- Merge to upstream if accepted
- Code Quality:
-
Publish: (Maintainer on main branch only)
- Bump version
- Generate release notes
- Build
- Pip package
- Docker image
- mkdoc documentation
- Publish
- Pypi package
- Github package
- Documentataion on Github Pages
- Docker image on github and dockerhub
- Bump version
Once you developed or changed things, you need to start over from the top. Publishing is reserved to the project maintainer.