Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate metadata from setup.py to setup.cfg #863

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 4 additions & 6 deletions .github/workflows/python-publish.yml
Expand Up @@ -22,12 +22,10 @@ jobs:
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.11'
- name: Install prereq
run: pip install wheel
- name: Build python package
run: python setup.py build
- name: Package python package
run: python setup.py sdist bdist_wheel
run: pip install build wheel
- name: Build Python package
run: python -m build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do this provide both sdist bdist_wheel at once?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i saw that before, but just asking out of curiosity, do that provide same functionalities in a simpler new way?

Copy link
Contributor Author

@cclauss cclauss Sep 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build is the PyPA default tool for doing Python builds without a setup.py but there are many other ways to do builds. I suggest we look at the build results to see if they fit our purposes.

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
2 changes: 1 addition & 1 deletion docs/release_process.rst
Expand Up @@ -18,7 +18,7 @@ failing tests we will either:

Ideally, this process will allow rapid and graceful releases but in the case of
downstream projects remaining in a broken stage for long we will simply advice
they lock the oauthlib version in ``setup.py`` and release anyway.
they lock the oauthlib version in ``oauthlib/__init__.py`` and release anyway.

Unittests might not be enough and as an extra measure we will create an
OAuthLib release issue on Github at least 2 days prior to release detailing the
Expand Down
49 changes: 48 additions & 1 deletion setup.cfg
@@ -1,12 +1,59 @@
[metadata]
name = oauthlib
version = attr: oauthlib.__version__
author = The OAuthlib Community
author_email = idan@gazit.me
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can use the email of two current active maintainer here

Copy link
Contributor Author

@cclauss cclauss Sep 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JonathanHuot Your call on changing the Author email address?

description = A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
license = BSD-3-Clause
license_files = LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst
maintainer = Ib Lundgren
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
maintainer = Ib Lundgren
maintainer = Asif Saif Uddin, Jonathan Huot

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JonathanHuot Do you want your email address published as a Maintainer?

maintainer_email = ib.lundgren@gmail.com
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
maintainer_email = ib.lundgren@gmail.com
maintainer_email = auvipy@gmail.com

url = https://github.com/oauthlib/oauthlib
classifiers =
Development Status :: 5 - Production/Stable
Environment :: Web Environment
Intended Audience :: Developers
License :: OSI Approved
License :: OSI Approved :: BSD License
Operating System :: MacOS
Operating System :: POSIX
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: Implementation :: PyPy
Topic :: Software Development :: Libraries :: Python Modules
platforms = any

[options]
packages = find:
python_requires = >=3.6

[options.packages.find]
exclude = docs; tests; tests.*

[options.extras_require]
rsa = cryptography>=3.0.0
signals = blinker>=1.4.0
signedtoken = cryptography>=3.0.0; pyjwt>=2.0.0,<3

[isort]
combine_as_imports = true
default_section = THIRDPARTY
include_trailing_comma = true
known_first_party = oauthlib
known_tests = tests
sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,TESTS,LOCALFOLDER
line_length = 79
multi_line_output = 5
sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,TESTS,LOCALFOLDER
67 changes: 2 additions & 65 deletions setup.py
@@ -1,68 +1,5 @@
#!/usr/bin/env python3
# Hack because logging + setuptools sucks.
import contextlib
with contextlib.suppress(ImportError):
import multiprocessing

from setuptools import setup

from os.path import dirname, join

from setuptools import find_packages, setup

import oauthlib


def fread(fn):
with open(join(dirname(__file__), fn), 'r') as f:
return f.read()


rsa_require = ['cryptography>=3.0.0']
signedtoken_require = ['cryptography>=3.0.0', 'pyjwt>=2.0.0,<3']
signals_require = ['blinker>=1.4.0']

setup(
name='oauthlib',
version=oauthlib.__version__,
description='A generic, spec-compliant, thorough implementation of the OAuth request-signing logic',
long_description=fread('README.rst'),
long_description_content_type='text/x-rst',
author='The OAuthlib Community',
author_email='idan@gazit.me',
maintainer='Ib Lundgren',
maintainer_email='ib.lundgren@gmail.com',
url='https://github.com/oauthlib/oauthlib',
platforms='any',
license='BSD-3-Clause',
packages=find_packages(exclude=('docs', 'tests', 'tests.*')),
python_requires='>=3.6',
extras_require={
'rsa': rsa_require,
'signedtoken': signedtoken_require,
'signals': signals_require,
},
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'Intended Audience :: Developers',
'License :: OSI Approved',
'License :: OSI Approved :: BSD License',
'Operating System :: MacOS',
'Operating System :: POSIX',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: Implementation',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Software Development :: Libraries :: Python Modules',
]
)
setup()
1 change: 0 additions & 1 deletion tox.ini
Expand Up @@ -9,7 +9,6 @@ commands=
pytest --cov=oauthlib tests/

# tox -e docs to mimic readthedocs build.
# as of today, RTD is using python3.7 and doesn't run "setup.py install"
[testenv:docs]
basepython=python3.11
skipsdist=True
Expand Down