Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 719082 - dev-python/logbook: need py3.7, 3.8 port
Summary: dev-python/logbook: need py3.7, 3.8 port
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks: python3.7-compat 718540 719080
  Show dependency tree
 
Reported: 2020-04-23 16:27 UTC by Michał Górny
Modified: 2020-04-27 08:33 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2020-04-23 16:27:23 UTC
The packages are stuck on py3.6 which means they will be pain once we switch to 3.7.  Please test them on 3.7 *and* 3.8 (so we don't to revisit this in a few months), and update PYTHON_COMPAT appropriately.  If it doesn't work, please either fix it, remove Python or issue last rites.  Please consider this urgent.
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2020-04-23 16:28:31 UTC
This package is broken beyond Python team's manpower.  Are revdep maintainers interested in taking it?
Comment 2 Andreas Zuber 2020-04-23 17:25:52 UTC
I'm looking into this right now
Comment 3 Thomas Deutschmann gentoo-dev 2020-04-23 17:31:56 UTC
Heh, I was also looking into this right now. That's my current draft:

> --- logbook-1.4.0.ebuild	2020-03-25 17:41:26.478016544 +0100
> +++ logbook-1.5.3.ebuild	2020-04-23 19:29:40.209526294 +0200
> @@ -1,9 +1,11 @@
>  # Copyright 1999-2020 Gentoo Authors
>  # Distributed under the terms of the GNU General Public License v2
>  
> -EAPI=6
> +EAPI="7"
>  
> -PYTHON_COMPAT=( python3_6 )
> +PYTHON_COMPAT=( python3_{6,7,8} )
> +DISTUTILS_IN_SOURCE_BUILD=1
> +DISTUTILS_USE_SETUPTOOLS=bdepend
>  
>  inherit distutils-r1
>  
> @@ -15,14 +17,15 @@
>  
>  LICENSE="BSD"
>  SLOT="0"
> -KEYWORDS="amd64 x86"
> +KEYWORDS="~amd64 ~x86"
>  IUSE="doc test"
>  RESTRICT="!test? ( test )"
> -DISTUTILS_IN_SOURCE_BUILD=1
>  
>  DEPEND="
> -	dev-python/setuptools[${PYTHON_USEDEP}]
> -	test? ( dev-python/pytest[${PYTHON_USEDEP}] )
> +	test? (
> +		app-arch/brotli[${PYTHON_USEDEP}]
> +		dev-python/pytest[${PYTHON_USEDEP}]
> +	)
>  	doc? ( >=dev-python/sphinx-1.1.3-r3[${PYTHON_USEDEP}] )"
>  RDEPEND="dev-python/redis-py[${PYTHON_USEDEP}]"
>  

One test failure with 3.7 and 3.8:

> ________________________________________ test_asyncio_context_management[True] _________________________________________
> 
> logger = <logbook.base.Logger object at 0x7f9aa4c4a5e0>
> 
>     @pytest.mark.skipif(not has_contextvars, reason="Contexvars not available")
>     def test_asyncio_context_management(logger):
>         h1 = logbook.TestHandler()
>         h2 = logbook.TestHandler()
>     
>         async def task(handler, msg):
>             for _ in range(ITERATIONS):
>                 with handler.contextbound():
>                     logger.info(msg)
>     
>                 await asyncio.sleep(0)  # allow for context switch
>     
>         asyncio.get_event_loop().run_until_complete(asyncio.gather(task(h1, 'task1'), task(h2, 'task2')))
>     
> >       assert len(h1.records) == ITERATIONS
> E       assert 200 == 100
> E        +  where 200 = len([<logbook.base.LogRecord object at 0x7f9aa4c226a0>, <logbook.base.LogRecord object at 0x7f9aa4c22250>, <logbook.base.L...9aa4c22a00>, <logbook.base.LogRecord object at 0x7f9aa4c22550>, <logbook.base.LogRecord object at 0x7f9aa4c22fa0>, ...])
> E        +    where [<logbook.base.LogRecord object at 0x7f9aa4c226a0>, <logbook.base.LogRecord object at 0x7f9aa4c22250>, <logbook.base.L...9aa4c22a00>, <logbook.base.LogRecord object at 0x7f9aa4c22550>, <logbook.base.LogRecord object at 0x7f9aa4c22fa0>, ...] = <logbook.handlers.TestHandler object at 0x7f9aa4c4aa00>.records
> 
> tests/test_asyncio.py:23: AssertionError
> ====================================== 1 failed, 383 passed, 14 skipped in 3.73s =======================================

Feel free to take over.
Comment 4 Andreas Zuber 2020-04-23 19:44:05 UTC
This is very strange. With the very same ebuild (except I added the python useflag to app-arch/brotli) The tests on 3.6 and 3.7 pass.

I'm still struggling to get it to install for 3.8 since I don't have ~amd64 and one of the dependencies is probably missing 3.8 for amd64, but I can't figure out which.
Comment 5 Larry the Git Cow gentoo-dev 2020-04-27 08:33:08 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=50cba45c044f6c45e0426381ab4427caa6a47854

commit 50cba45c044f6c45e0426381ab4427caa6a47854
Author:     Andreas Zuber <a.zuber@gmx.ch>
AuthorDate: 2020-04-24 09:06:07 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2020-04-27 08:33:02 +0000

    dev-python/logbook: version bump to 1.5.3
    
    Closes: https://bugs.gentoo.org/707804
    Closes: https://bugs.gentoo.org/719082
    Package-Manager: Portage-2.3.89, Repoman-2.3.20
    Signed-off-by: Andreas Zuber <a.zuber@gmx.ch>
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 dev-python/logbook/Manifest             |  1 +
 dev-python/logbook/logbook-1.5.3.ebuild | 44 +++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)