Metadata-Version: 2.1
Name: minos-microservice-common
Version: 0.1.5
Summary: Python Package with common Classes and Utilities used in Minos Microservices.
Home-page: https://clariteia.com
License: MIT
Keywords: clariteia,minos,microservice,saga
Author: Clariteia Devs
Author-email: devs@clariteia.com
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: PyYAML (>=5.4.1,<6.0.0)
Requires-Dist: aiomisc (>=14.0.3,<15.0.0)
Requires-Dist: aiopg (>=1.2.1,<2.0.0)
Requires-Dist: cached-property (>=1.5.2,<2.0.0)
Requires-Dist: dependency-injector (>=4.32.2,<5.0.0)
Requires-Dist: fastavro (>=1.4.0,<2.0.0)
Requires-Dist: lmdb (>=1.2.1,<2.0.0)
Requires-Dist: orjson (>=3.5.2,<4.0.0)
Project-URL: Repository, https://github.com/clariteia/minos_microservice_common
Description-Content-Type: text/markdown

# Minos Microservice Common

[![codecov](https://codecov.io/gh/Clariteia/minos_microservice_common/branch/main/graph/badge.svg)](https://codecov.io/gh/Clariteia/minos_microservice_common)
![Tests](https://github.com/Clariteia/minos_microservice_common/actions/workflows/python-tests.yml/badge.svg)

Minos is a framework which helps you create [reactive](https://www.reactivemanifesto.org/) microservices in Python.
Internally, it leverages Event Sourcing, CQRS and a message driven architecture to fulfil the commitments of an
asynchronous environment.

## Documentation

The official documentation as well as the API you can find it under https://clariteia.github.io/minos_microservice_common/. 
Please, submit any issue regarding documentation as well!

## Set up a development environment

Minos uses `poetry` as its default package manager. Please refer to the
[Poetry installation guide](https://python-poetry.org/docs/#installation) for instructions on how to install it.

Now you con install all the dependencies by running
```bash
make install
```

In order to make the pre-commits checks available to git, run
```bash
pre-commit install
```

Make yourself sure you are able to run the tests. Refer to the appropriate section in this guide.

## Run the tests

In order to run the tests, please make sure you have the [Docker Engine](https://docs.docker.com/engine/install/)
and [Docker Compose](https://docs.docker.com/compose/install/) installed.

Move into `tests/` directory

```bash
cd tests/
```
Run service dependencies:

```bash
docker-compose up -d
```

Install library dependencies:

```bash
make install
```

Run tests:

```bash
make test
```

## How to contribute

Minos being an open-source project, we are looking forward to having your contributions. No matter whether it is a pull
request with new features, or the creation of an issue related to a bug you have found.

Please consider these guidelines before you submit any modification.

### Create an issue

1. If you happen to find a bug, please file a new issue filling the 'Bug report' template.
2. Set the appropriate labels, so we can categorise it easily.
3. Wait for any core developer's feedback on it.

### Submit a Pull Request

1. Create an issue following the previous steps.
2. Fork the project.
3. Push your changes to a local branch.
4. Run the tests!
5. Submit a pull request from your fork's branch.

## Credits

This package was created with ![Cookiecutter](https://github.com/audreyr/cookiecutter) and the ![Minos Package](https://github.com/Clariteia/minos-pypackage) project template.


