%global _empty_manifest_terminate_build 0
Name: python-batou
Version: 2.3
Release: 1
Summary: A utility for automating multi-host, multi-environment software builds and deployments.
License: BSD (2-clause)
URL: https://batou.readthedocs.io/en/latest/
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/96/fd/3c8f615b498d66fccb5ff602c3fb087fc85caf2b676ba0b2c8a09150ad97/batou-2.3.tar.gz
BuildArch: noarch
%description
batou helps you to automate your application deployments:
* You create a model of your deployment using a simple but powerful Python API.
* You configure how the model applies to hosts in different environments.
* You verify and run the deployment with the batou utility.
Getting started with a new project is easy:
```console
mkdir myproject
cd myproject
git init
curl -sL https://raw.githubusercontent.com/flyingcircusio/batou/main/bootstrap | sh
git commit -m "Start a batou project."
```
Here's a minimal application model:
```console
$ mkdir -p components/myapp
$ cat > components/myapp/component.py
from batou.component import Component
from batou.lib.python import VirtualEnv, Package
from batou.lib.supervisor import Program
class MyApp(Component):
def configure(self):
venv = VirtualEnv('2.7')
self += venv
venv += Package('myapp')
self += Program('myapp',
command='bin/myapp')
```
And here's a minimal environment:
```console
$ mkdir environments
$ cat > environments/dev/environment.cfg
[environment]
connect_method = local
[hosts]
localhost = myapp
```
To deploy this, you run:
```console
$ ./batou deploy dev
```
Check the [detailed documentation](http://batou.readthedocs.org) to get going with a more ambitious project.
## Features
* Separate your application model from environments
* Supports idempotent operation for incremental deployments
* Deploy to multiple hosts simultaneously
* Automated dependency resolution for multi-host scenarios
* No runtime requirements on your application
* Encrypted secrets with multiple access levels: store your
SSL certificates, SSH keys, service secrets and more to get true 1-button deployments.
* Deploy to local machines, Vagrant, or any SSH host
* Broad SSH feature support by using OpenSSH through execnet
* Only few dependencies required on the remote host
* Ships with a library of components for regularly needed tasks
* self-bootstrapping and self-updating - no additional scripting needed
## License
The project is licensed under the 2-clause BSD license.
## Hacking
* Make sure `mercurial` and `subversion` are installed and in `$PATH`.
* `python27` also needs to be installed and in `$PATH`.
* Run `./develop.sh` to create a local virtualenv with everything set up.
* Run the test suite using: `bin/tox`
* Build the documentation using: `cd doc; make`
* Set up GPG for the examples with `export GNUPGHOME=/src/batou/secrets/tests/fixture/gnupg`
## Changelog
See [CHANGES.md](./CHANGES.md).
%package -n python3-batou
Summary: A utility for automating multi-host, multi-environment software builds and deployments.
Provides: python-batou
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-batou
batou helps you to automate your application deployments:
* You create a model of your deployment using a simple but powerful Python API.
* You configure how the model applies to hosts in different environments.
* You verify and run the deployment with the batou utility.
Getting started with a new project is easy:
```console
mkdir myproject
cd myproject
git init
curl -sL https://raw.githubusercontent.com/flyingcircusio/batou/main/bootstrap | sh
git commit -m "Start a batou project."
```
Here's a minimal application model:
```console
$ mkdir -p components/myapp
$ cat > components/myapp/component.py
from batou.component import Component
from batou.lib.python import VirtualEnv, Package
from batou.lib.supervisor import Program
class MyApp(Component):
def configure(self):
venv = VirtualEnv('2.7')
self += venv
venv += Package('myapp')
self += Program('myapp',
command='bin/myapp')
```
And here's a minimal environment:
```console
$ mkdir environments
$ cat > environments/dev/environment.cfg
[environment]
connect_method = local
[hosts]
localhost = myapp
```
To deploy this, you run:
```console
$ ./batou deploy dev
```
Check the [detailed documentation](http://batou.readthedocs.org) to get going with a more ambitious project.
## Features
* Separate your application model from environments
* Supports idempotent operation for incremental deployments
* Deploy to multiple hosts simultaneously
* Automated dependency resolution for multi-host scenarios
* No runtime requirements on your application
* Encrypted secrets with multiple access levels: store your
SSL certificates, SSH keys, service secrets and more to get true 1-button deployments.
* Deploy to local machines, Vagrant, or any SSH host
* Broad SSH feature support by using OpenSSH through execnet
* Only few dependencies required on the remote host
* Ships with a library of components for regularly needed tasks
* self-bootstrapping and self-updating - no additional scripting needed
## License
The project is licensed under the 2-clause BSD license.
## Hacking
* Make sure `mercurial` and `subversion` are installed and in `$PATH`.
* `python27` also needs to be installed and in `$PATH`.
* Run `./develop.sh` to create a local virtualenv with everything set up.
* Run the test suite using: `bin/tox`
* Build the documentation using: `cd doc; make`
* Set up GPG for the examples with `export GNUPGHOME=/src/batou/secrets/tests/fixture/gnupg`
## Changelog
See [CHANGES.md](./CHANGES.md).
%package help
Summary: Development documents and examples for batou
Provides: python3-batou-doc
%description help
batou helps you to automate your application deployments:
* You create a model of your deployment using a simple but powerful Python API.
* You configure how the model applies to hosts in different environments.
* You verify and run the deployment with the batou utility.
Getting started with a new project is easy:
```console
mkdir myproject
cd myproject
git init
curl -sL https://raw.githubusercontent.com/flyingcircusio/batou/main/bootstrap | sh
git commit -m "Start a batou project."
```
Here's a minimal application model:
```console
$ mkdir -p components/myapp
$ cat > components/myapp/component.py
from batou.component import Component
from batou.lib.python import VirtualEnv, Package
from batou.lib.supervisor import Program
class MyApp(Component):
def configure(self):
venv = VirtualEnv('2.7')
self += venv
venv += Package('myapp')
self += Program('myapp',
command='bin/myapp')
```
And here's a minimal environment:
```console
$ mkdir environments
$ cat > environments/dev/environment.cfg
[environment]
connect_method = local
[hosts]
localhost = myapp
```
To deploy this, you run:
```console
$ ./batou deploy dev
```
Check the [detailed documentation](http://batou.readthedocs.org) to get going with a more ambitious project.
## Features
* Separate your application model from environments
* Supports idempotent operation for incremental deployments
* Deploy to multiple hosts simultaneously
* Automated dependency resolution for multi-host scenarios
* No runtime requirements on your application
* Encrypted secrets with multiple access levels: store your
SSL certificates, SSH keys, service secrets and more to get true 1-button deployments.
* Deploy to local machines, Vagrant, or any SSH host
* Broad SSH feature support by using OpenSSH through execnet
* Only few dependencies required on the remote host
* Ships with a library of components for regularly needed tasks
* self-bootstrapping and self-updating - no additional scripting needed
## License
The project is licensed under the 2-clause BSD license.
## Hacking
* Make sure `mercurial` and `subversion` are installed and in `$PATH`.
* `python27` also needs to be installed and in `$PATH`.
* Run `./develop.sh` to create a local virtualenv with everything set up.
* Run the test suite using: `bin/tox`
* Build the documentation using: `cd doc; make`
* Set up GPG for the examples with `export GNUPGHOME=/src/batou/secrets/tests/fixture/gnupg`
## Changelog
See [CHANGES.md](./CHANGES.md).
%prep
%autosetup -n batou-2.3
%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-batou -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri May 05 2023 Python_Bot - 2.3-1
- Package Spec generated