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 to a pure PEP621 project configuration #1550

Merged
merged 7 commits into from
Nov 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ BeeWare <3's contributions!

Please be aware, BeeWare operates under a Code of Conduct.

See [CONTRIBUTING to BeeWare](http://beeware.org/contributing) for details.
See [CONTRIBUTING to BeeWare](https://beeware.org/contributing) for details.

See also the Briefcase specific contributing guides for contributing
[code](https://briefcase.readthedocs.io/en/latest/how-to/contribute-code.html)
Expand Down
26 changes: 0 additions & 26 deletions MANIFEST.in

This file was deleted.

6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.. image:: http://beeware.org/project/projects/tools/briefcase/briefcase.png
.. image:: https://beeware.org/project/projects/tools/briefcase/briefcase.png
:width: 72px
:target: https://beeware.org/briefcase

Expand Down Expand Up @@ -70,9 +70,9 @@ Contributing
If you experience problems with Briefcase, `log them on GitHub`_. If you
want to contribute code, please `fork the code`_ and `submit a pull request`_.

.. _BeeWare suite: http://beeware.org
.. _BeeWare suite: https://beeware.org
.. _Read The Docs: https://briefcase.readthedocs.io
.. _BeeWare Community Code of Conduct: http://beeware.org/community/behavior/
.. _BeeWare Community Code of Conduct: https://beeware.org/community/behavior/
.. _log them on Github: https://github.com/beeware/briefcase/issues
.. _fork the code: https://github.com/beeware/briefcase
.. _submit a pull request: https://github.com/beeware/briefcase/pulls
1 change: 1 addition & 0 deletions changes/1550.misc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The project was moved to a pure PEP621 configuration.
2 changes: 1 addition & 1 deletion docs/how-to/contribute-docs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Here are some tips for working on this documentation. You're welcome to add
more and help us out!

First of all, you should check the `Restructured Text (reST) and Sphinx
CheatSheet <http://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html>`_ to
CheatSheet <https://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html>`_ to
learn how to write your .rst file.

Create a .rst file
Expand Down
2 changes: 1 addition & 1 deletion docs/make.bat
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ if errorlevel 9009 (
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
echo.https://sphinx-doc.org/
exit /b 1
)

Expand Down
169 changes: 168 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,174 @@
[build-system]
requires = ["setuptools>=67", "setuptools_scm[toml]>=7.0"]
requires = [
"setuptools==69.0.0",
"setuptools_scm==8.0.4",
]
build-backend = "setuptools.build_meta"

[project]
dynamic = ["version"]
name = "briefcase"
description = "Tools to support converting a Python project into a standalone native application."
readme = "README.rst"
requires-python = ">= 3.8"
license.text = "New BSD"
authors = [
{name="Russell Keith-Magee", email="[email protected]"},
]
maintainers = [
{name="BeeWare Team", email="[email protected]"},
]
keywords = [
"app",
"packaging",
"installer",
"macOS",
"iOS",
"android",
"mobile",
"windows",
"linux",
"flatpak",
"appimage",
"deb",
"rpm",
"pkg",
"tvOS",
"watch",
"watchOS",
"wearos",
"web",
"pyscript",
"pyodide",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"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",
"Topic :: Software Development",
"Topic :: Utilities",
]
dependencies = [
# Dependencies required at runtime are set as ranges to ensure maximum
# compatibility with the end-user's development environment.
#
# Any dependency that is part of the "core python toolchain" (e.g. pip,
# wheel) specify a minimum version, but no maximum, because we always want
# the most recent version.
"importlib_metadata >= 4.4; python_version <= '3.9'",
"packaging >= 22.0",
"pip >= 23.1.1",
"setuptools >= 60",
"wheel >= 0.37",
"build >= 0.10",
# For the remaining packages: We set the lower version limit to the lowest
# possible version that satisfies our API needs. If the package uses semver,
# we set a limit to prevent the next major version (which will potentially
# cause API breakages). If the package uses calver, we don't pin the upper
# version, as the upper version provides no basis for determining API
# stability.
"cookiecutter >= 2.3.1, < 3.0",
"dmgbuild >= 1.6, < 2.0; sys_platform == 'darwin'",
"GitPython >= 3.1, < 4.0",
"platformdirs >= 2.6, < 5.0",
"psutil >= 5.9, < 6.0",
"requests >= 2.28, < 3.0",
"rich >= 12.6, < 14.0",
"tomli >= 2.0, < 3.0; python_version <= '3.10'",
"tomli_w >= 1.0, < 2.0",
]

[project.optional-dependencies]
# Extras used by developers *of* briefcase are pinned to specific versions to
# ensure environment consistency.
dev = [
"coverage[toml] == 7.3.2",
"coverage-conditional-plugin == 0.9.0",
"pre-commit == 3.5.0",
"pytest == 7.4.3",
"pytest-xdist == 3.4.0",
"setuptools_scm == 8.0.4",
"tox == 4.11.3",
]
docs = [
"furo == 2023.9.10",
"pyenchant == 3.2.2",
# Sphinx 7.2 deprecated support for Python 3.8
"sphinx == 7.1.2 ; python_version < '3.9'",
"sphinx == 7.2.6 ; python_version >= '3.9'",
"sphinx_tabs == 3.4.4",
"sphinx-autobuild == 2021.3.14",
"sphinx-copybutton == 0.5.2",
"sphinxcontrib-spelling == 8.0.0",
]

[project.urls]
Homepage = "https://beeware.org/briefcase"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "https://briefcase.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/briefcase/issues"
Source = "https://github.com/beeware/briefcase"

[project.scripts]
briefcase = "briefcase.__main__:main"

[project.entry-points."briefcase.bootstraps"]
Toga = "briefcase.bootstraps.toga:TogaGuiBootstrap"
PySide6 = "briefcase.bootstraps.pyside6:PySide6GuiBootstrap"
PursuedPyBear = "briefcase.bootstraps.pursuedpybear:PursuedPyBearGuiBootstrap"
Pygame = "briefcase.bootstraps.pygame:PygameGuiBootstrap"

[project.entry-points."briefcase.platforms"]
android = "briefcase.platforms.android"
iOS = "briefcase.platforms.iOS"
linux = "briefcase.platforms.linux"
macOS = "briefcase.platforms.macOS"
# tvOS = "briefcase.platforms.tvOS"
# watchOS = "briefcase.platforms.watchOS"
# wearos = "briefcase.platforms.wearos"
web = "briefcase.platforms.web"
windows = "briefcase.platforms.windows"

[project.entry-points."briefcase.formats.android"]
gradle = "briefcase.platforms.android.gradle"

[project.entry-points."briefcase.formats.iOS"]
xcode = "briefcase.platforms.iOS.xcode"

[project.entry-points."briefcase.formats.linux"]
appimage = "briefcase.platforms.linux.appimage"
flatpak = "briefcase.platforms.linux.flatpak"
system = "briefcase.platforms.linux.system"
# snap = "briefcase.platforms.linux.snap"

[project.entry-points."briefcase.formats.macOS"]
app = "briefcase.platforms.macOS.app"
xcode = "briefcase.platforms.macOS.xcode"

# [project.entry-points."briefcase.formats.tvOS"]
# xcode = "briefcase.platforms.tvOS.xcode"

# [project.entry-points."briefcase.formats.watchOS"]
# xcode = "briefcase.platforms.watchOS.xcode"

# [project.entry-points."briefcase.formats.wearos"]
# gradle = "briefcase.platforms.wearos.gradle"

[project.entry-points."briefcase.formats.web"]
static = "briefcase.platforms.web.static"

[project.entry-points."briefcase.formats.windows"]
app = "briefcase.platforms.windows.app"
visualstudio = "briefcase.platforms.windows.visualstudio"

[tool.coverage.run]
plugins = ["coverage_conditional_plugin"]
parallel = true
Expand Down
Loading