Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.3.0 #2945

Merged
merged 21 commits into from
Nov 27, 2017
Merged

Release 3.3.0 #2945

merged 21 commits into from
Nov 27, 2017

Conversation

nicoddemus
Copy link
Member

No description provided.

@nicoddemus nicoddemus changed the base branch from master to features November 23, 2017 20:27
@The-Compiler
Copy link
Member

Don't have time for a closer look right now, but I got some errors:

With pytest-catchlog still installed:

Traceback (most recent call last):
  File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pytest.py", line 73, in <module>
    raise SystemExit(pytest.main())
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 50, in main
    config = _prepareconfig(args, plugins)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 160, in _prepareconfig
    pluginmanager=pluginmanager, args=args)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/__init__.py", line 680, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/__init__.py", line 240, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/__init__.py", line 234, in <lambda>
    methods, kwargs, specopts=hook.spec_opts, hook=hook
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 110, in execute
    gen.send(outcome)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/helpconfig.py", line 68, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 54, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 94, in execute
    res = hook_impl.function(*args)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 938, in pytest_cmdline_parse
    self.parse(args)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 1103, in parse
    self._preparse(args, addopts=addopts)
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 1068, in _preparse
    self.known_args_namespace = ns = self._parser.parse_known_args(args, namespace=self.option.copy())
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 552, in parse_known_args
    return self.parse_known_and_unknown_args(args, namespace=namespace)[0]
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 558, in parse_known_and_unknown_args
    optparser = self._getparser()
  File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 537, in _getparser
    arggroup.add_argument(*n, **a)
  File "/usr/lib64/python3.6/argparse.py", line 1348, in add_argument
    return self._add_action(action)
  File "/usr/lib64/python3.6/argparse.py", line 1552, in _add_action
    action = super(_ArgumentGroup, self)._add_action(action)
  File "/usr/lib64/python3.6/argparse.py", line 1362, in _add_action
    self._check_conflict(action)
  File "/usr/lib64/python3.6/argparse.py", line 1501, in _check_conflict
    conflict_handler(action, confl_optionals)
  File "/usr/lib64/python3.6/argparse.py", line 1510, in _handle_conflict_error
    raise ArgumentError(action, message % conflict_string)
argparse.ArgumentError: argument --no-print-logs: conflicting option string: --no-print-logs

Then pytest-instafail breaks:

INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/main.py", line 99, in wrap_session
INTERNALERROR>     config._do_configure()
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/_pytest/config.py", line 916, in _do_configure
INTERNALERROR>     self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/__init__.py", line 691, in call_historic
INTERNALERROR>     res = self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/__init__.py", line 240, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/__init__.py", line 234, in <lambda>
INTERNALERROR>     methods, kwargs, specopts=hook.spec_opts, hook=hook
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 115, in execute
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 54, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 94, in execute
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pytest_instafail.py", line 33, in pytest_configure
INTERNALERROR>     instafail_reporter = InstafailingTerminalReporter(standard_reporter)
INTERNALERROR>   File "/home/florian/proj/qutebrowser/git/.tox/py36/lib/python3.6/site-packages/pytest_instafail.py", line 43, in __init__
INTERNALERROR>     self._tw = reporter._tw
INTERNALERROR> AttributeError: can't set attribute

After removing that and commenting out some code I have which ties into pytest-catchlog, things seem to run fine so far. Will report back when it's done.

Version info:

platform linux -- Python 3.6.3, pytest-3.2.5.dev208+g49c0c599, py-1.5.2, pluggy-0.5.2
PyQt5 5.9.1 -- Qt runtime 5.9.2 -- Qt compiled 5.9.2
benchmark: 3.1.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/florian/proj/qutebrowser/git, inifile: pytest.ini
plugins: xvfb-1.0.0, travis-fold-1.2.0, rerunfailures-3.1, repeat-0.4.1, qt-2.2.0, mock-1.6.3, faulthandler-1.3.1, cov-2.5.1, benchmark-3.1.1, bdd-2.18.2, hypothesis-3.30.3

@coveralls
Copy link

Coverage Status

Coverage increased (+0.002%) to 92.711% when pulling aa9a02e on nicoddemus:release-3.3.0 into 49c0c59 on pytest-dev:features.

@nicoddemus
Copy link
Member Author

Thanks @The-Compiler!

  • About pytest-catchlog: good catch, when we merged pytest-catchlog into the core I remember wondering what would happen and what to do about it, but ended up forgetting tackling what to actually do. I think the best solution is to prevent catchlog from being installed at all and issue a warning.

  • About pytest-instafail, we should make a setter for _tw which issues a deprecation warning, similar to what's done with its getter.

I will go ahead and implement those two solutions and upload a new package.

@The-Compiler
Copy link
Member

Hmm, I also get failing tests in this file, which uses pytester to run pytest with coverage and then checks the coverage.xml file. It looks like that file doesn't exist anymore suddenly?

@The-Compiler
Copy link
Member

Bisected to 333a9ad which de-vendors pluggy. I guess that also came with some kind of update to the pluggy being used?

@nicoddemus
Copy link
Member Author

Hmm, I also get failing tests in this file, which uses pytester to run pytest with coverage and then checks the coverage.xml file. It looks like that file doesn't exist anymore suddenly?

Which file? coverage.xml? Can you please post a failure traceback?

@nicoddemus
Copy link
Member Author

About pytest-instafail, we should make a setter for _tw which issues a deprecation warning, similar to what's done with its getter.

Actually on second thought, I'm reverting the change that deprecated _tw. That change also introduced the public writer attribute (deprecating _tr), but @RonnyPfannschmidt has on numerous occasions since then mentioned he would like eventually get rid of TerminalWriter so making it officially public is a step contrary to that.

@The-Compiler
Copy link
Member

I opened #2946 for the coverage.xml thing as it probably warrants some deeper investigation.

We eventually want to replace py.io.TerminalWriter (exposed as
"_tw" in TerminalReporter) by something else, so deprecating access
to "_tw" and making it public as "writer" is contrary to that.
Trying to install pytest-3.3 and pytest-catchlog will result in an
option conflicts because both declare the same options.
@nicoddemus
Copy link
Member Author

nicoddemus commented Nov 23, 2017

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.0008%) to 92.708% when pulling 95de11a on nicoddemus:release-3.3.0 into 49c0c59 on pytest-dev:features.

@nicoddemus
Copy link
Member Author

Updated pin to include pluggy-0.6. Can you give this a new spin @The-Compiler?

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.0008%) to 92.708% when pulling 0de1a65 on nicoddemus:release-3.3.0 into 49c0c59 on pytest-dev:features.

@nicoddemus
Copy link
Member Author

Built the package:

@goodboy
Copy link

goodboy commented Nov 25, 2017

🏍

CHANGELOG.rst Outdated
<https://github.com/pytest-dev/pytest/issues/2767>`_)

- Pytest no longer supports Python **2.6** and **3.3**. Those Python versions
are EOL for some time now and incurr maintanance and compatibility costs on
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo maintanance should be maintenance.

CHANGELOG.rst Outdated
previous output style can be set by setting the new ``console_output_style``
to ``classic``. (`#2657 <https://github.com/pytest-dev/pytest/issues/2657>`_)

- Match ``warns`` signature to ``raises`` by adding ``match`` keyworkd. (`#2708
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo meant to be keyword

- Pytest now captures and displays output from the standard `logging` module.
The user can control the logging level to be captured by specifying options
in ``pytest.ini``, the command line and also during individual tests using
markers. Also, a ``caplog`` fixture is available that enables users to test
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whaaa caplog is dope!

CHANGELOG.rst Outdated
- Refactored internal Python 2/3 compatibility code to use ``six``. (`#2642
<https://github.com/pytest-dev/pytest/issues/2642>`_)

- Stop vendoring ``pluggy`` - we're missing out on it's latest changes for not
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heh looks like a typo on my part: should be its.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yikes - based on the number of minor easy to miss typos, we should investigate better news file auto scanning - else we run into them all at once at release time

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or actually start reviewing changelog entries 😉

@nicoddemus
Copy link
Member Author

Fixed all typos, thanks @tgoodlet!

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.0008%) to 92.708% when pulling 6eeacab on nicoddemus:release-3.3.0 into 49c0c59 on pytest-dev:features.

Copy link
Member

@The-Compiler The-Compiler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments on the changelog - it runs the qutebrowser testsuite fine now!

CHANGELOG.rst Outdated
-------------------------

- Pytest no longer supports Python **2.6** and **3.3**. Those Python versions
are EOL for some time now and incurr maintenance and compatibility costs on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

incurr -> incur

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Deprecations and Removals
-------------------------

- Pytest no longer supports Python **2.6** and **3.3**. Those Python versions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, this sounds like this release really should be 4.0 instead...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps, but we decided at the time to just increase a minor version instead.

Either way I think it might be too late to change that decision now TBH.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair point - I missed the original decision. Let's see how that goes...

CHANGELOG.rst Outdated
``CallSpec2`` class. (`#2672
<https://github.com/pytest-dev/pytest/issues/2672>`_)

- remove ParameterSet.deprecated_arg_dict - its not a public api and the lack
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove -> Remove for consistency.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CHANGELOG.rst Outdated

- Replace the old introspection code in compat.py that determines the available
arguments of fixtures with inspect.signature on Python 3 and
funcsigs.signature on Python 2. This should respect __signature__
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want to add `` around __signature__.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CHANGELOG.rst Outdated
declarations on functions. (`#2267
<https://github.com/pytest-dev/pytest/issues/2267>`_)

- Report only once tests with global ``pytestmark`` variable. (`#2549
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Report tests with ... only once.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CHANGELOG.rst Outdated
<https://github.com/pytest-dev/pytest/issues/2549>`_)

- Now pytest displays the total progress percentage while running tests. The
previous output style can be set by setting the new ``console_output_style``
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the new ... -> the new ... setting?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CHANGELOG.rst Outdated
``err`` can be accessed by attribute. (`#2879
<https://github.com/pytest-dev/pytest/issues/2879>`_)

- Add ``capfdbinary`` a version of ``capfd`` which returns bytes from
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comma before "a version"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CHANGELOG.rst Outdated
``readouterr()``. (`#2923
<https://github.com/pytest-dev/pytest/issues/2923>`_)

- Add ``capsysbinary`` a version of ``capsys`` which returns bytes from
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comma before "a version"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CHANGELOG.rst Outdated
``readouterr()``. (`#2934
<https://github.com/pytest-dev/pytest/issues/2934>`_)

- Implement feature to skip ``setup.py`` files when ran with
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ran -> run

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


Deprecated in ``3.0``.

Past Releases
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropping legacy Python support should at least be mentioned here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@nicoddemus
Copy link
Member Author

@The-Compiler thanks for the review, fixed the typos/wording you mentioned. 👍

Just in case you didn't know, you can edit files directly in GH's web interface to fix typos and such, committing directly into my branch. 😉

@The-Compiler
Copy link
Member

The-Compiler commented Nov 27, 2017

Hm, I indeed didn't think about that! It never worked when trying to clone a PR repo and push there for whatever reason, but I guess the web editor is fine for simple things like this.

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.0008%) to 92.708% when pulling 6cdd851 on nicoddemus:release-3.3.0 into 49c0c59 on pytest-dev:features.


- Remove internal ``_preloadplugins()`` function. This removal is part of the
``pytest_namespace()`` hook deprecation. (`#2236
<https://github.com/pytest-dev/pytest/issues/2236>`_)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link is wrong, it should be #2636 if I'm not mistaken...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@uSpike it doesn't really matter, GH automatically redirects it to the appropriate page. 😉

All of our links use the pytest/issues/# form, even if the number actually points to a PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm confused because if I go to #2236 it's a PR about junitxml, "Change junitxml.py to produce results that comply with Junitxml schema"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@uSpike OH you are right, sorry I misinterpreted what you said.

I will fix this on master after the release, the package has just now finished testing and I would not like to go over the entire process again. 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants