# PEP 621 build info [build-system] requires = ["setuptools>=61", "setuptools-scm"] build-backend = "setuptools.build_meta" # Project metadata # ref: https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html [project] name = "jupyterhub" version = "5.0.0.dev" dynamic = ["readme", "dependencies"] description = "JupyterHub: A multi-user server for Jupyter notebooks" authors = [ { name = "Jupyter Development Team", email = "jupyter@googlegroups.com" }, ] keywords = ["Interactive", "Interpreter", "Shell", "Web", "Jupyter"] license = { text = "BSD-3-Clause" } requires-python = ">=3.8" classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Operating System :: POSIX", "Framework :: Jupyter", ] [project.urls] Homepage = "https://hub.jupyter.org" Documentation = "https://jupyterhub.readthedocs.io" Funding = "https://jupyter.org/about" Source = "https://github.com/jupyterhub/jupyterhub" Tracker = "https://github.com/jupyterhub/jupyterhub/issues" [project.optional-dependencies] # note: updating test dependencies here # may require matching updates in ci/oldest-dependencies/ test = [ "beautifulsoup4[html5lib]", "coverage", # cryptography is an optional dependency for jupyterhub that we test # against by default "cryptography", "jsonschema", "jupyterlab>=3", "mock", # nbclassic provides the '/tree/' handler that we tests against in # the test test_nbclassic_control_panel. "nbclassic", "pytest>=3.3", "pytest-asyncio>=0.17", "pytest-cov", "requests-mock", "playwright", "virtualenv", ] [project.scripts] jupyterhub = "jupyterhub.app:main" jupyterhub-singleuser = "jupyterhub.singleuser:main" [project.entry-points."jupyterhub.authenticators"] default = "jupyterhub.auth:PAMAuthenticator" pam = "jupyterhub.auth:PAMAuthenticator" dummy = "jupyterhub.auth:DummyAuthenticator" null = "jupyterhub.auth:NullAuthenticator" [project.entry-points."jupyterhub.proxies"] default = "jupyterhub.proxy:ConfigurableHTTPProxy" configurable-http-proxy = "jupyterhub.proxy:ConfigurableHTTPProxy" [project.entry-points."jupyterhub.spawners"] default = "jupyterhub.spawner:LocalProcessSpawner" localprocess = "jupyterhub.spawner:LocalProcessSpawner" simple = "jupyterhub.spawner:SimpleLocalProcessSpawner" [tool.setuptools] zip-safe = false license-files = ["COPYING.md"] include-package-data = true [tool.setuptools.packages.find] where = [""] include = ["jupyterhub*"] # dynamic sources of metadata in other files [tool.setuptools.dynamic] readme = { file = "README.md", content-type = "text/markdown" } dependencies = { file = "requirements.txt" } # declarative data-files doesn't quite work right # this is still in setup.py:get_data_files # [tool.setuptools.data-files] # "share/jupyterhub" = ["share/jupyterhub/**"] # autoflake is used for autoformatting Python code # # ref: https://github.com/PyCQA/autoflake#readme # [tool.autoflake] ignore-init-module-imports = true remove-all-unused-imports = true remove-duplicate-keys = true #remove-unused-variables = true # isort is used for autoformatting Python code # # ref: https://pycqa.github.io/isort/ # [tool.isort] profile = "black" # black is used for autoformatting Python code # # ref: https://black.readthedocs.io/en/stable/ # [tool.black] skip-string-normalization = true # target-version should be all supported versions, see # https://github.com/psf/black/issues/751#issuecomment-473066811 target_version = [ "py37", "py38", "py39", "py310", ] # tbump is used to simplify and standardize the release process when updating # the version, making a git commit and tag, and pushing changes. # # ref: https://github.com/your-tools/tbump#readme # [tool.tbump] # Uncomment this if your project is hosted on GitHub: github_url = "https://github.com/jupyterhub/jupyterhub" [tool.tbump.version] current = "5.0.0.dev" # Example of a semver regexp. # Make sure this matches current_version before # using tbump regex = ''' (?P\d+) \. (?P\d+) \. (?P\d+) (?P
((a|b|rc)\d+)|)
  \.?
  (?P(?<=\.)dev\d*|)
  '''

[tool.tbump.git]
message_template = "Bump to {new_version}"
tag_template = "{new_version}"

# For each file to patch, add a [[tool.tbump.file]] config
# section containing the path of the file, relative to the
# pyproject.toml location.

[[tool.tbump.file]]
src = "pyproject.toml"
search = 'version = "{current_version}"'

[[tool.tbump.file]]
src = "jupyterhub/_version.py"
version_template = '({major}, {minor}, {patch}, "{pre}", "{dev}")'
search = "version_info = {current_version}"

[[tool.tbump.file]]
src = "docs/source/_static/rest-api.yml"
search = "version: {current_version}"