python-alembic/python-alembic.spec
František Zatloukal efbde4a045 Convert to %autorelease and %autochangelog
[skip changelog]
2023-05-24 10:44:29 +02:00

104 lines
3.0 KiB
RPMSpec

Name: python-alembic
Version: 1.10.4
Release: %autorelease
Summary: Database migration tool for SQLAlchemy
# SPDX
License: MIT
URL: https://pypi.io/project/alembic
Source0: %{pypi_source alembic}
# Alembic fails with Python 3.10.0b2 due to DeprecationWarnings treated as an error.
# Downstream report: https://bugzilla.redhat.com/show_bug.cgi?id=1958159
Patch1: 0001-filter-out-DeprecationWarnings.patch
BuildArch: noarch
BuildRequires: help2man
BuildRequires: python3-devel
BuildRequires: python3-pytest
%if %{undefined rhel}
BuildRequires: python3-pytest-xdist
%endif
%global _description %{expand:
Alembic is a database migrations tool written by the author of SQLAlchemy. A
migrations tool offers the following functionality:
Can emit ALTER statements to a database in order to change the structure of
tables and other constructs
Provides a system whereby "migration scripts" may be constructed; each script
indicates a particular series of steps that can "upgrade" a target database
to a new version, and optionally a series of steps that can "downgrade"
similarly, doing the same steps in reverse.
Allows the scripts to execute in some sequential manner.
Documentation and status of Alembic is at https://alembic.sqlalchemy.org/}
%description %_description
%package -n python3-alembic
Summary: %summary
%description -n python3-alembic %_description
%pyproject_extras_subpkg -n python3-alembic tz
%prep
%autosetup -p1 -n alembic-%{version}
# HTML documentation has bundled and pre-compiled/pre-minified JavaScript; see
# https://docs.fedoraproject.org/en-US/packaging-guidelines/JavaScript/.
rm -rvf docs/_static
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
sed -r -i 's/^([[:blank:]]*(black|zimports))\b/# &/' tox.ini
%generate_buildrequires
%pyproject_buildrequires -x tz
%build
%pyproject_wheel
mkdir -p bin
echo '%{python3} -c "import alembic.config; alembic.config.main()" $*' > bin/alembic
chmod 0755 bin/alembic
help2man --version-string %{version} --no-info -s 1 bin/alembic > alembic.1
%install
install -d -m 0755 %{buildroot}%{_mandir}/man1
%pyproject_install
%pyproject_save_files alembic
mv %{buildroot}/%{_bindir}/alembic %{buildroot}/%{_bindir}/alembic-3
ln -s alembic-3 %{buildroot}/%{_bindir}/alembic-%{python3_version}
install -m 0644 alembic.1 %{buildroot}%{_mandir}/man1/alembic-3.1
ln -s alembic-3.1 %{buildroot}%{_mandir}/man1/alembic-%{python3_version}.1
ln -s alembic-%{python3_version} %{buildroot}/%{_bindir}/alembic
ln -s alembic-%{python3_version}.1 %{buildroot}%{_mandir}/man1/alembic.1
%check
%pytest %{?!rhel:-n auto}
%files -n python3-alembic -f %{pyproject_files}
# pyproject_files handles LICENSE; verify with rpm -qL -p ...
%doc README.rst CHANGES
%{_bindir}/alembic
%{_mandir}/man1/alembic.1{,.*}
%{_bindir}/alembic-3
%{_mandir}/man1/alembic-3.1{,.*}
%{_bindir}/alembic-%{python3_version}
%{_mandir}/man1/alembic-%{python3_version}.1{,.*}
%changelog
%autochangelog