From ce209976f569f4e62c406fa3b4344c8e9b23830f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Thu, 12 Jan 2023 11:05:22 +0100 Subject: [PATCH] sphinx: 5.3.0 -> 7.2.6 Diff: https://github.com/sphinx-doc/sphinx/compare/v5.3.0...v7.2.6 Changelog: https://www.sphinx-doc.org/en/master/changes.html#release-7-2-6-released-sep-13-2023 Co-authored-by: Theodore Ni <3806110+tjni@users.noreply.github.com> Co-authored-by: Anderson Torres Co-authored-by: OTABI Tomoya --- ...e-normalization-equivalent-character.patch | 35 ------ .../python-modules/sphinx/default.nix | 113 ++++++++---------- 2 files changed, 47 insertions(+), 101 deletions(-) delete mode 100644 pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch diff --git a/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch b/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch deleted file mode 100644 index 805e724d0c8c..000000000000 --- a/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 181617387841b695ee77b162babf9fb177002fcb Mon Sep 17 00:00:00 2001 -From: toonn -Date: Mon, 20 Sep 2021 11:39:46 +0200 -Subject: [PATCH] test-images: Use normalization equivalent character -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -One of the test images used a combining character `ä` that can be -encoded multiple ways. This means the file's name can end up encoded -differently depending on whether/which normal form the filesystem uses. - -For Nix this causes a different hash for a FOD depending on the -filesystem where it is evaluated. This is problematic because hashes -fail to match up when evaluating the FOD across multiple platforms. ---- - tests/roots/test-images/index.rst | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/roots/test-images/index.rst b/tests/roots/test-images/index.rst -index 14a2987..219842e 100644 ---- a/tests/roots/test-images/index.rst -+++ b/tests/roots/test-images/index.rst -@@ -13,7 +13,7 @@ test-image - - The caption of img - --.. image:: testimäge.png -+.. image:: testimæge.png - - .. image:: rimg.png - :target: https://www.sphinx-doc.org/ --- -2.17.2 (Apple Git-113) - diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix index eb559c414860..6dac59106f5f 100644 --- a/pkgs/development/python-modules/sphinx/default.nix +++ b/pkgs/development/python-modules/sphinx/default.nix @@ -1,5 +1,5 @@ -{ stdenv -, lib +{ lib +, stdenv , buildPythonPackage , pythonOlder , fetchFromGitHub @@ -30,29 +30,29 @@ # check phase , cython +, filelock , html5lib , pytestCheckHook -, typed-ast }: buildPythonPackage rec { pname = "sphinx"; - version = "5.3.0"; + version = "7.2.6"; format = "pyproject"; - - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "sphinx-doc"; - repo = pname; + repo = "sphinx"; rev = "refs/tags/v${version}"; - hash = "sha256-80bVg1rfBebgSOKbWkzP84vpm39iLgM8lWlVD64nSsQ="; postFetch = '' - cd $out - mv tests/roots/test-images/testimäge.png \ - tests/roots/test-images/testimæge.png - patch -p1 < ${./0001-test-images-Use-normalization-equivalent-character.patch} + # Change ä to æ in file names, since ä can be encoded multiple ways on different + # filesystems, leading to different hashes on different platforms. + cd "$out"; + mv tests/roots/test-images/{testimäge,testimæge}.png + sed -i 's/testimäge/testimæge/g' tests/{test_build*.py,roots/test-images/index.rst} ''; + hash = "sha256-IjpRGeGpGfzrEvwIKtuu2l1S74w8W+AbqDOGnWwtRck="; }; nativeBuildInputs = [ @@ -60,8 +60,8 @@ buildPythonPackage rec { ]; propagatedBuildInputs = [ - babel alabaster + babel docutils imagesize jinja2 @@ -84,66 +84,22 @@ buildPythonPackage rec { importlib-metadata ]; + __darwinAllowLocalNetworking = true; + nativeCheckInputs = [ cython + filelock html5lib pytestCheckHook - ] ++ lib.optionals (pythonOlder "3.8") [ - typed-ast ]; preCheck = '' - export HOME=$(mktemp -d) + export HOME=$TMPDIR ''; disabledTests = [ # requires network access - "test_anchors_ignored" - "test_defaults" - "test_defaults_json" "test_latex_images" - - # requires imagemagick (increases build closure size), doesn't - # test anything substantial - "test_ext_imgconverter" - - # fails with pygments 2.14 - # TODO remove for sphinx 6 - "test_viewcode" - "test_additional_targets_should_be_translated" - "test_additional_targets_should_not_be_translated" - - # sphinx.errors.VersionRequirementError: The alabaster extension - # used by this project needs at least Sphinx v1.6; it therefore - # cannot be built with this version. - "test_needs_sphinx" - - # Likely due to pygments 2.14 update - # AssertionError: assert '5:11:17\u202fAM' == '5:11:17 AM' - "test_format_date" - ] ++ lib.optionals stdenv.isDarwin [ - # Due to lack of network sandboxing can't guarantee port 7777 isn't bound - "test_inspect_main_url" - "test_auth_header_uses_first_match" - "test_linkcheck_allowed_redirects" - "test_linkcheck_request_headers" - "test_linkcheck_request_headers_no_slash" - "test_follows_redirects_on_HEAD" - "test_get_after_head_raises_connection_error" - "test_invalid_ssl" - "test_connect_to_selfsigned_with_tls_verify_false" - "test_connect_to_selfsigned_with_tls_cacerts" - "test_connect_to_selfsigned_with_requests_env_var" - "test_connect_to_selfsigned_nonexistent_cert_file" - "test_TooManyRedirects_on_HEAD" - "test_too_many_requests_retry_after_int_del" - "test_too_many_requests_retry_after_HTTP_date" - "test_too_many_requests_retry_after_without_header" - "test_too_many_requests_user_timeout" - "test_raises_for_invalid_status" - "test_auth_header_no_match" - "test_follows_redirects_on_GET" - "test_connect_to_selfsigned_fails" ] ++ lib.optionals isPyPy [ # PyPy has not __builtins__ which get asserted # https://doc.pypy.org/en/latest/cpython_differences.html#miscellaneous @@ -159,14 +115,39 @@ buildPythonPackage rec { "test_partialfunction" ]; - meta = with lib; { + meta = { description = "Python documentation generator"; longDescription = '' - A tool that makes it easy to create intelligent and beautiful - documentation for Python projects + Sphinx makes it easy to create intelligent and beautiful documentation. + + Here are some of Sphinx’s major features: + - Output formats: HTML (including Windows HTML Help), LaTeX (for printable + PDF versions), ePub, Texinfo, manual pages, plain text + - Extensive cross-references: semantic markup and automatic links for + functions, classes, citations, glossary terms and similar pieces of + information + - Hierarchical structure: easy definition of a document tree, with + automatic links to siblings, parents and children + - Automatic indices: general index as well as a language-specific module + indices + - Code handling: automatic highlighting using the Pygments highlighter + - Extensions: automatic testing of code snippets, inclusion of docstrings + from Python modules (API docs) via built-in extensions, and much more + functionality via third-party extensions. + - Themes: modify the look and feel of outputs via creating themes, and + re-use many third-party themes. + - Contributed extensions: dozens of extensions contributed by users; most + of them installable from PyPI. + + Sphinx uses the reStructuredText markup language by default, and can read + MyST markdown via third-party extensions. Both of these are powerful and + straightforward to use, and have functionality for complex documentation + and publishing workflows. They both build upon Docutils to parse and write + documents. ''; homepage = "https://www.sphinx-doc.org"; - license = licenses.bsd3; - maintainers = teams.sphinx.members; + changelog = "https://www.sphinx-doc.org/en/master/changes.html"; + license = lib.licenses.bsd3; + maintainers = lib.teams.sphinx.members; }; }