diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..038ff4b --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,39 @@ +specfile_path: packaging/shellai.spec +upstream_package_name: shellai +downstream_package_name: shellai +upstream_project_url: https://github.com/rhel-lightspeed/shellai + +srpm_build_deps: [] + +jobs: + # Defaults for copr + - &copr-build-defaults + job: copr_build + owner: "@rhel-lightspeed" + project: shellai + targets: + - rhel-8-x86_64 + - rhel-9-x86_64 + actions: + # do not get the version from a tag (git describe) but from the spec file + get-current-version: + - grep -oP '^Version:\s+\K\S+' packaging/shellai.spec + + # Build RPMs for each pull request + - &copr-build-pull-request + <<: *copr-build-defaults + trigger: pull_request + + # Build RPMs for main branch + - &copr-build-main + <<: *copr-build-defaults + trigger: commit + branch: main + actions: + # bump spec so we get release starting with 2 and hence all the default branch builds will + # have higher NVR than all the PR builds + post-upstream-clone: + - rpmdev-bumpspec --comment='latest upstream build' ./packaging/shellai.spec + # do not get the version from a tag (git describe) but from the spec file + get-current-version: + - grep -oP '^Version:\s+\K\S+' packaging/shellai.spec diff --git a/Makefile b/Makefile index be85d6b..b2a5933 100644 --- a/Makefile +++ b/Makefile @@ -34,4 +34,4 @@ clean: ## Clean project files @find . -name '__pycache__' -exec rm -fr {} + @find . -name '*.pyc' -exec rm -f {} + @find . -name '*.pyo' -exec rm -f {} + - @rm -rf .pdm-build .ruff_cache .coverage .pdm-python + @rm -rf .pdm-build .ruff_cache .coverage .pdm-python dist diff --git a/packaging/shellai.spec b/packaging/shellai.spec new file mode 100644 index 0000000..b061d8f --- /dev/null +++ b/packaging/shellai.spec @@ -0,0 +1,45 @@ +Name: shellai +Version: 0.1.0 +Release: 1%{?dist} +Summary: A simple wrapper to interact with RAG + +License: Apache v2 +URL: https://github.com/rhel-lightspeed/shellai +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +BuildArch: x86_64 + +BuildRequires: python3-devel +BuildRequires: python3-setuptools + +# We need to talk to subscription-manager over dbus +Requires: python3-requests +Requires: python3-pyyaml + +%description +A simple wrapper to interact with RAG + +%prep +%autosetup + +%generate_buildrequires +%pyproject_buildrequires -t + +%build +# Do not include unit tests in the package +rm -rf build/lib/%{name}/tests +%pyproject_wheel + +%install +# TODO(r0x0d): Create config file +%pyproject_install + +# Here, "shellai" is the name of the importable module. +%pyproject_save_files -l shellai + + +%files -n python3-shellai -f ${pyproject_files} +%license LICENSE +%doc README.md +%{_bindir}/shellai + +%changelog diff --git a/pyproject.toml b/pyproject.toml index 689b8d7..119a82d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,8 +23,9 @@ Issues = "https://github.com/rhel-lightspeed/shellai/issues" shellai = "shellai.__main__:main" [build-system] -requires = ["pdm-backend"] -build-backend = "pdm.backend" +# pdm build is not available in rhel baseos repositories +requires = ["setuptools"] +build-backend = "setuptools.build_meta" # ----- Tooling specifics