Skip to content

Commit

Permalink
Added pyproject.toml setup
Browse files Browse the repository at this point in the history
  • Loading branch information
mcrespoae committed May 29, 2024
1 parent b4d3a8b commit e4dfda8
Show file tree
Hide file tree
Showing 5 changed files with 157 additions and 73 deletions.
100 changes: 100 additions & 0 deletions .github/workflows/pypi_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Publish Python distributions to PyPI

on:
push:
tags:
- '*'

jobs:
build:
name: Build distributions
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.x

- name: Install pypa/build
run: |
python -m pip install --upgrade pip
pip install build
- name: Build a binary wheel
run: python -m build

- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/


publish-to-pypi:
name: Publish Python distribution to PyPI
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
needs: build
runs-on: ubuntu-latest
environment: release
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download distribution packages
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/

- name: Publish distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1


github-release:
name: Sign the Python distribution with Sigstore and upload them to GitHub Release

needs: publish-to-pypi
runs-on: ubuntu-latest

permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/

- name: Sign the dists with Sigstore
uses: sigstore/gh-action-sigstore-python@v2.1.1
with:
inputs: |
./dist/*.tar.gz
./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create '${{ github.ref_name }}' --repo '${{ github.repository }}' --notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: |
gh release upload '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}'
5 changes: 3 additions & 2 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ name = "pypi"
joblib = "==1.4.2"

[dev-packages]
setuptools = "==69.5.*"
setuptools-scm = "==8.1.*"
setuptools = "70.0.*"
wheel = "==0.43.*"
twine = "==5.0.*"
twine = "==5.1.*"
build = "==1.2.*"
tempit = {file = ".", editable = true}

Expand Down
71 changes: 25 additions & 46 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[build-system]
requires = ["setuptools>=70", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"

[project]
name = "tempit"
dynamic = ["version"]
description = "A dead simple time decorator"
authors = [{name = "Mario Crespo", email = "info@mariocrespo.es"}]
readme = "README.md"
dependencies = ["joblib==1.4.2"]
requires-python = ">= 3.8"

license = {file = "LICENSE"}
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Intended Audience :: Developers",
]

[project.urls]
Repository = "https://github.com/mcrespoae/tempit"


[tool.setuptools_scm]
version_scheme = "guess-next-dev"
local_scheme = "no-local-version"
25 changes: 0 additions & 25 deletions setup.py

This file was deleted.

0 comments on commit e4dfda8

Please sign in to comment.