Grip on Software server framework
Project description
GROS Python server framework
This repository contains a framework for setting up a Web application based on Python modules, using CherryPy for routing.
This framework is used for a few servers within the Grip on Software pipeline, namely the deployer and status-dashboard repositories.
Installation and building
The latest version of GROS server framework module and its dependencies can be
installed using pip install gros-server
.
Another option is to build the module from this repository, which allows using
the most recent development code. Some functionality of the server framework is
based on the data gathering module
and requires a proper installation of that package. It and other dependencies
may be installed using make setup
. The server framework itself may then be
installed with make install
, which places the package in your current
environment. We recommend using a virtual environment during development.
Use make build
in order to generate a wheel package for the framework. The
files can then be found in the dist
directory (and installed from there using
pip install <path>
).
The Jenkinsfile
in this repository contains steps to build the package and
upload it to a PyPi-based repository so that it may be installed from there,
when built on a Jenkins CI server.
Development and testing
To run tests, first install the test dependencies with make setup_test
which
also installs all dependencies for the server framework. Then make coverage
provides test results in the output and in XML versions compatible with, e.g.,
JUnit and SonarQube available in the test-reports/
directory. If you do not
need XML outputs, then run make test
to just report on test successes and
failures or make cover
to also have the terminal report on hits and misses in
statements and branches.
GitHub Actions is used to run the unit tests and report on coverage on commits and pull requests. This includes quality gate scans tracked by SonarCloud and Coveralls for coverage history.
The Python module conforms to code style and typing standards which can be
checked using Pylint with make pylint
and mypy with make mypy
, after
installing the pylint and mypy dependencies using make setup_analysis
; typing
reports are XML formats compatible with JUnit and SonarQube placed in the
mypy-report/
directory. To also receive the HTML report, use make mypy_html
instead.
We publish releases to PyPI using
make setup_release
to install dependencies and make release
which performs
multiple checks: unit tests, typing, lint and version number consistency. The
release files are also published on
GitHub and
from there are archived on
Zenodo. Noteworthy changes to
the module are added to the changelog.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gros_server-1.0.0.tar.gz
.
File metadata
- Download URL: gros_server-1.0.0.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aeccaaccd2cd78474c414e07841b5ae0c9dd8461f5337238560e0215d7a7f4ff |
|
MD5 | ce832bfe6a62fac7ded616ff7ed3fd8d |
|
BLAKE2b-256 | bcb5bb3bc6ac2fe118a9c059f9a49d79f4fa63990af470af8ffaaf5572cf4f6e |
File details
Details for the file gros_server-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: gros_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c9db56f34808f12c82443654882d6f308f98d6ea096c9f7766e11ecf7b94593 |
|
MD5 | 3a7545adc6e0a85a7aa8d754dc1d02dd |
|
BLAKE2b-256 | d5bbff6c690af8710cd55dc431bce864c6b32352c96fa85b3f38b059be7af0c1 |