Blob Blame History Raw
%global pkg jedi

%global commit e942a0e410cbb2a214c9cb30aaf0e47eb0895b78
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commitdate 20210503

Name:           emacs-%{pkg}
Version:        0.3.0
Release:        0.1.%{commitdate}git%{shortcommit}%{?dist}
Summary:        Python auto-completion for Emacs

License:        GPLv3+
URL:            https://tkf.github.io/%{name}/
Source0:        https://github.com/tkf/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
Source1:        %{pkg}-init.el
# Remove useless dependency on argparse module (in Python standard library)
Patch0:         %{name}-0.3.0-python_requires.patch
# Invoke system jediepcserver
Patch1:         %{name}-0.2.8-jediepcserver.patch

BuildRequires:  emacs
BuildRequires:  emacs-auto-complete
BuildRequires:  emacs-epc
BuildRequires:  emacs-python-environment
BuildRequires:  python3-devel
Requires:       emacs(bin) >= %{_emacs_version}
Requires:       emacs-auto-complete
Requires:       emacs-epc
Requires:       emacs-python-environment
Requires:       %{py3_dist jediepcserver}
BuildArch:      noarch

%description
Jedi.el is a Python auto-completion package for Emacs. It aims at helping your
Python coding in a non-destructive way. It also helps you to find information
about Python objects, such as docstring, function arguments and code location.


%package -n python3-jediepcserver
Summary:        Jedi EPC server
Provides:       jediepcserver = %{version}-%{release}

%description -n python3-jediepcserver
%{summary}.


%prep
%autosetup -n %{name}-%{commit}

# Remove shebang
sed -i.orig -e 1d jediepcserver.py && \
touch -r jediepcserver.py.orig jediepcserver.py && \
rm jediepcserver.py.orig


%generate_buildrequires
%pyproject_buildrequires -t


%build
%{_emacs_bytecompile} %{pkg}-core.el %{pkg}.el

%pyproject_wheel


%install
install -dm 0755 $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{pkg}/
install -pm 0644 %{pkg}.el* %{pkg}-core.el* setup.py -t $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{pkg}/
ln -s %{python3_sitelib}/jediepcserver.py $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{pkg}/jediepcserver.py

install -Dpm 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_emacs_sitestartdir}/%{pkg}-init.el

%pyproject_install
%pyproject_save_files jediepcserver


%check
export PYTEST_ADDOPTS="--deselect=test_jediepcserver.py::test_epc_server_runs_fine_in_virtualenv"
%tox


%files
%doc CONTRIBUTING.md README.rst
%{_emacs_sitelispdir}/%{pkg}/
%{_emacs_sitestartdir}/*.el


%files -n python3-jediepcserver -f %{pyproject_files}
%{_bindir}/jediepcserver


%changelog
* Sat Sep 11 2021 Mohamed El Morabity <melmorabity@fedoraproject.org> - 0.3.0-0.1.20210503gite942a0e
- Update to latest snapshot (for jedi >= 0.18 support)

* Sat Sep 11 2021 Mohamed El Morabity <melmorabity@fedoraproject.org> - 0.2.8-2
- Add Python tests
- Update autostart file

* Tue Sep 01 2020 Mohamed El Morabity <melmorabity@fedoraproject.org> - 0.2.8-1
- Initial RPM release