summaryrefslogtreecommitdiff
path: root/python-madam-mam.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 05:24:35 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 05:24:35 +0000
commit3473341606459d8c467361ba3fb51614d9ccd855 (patch)
treedc7d60dbab33170f948bff2be7738b8764306e24 /python-madam-mam.spec
parent2d156bc9c691881984d7986df2bc4b0bca20c1a1 (diff)
automatic import of python-madam-mamopeneuler20.03
Diffstat (limited to 'python-madam-mam.spec')
-rw-r--r--python-madam-mam.spec694
1 files changed, 694 insertions, 0 deletions
diff --git a/python-madam-mam.spec b/python-madam-mam.spec
new file mode 100644
index 0000000..b386484
--- /dev/null
+++ b/python-madam-mam.spec
@@ -0,0 +1,694 @@
+%global _empty_manifest_terminate_build 0
+Name: python-madam-mam
+Version: 0.7.0
+Release: 1
+Summary: MADAM (TM) Multi Agent Digital Asset Manager - a MAM server for Docker Swarm to handle higly distributed media processes
+License: GPL-3.0-only
+URL: https://pypi.org/project/madam-mam/
+Source0: https://mirrors.aliyun.com/pypi/web/packages/6f/0b/96784c07c5c45fc66be3cac2b88a483668095c1d6d3f1732a53643642045/madam-mam-0.7.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-psycopg2-binary
+Requires: python3-PyYAML
+Requires: python3-docker
+Requires: python3-timecode
+Requires: python3-sql
+Requires: python3-rich
+Requires: python3-ariadne
+Requires: python3-uvicorn
+Requires: python3-yoyo-migrations
+Requires: python3-lxml
+Requires: python3-watchgod
+Requires: python3-Jinja2
+Requires: python3-adhesive-zeebe
+
+%description
+# MADAM
+
+MADAM is the Multi Agent Digital Asset Manager.
+
+It provides a three-tier architecture platform to handle workflow processing in a distributed environment.
+
+It uses Docker swarm to dispatch processes in a cluster of machines.
+
+It is a free (as freedom) software written in Python.
+
+## Documentation
+
+[Link to the documentation](https://m5231.gitlab.io/documentation/)
+
+## Support
+
+If you find this project useful and want to contribute, please submit issues, merge requests. If you use it regularly,
+you can help by the author by a financial support.
+
+<script src="https://liberapay.com/vit/widgets/button.js"></script>
+<noscript><a href="https://liberapay.com/vit/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></noscript>
+
+## Requirements
+
+You will need [Camunda Modeler 4.11+](https://github.com/camunda/camunda-modeler/releases) to easily create
+Zeebe BPMN XML workflows for MADAM.
+
+## Licensing
+
+MADAM is licensed under the [Gnu Public License Version 3](https://www.gnu.org/licenses/gpl-3.0.en.html).
+
+Camunda Modeler is licensed under [the MIT License (MIT)](https://mit-license.org/).
+
+At its core, MADAM use [adhesive-zebe](https://github.com/vtexier/adhesive), a BPMN workflow python engine able to
+execute Zeebe BPMN XML workflows. It is a fork of [adhesive](https://github.com/germaniumhq/adhesive) under
+the original adhesive license that is [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.en.html)
+
+## System environment setup
+
+1. [Install Docker](https://docs.docker.com/engine/install/).
+
+2. [Configure userns-remap](https://docs.docker.com/engine/security/userns-remap/) to map container user `root` to a
+ host non-root user.
+
+3. Configure the dev station as a [Docker Swarm Manager](https://docs.docker.com/engine/swarm/).
+
+4. Install a [Postgresql](https://www.postgresql.org/download/) database server.
+
+_You can use the Ansible playbook provided to install PostgreSQL locally with Docker,
+after configuring `hosts.yaml`:_
+
+ make environment
+
+### Python environment setup
+
+* It requires Python 3.8+.
+
+* [Pyenv](https://github.com/pyenv/pyenv) should be used to choose the right version of Python, without breaking the
+ default Python of the Operating System.
+
+* A Python virtual environment should be created in a `.venv` folder.
+
+```bash
+ pyenv install 3.8.0
+ pyenv shell 3.8.0
+ python -m venv .venv
+ source .venv/bin/activate`
+```
+
+### Installation/Update
+
+From PyPI:
+
+In a Python virtualenv:
+
+ pip install -U madam-mam
+
+In your user install directory:
+
+ pip install --user -U madam-mam
+
+You should have a the `madam` cli command available:
+
+ madam
+
+or
+
+ madam --help
+
+will display command usage.
+
+To have bash completion, you can type:
+
+ _MADAM_COMPLETE=source_bash madam > madam-complete.sh
+ sudo cp madam-complete.sh /etc/bash_completion.d/.
+
+For another shell, replace `source_bash` by `source_zsh` or `source_fish`
+
+### Development environment
+
+Install [Poetry](https://python-poetry.org/) with the custom installer:
+
+ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
+
+Install Python dependencies:
+
+ poetry install --no-root
+
+You can use the madam-cli dev command:
+
+ ./bin/madam-cli
+
+Get `bin/madam-cli` bash shell completion:
+
+ _MADAM_CLI_COMPLETE=source_bash bin/madam-cli > madam-cli-complete.sh
+ sudo cp madam-cli-complete.sh /etc/bash_completion.d/.
+
+For another shell, replace `source_bash` by `source_zsh` or `source_fish`
+
+### Configuration
+
+Make a copy of the environment config example file:
+
+ cp .env.example .env
+
+Edit `.env` to suit your needs, then:
+
+ export $(grep -v '^#' .env | xargs -d '\n')
+
+Make a copy of the Ansible inventory example file:
+
+ cp hosts.yaml.example hosts.yaml
+
+Edit `hosts.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file:
+
+ cp madam.yaml.example madam.yaml
+
+Edit `madam.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file for the test environment:
+
+ cp madam_tests.yaml.example madam_tests.yaml
+
+Edit `madam_tests.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file for the local deploy:
+
+ cp madam_deploy.yaml.example madam_deploy.yaml
+
+Edit `madam_deploy.yaml` to suit your needs.
+
+### Set and tag project version in Git
+
+ ./bin/release.sh 1.0.0
+
+### Build MADAM python package and Docker image
+
+ make build
+
+The wheel package will be build in the `dist` directory.
+
+## Deploy MADAM as local docker container
+
+To deploy MADAM container on localhost:
+
+ make deploy
+
+## Check static type and code quality
+
+ make check
+
+## Run tests
+
+Run all [pytest](https://docs.pytest.org) tests with:
+
+ make tests
+
+Run only some tests by using `bin/tests.sh`:
+
+ bin/tests.sh tests/domains/test_workflows.py::test_create
+
+## Database setup
+
+Set `DATABASE_URL` and `DATABASE_URL_TESTS` environment variable in `.env` file:
+
+ DATABASE_URL=postgresql://postgres:xxxxx@hostname:5432/madam?sslmode=allow
+ DATABASE_URL_TESTS=postgresql://postgres:xxxxx@hostname:5432/madam_tests?sslmode=allow
+
+### Migrations scripts
+
+Add/Edit scripts in `resources/migrations` directory:
+
+ # version.name.[rollback].sql
+ 00001.init_tables.sql
+ 00001.init_tables.rollback.sql
+
+### Migrate commands
+
+ make databases
+ make databases_rollback
+ make databases_list
+
+
+%package -n python3-madam-mam
+Summary: MADAM (TM) Multi Agent Digital Asset Manager - a MAM server for Docker Swarm to handle higly distributed media processes
+Provides: python-madam-mam
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-madam-mam
+# MADAM
+
+MADAM is the Multi Agent Digital Asset Manager.
+
+It provides a three-tier architecture platform to handle workflow processing in a distributed environment.
+
+It uses Docker swarm to dispatch processes in a cluster of machines.
+
+It is a free (as freedom) software written in Python.
+
+## Documentation
+
+[Link to the documentation](https://m5231.gitlab.io/documentation/)
+
+## Support
+
+If you find this project useful and want to contribute, please submit issues, merge requests. If you use it regularly,
+you can help by the author by a financial support.
+
+<script src="https://liberapay.com/vit/widgets/button.js"></script>
+<noscript><a href="https://liberapay.com/vit/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></noscript>
+
+## Requirements
+
+You will need [Camunda Modeler 4.11+](https://github.com/camunda/camunda-modeler/releases) to easily create
+Zeebe BPMN XML workflows for MADAM.
+
+## Licensing
+
+MADAM is licensed under the [Gnu Public License Version 3](https://www.gnu.org/licenses/gpl-3.0.en.html).
+
+Camunda Modeler is licensed under [the MIT License (MIT)](https://mit-license.org/).
+
+At its core, MADAM use [adhesive-zebe](https://github.com/vtexier/adhesive), a BPMN workflow python engine able to
+execute Zeebe BPMN XML workflows. It is a fork of [adhesive](https://github.com/germaniumhq/adhesive) under
+the original adhesive license that is [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.en.html)
+
+## System environment setup
+
+1. [Install Docker](https://docs.docker.com/engine/install/).
+
+2. [Configure userns-remap](https://docs.docker.com/engine/security/userns-remap/) to map container user `root` to a
+ host non-root user.
+
+3. Configure the dev station as a [Docker Swarm Manager](https://docs.docker.com/engine/swarm/).
+
+4. Install a [Postgresql](https://www.postgresql.org/download/) database server.
+
+_You can use the Ansible playbook provided to install PostgreSQL locally with Docker,
+after configuring `hosts.yaml`:_
+
+ make environment
+
+### Python environment setup
+
+* It requires Python 3.8+.
+
+* [Pyenv](https://github.com/pyenv/pyenv) should be used to choose the right version of Python, without breaking the
+ default Python of the Operating System.
+
+* A Python virtual environment should be created in a `.venv` folder.
+
+```bash
+ pyenv install 3.8.0
+ pyenv shell 3.8.0
+ python -m venv .venv
+ source .venv/bin/activate`
+```
+
+### Installation/Update
+
+From PyPI:
+
+In a Python virtualenv:
+
+ pip install -U madam-mam
+
+In your user install directory:
+
+ pip install --user -U madam-mam
+
+You should have a the `madam` cli command available:
+
+ madam
+
+or
+
+ madam --help
+
+will display command usage.
+
+To have bash completion, you can type:
+
+ _MADAM_COMPLETE=source_bash madam > madam-complete.sh
+ sudo cp madam-complete.sh /etc/bash_completion.d/.
+
+For another shell, replace `source_bash` by `source_zsh` or `source_fish`
+
+### Development environment
+
+Install [Poetry](https://python-poetry.org/) with the custom installer:
+
+ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
+
+Install Python dependencies:
+
+ poetry install --no-root
+
+You can use the madam-cli dev command:
+
+ ./bin/madam-cli
+
+Get `bin/madam-cli` bash shell completion:
+
+ _MADAM_CLI_COMPLETE=source_bash bin/madam-cli > madam-cli-complete.sh
+ sudo cp madam-cli-complete.sh /etc/bash_completion.d/.
+
+For another shell, replace `source_bash` by `source_zsh` or `source_fish`
+
+### Configuration
+
+Make a copy of the environment config example file:
+
+ cp .env.example .env
+
+Edit `.env` to suit your needs, then:
+
+ export $(grep -v '^#' .env | xargs -d '\n')
+
+Make a copy of the Ansible inventory example file:
+
+ cp hosts.yaml.example hosts.yaml
+
+Edit `hosts.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file:
+
+ cp madam.yaml.example madam.yaml
+
+Edit `madam.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file for the test environment:
+
+ cp madam_tests.yaml.example madam_tests.yaml
+
+Edit `madam_tests.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file for the local deploy:
+
+ cp madam_deploy.yaml.example madam_deploy.yaml
+
+Edit `madam_deploy.yaml` to suit your needs.
+
+### Set and tag project version in Git
+
+ ./bin/release.sh 1.0.0
+
+### Build MADAM python package and Docker image
+
+ make build
+
+The wheel package will be build in the `dist` directory.
+
+## Deploy MADAM as local docker container
+
+To deploy MADAM container on localhost:
+
+ make deploy
+
+## Check static type and code quality
+
+ make check
+
+## Run tests
+
+Run all [pytest](https://docs.pytest.org) tests with:
+
+ make tests
+
+Run only some tests by using `bin/tests.sh`:
+
+ bin/tests.sh tests/domains/test_workflows.py::test_create
+
+## Database setup
+
+Set `DATABASE_URL` and `DATABASE_URL_TESTS` environment variable in `.env` file:
+
+ DATABASE_URL=postgresql://postgres:xxxxx@hostname:5432/madam?sslmode=allow
+ DATABASE_URL_TESTS=postgresql://postgres:xxxxx@hostname:5432/madam_tests?sslmode=allow
+
+### Migrations scripts
+
+Add/Edit scripts in `resources/migrations` directory:
+
+ # version.name.[rollback].sql
+ 00001.init_tables.sql
+ 00001.init_tables.rollback.sql
+
+### Migrate commands
+
+ make databases
+ make databases_rollback
+ make databases_list
+
+
+%package help
+Summary: Development documents and examples for madam-mam
+Provides: python3-madam-mam-doc
+%description help
+# MADAM
+
+MADAM is the Multi Agent Digital Asset Manager.
+
+It provides a three-tier architecture platform to handle workflow processing in a distributed environment.
+
+It uses Docker swarm to dispatch processes in a cluster of machines.
+
+It is a free (as freedom) software written in Python.
+
+## Documentation
+
+[Link to the documentation](https://m5231.gitlab.io/documentation/)
+
+## Support
+
+If you find this project useful and want to contribute, please submit issues, merge requests. If you use it regularly,
+you can help by the author by a financial support.
+
+<script src="https://liberapay.com/vit/widgets/button.js"></script>
+<noscript><a href="https://liberapay.com/vit/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></noscript>
+
+## Requirements
+
+You will need [Camunda Modeler 4.11+](https://github.com/camunda/camunda-modeler/releases) to easily create
+Zeebe BPMN XML workflows for MADAM.
+
+## Licensing
+
+MADAM is licensed under the [Gnu Public License Version 3](https://www.gnu.org/licenses/gpl-3.0.en.html).
+
+Camunda Modeler is licensed under [the MIT License (MIT)](https://mit-license.org/).
+
+At its core, MADAM use [adhesive-zebe](https://github.com/vtexier/adhesive), a BPMN workflow python engine able to
+execute Zeebe BPMN XML workflows. It is a fork of [adhesive](https://github.com/germaniumhq/adhesive) under
+the original adhesive license that is [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.en.html)
+
+## System environment setup
+
+1. [Install Docker](https://docs.docker.com/engine/install/).
+
+2. [Configure userns-remap](https://docs.docker.com/engine/security/userns-remap/) to map container user `root` to a
+ host non-root user.
+
+3. Configure the dev station as a [Docker Swarm Manager](https://docs.docker.com/engine/swarm/).
+
+4. Install a [Postgresql](https://www.postgresql.org/download/) database server.
+
+_You can use the Ansible playbook provided to install PostgreSQL locally with Docker,
+after configuring `hosts.yaml`:_
+
+ make environment
+
+### Python environment setup
+
+* It requires Python 3.8+.
+
+* [Pyenv](https://github.com/pyenv/pyenv) should be used to choose the right version of Python, without breaking the
+ default Python of the Operating System.
+
+* A Python virtual environment should be created in a `.venv` folder.
+
+```bash
+ pyenv install 3.8.0
+ pyenv shell 3.8.0
+ python -m venv .venv
+ source .venv/bin/activate`
+```
+
+### Installation/Update
+
+From PyPI:
+
+In a Python virtualenv:
+
+ pip install -U madam-mam
+
+In your user install directory:
+
+ pip install --user -U madam-mam
+
+You should have a the `madam` cli command available:
+
+ madam
+
+or
+
+ madam --help
+
+will display command usage.
+
+To have bash completion, you can type:
+
+ _MADAM_COMPLETE=source_bash madam > madam-complete.sh
+ sudo cp madam-complete.sh /etc/bash_completion.d/.
+
+For another shell, replace `source_bash` by `source_zsh` or `source_fish`
+
+### Development environment
+
+Install [Poetry](https://python-poetry.org/) with the custom installer:
+
+ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
+
+Install Python dependencies:
+
+ poetry install --no-root
+
+You can use the madam-cli dev command:
+
+ ./bin/madam-cli
+
+Get `bin/madam-cli` bash shell completion:
+
+ _MADAM_CLI_COMPLETE=source_bash bin/madam-cli > madam-cli-complete.sh
+ sudo cp madam-cli-complete.sh /etc/bash_completion.d/.
+
+For another shell, replace `source_bash` by `source_zsh` or `source_fish`
+
+### Configuration
+
+Make a copy of the environment config example file:
+
+ cp .env.example .env
+
+Edit `.env` to suit your needs, then:
+
+ export $(grep -v '^#' .env | xargs -d '\n')
+
+Make a copy of the Ansible inventory example file:
+
+ cp hosts.yaml.example hosts.yaml
+
+Edit `hosts.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file:
+
+ cp madam.yaml.example madam.yaml
+
+Edit `madam.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file for the test environment:
+
+ cp madam_tests.yaml.example madam_tests.yaml
+
+Edit `madam_tests.yaml` to suit your needs.
+
+Make a copy of the MADAM config example file for the local deploy:
+
+ cp madam_deploy.yaml.example madam_deploy.yaml
+
+Edit `madam_deploy.yaml` to suit your needs.
+
+### Set and tag project version in Git
+
+ ./bin/release.sh 1.0.0
+
+### Build MADAM python package and Docker image
+
+ make build
+
+The wheel package will be build in the `dist` directory.
+
+## Deploy MADAM as local docker container
+
+To deploy MADAM container on localhost:
+
+ make deploy
+
+## Check static type and code quality
+
+ make check
+
+## Run tests
+
+Run all [pytest](https://docs.pytest.org) tests with:
+
+ make tests
+
+Run only some tests by using `bin/tests.sh`:
+
+ bin/tests.sh tests/domains/test_workflows.py::test_create
+
+## Database setup
+
+Set `DATABASE_URL` and `DATABASE_URL_TESTS` environment variable in `.env` file:
+
+ DATABASE_URL=postgresql://postgres:xxxxx@hostname:5432/madam?sslmode=allow
+ DATABASE_URL_TESTS=postgresql://postgres:xxxxx@hostname:5432/madam_tests?sslmode=allow
+
+### Migrations scripts
+
+Add/Edit scripts in `resources/migrations` directory:
+
+ # version.name.[rollback].sql
+ 00001.init_tables.sql
+ 00001.init_tables.rollback.sql
+
+### Migrate commands
+
+ make databases
+ make databases_rollback
+ make databases_list
+
+
+%prep
+%autosetup -n madam-mam-0.7.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-madam-mam -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.7.0-1
+- Package Spec generated