Bug 277749 - textproc/py-sphinxcontrib-autoprogram: Update to 0.1.9
Summary: textproc/py-sphinxcontrib-autoprogram: Update to 0.1.9
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Nuno Teixeira
URL: https://github.com/sphinx-contrib/aut...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-16 22:07 UTC by Derek Schrock
Modified: 2024-04-07 08:06 UTC (History)
2 users (show)

See Also:


Attachments
Update to 0.1.9 (2.28 KB, patch)
2024-03-16 22:07 UTC, Derek Schrock
dereks: maintainer-approval+
Details | Diff
Update to 0.1.9 with pep420 and pep517 (4.33 KB, patch)
2024-04-07 04:25 UTC, Derek Schrock
dereks: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Derek Schrock 2024-03-16 22:07:53 UTC
Created attachment 249229 [details]
Update to 0.1.9

- Update to 0.1.9

portlint: ok. looks fine.
testport: ok. 13amd64.
unittest: ok. Ran 8 tests in 0.006s

Looking at changes in 0.1.9 (dropped 3.7 and added 3.12) and consumers of this port

 devel/py-python-gitlab
 devel/py-qstylizer

Both support python 3.8+.
Comment 1 Trond Endrestøl 2024-04-01 10:55:47 UTC
I'm getting these errors on 15.0-CURRENT:

===>  Configuring for py39-sphinxcontrib-autoprogram-0.1.9
/usr/local/lib/python3.9/site-packages/setuptools/dist.py:945: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated.
!!

        ********************************************************************************
        Please replace its usage with implicit namespaces (PEP 420).

        See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages for details.
        ********************************************************************************

!!
  ep.load()(self, ep.name, value)
running config
===>  Building for py39-sphinxcontrib-autoprogram-0.1.9
/usr/local/lib/python3.9/site-packages/setuptools/dist.py:945: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated.
!!

        ********************************************************************************
        Please replace its usage with implicit namespaces (PEP 420).

        See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages for details.
        ********************************************************************************

!!
  ep.load()(self, ep.name, value)
running build_sphinx
Running Sphinx v5.3.0

Extension error:
Could not import extension sphinxcontrib.autoprogram (exception: No module named 'sphinxcontrib.autoprogram')
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/textproc/py-sphinxcontrib-autoprogram
*** Error code 1
Comment 2 Derek Schrock 2024-04-01 23:07:23 UTC
Is this an older install of ports?  While I get and saw the warning this just works on 13.   dist.py:945 makes me think it's something that isn't python39-3.9.18_2?  Can you attach the full testport output?
Comment 3 Trond Endrestøl 2024-04-02 20:31:36 UTC
(In reply to Derek Schrock from comment #2)
I think my problems stems from jumping ahead to setuptools 68.0.0 as found earlier in bug 270358. I could jump again and try 69.0.3 from the same PR.
Comment 4 Trond Endrestøl 2024-04-02 20:35:43 UTC
(In reply to Trond Endrestøl from comment #3)
Make that 69.2.0.
Comment 5 Trond Endrestøl 2024-04-04 14:23:05 UTC
(In reply to Trond Endrestøl from comment #4)
setuptools 69.2.0 gives the same error as 68.0.0 and 67.6.1.
I reverted to 63.1.0_1 and only warnings appeared, no hard errors.
I hope upstream will eventually keep up with newer setuptools.
I only got involved in this PR because I wanted to try devel/spyder. I can wait.
Comment 6 Nuno Teixeira freebsd_committer freebsd_triage 2024-04-04 14:42:35 UTC
Could you test with pep517 build instead of distutils?
It builds ok but I didn't check how to build docs that way.
Comment 7 Trond Endrestøl 2024-04-04 19:35:12 UTC
(In reply to Nuno Teixeira from comment #6)
With setuptools 69.2.0, textproc/py-sphinxcontrib-autoprogram 0.1.9, and

-USE_PYTHON=	autoplist concurrent distutils
+USE_PYTHON=	autoplist concurrent pep517

for the latter port, gives:

--------------------------------------------------------------------------------
--  Phase: stage
--------------------------------------------------------------------------------
===>  Staging for py39-sphinxcontrib-autoprogram-0.1.9
===>   Generating temporary packing list
(cd /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/sphinxcontrib-autoprogram-0.1.9/build/sphinx/html &&  /bin/sh -c '(/usr/bin/find -Ed $1 $3 | /usr/bin/cpio -dumpl $2 >/dev/null 2>&1) &&  /usr/bin/find -Ed $1 $3 \(   -type d -exec /bin/sh -c '\''cd '\''$2'\'' && chmod 755 "$@"'\'' . {} +  -o -type f -exec /bin/sh -c '\''cd '\''$2'\'' && chmod 0644 "$@"'\'' . {} + \)' COPYTREE_SHARE . /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/stage/usr/local/share/doc/py39-sphinxcontrib-autoprogram "! -name .buildinfo -and ! -name objects.inv")
cd: /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/sphinxcontrib-autoprogram-0.1.9/build/sphinx/html: No such file or directory
*** Error code 2

Stop.
make: stopped in /xports/textproc/py-sphinxcontrib-autoprogram

Note, I use Synth, not Poudriere.
Comment 8 Nuno Teixeira freebsd_committer freebsd_triage 2024-04-04 19:45:39 UTC
(In reply to Trond Endrestøl from comment #7)

That error comes from DOCS target:
---
post-install-DOCS-on:
        @${MKDIR} ${STAGEDIR}${DOCSDIR}
        (cd ${WRKSRC}/build/sphinx/html && \
        ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} "! -name .buildinfo -and ! -name objects.inv")
---

Build without DOCS or comment post-install-DOCS-on block just to test it.
I still don't know how docs are builded with pep517.
Comment 9 Trond Endrestøl 2024-04-04 20:57:32 UTC
(In reply to Nuno Teixeira from comment #8)
I got errors on a second build run without distutils.
py-setuptools is still at 69.2.0 and py-sphinxcontrib-autoprogram is still at 0.1.9.

With DOCS off and

-USE_PYTHON=	autoplist concurrent distutils
+USE_PYTHON=	autoplist concurrent distutils pep517

I got this positive result:

--------------------------------------------------------------------------------
--  Phase: stage
--------------------------------------------------------------------------------
===>  Staging for py39-sphinxcontrib-autoprogram-0.1.9
===>   Generating temporary packing list
/usr/local/lib/python3.9/site-packages/setuptools/dist.py:678: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated.
!!

        ********************************************************************************
        Please replace its usage with implicit namespaces (PEP 420).

        See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages for details.
        ********************************************************************************

!!
  ep.load()(self, ep.name, value)
running install
/usr/local/lib/python3.9/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!
  self.initialize_options()
running build
running build_py
running egg_info
writing sphinxcontrib_autoprogram.egg-info/PKG-INFO
writing dependency_links to sphinxcontrib_autoprogram.egg-info/dependency_links.txt
writing namespace_packages to sphinxcontrib_autoprogram.egg-info/namespace_packages.txt
writing requirements to sphinxcontrib_autoprogram.egg-info/requires.txt
writing top-level names to sphinxcontrib_autoprogram.egg-info/top_level.txt
reading manifest file 'sphinxcontrib_autoprogram.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'README'
warning: no files found matching 'CHANGES.*'
warning: manifest_maker: MANIFEST.in, line 4: unknown action 'tox.ini'

adding license file 'LICENSE'
writing manifest file 'sphinxcontrib_autoprogram.egg-info/SOURCES.txt'
running install_lib
Skipping installation of /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/stage/usr/local/lib/python3.9/site-packages/sphinxcontrib/__init__.py (namespace package)
copying sphinxcontrib/autoprogram.py -> /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/stage/usr/local/lib/python3.9/site-packages/sphinxcontrib
byte-compiling /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/stage/usr/local/lib/python3.9/site-packages/sphinxcontrib/autoprogram.py to autoprogram.cpython-39.pyc
writing byte-compilation script '/tmp/tmp5ho6a2r5.py'
/usr/local/bin/python3.9 /tmp/tmp5ho6a2r5.py
removing /tmp/tmp5ho6a2r5.py
running install_egg_info
Copying sphinxcontrib_autoprogram.egg-info to /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/stage/usr/local/lib/python3.9/site-packages/sphinxcontrib_autoprogram-0.1.9-py3.9.egg-info
Installing /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/stage/usr/local/lib/python3.9/site-packages/sphinxcontrib_autoprogram-0.1.9-py3.9-nspkg.pth
running install_scripts
writing list of installed files to '/construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/.PLIST.pymodtmp'
===> Creating unique files: Move MAN files needing SUFFIX
===> Creating unique files: Move files needing SUFFIX
====> Compressing man pages (compress-man)
Comment 10 Trond Endrestøl 2024-04-04 21:07:50 UTC
(In reply to Trond Endrestøl from comment #9)
Just for kicks, DOCS is still off and

-USE_PYTHON=	autoplist concurrent distutils
+USE_PYTHON=	autoplist concurrent pep517

I got:

--------------------------------------------------------------------------------
--  Phase: build
--------------------------------------------------------------------------------
===>  Building for py39-sphinxcontrib-autoprogram-0.1.9
* Getting build dependencies for wheel...

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/pyproject_hooks/_impl.py", line 321, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
    obj = import_module(mod_path)
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'setuptools'

ERROR Backend 'setuptools.build_meta:__legacy__' is not available.
*** Error code 1

Stop.
make: stopped in /xports/textproc/py-sphinxcontrib-autoprogram
Comment 11 Nuno Teixeira freebsd_committer freebsd_triage 2024-04-04 21:19:42 UTC
(In reply to Trond Endrestøl from comment #10)

Missing build depends for pep517:

BUILD_DEPENDS=  ${PY_SETUPTOOLS} \
                ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
Comment 12 Trond Endrestøl 2024-04-05 13:21:09 UTC
(In reply to Nuno Teixeira from comment #11)
That helped when DOCS is off and setuptools is at 69.2.0.
When DOCS is on, we still get:

cd: /construction/xports/textproc/py-sphinxcontrib-autoprogram/work-py39/sphinxcontrib-autoprogram-0.1.9/build/sphinx/html: No such file or directory
*** Error code 2

Stop.
make: stopped in /xports/textproc/py-sphinxcontrib-autoprogram

during the stage phase.
Comment 13 Derek Schrock 2024-04-07 04:25:03 UTC
Created attachment 249784 [details]
Update to 0.1.9 with pep420 and pep517

This should be compatible with the current tree's setuptools and the future 69.2.0 port.  This also future proofs some sphinx items by limiting the use of setup.py (build_sphinx and test).

portlint: ok. looks fine.
testport: ok. 13amd64.
unittest: Ran 10 tests in 0.007s.

Ran with/without DOCS enabled.
Comment 14 commit-hook freebsd_committer freebsd_triage 2024-04-07 08:05:27 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e60672e6afd7afe1307109099ecc2e87f3264c75

commit e60672e6afd7afe1307109099ecc2e87f3264c75
Author:     Derek Schrock <dereks@lifeofadishwasher.com>
AuthorDate: 2024-04-07 03:50:56 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2024-04-07 08:04:38 +0000

    textproc/py-sphinxcontrib-autoprogram: Update to 0.1.9

    - Use pep517
    - Add pep420 changes
    - Directly run tests via unittest
    - Directly builds docs via sphinx-build

    ChangeLog: https://github.com/sphinx-contrib/autoprogram/releases/tag/0.1.9

    PR:             277749

 textproc/py-sphinxcontrib-autoprogram/Makefile     | 30 ++++++++++++++--------
 textproc/py-sphinxcontrib-autoprogram/distinfo     |  6 ++---
 .../files/patch-setup.py (new)                     | 21 +++++++++++++++
 3 files changed, 44 insertions(+), 13 deletions(-)
Comment 15 Nuno Teixeira freebsd_committer freebsd_triage 2024-04-07 08:06:42 UTC
Committed, thanks!