Bug 1705955

Summary: docker-compose FTBFS with pytest 4
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: docker-composeAssignee: Michael Hampton <error>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 31CC: carl, error, lbalhar, releng, roman, ttomecek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: docker-compose-1.24.1-3.fc31 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-10-26 17:23:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1700317, 1671167, 1686977, 1732841    
Attachments:
Description Flags
build.log from Koji
none
root.log from Koji none

Description Miro Hrončok 2019-05-03 09:46:14 UTC
Created attachment 1562280 [details]
build.log from Koji

docker-compose-1.22.0-3.fc31 fails to build with pytest 4.
This blocks the rebuild for Python 3.8.

__________________ ExtendsTest.test_extends_with_security_opt __________________
tests/unit/config/config_test.py:4582: in test_extends_with_security_opt
    tmpdir = py.test.ensuretemp('test_extends_with_ports')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:4560: in test_extends_with_ports
    tmpdir = py.test.ensuretemp('test_extends_with_ports')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:4481: in test_extends_with_mixed_versions_is_error
    tmpdir = py.test.ensuretemp('test_extends_with_mixed_version')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
/usr/lib/python3.7/unittest/mock.py:1621: in _inner
    return f(*args, **kw)
tests/unit/config/config_test.py:4417: in test_extends_with_environment_and_env_files
    tmpdir = py.test.ensuretemp('test_extends_with_environment')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:4527: in test_extends_with_depends_on
    tmpdir = py.test.ensuretemp('test_extends_with_depends_on')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:4503: in test_extends_with_defined_version_passes
    tmpdir = py.test.ensuretemp('test_extends_with_defined_version')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:1669: in test_load_yaml_with_yaml_error
    tmpdir = py.test.ensuretemp('invalid_yaml_test')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:1682: in test_load_yaml_with_bom
    tmpdir = py.test.ensuretemp('bom_yaml')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:745: in test_load_with_multiple_files_and_extends_in_override_file
    tmpdir = py.test.ensuretemp('config_test')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
tests/unit/config/config_test.py:780: in test_load_mixed_extends_resolution
    tmpdir = pytest.ensuretemp('config_test')
/usr/lib/python3.7/site-packages/_pytest/tmpdir.py:105: in ensuretemp
    warnings.warn(PYTEST_ENSURETEMP, stacklevel=2)
E   _pytest.warning_types.RemovedInPytest4Warning: pytest/tmpdir_factory.ensuretemp is deprecated, 
E   please use the tmp_path fixture or tmp_path_factory.mktemp

Full logs attached.

https://koji.fedoraproject.org/koji/taskinfo?taskID=34596786

Comment 1 Miro Hrončok 2019-05-03 09:46:40 UTC
Created attachment 1562281 [details]
root.log from Koji

Comment 2 Miro Hrončok 2019-07-10 10:32:10 UTC
Please respond.

Comment 3 Michael Hampton 2019-07-10 14:53:46 UTC
This issue has now been reported upstream.

https://github.com/docker/compose/issues/6796

Comment 4 Michael Hampton 2019-07-31 21:45:29 UTC
*** Bug 1735097 has been marked as a duplicate of this bug. ***

Comment 5 Ben Cotton 2019-08-13 17:00:41 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 6 Ben Cotton 2019-08-13 18:51:25 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 7 Miro Hrončok 2019-08-14 22:24:46 UTC
The coordinated rebuild of Python 3.8 has started in the `f32-python` side tag.

If you figure out how to rebuild this package, please don't rebuild it in regular rawhide, but use the side tag instead:

    on branch master:
    $ fedpkg build --target=f32-python

To wait for a build to show up in the side tag, do:

    $ koji wait-repo f32-python --build=<nvr>

Where <nvr> is name-version-release of the source package, e.g. python-foo-1.1-2.fc32.

An updated mock config is posted at:
http://copr.fedorainfracloud.org/coprs/g/python/python3.8/

Note that it will take a while before the essential packages are rebuilt, so don't expect all your dependencies to be available right away.

Thanks. Let us know if you need up to date info, or if you have any questions.



PS this message is mass posted to all the bugs that block the PYTHON38 bug. If this is also a Fedora 31 FTBFS bug and you manage to fix it, you can do a f31 build as usual:

    on branch f31:
    $ fedpkg build

Comment 8 Lumír Balhar 2019-08-21 09:56:01 UTC
I've proposed a solution in the upstream issue. If there is no response from an upstream maintainer and this will block us, I can prepare a downstream patch.

Comment 9 Miro Hrončok 2019-08-21 16:35:30 UTC
The f32-python side tag has been merged. In order to rebuild the package, do it in regular rawhide, but please wait until python3-3.8 is tagged:

  $ koji wait-repo f32-build --build python3-3.8.0~b3-3.fc32


If your built already started in f32-python, after it is finished, please tag it to rawhide with:

  $ koji tag-build f32-pending <nvr>

For example:

  $ koji tag-build f32-pending libreoffice-6.3.0.4-3.fc32

Thanks!

(This comment is mass posted to all bugzillas blocking the PYTHON38 tracking bug.)

Comment 10 Miro Hrončok 2019-08-21 17:29:30 UTC
(Python 3.8 has landed in the rawhide buildroot.)

Comment 11 Michael Hampton 2019-08-21 18:27:14 UTC
(In reply to Lumír Balhar from comment #8)
> I've proposed a solution in the upstream issue. If there is no response from
> an upstream maintainer and this will block us, I can prepare a downstream
> patch.

I would be most happy to receive a patch. I tried to hack this myself but could not quite figure it out. This is already blocked in f31 and in danger of being orphaned so not waiting for upstream is definitely better.

Comment 12 Lumír Balhar 2019-08-22 08:13:22 UTC
(In reply to Michael Hampton from comment #11)
> (In reply to Lumír Balhar from comment #8)
> > I've proposed a solution in the upstream issue. If there is no response from
> > an upstream maintainer and this will block us, I can prepare a downstream
> > patch.
> 
> I would be most happy to receive a patch. I tried to hack this myself but
> could not quite figure it out. This is already blocked in f31 and in danger
> of being orphaned so not waiting for upstream is definitely better.

I can prepare a patch and put it into the package and also create a PR upstream but the risk here is that they'll prefer a different approach than me when they get to fix this issue in a future release.

Do you think that it's worth to prepare a patch instead of skipping those ~11 tests and waiting for upstream?

Comment 13 Michael Hampton 2019-08-23 00:54:21 UTC
(In reply to Lumír Balhar from comment #12)
> I can prepare a patch and put it into the package and also create a PR
> upstream but the risk here is that they'll prefer a different approach than
> me when they get to fix this issue in a future release.
> 
> Do you think that it's worth to prepare a patch instead of skipping those
> ~11 tests and waiting for upstream?

How much work is it? If upstream rejects a PR and does something else, then we can just drop the patch. But disabling 11 or 12 tests makes me nervous as we wouldn't be able to say for sure that those tests would pass otherwise.

Comment 14 Lumír Balhar 2019-08-27 10:41:13 UTC
I've created an upstream PR to fix pytest compatibility: https://github.com/docker/compose/pull/6873

You can use the patch in RPM to solve this bug.

Comment 15 Fedora Update System 2019-08-28 08:07:47 UTC
FEDORA-2019-de4581d1b3 has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-de4581d1b3

Comment 16 Fedora Update System 2019-08-29 21:01:37 UTC
docker-compose-1.24.1-1.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-de4581d1b3

Comment 17 Fedora Update System 2019-10-07 20:25:52 UTC
FEDORA-2019-75607f2722 has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-75607f2722

Comment 18 Fedora Update System 2019-10-08 21:42:21 UTC
docker-compose-1.24.1-3.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-75607f2722

Comment 19 Fedora Update System 2019-10-26 17:23:15 UTC
docker-compose-1.24.1-3.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.