Du kannst nicht mehr als 25 Themen auswählen
Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
21 Zeilen
2.0 KiB
TeX
21 Zeilen
2.0 KiB
TeX
For the management of the project, two GitHub Actions workflows\cite[p. 8]{actions2021} are set up, \texttt{qa} and \texttt{build}.
|
|
Every workflow runs on a container specified in the respective YAML file and defines one or more jobs that each
|
|
consist out of steps that are either predefined (e.g. \texttt{actions/checkout@v4}\footnote{actions/checkout: \url{https://github.com/actions/checkout}} for checking out the repository) or
|
|
just terminal commands (e.g. \texttt{pip install .} to install requirements).
|
|
|
|
The workflow \texttt{qa} is defined in \texttt{.github/workflows/qa.yml}.
|
|
It is executed on every push event and starts two different jobs.
|
|
The job \texttt{unittests} runs the unit tests stored in the directory \texttt{test} using different supported Python versions.
|
|
The unit tests are written manually to assure that certain code units function as intended.
|
|
The job \texttt{qodana} on the other hand triggers a run of the external static code analysis platform Qodana\footnote{Qodana: \url{https://www.jetbrains.com/qodana/}}.
|
|
Qodana is checking the code for readability, maintainability and security issues.
|
|
Additionally, checks for vulnerable libraries and the compatibility of the open source licences of the libraries used are activated.
|
|
A badge in the README shows the status of the last workflow execution.
|
|
|
|
The workflow \texttt{build}, defined at \texttt{.github/workflows/build.yml}, is executed when a tag is pushed.
|
|
It consists of a single job that installs all requirements and uses the module \texttt{build} to create a binary wheel.
|
|
After successful build, a release is automatically created with the binary wheel and the source code attached.
|
|
|
|
Another GitHub feature that was tried out for the project was dependabot\cite{dependabot} which was configured in \texttt{/.github/dependabot.yml}.
|
|
It checks for vulnerable libraries as well, creates issues for them and if possible provides pull requests with the update.
|
|
The configuration includes the packaging ecosystem, the checking interval and ignored packages. |