From 9efbbb88206277830b37bd4268313791c5b5f2b6 Mon Sep 17 00:00:00 2001 From: jzhang533 Date: Mon, 25 Mar 2024 15:14:51 +0800 Subject: [PATCH] try using github action to automate release package uploading (#3113) --- .github/workflows/python-publish.yml | 39 +++++++++++++++++++++++++++ MANIFEST.in | 3 +-- pyproject.toml | 37 +++++++++++++++++++++++++ setup.py | 40 +--------------------------- version.txt | 1 + 5 files changed, 79 insertions(+), 41 deletions(-) create mode 100644 .github/workflows/python-publish.yml create mode 100644 pyproject.toml create mode 100644 version.txt diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml new file mode 100644 index 0000000000..f1ce115981 --- /dev/null +++ b/.github/workflows/python-publish.yml @@ -0,0 +1,39 @@ +# This workflow will upload a Python Package using Twine when a release is created +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package + +on: + release: + types: [published] + +permissions: + contents: read + +jobs: + deploy: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build + - name: Build package + run: python -m build + - name: Publish package + uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/MANIFEST.in b/MANIFEST.in index dc54ff98b7..8eddd2511a 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,5 @@ -include LICENSE.txt +include LICENSE include README.md -include docs/en/whl_en.md recursive-include deploy/python *.py recursive-include deploy/utils *.py recursive-include ppcls/arch *.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..9fe6403955 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,37 @@ +[build-system] +requires = ["setuptools>=64"] +build-backend = "setuptools.build_meta" + +[project] +name = "paddleclas" +description = "A treasure chest for visual recognition powered by PaddlePaddle." + +keywords=[ + 'image-classification', 'image-recognition', 'pretrained-models', + 'knowledge-distillation', 'product-recognition', 'autoaugment', + 'cutmix', 'randaugment', 'gridmask', 'deit', 'repvgg', + 'swin-transformer', 'image-retrieval-system' +] +classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Operating System :: OS Independent', + 'Intended Audience :: Developers', + 'Intended Audience :: Education', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: Apache Software License', +] + +readme = "README.md" +license = {file = "LICENSE"} +requires-python = ">=3.8" + +dynamic = ["version", "dependencies"] + +[project.scripts] +paddleclas = "paddleclas.paddleclas:main" + +[tool.setuptools.dynamic] +version = {file = "version.txt"} +dependencies = {file = "requirements.txt"} + + diff --git a/setup.py b/setup.py index 6e22f58d16..1131c35ece 100644 --- a/setup.py +++ b/setup.py @@ -12,51 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from io import open from setuptools import setup -with open('requirements.txt', encoding="utf-8-sig") as f: - requirements = f.readlines() - - -def readme(): - with open( - 'docs/en/inference_deployment/whl_deploy_en.md', - encoding="utf-8-sig") as f: - README = f.read() - return README - setup( - name='paddleclas', packages=['paddleclas'], package_dir={'paddleclas': ''}, include_package_data=True, - entry_points={ - "console_scripts": ["paddleclas=paddleclas.paddleclas:main"] - }, - version='0.0.0', - install_requires=requirements, - license='Apache License 2.0', - description='A treasure chest for visual recognition powered by PaddlePaddle.', - long_description=readme(), - long_description_content_type='text/markdown', url='https://github.com/PaddlePaddle/PaddleClas', download_url='https://github.com/PaddlePaddle/PaddleClas.git', - keywords=[ - 'image-classification', 'image-recognition', 'pretrained-models', - 'knowledge-distillation', 'product-recognition', 'autoaugment', - 'cutmix', 'randaugment', 'gridmask', 'deit', 'repvgg', - 'swin-transformer', 'image-retrieval-system' - ], - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Operating System :: OS Independent', - 'Intended Audience :: Developers', - 'Intended Audience :: Education', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: Apache Software License', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - ], ) +) diff --git a/version.txt b/version.txt new file mode 100644 index 0000000000..f225a78adf --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +2.5.2