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

Initial Update #1

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Initial Update #1

wants to merge 2 commits into from

Conversation

pyup-bot
Copy link

@pyup-bot pyup-bot commented Jan 5, 2018

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

flake8 3.5.0 » 3.5.0 PyPI | Changelog | Repo
nameko 2.6.0 » 2.8.2 PyPI | Changelog | Repo

Changelogs

flake8 -> 3.5.0

3.5.0


You can view the 3.5.0 milestone_ on GitLab for more details.

New Dependency Information

  • Allow for PyFlakes 1.6.0 (See also GitLab359_)
  • Start using new PyCodestyle checks for bare excepts and ambiguous identifier
    (See also GitLab361_)

Features

  • Print out information about configuring VCS hooks (See also GitLab335_)
  • Allow users to develop plugins "local" to a repository without using
    setuptools. See our documentation on local plugins for more information.
    (See also GitLab357_)

Bugs Fixed

  • Catch and helpfully report UnicodeDecodeError\ s when parsing
    configuration files. (See also GitLab358_)

.. all links
.. _3.5.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/20

.. issue links
.. _GitLab335:
https://gitlab.com/pycqa/flake8/issues/335
.. _GitLab357:
https://gitlab.com/pycqa/flake8/issues/357
.. _GitLab358:
https://gitlab.com/pycqa/flake8/issues/358
.. _GitLab359:
https://gitlab.com/pycqa/flake8/issues/359
.. _GitLab361:
https://gitlab.com/pycqa/flake8/issues/361

.. merge request links

3.4.1


You can view the 3.4.1 milestone_ on GitLab for more details.

  • Fix minor regression when users specify only a --select list with items
    in the enabled/extended select list. (See also GitLab354_)

.. all links
.. _3.4.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/19

.. issue links
.. _GitLab354:
https://gitlab.com/pycqa/flake8/issues/354

.. merge request links

3.4.0


You can view the 3.4.0 milestone_ on GitLab for more details.

  • Refine logic around --select and --ignore when combined with the
    default values for each. (See also GitLab318_)
  • Handle spaces as an alternate separate for error codes, e.g.,
    --ignore 'E123 E234'. (See also GitLab329_)
  • Filter out empty select and ignore codes, e.g., --ignore E123,,E234.
    (See also GitLab330_)
  • Specify dependencies appropriately in setup.py (See also Gitlab341_)
  • Fix bug in parsing --quiet and --verbose from config files.
    (See also GitLab!193_)
  • Remove unused import of os in the git hook template (See also
    GitLab!194_)

.. all links
.. _3.4.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/18

.. issue links
.. _GitLab318:
https://gitlab.com/pycqa/flake8/issues/318
.. _GitLab329:
https://gitlab.com/pycqa/flake8/issues/329
.. _GitLab330:
https://gitlab.com/pycqa/flake8/issues/330
.. _GitLab341:
https://gitlab.com/pycqa/flake8/issues/341

.. merge request links
.. _GitLab!193:
https://gitlab.com/pycqa/flake8/merge_requests/193
.. _GitLab!194:
https://gitlab.com/pycqa/flake8/merge_requests/194

3.3.0


You can view the 3.3.0 milestone_ on GitLab for more details.

  • Add support for Python 3.6 (via dependencies). Note Flake8 does not
    guarantee that all plugins will support Python 3.6.
  • Added unique error codes for all missing PyFlakes messages. (14 new
    codes, see "Error / Violation Codes")
  • Dramatically improve the performance of Flake8. (See also GitLab!156_)
  • Display the local file path instead of the temporary file path when
    using the git hook. (See also GitLab244_)
  • Add methods to Report class that will be called when Flake8 starts and
    finishes processing a file. (See also GitLab251_)
  • Fix problem where hooks should only check *.py files. (See also
    GitLab268_)
  • Fix handling of SyntaxErrors that do not include physical line information.
    (See also GitLab279_)
  • Update upper bound on PyFlakes to allow for PyFlakes 1.5.0. (See also
    GitLab290_)
  • Update setuptools integration to less eagerly deduplicate packages.
    (See also GitLab295_)
  • Force flake8 --version to be repeatable between invocations. (See also
    GitLab297_)

.. all links
.. _3.3.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/16

.. issue links
.. _GitLab244:
https://gitlab.com/pycqa/flake8/issues/244
.. _GitLab251:
https://gitlab.com/pycqa/flake8/issues/251
.. _GitLab268:
https://gitlab.com/pycqa/flake8/issues/268
.. _GitLab279:
https://gitlab.com/pycqa/flake8/issues/279
.. _GitLab290:
https://gitlab.com/pycqa/flake8/issues/290
.. _GitLab295:
https://gitlab.com/pycqa/flake8/issues/295
.. _GitLab297:
https://gitlab.com/pycqa/flake8/issues/297

.. merge request links
.. _GitLab!156:
https://gitlab.com/pycqa/flake8/merge_requests/156

3.2.1


You can view the 3.2.1 milestone_ on GitLab for more details.

  • Fix subtle bug when deciding whether to report an on-by-default's violation
    (See also GitLab257_)
  • Fix another bug around SyntaxErrors not being reported at the right column
    and row (See also GitLab259_ and GitLab237_ for a related, previously
    fixed bug)
  • Fix regression from 2.x where we run checks against explicitly provided
    files, even if they don't match the filename patterns. (See also
    GitLab266_)

.. links
.. _3.2.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/15
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab257:
https://gitlab.com/pycqa/flake8/issues/257
.. _GitLab259:
https://gitlab.com/pycqa/flake8/issues/259
.. _GitLab266:
https://gitlab.com/pycqa/flake8/issues/266

3.2.0


You can view the 3.2.0 milestone_ on GitLab for more details.

  • Allow for pycodestyle 2.2.0 which fixes a bug in E305 (See also
    GitLab256_)

.. links
.. _3.2.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/14
.. _GitLab256:
https://gitlab.com/pycqa/flake8/issues/256

3.1.1


You can view the 3.1.1 milestone_ on GitLab for more details.

  • Do not attempt to install/distribute a man file with the Python package;
    leave this for others to do. (See also GitLab254_)
  • Fix packaging bug where wheel version constraints specified in setup.cfg did
    not match the constraints in setup.py. (See also GitLab255_)

.. links
.. _3.1.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/13
.. _GitLab254:
https://gitlab.com/pycqa/flake8/issues/254
.. _GitLab255:
https://gitlab.com/pycqa/flake8/issues/255

3.1.0


You can view the 3.1.0 milestone_ on GitLab for more details.

  • Add --bug-report flag to make issue reporters' lives easier.
  • Collect configuration files from the current directory when using our Git
    hook. (See also GitLab210, GitLab218, GitLab223_)
  • Avoid unhandled exceptions when dealing with SyntaxErrors. (See also
    GitLab214, GitLab238)
  • Exit early if the value for --diff is empty. (See also GitLab226_)
  • Handle empty --stdin-display-name values. (See also GitLab235_)
  • Properly report the column number of Syntax Errors. We were assuming that
    all reports of column numbers were 0-indexed, however, SyntaxErrors report
    the column number as 1-indexed. This caused us to report a column number
    that was 1 past the actual position. Further, when combined with
    SyntaxErrors that occur at a newline, this caused the position to be
    visually off by two. (See also GitLab237_)
  • Fix the behaviour of --enable-extensions. Previously, items specified
    here were still ignored due to the fact that the off-by-default extension
    codes were being left in the ignore list. (See also GitLab239_)
  • Fix problems around --select and --ignore behaviour that prevented
    codes that were neither explicitly selected nor explicitly ignored from
    being reported. (See also GitLab242_)
  • Truly be quiet when the user specifies -q one or more times. Previously,
    we were showing the if the user specified -q and --show-source. We
    have fixed this bug. (See also GitLab245_)
  • Add new File Processor attribute, previous_unindented_logical_line to
    accommodate pycodestyle 2.1.0. (See also GitLab246_)
  • When something goes wrong, exit non-zero. (See also GitLab248,
    GitLab209
    )
  • Add --tee as an option to allow use of --output-file and printing to
    standard out.
  • Allow the git plugin to actually be lazy when collecting files.
  • Allow for pycodestyle 2.1 series and pyflakes 1.3 series.

.. links
.. _3.1.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/12
.. _GitLab209:
https://gitlab.com/pycqa/flake8/issues/209
.. _GitLab210:
https://gitlab.com/pycqa/flake8/issues/210
.. _GitLab214:
https://gitlab.com/pycqa/flake8/issues/214
.. _GitLab218:
https://gitlab.com/pycqa/flake8/issues/218
.. _GitLab223:
https://gitlab.com/pycqa/flake8/issues/223
.. _GitLab226:
https://gitlab.com/pycqa/flake8/issues/226
.. _GitLab235:
https://gitlab.com/pycqa/flake8/issues/235
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab238:
https://gitlab.com/pycqa/flake8/issues/238
.. _GitLab239:
https://gitlab.com/pycqa/flake8/issues/239
.. _GitLab242:
https://gitlab.com/pycqa/flake8/issues/242
.. _GitLab245:
https://gitlab.com/pycqa/flake8/issues/245
.. _GitLab246:
https://gitlab.com/pycqa/flake8/issues/246
.. _GitLab248:
https://gitlab.com/pycqa/flake8/issues/248

3.0.4


  • Side-step a Pickling Error when using Flake8 with multiprocessing on Unix
    systems. (See also GitLab164_)
  • Fix an Attribute Error raised when dealing with Invalid Syntax. (See also
    GitLab203_)
  • Fix an unhandled Syntax Error when tokenizing files. (See also
    GitLab205_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab203:
https://gitlab.com/pycqa/flake8/issues/203
.. _GitLab205:
https://gitlab.com/pycqa/flake8/issues/205

3.0.3


  • Disable --jobs for any version of Python on Windows.
    (See also this Python bug report_)
  • Raise exception when entry_point in plugin not callable.
    This raises an informative error when a plugin fails to load because its
    entry_point is not callable, which can happen with a plugin which is buggy or
    not updated for the current version of flake8. This is nicer than raising a
    PicklingError about failing to pickle a module (See also GitLab164_)
  • Fix noqa comments followed by a : and explanation broken by
    3.0.0 (See also GitLab178_)
  • Always open our output file in append mode so we do not overwrite log
    messages. (See also GitLab193_)
  • When normalizing path values read from configuration, keep in context the
    directory where the configuration was found so that relative paths work.
    (See also GitLab194_)
  • Fix issue where users were unable to ignore plugin errors that were on
    by default. (See also GitLab195_)
  • Fix our legacy API StyleGuide's init_report method to actually override
    the previous formatter. (See also GitLab200_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab178:
https://gitlab.com/pycqa/flake8/issues/178
.. _GitLab193:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab194:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab195:
https://gitlab.com/pycqa/flake8/issues/195
.. _GitLab200:
https://gitlab.com/pycqa/flake8/issues/200
.. _this Python bug report:
https://bugs.python.org/issue27649

3.0.2


  • Fix local config file discovery. (See also GitLab181_)
  • Fix indexing of column numbers. We accidentally were starting column indices
    at 0 instead of 1.
  • Fix regression in handling of errors like E402 that rely on a combination of
    attributes. (See also GitLab186_)

.. links
.. _GitLab181:
https://gitlab.com/pycqa/flake8/issues/181
.. _GitLab186:
https://gitlab.com/pycqa/flake8/issues/186

3.0.1


  • Fix regression in handling of noqa for multiline strings.
    (See also GitLab177_)
  • Fix regression in handling of --output-file when not also using
    --verbose. (See also GitLab180_)
  • Fix regression in handling of --quiet. (See also GitLab180_)
  • Fix regression in handling of --statistics. (See also GitLab180_)

.. links
.. _GitLab177:
https://gitlab.com/pycqa/flake8/issues/177
.. _GitLab180:
https://gitlab.com/pycqa/flake8/issues/180

3.0.0


  • Drop explicit support for Pythons 2.6, 3.2, and 3.3.
  • Remove dependence on pep8/pycodestyle for file processing, plugin
    dispatching, and more. We now control all of this while keeping backwards
    compatibility.
  • --select and --ignore can now both be specified and try to find the
    most specific rule from each. For example, if you do --select E --ignore E123 then we will report everything that starts with E except for
    E123. Previously, you would have had to do --ignore E123,F,W which
    will also still work, but the former should be far more intuitive.
  • Add support for in-line noqa comments to specify only the error
    codes to be ignored, e.g., noqa: E123,W503
  • Add entry-point for formatters as well as a base class that new formatters
    can inherit from. See the documentation for more details.
  • Add detailed verbose output using the standard library logging module.
  • Enhance our usage of optparse for plugin developers by adding new parameters
    to the add_option that plugins use to register new options.
  • Update --install-hook to require the name of version control system hook
    you wish to install a Flake8.
  • Stop checking sub-directories more than once via the setuptools command
  • When passing a file on standard-in, allow the caller to specify
    --stdin-display-name so the output is properly formatted
  • The Git hook now uses sys.executable to format the shebang line.
    This allows Flake8 to install a hook script from a virtualenv that points to
    that virtualenv's Flake8 as opposed to a global one (without the virtualenv
    being sourced).
  • Print results in a deterministic and consistent ordering when used with
    multiprocessing
  • When using --count, the output is no longer written to stderr.
  • AST plugins can either be functions or classes and all plugins can now
    register options so long as there are callable attributes named as we
    expect.
  • Stop forcibly re-adding .tox, .eggs, and *.eggs to
    --exclude. Flake8 2.x started always appending those three patterns
    to any exclude list (including the default and any user supplied list).
    Flake8 3 has stopped adding these in, so you may see errors when upgrading
    due to these patterns no longer being forcibly excluded by default if you
    have your own exclude patterns specified.

To fix this, add the appropriate patterns to your exclude patterns list.

.. note::

 This item was added in November of 2016, as a result of a bug
 report.

2.6.2


  • Bug Fix packaging error during release process.

2.6.1


  • Bug Update the config files to search for to include setup.cfg and
    tox.ini. This was broken in 2.5.5 when we stopped passing
    config_file to our Style Guide

2.6.0


  • Requirements Change Switch to pycodestyle as all future pep8 releases
    will use that package name
  • Improvement Allow for Windows users on select versions of Python to
    use --jobs and multiprocessing
  • Improvement Update bounds on McCabe
  • Improvement Update bounds on PyFlakes and blacklist known broken
    versions
  • Improvement Handle new PyFlakes warning with a new error code: F405

2.5.5


  • Bug Fix setuptools integration when parsing config files
  • Bug Don't pass the user's config path as the config_file when creating a
    StyleGuide

2.5.4


  • Bug Missed an attribute rename during the v2.5.3 release.

2.5.3


  • Bug Actually parse output_file and enable_extensions from config
    files

2.5.2


  • Bug Parse output_file and enable_extensions from config files
  • Improvement Raise upper bound on mccabe plugin to allow for version
    0.4.0

2.5.1


  • Bug Properly look for .flake8 in current working directory
    (GitLab103_)
  • Bug Monkey-patch pep8.stdin_get_value to cache the actual value in
    stdin. This helps plugins relying on the function when run with
    multiprocessing. (GitLab105, GitLab107)

.. _GitLab103: https://gitlab.com/pycqa/flake8/issues/103
.. _GitLab105: https://gitlab.com/pycqa/flake8/issues/105
.. _GitLab107: https://gitlab.com/pycqa/flake8/issues/107

2.5.0


  • Improvement Raise cap on PyFlakes for Python 3.5 support
  • Improvement Avoid deprecation warnings when loading extensions
    (GitLab59, GitLab90)
  • Improvement Separate logic to enable "off-by-default" extensions
    (GitLab67_)
  • Bug Properly parse options to setuptools Flake8 command (GitLab!41_)
  • Bug Fix exceptions when output on stdout is truncated before Flake8
    finishes writing the output (GitLab69_)
  • Bug Fix error on OS X where Flake8 can no longer acquire or create new
    semaphores (GitLab74_)

.. _GitLab!41: https://gitlab.com/pycqa/flake8/merge_requests/41
.. _GitLab59: https://gitlab.com/pycqa/flake8/issues/59
.. _GitLab67: https://gitlab.com/pycqa/flake8/issues/67
.. _GitLab69: https://gitlab.com/pycqa/flake8/issues/69
.. _GitLab74: https://gitlab.com/pycqa/flake8/issues/74
.. _GitLab90: https://gitlab.com/pycqa/flake8/issues/90

2.4.1


  • Bug Do not raise a SystemError unless there were errors in the
    setuptools command. (GitLab39, GitLab!23)
  • Bug Do not verify dependencies of extensions loaded via entry-points.
  • Improvement Blacklist versions of pep8 we know are broken

.. _GitLab39: https://gitlab.com/pycqa/flake8/issues/39
.. _GitLab!23: https://gitlab.com/pycqa/flake8/merge_requests/23

2.4.0


  • Bug Print filenames when using multiprocessing and -q option.
    (GitLab31_)
  • Bug Put upper cap on dependencies. The caps for 2.4.0 are:
  • pep8 < 1.6 (Related to GitLab35_)
  • mccabe < 0.4
  • pyflakes < 0.9

See also GitLab32_

  • Bug Files excluded in a config file were not being excluded when flake8
    was run from a git hook. (GitHub2_)
  • Improvement Print warnings for users who are providing mutually
    exclusive options to flake8. (GitLab8, GitLab!18)
  • Feature Allow git hook configuration to live in .git/config.
    See the updated VCS hooks docs_ for more details. (GitLab!20_)

.. _GitHub2: PyCQA/flake8#2
.. _GitLab8: https://gitlab.com/pycqa/flake8/issues/8
.. _GitLab31: https://gitlab.com/pycqa/flake8/issues/31
.. _GitLab32: https://gitlab.com/pycqa/flake8/issues/32
.. _GitLab35: https://gitlab.com/pycqa/flake8/issues/35
.. _GitLab!18: https://gitlab.com/pycqa/flake8/merge_requests/18
.. _GitLab!20: https://gitlab.com/pycqa/flake8/merge_requests/20
.. _VCS hooks docs: https://flake8.readthedocs.org/en/latest/vcs.html

2.3.0


  • Feature: Add --output-file option to specify a file to write to
    instead of stdout.
  • Bug Fix interleaving of output while using multiprocessing
    (GitLab17_)

.. _GitLab17: https://gitlab.com/pycqa/flake8/issues/17

2.2.5


  • Flush standard out when using multiprocessing
  • Make the check for " flake8: noqa" more strict

2.2.4


  • Fix bugs triggered by turning multiprocessing on by default (again)

Multiprocessing is forcibly disabled in the following cases:

  • Passing something in via stdin
  • Analyzing a diff
  • Using windows
  • Fix --install-hook when there are no config files present for pep8 or
    flake8.
  • Fix how the setuptools command parses excludes in config files
  • Fix how the git hook determines which files to analyze (Thanks Chris
    Buccella!)

2.2.3


  • Actually turn multiprocessing on by default

2.2.2


  • Re-enable multiprocessing by default while fixing the issue Windows users
    were seeing.

2.2.1


  • Turn off multiple jobs by default. To enable automatic use of all CPUs, use
    --jobs=auto. Fixes 155 and 154.

2.2.0


  • New option doctests to run Pyflakes checks on doctests too
  • New option jobs to launch multiple jobs in parallel
  • Turn on using multiple jobs by default using the CPU count
  • Add support for python -m flake8 on Python 2.7 and Python 3
  • Fix Git and Mercurial hooks: issues 88, 133, 148 and 149
  • Fix crashes with Python 3.4 by upgrading dependencies
  • Fix traceback when running tests with Python 2.6
  • Fix the setuptools command python setup.py flake8 to read
    the project configuration

2.1.0


  • Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
    mercurial hooks
  • Force git and mercurial hooks to repsect configuration in setup.cfg
  • Only check staged files if that is specified
  • Fix hook file permissions
  • Fix the git hook on python 3
  • Ignore non-python files when running the git hook
  • Ignore .tox directories by default
  • Flake8 now reports the column number for PyFlakes messages

2.0.0


  • Pyflakes errors are prefixed by an F instead of an E
  • McCabe complexity warnings are prefixed by a C instead of a W
  • Flake8 supports extensions through entry points
  • Due to the above support, we require setuptools
  • We publish the documentation <https://flake8.readthedocs.org/>_
  • Fixes 13: pep8, pyflakes and mccabe become external dependencies
  • Split run.py into main.py, engine.py and hooks.py for better logic
  • Expose our parser for our users
  • New feature: Install git and hg hooks automagically
  • By relying on pyflakes (0.6.1), we also fixed 45 and 35

1.7.0


  • Fixes part of 35: Exception for no WITHITEM being an attribute of Checker
    for Python 3.3
  • Support stdin
  • Incorporate phd's builtins pull request
  • Fix the git hook
  • Update pep8.py to the latest version

1.6.2


  • fixed the NameError: global name 'message' is not defined (46)

1.6.1


  • fixed the mercurial hook, a change from a previous patch was not properly
    applied
  • fixed an assumption about warnings/error messages that caused an exception
    to be thrown when McCabe is used

1.6


  • changed the signatures of the check_file function in flake8/run.py,
    skip_warning in flake8/util.py and the check, checkPath
    functions in flake8/pyflakes.py.
  • fix --exclude and --ignore command flags (14, 19)
  • fix the git hook that wasn't catching files not already added to the index
    (29)
  • pre-emptively includes the addition to pep8 to ignore certain lines.
    Add nopep8 to the end of a line to ignore it. (37)
  • check_file can now be used without any special prior setup (21)
  • unpacking exceptions will no longer cause an exception (20)
  • fixed crash on non-existent file (38)

1.5


  • fixed the stdin
  • make sure mccabe catches the syntax errors as warnings
  • pep8 upgrade
  • added max_line_length default value
  • added Flake8Command and entry points if setuptools is around
  • using the setuptools console wrapper when available

1.4


  • git_hook: Only check staged changes for compliance
  • use pep8 1.2

1.3.1


  • fixed support for Python 2.5

1.3


  • fixed false W402 warning on exception blocks.

1.2


  • added a git hook
  • now Python 3 compatible
  • mccabe and pyflakes have warning codes like pep8 now

1.1


  • fixed the value returned by --version
  • allow the flake8: header to be more generic
  • fixed the "hg hook raises 'physical lines'" bug
  • allow three argument form of raise
  • now uses setuptools if available, for 'develop' command

1.0


  • Deactivates by default the complexity checker
  • Introduces the complexity option in the HG hook and the command line.

0.9


  • update pep8 version to 0.6.1
  • mccabe check: gracefully handle compile failure

0.8


  • fixed hg hook
  • discard unexisting files on hook check

0.7


  • Fix pep8 initialization when run through Hg
  • Make pep8 short options work when run through the command line
  • Skip duplicates when controlling files via Hg

0.6


  • Fix the McCabe metric on some loops

nameko -> 2.8.2

2.8.2


Released: 2017-12-11

  • Remove the pytest --log-level argument added by the pytest plugin since
    this conflicts with newer versions of pytest (>= 3.3.0). For older
    versions this can be restored by installing the pytest-catchlog package.

2.8.1


Released: 2017-11-29

  • Added the 'show-config' command which will print the service configuration
    to the console, after environment variable substitution.

2.8.0


Released: 2017-10-31

  • Environment variables substituted into config files are now interpreted
    as YAML rather than bare values, allowing use of rich data types.

2.7.0


Released: 2017-10-07

  • Set stopped flag in register_provider() to allow PollingQueueConsumer
    object reuse [fixes 462]
  • Refactor of AMQP message publishing logic into nameko.amqp.publish
  • Exposes delivery options and other messaging configuration to AMQP-based
    DependencyProviders. [addresses 374]
  • Class attributes for configuring use_confirms, retry and retry_policy
    have been deprecated from the Publisher, EventDispatcher, and RPC MethodProxy
    classes. If you were subclassing these classes to set these options, you
    should now set them at class instantiation time.

2.6.0


Released: 2017-04-30

  • Environment variables are now interpreted as native YAML data types rather
    than just strings
  • The WSGI Server now uses an explicit logger so it can be controlled using a
    logging config
  • Drops several backwards-compatibility shims that were marked as being
    maintained only until this release

2.5.4


Released: 2017-04-20

  • Don't block the QueueConsumer thread on the worker pool, which could cause
    service deadlock and occasional dropped AMQP connections [fixes 428]
  • Revert prefetch count change from 2.5.3 and ack messages outside of the
    QueueConsumer thread. [fixes 417 more robustly]

2.5.3


Released: 2017-03-16

  • Bump the amqp prefetch_count by 1 to max_workers + 1 to fix throughput
    issue. [fixes 417]

2.5.2


Released 2017-02-28

  • Improves teardown speed of the rabbit_config pytest fixture
  • Support for providing an alternative reply listener to the standalone
    RPC proxy

2.5.1


Released 2017-01-19

  • Adds a DependencyProvider to give services access to the config object
  • Internal refactor to make all worker lifecycle steps run in the same thread

2.5.0


Released 2016-12-20

  • Enables publish confirms by default for all AMQP message publishers
  • Refactors common AMQP connection code into nameko.amqp

2.4.4


Released 2016-11-28

  • Adds AMQP heartbeats to Consumer connections
  • Handles an uncaught exception caused by a fast-disconnecting client under
    Python 3 [fixes 367]

2.4.3


Released 2016-11-16

  • Pins kombu back to a compatible release (<4) [fixes 378]
  • Fixes compatibility with latest bpython and ipython shells
    [fixes 355 and 375]
  • Fixes socket cleanup bug in websocket hub [fixes 367]

2.4.2


Released 2016-10-10

  • Added support for environment variables in YAML config files
  • Enhanced :func:~nameko.testing.services.entrypoint_waiter. The new
    implementation is backwards compatible but additionally:
  • Gives you access to the result returned (or exception raised)
  • Adds the ability to wait for a specific result
  • Doesn't fire until the worker is completely torn down

2.4.1


Released 2016-09-14

  • Enhanced :class: ~nameko.web.server.WebServer with get_wsgi_app and
    get_wsgi_server to allow easy usage of WSGI middleware and modifications
    of the WSGI server.
  • Enhanced :func:~nameko.testing.services.replace_dependencies to allow
    specific replacement values to be provided with named arguments.

2.4.0


Released 2016-08-30

  • Add dictionary access to standalone.rpc.ClusterProxy to allow the proxy
    to call services whose name is not a legal identifier in python
    (e.g. name has a - in it).
  • Add the ability to specify a custom ServiceContainer class via config key.
    Deprecate the keyword arguments to ServiceRunner and run_services for
    the same purpose.
  • Deprecate the keyword arguments to run_services, ServiceContainer and
    ServiceRunner.add_service for specifying a custom WorkerContext class.
    Custom WorkerContext classes can now only be specified with a custom
    ServiceContainer class that defines the worker_ctx_cls attribute.
  • Remove the context_keys attribute of the WorkerContext, which was
    previously used to "whitelist" worker context data passed from call to call.
    It was a feature that leaked from a specific implementation into the main
    framework, and not useful enough in its own right to continue to be
    supported.
  • Refactor ServiceContainer internals for better separation between "managed"
    and "worker" threads. Improved logging when threads are killed.

2.3.1


Released 2016-05-11

  • Deprecate MethodProxy.async in favour of MethodProxy.call_async in
    preparation for async becoming a keyword
  • Add support for loading logging configuration from config.yaml

2.3.0


Released 2016-04-05

  • Add support for loading configuration file in nameko shell via
    --config option
  • Changed :class:~nameko.web.handlers.HttpRequestHandler to allow override
    how web exceptions are handled
  • Enabled reliable delivery on broadcast events when combined with a custom
    :py:attr:~nameko.events.EventHandler.broadcast_identity. Reliable delivery
    now defaults to enabled for all handler types. It must be explicitly turned
    off with broadcast mode unless you override the default broadcast_identity.
  • Update bundled pytest fixtures to use a random vhost in RabbitMQ by default
  • Now requires eventlet>=0.16.1 because older versions were removed from PyPI

2.2.0


Released 2015-10-04

  • Add support for alternative serializers in AMQP messages
  • Add pytest plugin with common fixtures
  • Fix examples in documentation and add tests to prevent future breakage
  • Fix bug handling non-ascii characters in exception messages
  • Various documentation fixes

2.1.2


Released 2015-05-26

  • Refactor the standalone queue consumer for more extensibility

2.1.1


Released 2015-05-11

  • Nameko shell to use bpython or ipython interpreter if available
  • Support for marking entrypoint arguments as sensitive (for later redaction)

2.1.0


Released 2015-04-13

  • Changed default AMQP URI so examples work with an unconfigured RabbitMQ.
  • Heuristic messages for AMQP connection errors.
  • Added six to requirements.
  • Minor documentation fixes.

2.0.0


Released 2015-03-31

  • python 3 compatibility
  • Added HTTP entrypoints and experimental websocket support (contributed by
    Armin Ronacher)
  • Added CLI and console script
  • Introduction of nameko "extensions" and nomenclature clarification
  • Removal of DependencyFactory in favour of prototype pattern
  • Complete documentation rewrite
  • Spun out nameko.contrib.sqlalchemy into
    nameko-sqlalchemy &lt;https://pypi.python.org/pypi/nameko-sqlalchemy&gt;_
    as a community extension.
  • Spun out nameko.legacy package into
    nameko-nova-compat &lt;https://pypi.python.org/pypi/nameko-nova-compat&gt;_
  • Rename the standalone rpc proxy to
    :class:~nameko.standalone.rpc.ServiceRpcProxy and add a
    :class:~nameko.standalone.rpc.ClusterRpcProxy, using a single reply queue
    for communicating with multiple remote services.
  • Make the standalone event dispatcher more shell-friendly, connecting on
    demand.

1.14.0


Released 2014-12-19

  • Remove parallel provider in favour of async RPC
  • Update :func:~nameko.testing.services.worker_factory to raise if asked to
    replace a non-existent injection.
  • Add various __repr__ methods for better logging
  • Support for timeouts in the (non-legacy) standalone RPC proxy
  • Add helper for manipulating an AMQP URI into a dict

1.13.0


Released 2014-12-02

  • RPC reply queues now auto-delete.
  • Extra protection against badly-behaved dependencies during container kill
  • Make legacy :class:~nameko.legacy.nova.NovaRpcConsumer more robust against
    failures in the :class:~nameko.legacy.nova.NovaRpc provider.

1.12.0


Released 2014-11-25

  • Add ability to make asynchronous rpc calls using the rpc proxy.
  • Add a new nameko context key user_agent to support including such info
    in the rpc header.

1.11.5


Released 2014-11-18

  • Have the standalone rpc proxy mark its reply queues as auto-delete, to stop
    them staying around after use.

1.11.4


Released 2014-11-10

  • Make :class:~nameko.rpc.RpcConsumer more robust against failures in the
    :class:~nameko.rpc.Rpc provider.
  • Add a new exception :class:~nameko.exceptions.MalformedRequest that RPC
    providers can raise if they detect an invalid message. Raise this exception
    in the default Rpc provider if args or kwargs keys are missing
    from the message.
  • Fix issues in queue consumer tests against non-localhost brokers.
  • Upgrade to eventlet 0.15.2.
  • Include pyrabbit in requirements.txt (no longer just for tests).
  • Catch dying containers in the entrypoint_hook to avoid hangs.
  • Add expected_exceptions kwarg to the rpc entrypoint to enable different
    exception handling (in dependencies) for user vs system errors.

1.11.3


Released 2014-10-10

  • Add more logging for workers killed by
    :meth:~nameko.containers.ServiceContainer.kill.

1.11.2


Released 2014-09-18

  • Add a default implementation for acquire_injection (returning None)
    for dependency providers that are used for side-effects rather than injecting
    dependencies.

1.11.1


Released 2014-09-15

  • New test helper :func:~nameko.testing.services.entrypoint_waiter to wait
    for entrypoints (e.g. event handlers) to complete.

1.11.0


Released 2014-09-01

  • Raise a specific RpcTimeout error in the RPC proxy rather than
    socket.timeout to avoid confusing kombu's Connection.ensure
  • Improve logging helpers
  • Use inspect.getcallargs instead of shadow lambda for RPC argument
    checking
  • Add default retry policies to all publishers
  • Stricter handling of connections between tests
  • Workarounds for RabbitMQ bugs described at
    https://groups.google.com/d/topic/rabbitmq-users/lrl0tYd1L38/discussion

1.10.1


Released 2014-08-27

  • Inspect the service class (instead of an instance) in
    :func:~nameko.testing.services.worker_factory. Works better with
    descriptors.
  • Explicitly delete exc_info variable when not needed, to help the
    garbage collector.

1.10.0


Released 2014-08-14

  • Entrypoint providers' handle_result is now able to manipulate and modify and
    return the (result, exc_info) tuple. This enables default post-processing
    (e.g. serialization, translations)
  • Added serialization safety to legacy RPC entrypoint.

1.9.1


Released 2014-08-12

  • Bugfix to exception handling in nameko.legacy.dependencies

1.9.0


Released 2014-07-15

  • No longer relying on eventlet for standalone RPC proxy timeouts.
  • Introduced RPC entrypoints compatible with the 'legacy' proxy.

1.8.2


Released 2014-07-07

  • Documentation generator accepts a function listing event classes and adds
    to output accordingly.

1.8.1


Released 2014-06-23

  • Adding wait_for_worker_idle test helper.

1.8.0


Released 2014-06-13

  • Now passing exc_info tuples instead of bare exceptions to
    worker_result and handle_result, to enable exception processing in
    non-worker greenthreads.

1.7.2


Released 2014-06-10

  • :meth:~nameko.containers.ServiceContainer._run_worker now calls any
    handle_result method before dependency teardown.
  • Serialization errors now generate a specific error message rather
    than bubbling into the container.
  • Minor change to nameko_doc output.

1.7.1


Released 2014-05-20

  • Added language, auth_token and user_id dependency providers to
    make context data available to service workers.
  • Refactored constants into their own module.
  • Minor test changes to enable testing on shared rabbit brokers.

1.7.0


Released 2014-05-07

  • :meth:~nameko.containers.ServiceContainer.spawn_worker now throws
    :class:~nameko.exceptions.ContainerBeingKilled if a kill is
    in progress, since some providers may already be dead. Providers should catch
    this and e.g. requeue rpc messages. There is a race condition between
    completing the kill sequence and remaining entrypoints firing.

1.6.1


Released 2014-04-03

  • Revert changes to legacy exception serialization to maintain backwards
    compatibility with old clients.
  • Add forwards compatibility for future clients that wish to serialize
    exceptions into more data
  • Promote conftest rabbit manipulations to test helpers

1.6.0


Released 2014-03-31

  • Rename instance_factory to worker_factory
  • Raise :class:~nameko.exception.IncorrectSignature instead of
    RemoteError: TypeError if an RPC method is called with invalid arguments.
  • Raise :class:~nameko.exception.MethodNotFound instead of
    RemoteError: MethodNotFound if a non-existent RPC method is called.
  • Let log handlers format warning messages so that aggregators group them
    correctly.
  • Expose the entire dependency provider (rather than just the method name) to
    the worker context.

1.5.0


Released 2014-03-27

  • Improvements to :class:~nameko.containers.ServiceContainer.kill() enabling
    better tracebacks and cleaner teardown:
  • Using sys.exc_info to preserve tracebacks
  • No longer passing exception into
    :meth:~nameko.extensions.DependencyProvider.kill(), removing race
    conditions.
  • No longer requiring exc in
    :class:~nameko.containers.ServiceContainer.kill()

1.4.1


Released 2014-03-26

  • Adds the nameko_doc package, for easing the creation of service-oriented
    documentation.

1.4.0


Released 2014-03-20

  • RPC calls to non-existent services (no queues bound to the RPC exchange with
    the appropriate routing key) now raise an exception instead of hanging
    indefinitely. Note that calls to existing but non-running services (where the
    queue exists but has no consumer) behave as before.

1.3.5


Released 2014-03-05

  • Increased test resilience. Force-closing existing connections on rabbit
    reset

1.3.4


Released 2014-03-05

  • Use MagicMock for dependency replacement in test utilities
  • Use autospec=True wherever possible when mocking
  • Merge ServiceContainers into a single class

1.3.3


Released 2014-02-25

  • Bugfixes enabling reconnection to the broker if the connection is temporarily
    lost.

1.3.2


Released 2014-02-13

  • Dropping headers with a None value because they can't be serialized by
    AMQP

1.3.1


Released 2014-01-28

  • Add event_handler_cls kwarg to the event_handler entrypoint, for
    using a custom subclass of the EventHandler provider

1.3.0


Released 2014-01-23

  • Standalone RPC proxy interface changed to class with contextmanager interface
    and manual start() and stop() methods.

Once you have closed this pull request, I'll create separate pull requests for every update as soon as I find them.

That's it for now!

Happy merging! 🤖

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.

1 participant