Repository: chainer/chainer

Issue:
test_init_docstring.py fail
```
C:\Path\To\chainer>py -3.7 -m pytest tests\chainer_tests\test_init_docstring.py
================================================= test session starts =================================================
platform win32 -- Python 3.7.3, pytest-4.1.1, py-1.8.0, pluggy-0.12.0
rootdir: C:\Development\gopath\src\github.com\chainer\chainer, inifile: setup.cfg
collected 1 item

tests\chainer_tests\test_init_docstring.py F                                                                     [100%]

====================================================== FAILURES =======================================================
_____________________________________ TestInitDocstring.test_init_docstring_empty _____________________________________

self = <chainer_tests.test_init_docstring.TestInitDocstring testMethod=test_init_docstring_empty>

    def test_init_docstring_empty(self):
        errors = []
        root = chainer.__path__
        for loader, modname, ispkg in pkgutil.walk_packages(root, 'chainer.'):
            # Skip modules generated by protobuf.
            if '_pb2' in modname:
                continue

            try:
>               mod = importlib.import_module(modname)

tests\chainer_tests\test_init_docstring.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
C:\Development\Python\Python37\lib\importlib\__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1006: in _gcd_import
    ???
<frozen importlib._bootstrap>:983: in _find_and_load
    ???
<frozen importlib._bootstrap>:967: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:677: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:728: in exec_module
    ???
<frozen importlib._bootstrap>:219: in _call_with_frames_removed
    ???
chainer\exporters\__init__.py:1: in <module>
    from chainer.exporters import caffe  # NOQA
chainer\exporters\caffe.py:11: in <module>
    from chainer.links.caffe.protobuf3 import caffe_pb2 as caffe_pb
chainer\links\caffe\__init__.py:1: in <module>
    from chainer.links.caffe.caffe_function import CaffeFunction  # NOQA
chainer\links\caffe\caffe_function.py:10: in <module>
    from chainer.links.caffe.protobuf3 import caffe_pb2 as caffe_pb
chainer\links\caffe\protobuf3\caffe_pb2.py:7: in <module>
    from google.protobuf import descriptor as _descriptor
C:\Development\Python\Python37\lib\site-packages\google\protobuf\descriptor.py:47: in <module>
    from google.protobuf.pyext import _message
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

name = 'MutableSequence'

    def __getattr__(name):
        # For backwards compatibility, continue to make the collections ABCs
        # through Python 3.6 available through the collections module.
        # Note, no new collections ABCs were added in Python 3.7
        if name in _collections_abc.__all__:
            obj = getattr(_collections_abc, name)
            import warnings
            warnings.warn("Using or importing the ABCs from 'collections' instead "
                          "of from 'collections.abc' is deprecated, "
                          "and in 3.8 it will stop working",
>                         DeprecationWarning, stacklevel=2)
E           DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working

C:\Development\Python\Python37\lib\collections\__init__.py:52: DeprecationWarning
============================================== 1 failed in 0.45 seconds ===============================================
```

- Python 3.7
- Chainer version: master (https://github.com/chainer/chainer/commit/c7b9c037f3e7116aeb29db8273e025b90bed0a70)
- Depend modules: `pip install -e .[test]` on the commit id
- OS/Platform: windows10


Discussion:
This is caused by https://github.com/protocolbuffers/protobuf/issues/5865
Please use "protobuf==3.6.1" to avoid the issue.


Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -28,11 +28,7 @@
         'typing_extensions',
         'filelock',
         'numpy>=1.9.0',
-        # protobuf 3.8.0rc1 causes CI errors.
-        # TODO(niboshi): Probably we should always use pip in CIs for
-        # installing chainer. It avoids pre-release dependencies by default.
-        # See also: https://github.com/pypa/setuptools/issues/855
-        'protobuf>=3.0.0,<3.8.0rc1',
+        'protobuf>=3.0.0',
         'six>=1.9.0',
     ],
     'stylecheck': [


Test patch: