-
Notifications
You must be signed in to change notification settings - Fork 253
modernised python packaging #493
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
base: master
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| [build-system] | ||
| requires = [ | ||
| "setuptools>=51.0.0", | ||
| "wheel" | ||
| ] | ||
| build-backend = "setuptools.build_meta" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| [metadata] | ||
| name = syncplay | ||
| version = attr: syncplay.version | ||
| author = Syncplay | ||
| author_email = dev@syncplay.pl | ||
| description = Client/server to synchronize media playback on mpv/VLC/MPC-HC/MPC-BE across many computers | ||
| long_description = file: README.md | ||
| long_description_content_type = text/markdown | ||
| url = https://syncplay.pl/ | ||
| download_url = https://syncplay.pl/download/ | ||
| project_urls = | ||
| Source Code = https://github.com/Syncplay/syncplay | ||
| Bug Tracker = https://github.com/Syncplay/syncplay/issues | ||
| license_file = LICENSE | ||
| classifiers = | ||
| Development Status :: 5 - Production/Stable | ||
| Environment :: MacOS X :: Cocoa | ||
| Environment :: Win32 (MS Windows) | ||
| Environment :: X11 Applications :: Qt | ||
| Framework :: Twisted | ||
| Intended Audience :: End Users/Desktop | ||
| License :: OSI Approved :: Apache Software License | ||
| Operating System :: MacOS :: MacOS X | ||
| Operating System :: Microsoft :: Windows | ||
| Operating System :: POSIX :: Linux | ||
| Natural Language :: English | ||
| Natural Language :: German | ||
| Natural Language :: Italian | ||
| Natural Language :: Russian | ||
| Natural Language :: Spanish | ||
| Programming Language :: Python :: 3 | ||
| Programming Language :: Python :: 3.4 | ||
| Programming Language :: Python :: 3.5 | ||
| 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 :: Only | ||
| Topic :: Internet | ||
| Topic :: Multimedia :: Video | ||
|
|
||
| [options] | ||
| include_package_data = True | ||
| packages = find: | ||
| install_requires = | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am not a fan of duplicated information, and switching to PEP 621 without touching the I would be in favor of deleting the requirement files, but currently the Windows build system relies on them. This could be circumvented by using in the CI workflows before the file is actually needed. On the other hand, we could retain the requirements files and start using them in the proper way: to pin dependencies for CI/release builds. We actually need to pin dependencies on macOS but, for the moment I did that in the workflow code (very bad, but I did not have a proper alternative up to now). @Et0h @daniel-123 what is your opinion here?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
As someone who is a Windows user I don't have any strong opinions on packaging beyond the general desire for things to work and be low-maintenance.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Personally I'd prefer to avoid pinning dependencies to specific version unless strictly as rollback resulting from a bug in latest version of given dependency. At least as far as AppImage goes. For OS packages - they just use what's on the OS, so pinning isn't really a useful concept in first place.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @daniel-123 @albertosottile
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @batmanfeynman Sorry if I neglected this. The gist of this issue is that in both Windows and macOS workflows we currently have: and I do not see a clear way to reproduce the same behavior after this PR is merged UNLESS the information about dependencies is duplicated in |
||
| twisted[tls]>=16.4.0 | ||
| certifi>=2018.11.29 | ||
| appnope>=0.1.0; sys_platform == 'darwin' | ||
| pypiwin32>=223; sys_platform == 'win32' | ||
| zope.interface>=4.4.0; sys_platform == 'win32' | ||
| pyside2>=5.11.0 | ||
| requests>=2.20.0; sys_platform == 'darwin' | ||
|
batmanfeynman marked this conversation as resolved.
Outdated
|
||
| python_requires = >=3.4 | ||
|
batmanfeynman marked this conversation as resolved.
Outdated
|
||
|
|
||
| [options.entry_points] | ||
| console_scripts = | ||
| syncplay-server = syncplay.ep_server:main | ||
| gui_scripts = | ||
| syncplay = syncplay.ep_client:main | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,65 +1,6 @@ | ||
| #!/usr/bin/env python3 | ||
|
|
||
| import os | ||
| import setuptools | ||
| from setuptools import setup | ||
| setup() | ||
|
|
||
| from syncplay import projectURL, version as syncplay_version | ||
|
|
||
| def read(fname): | ||
| with open(fname, 'r') as f: | ||
| return f.read() | ||
|
|
||
| installRequirements = read('requirements.txt').splitlines() +\ | ||
| read('requirements_gui.txt').splitlines() | ||
|
|
||
| setuptools.setup( | ||
| name="syncplay", | ||
| version=syncplay_version, | ||
| author="Syncplay", | ||
| author_email="dev@syncplay.pl", | ||
| description=' '.join([ | ||
| 'Client/server to synchronize media playback', | ||
| 'on mpv/VLC/MPC-HC/MPC-BE on many computers' | ||
| ]), | ||
| long_description=read('README.md'), | ||
| long_description_content_type="text/markdown", | ||
| url=projectURL, | ||
| download_url=projectURL + 'download/', | ||
| packages=setuptools.find_packages(), | ||
| install_requires=installRequirements, | ||
| python_requires=">=3.4", | ||
| entry_points={ | ||
| 'console_scripts': [ | ||
| 'syncplay-server = syncplay.ep_server:main', | ||
| ], | ||
| 'gui_scripts': [ | ||
| 'syncplay = syncplay.ep_client:main', | ||
| ] | ||
| }, | ||
| include_package_data=True, | ||
| classifiers=[ | ||
| "Development Status :: 5 - Production/Stable", | ||
| "Environment :: MacOS X :: Cocoa", | ||
| "Environment :: Win32 (MS Windows)", | ||
| "Environment :: X11 Applications :: Qt", | ||
| "Framework :: Twisted", | ||
| "Intended Audience :: End Users/Desktop", | ||
| "License :: OSI Approved :: Apache Software License", | ||
| "Operating System :: MacOS :: MacOS X", | ||
| "Operating System :: Microsoft :: Windows", | ||
| "Operating System :: POSIX :: Linux", | ||
| "Natural Language :: English", | ||
| "Natural Language :: German", | ||
| "Natural Language :: Italian", | ||
| "Natural Language :: Russian", | ||
| "Natural Language :: Spanish", | ||
| "Programming Language :: Python :: 3", | ||
| "Programming Language :: Python :: 3.4", | ||
| "Programming Language :: Python :: 3.5", | ||
| "Programming Language :: Python :: 3.6", | ||
| "Programming Language :: Python :: 3.7", | ||
| "Programming Language :: Python :: 3.8", | ||
| "Topic :: Internet", | ||
| "Topic :: Multimedia :: Video" | ||
| ], | ||
| ) |
Uh oh!
There was an error while loading. Please reload this page.