From 764b893cb22cf0d481709061d1ddae223214dce2 Mon Sep 17 00:00:00 2001 From: Space One Date: Wed, 29 Apr 2026 03:16:14 +0200 Subject: [PATCH 1/2] ci(github): add PyPI release pipeline --- .github/workflows/release.yml | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..bf5a489d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,44 @@ +--- +name: Manual PyPI Release + +'on': + workflow_dispatch: + inputs: + version: + description: "Version tag (e.g. 1.0.0)" + required: true +# push: +# branches: +# - master + +permissions: + id-token: write + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Create tag + run: | + git tag ${{ github.event.inputs.version }} + git push origin ${{ github.event.inputs.version }} + + - name: Install build dependencies + run: pip install build + + - name: Build distribution + run: python -m build + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 From 2703734922071842b1feaea317f0ec4633b3e6f7 Mon Sep 17 00:00:00 2001 From: Space One Date: Wed, 29 Apr 2026 03:17:25 +0200 Subject: [PATCH 2/2] chore: publish 0.2 release --- debian/changelog | 6 ++++++ debian/compat | 1 - debian/control | 19 ++----------------- debian/copyright | 2 +- httoop/version.py | 2 +- pyproject.toml | 13 ++++++------- 6 files changed, 16 insertions(+), 27 deletions(-) delete mode 100644 debian/compat diff --git a/debian/changelog b/debian/changelog index edc4a9f4..94896513 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +httoop (0.2.0) unstable; urgency=medium + + * Add support for Python 3.8 - 3.14, drop support for Python 2.7 - 3.7 + + -- Florian Best Wed, 29 Apr 2026 03:13:50 +0200 + httoop (0.1.1) unstable; urgency=medium * various fixes regarding authentication, compression, etc. diff --git a/debian/compat b/debian/compat deleted file mode 100644 index ec635144..00000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/debian/control b/debian/control index b8133889..a7f6b28b 100644 --- a/debian/control +++ b/debian/control @@ -4,26 +4,11 @@ Priority: optional Maintainer: Florian Best Standards-Version: 3.9.8 Build-Depends: + debhelper-compat (=13), debhelper, dh-python, - python-all, - python-debian, + pybuild-plugin-pyproject, python3-all, - python3-debian, - -Package: python-httoop -Architecture: all -Depends: - ${misc:Depends}, - ${python:Depends}, -Provides: - ${python:Provides}, -Recommends: - python-defusedxml, - python-uritemplate, -Description: HTTOOP - An object oriented HTTP library. - Httoop can be used to parse, compose and work with HTTP-Request- and Response-Messages. - It is an generic library for implementing HTTP servers, clients, caches and proxies. Package: python3-httoop Architecture: all diff --git a/debian/copyright b/debian/copyright index c261d322..3a49b9bd 100644 --- a/debian/copyright +++ b/debian/copyright @@ -3,7 +3,7 @@ Upstream-Name: Florian Best Upstream-Contact: Files: * -Copyright: 2013-2020 Florian Best +Copyright: 2013-2026 Florian Best License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/httoop/version.py b/httoop/version.py index 94fa470c..c9a56ecc 100644 --- a/httoop/version.py +++ b/httoop/version.py @@ -2,7 +2,7 @@ from httoop.messages import Protocol -__version__ = '0.1.1' +__version__ = '0.2.0' UserAgentHeader = __UserAgent.parse(b'httoop/%s' % (__version__.encode(),)) ServerHeader = __Server.parse(b'httoop/%s' % (__version__.encode(),)) ServerProtocol = Protocol((1, 1)) diff --git a/pyproject.toml b/pyproject.toml index 25e0a3dc..4ef3330e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools>=61"] +requires = ["setuptools>=70", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.dynamic] @@ -8,18 +8,17 @@ version = { attr = "httoop.version.__version__" } [project] name = "httoop" dynamic = ["version"] +license = { text = "MIT" } description = "object oriented HTTP protocol library" readme = { file = "README.md", content-type = "text/markdown" } authors = [ { name = "SpaceOne", email = "space@wechall.net" } ] -license = { text = "MIT" } keywords = ["HTTP", "web", "proxy", "cache", "client", "server", "library"] classifiers = [ "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: Information Technology", - "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", @@ -55,13 +54,13 @@ test = [ [tool.pytest.ini_options] addopts = "-s -l -vv --tb=native --strict-markers --cov=httoop --cov-report=xml --cov-report=term-missing" -[tool.setuptools.packages.find] -where = ["."] -exclude = ["tests", "tests.*"] - [tool.setuptools] zip-safe = true +[tool.setuptools.packages.find] +include = ["httoop*"] +exclude = ["debian.*", "tests.*", "rfc.*"] + [project.urls] Homepage = "https://github.com/spaceone/httoop"