@optilude Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-borg.localrole/11/violations
```
borg/__init__.py:0:1: C101 Coding magic comment not found
borg/__init__.py:6:36: E261 at least two spaces before inline comment
borg/localrole/config.py:0:1: C101 Coding magic comment not found
borg/localrole/config.py:3:42: W292 no newline at end of file
borg/localrole/tests.py:0:1: C101 Coding magic comment not found
borg/localrole/tests.py:1:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:2:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:3:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:4:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:5:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:6:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:8:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:9:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:10:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:11:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:16:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:17:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:21:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/tests.py:22:5: E301 expected 1 blank line, found 0
borg/localrole/tests.py:52:1: E302 expected 2 blank lines, found 1
borg/localrole/tests.py:66:1: E302 expected 2 blank lines, found 1
borg/localrole/tests.py:86:13: E128 continuation line under-indented for visual indent
borg/localrole/tests.py:89:25: E131 continuation line unaligned for hanging indent
borg/localrole/tests.py:96:5: E303 too many blank lines (2)
borg/localrole/tests.py:98:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/interfaces.py:11:6: Q000 Remove bad quotes.
borg/localrole/interfaces.py:12:16: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:12:18: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:12:61: C812 missing trailing comma
borg/localrole/interfaces.py:16:6: Q000 Remove bad quotes.
borg/localrole/interfaces.py:17:26: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:17:28: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:17:80: E501 line too long (80 > 79 characters)
borg/localrole/interfaces.py:17:81: C812 missing trailing comma
borg/localrole/interfaces.py:20:1: E302 expected 2 blank lines, found 1
borg/localrole/interfaces.py:32:1: E302 expected 2 blank lines, found 1
borg/localrole/__init__.py:0:1: C101 Coding magic comment not found
borg/localrole/__init__.py:2:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:4:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:8:1: E302 expected 2 blank lines, found 1
borg/localrole/__init__.py:11:1: W293 blank line contains whitespace
borg/localrole/__init__.py:13:37: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:13:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:41: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:80: E501 line too long (92 > 79 characters)
borg/localrole/__init__.py:15:80: E501 line too long (89 > 79 characters)
borg/localrole/__init__.py:16:37: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:16:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/utils.py:0:1: C101 Coding magic comment not found
borg/localrole/utils.py:1:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:2:1: I004 isort found an unexpected blank line in imports
borg/localrole/utils.py:8:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:9:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:11:1: E302 expected 2 blank lines, found 1
borg/localrole/utils.py:15:1: W293 blank line contains whitespace
borg/localrole/utils.py:24:9: T001 print statement found.
borg/localrole/utils.py:24:23: Q000 Remove bad quotes.
borg/localrole/utils.py:24:23: S001 found module formatter
borg/localrole/utils.py:25:1: W293 blank line contains whitespace
borg/localrole/utils.py:28:1: E302 expected 2 blank lines, found 1
borg/localrole/utils.py:33:27: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:0:1: C101 Coding magic comment not found
borg/localrole/workspace.py:2:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:3:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:6:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:7:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:9:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:10:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:11:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:12:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:13:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:14:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:15:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:15:3: T000 Todo note found.
borg/localrole/workspace.py:16:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:17:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:20:9: Q000 Remove bad quotes.
borg/localrole/workspace.py:21:18: Q000 Remove bad quotes.
borg/localrole/workspace.py:23:1: E302 expected 2 blank lines, found 1
borg/localrole/workspace.py:23:80: E501 line too long (82 > 79 characters)
borg/localrole/workspace.py:24:80: E501 line too long (81 > 79 characters)
borg/localrole/workspace.py:30:17: S001 found module formatter
borg/localrole/workspace.py:30:80: E501 line too long (90 > 79 characters)
borg/localrole/workspace.py:46:19: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:110:80: E501 line too long (99 > 79 characters)
borg/localrole/workspace.py:118:0: P102 docstring does contain unindexed parameters
borg/localrole/workspace.py:128:1: E302 expected 2 blank lines, found 1
borg/localrole/workspace.py:152:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:246:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:247:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:249:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:253:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:353:17: Q000 Remove bad quotes.
borg/localrole/workspace.py:354:13: E221 multiple spaces before operator
borg/localrole/workspace.py:356:34: Q000 Remove bad quotes.
borg/localrole/workspace.py:365:16: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:401:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:401:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:402:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:419:19: T000 Todo note found.
borg/localrole/workspace.py:421:80: E501 line too long (80 > 79 characters)
borg/localrole/workspace.py:425:80: E501 line too long (84 > 79 characters)
borg/localrole/workspace.py:428:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:428:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:429:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:429:5: C901 'WorkspaceLocalRoleManager.checkLocalRolesAllowed' is too complex (14)
borg/localrole/workspace.py:452:15: T000 Todo note found.
borg/localrole/workspace.py:472:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:472:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:473:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:480:18: E261 at least two spaces before inline comment
borg/localrole/workspace.py:480:21: T000 Todo note found.
borg/localrole/workspace.py:486:1: W293 blank line contains whitespace
borg/localrole/workspace.py:487:7: T000 Todo note found.
borg/localrole/workspace.py:489:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:489:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:490:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:501:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/setuphandlers.py:0:1: C101 Coding magic comment not found
borg/localrole/setuphandlers.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/setuphandlers.py:3:1: E302 expected 2 blank lines, found 1
borg/localrole/setuphandlers.py:4:1: W293 blank line contains whitespace
borg/localrole/setuphandlers.py:7:1: W293 blank line contains whitespace
borg/localrole/setuphandlers.py:9:35: W292 no newline at end of file
borg/localrole/factory_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/factory_adapter.py:3:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/factory_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:4:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:5:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:6:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:8:1: E302 expected 2 blank lines, found 1
borg/localrole/factory_adapter.py:21:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/factory_adapter.py:28:68: W291 trailing whitespace
borg/localrole/factory_adapter.py:65:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:66:80: E501 line too long (80 > 79 characters)
borg/localrole/factory_adapter.py:78:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:92:0: P102 docstring does contain unindexed parameters
borg/localrole/factory_adapter.py:93:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/factory_adapter.py:94:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/default_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/default_adapter.py:1:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:53:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/default_adapter.py:54:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/bbb/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/bbb/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/bbb/interfaces.py:3:3: T000 Todo note found.
borg/localrole/bbb/interfaces.py:6:1: E302 expected 2 blank lines, found 1
borg/localrole/bbb/interfaces.py:8:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:9:74: W291 trailing whitespace
borg/localrole/bbb/interfaces.py:10:72: W291 trailing whitespace
borg/localrole/bbb/interfaces.py:13:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:23:1: E302 expected 2 blank lines, found 1
borg/localrole/bbb/interfaces.py:25:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:29:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:33:8: W292 no newline at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@malthe Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-borg.localrole/12/violations
```
borg/__init__.py:0:1: C101 Coding magic comment not found
borg/__init__.py:6:36: E261 at least two spaces before inline comment
borg/localrole/config.py:0:1: C101 Coding magic comment not found
borg/localrole/config.py:3:42: W292 no newline at end of file
borg/localrole/tests.py:0:1: C101 Coding magic comment not found
borg/localrole/tests.py:1:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/tests.py:2:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:3:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:4:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:5:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:8:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:9:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:10:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:11:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:12:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:13:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:14:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:15:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:16:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:17:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:18:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:21:15: E225 missing whitespace around operator
borg/localrole/tests.py:22:8: P002 found "hasattr", consider replacing it
borg/localrole/tests.py:27:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/tests.py:28:5: E301 expected 1 blank line, found 0
borg/localrole/tests.py:58:1: E302 expected 2 blank lines, found 1
borg/localrole/tests.py:61:1: W293 blank line contains whitespace
borg/localrole/tests.py:65:1: W293 blank line contains whitespace
borg/localrole/tests.py:67:1: W293 blank line contains whitespace
borg/localrole/tests.py:71:1: W293 blank line contains whitespace
borg/localrole/tests.py:77:1: W293 blank line contains whitespace
borg/localrole/tests.py:79:71: W291 trailing whitespace
borg/localrole/tests.py:82:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/tests.py:85:1: E302 expected 2 blank lines, found 1
borg/localrole/tests.py:106:13: E128 continuation line under-indented for visual indent
borg/localrole/tests.py:109:25: E131 continuation line unaligned for hanging indent
borg/localrole/tests.py:116:5: E303 too many blank lines (2)
borg/localrole/tests.py:118:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/interfaces.py:11:6: Q000 Remove bad quotes.
borg/localrole/interfaces.py:12:16: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:12:18: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:12:61: C812 missing trailing comma
borg/localrole/interfaces.py:16:6: Q000 Remove bad quotes.
borg/localrole/interfaces.py:17:26: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:17:28: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:17:80: E501 line too long (80 > 79 characters)
borg/localrole/interfaces.py:17:81: C812 missing trailing comma
borg/localrole/interfaces.py:20:1: E302 expected 2 blank lines, found 1
borg/localrole/interfaces.py:32:1: E302 expected 2 blank lines, found 1
borg/localrole/__init__.py:0:1: C101 Coding magic comment not found
borg/localrole/__init__.py:2:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:4:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:8:1: E302 expected 2 blank lines, found 1
borg/localrole/__init__.py:11:1: W293 blank line contains whitespace
borg/localrole/__init__.py:13:37: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:13:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:41: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:80: E501 line too long (92 > 79 characters)
borg/localrole/__init__.py:15:80: E501 line too long (89 > 79 characters)
borg/localrole/__init__.py:16:37: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:16:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/utils.py:0:1: C101 Coding magic comment not found
borg/localrole/utils.py:3:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:4:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:5:1: I004 isort found an unexpected blank line in imports
borg/localrole/utils.py:6:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:7:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:9:1: E302 expected 2 blank lines, found 1
borg/localrole/utils.py:13:1: W293 blank line contains whitespace
borg/localrole/utils.py:22:9: T001 print statement found.
borg/localrole/utils.py:22:23: Q000 Remove bad quotes.
borg/localrole/utils.py:22:23: S001 found module formatter
borg/localrole/utils.py:23:1: W293 blank line contains whitespace
borg/localrole/workspace.py:0:1: C101 Coding magic comment not found
borg/localrole/workspace.py:2:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:3:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:6:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:7:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:9:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:10:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:11:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:12:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:13:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:14:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:15:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:15:3: T000 Todo note found.
borg/localrole/workspace.py:16:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:17:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:20:9: Q000 Remove bad quotes.
borg/localrole/workspace.py:21:18: Q000 Remove bad quotes.
borg/localrole/workspace.py:23:1: E302 expected 2 blank lines, found 1
borg/localrole/workspace.py:23:80: E501 line too long (82 > 79 characters)
borg/localrole/workspace.py:24:80: E501 line too long (81 > 79 characters)
borg/localrole/workspace.py:30:17: S001 found module formatter
borg/localrole/workspace.py:30:80: E501 line too long (90 > 79 characters)
borg/localrole/workspace.py:46:19: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:110:80: E501 line too long (99 > 79 characters)
borg/localrole/workspace.py:118:0: P102 docstring does contain unindexed parameters
borg/localrole/workspace.py:128:1: E302 expected 2 blank lines, found 1
borg/localrole/workspace.py:152:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:246:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:247:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:249:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:253:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:353:17: Q000 Remove bad quotes.
borg/localrole/workspace.py:354:13: E221 multiple spaces before operator
borg/localrole/workspace.py:356:34: Q000 Remove bad quotes.
borg/localrole/workspace.py:365:16: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:392:42: Q000 Remove bad quotes.
borg/localrole/workspace.py:404:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:404:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:405:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:422:19: T000 Todo note found.
borg/localrole/workspace.py:424:80: E501 line too long (80 > 79 characters)
borg/localrole/workspace.py:428:80: E501 line too long (84 > 79 characters)
borg/localrole/workspace.py:431:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:431:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:432:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:432:5: C901 'WorkspaceLocalRoleManager.checkLocalRolesAllowed' is too complex (14)
borg/localrole/workspace.py:455:15: T000 Todo note found.
borg/localrole/workspace.py:475:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:475:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:476:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:483:18: E261 at least two spaces before inline comment
borg/localrole/workspace.py:483:21: T000 Todo note found.
borg/localrole/workspace.py:489:1: W293 blank line contains whitespace
borg/localrole/workspace.py:490:7: T000 Todo note found.
borg/localrole/workspace.py:492:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:492:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:493:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:504:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/setuphandlers.py:0:1: C101 Coding magic comment not found
borg/localrole/setuphandlers.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/setuphandlers.py:3:1: E302 expected 2 blank lines, found 1
borg/localrole/setuphandlers.py:4:1: W293 blank line contains whitespace
borg/localrole/setuphandlers.py:7:1: W293 blank line contains whitespace
borg/localrole/setuphandlers.py:9:35: W292 no newline at end of file
borg/localrole/factory_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/factory_adapter.py:3:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/factory_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:4:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:5:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:6:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:8:1: E302 expected 2 blank lines, found 1
borg/localrole/factory_adapter.py:21:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/factory_adapter.py:28:68: W291 trailing whitespace
borg/localrole/factory_adapter.py:65:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:66:80: E501 line too long (80 > 79 characters)
borg/localrole/factory_adapter.py:78:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:92:0: P102 docstring does contain unindexed parameters
borg/localrole/factory_adapter.py:93:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/factory_adapter.py:94:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/default_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/default_adapter.py:1:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:53:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/default_adapter.py:54:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/bbb/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/bbb/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/bbb/interfaces.py:3:3: T000 Todo note found.
borg/localrole/bbb/interfaces.py:6:1: E302 expected 2 blank lines, found 1
borg/localrole/bbb/interfaces.py:8:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:9:74: W291 trailing whitespace
borg/localrole/bbb/interfaces.py:10:72: W291 trailing whitespace
borg/localrole/bbb/interfaces.py:13:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:23:1: E302 expected 2 blank lines, found 1
borg/localrole/bbb/interfaces.py:25:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:29:1: W293 blank line contains whitespace
borg/localrole/bbb/interfaces.py:33:8: W292 no newline at end of file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-borg.localrole/13/violations
```
borg/__init__.py:0:1: C101 Coding magic comment not found
borg/__init__.py:6:36: E261 at least two spaces before inline comment
borg/localrole/config.py:0:1: C101 Coding magic comment not found
borg/localrole/config.py:3:42: W292 no newline at end of file
borg/localrole/tests.py:0:1: C101 Coding magic comment not found
borg/localrole/tests.py:1:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:2:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:3:1: I004 isort found an unexpected blank line in imports
borg/localrole/tests.py:4:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:6:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:12:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:13:1: I001 isort found an import in the wrong position
borg/localrole/tests.py:17:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/tests.py:18:5: E301 expected 1 blank line, found 0
borg/localrole/tests.py:78:13: E128 continuation line under-indented for visual indent
borg/localrole/tests.py:79:13: E128 continuation line under-indented for visual indent
borg/localrole/tests.py:80:13: E128 continuation line under-indented for visual indent
borg/localrole/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/interfaces.py:3:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/interfaces.py:5:3: Q000 Remove bad quotes.
borg/localrole/interfaces.py:6:13: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:6:15: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:9:3: Q000 Remove bad quotes.
borg/localrole/interfaces.py:10:23: E251 unexpected spaces around keyword / parameter equals
borg/localrole/interfaces.py:10:25: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:0:1: C101 Coding magic comment not found
borg/localrole/__init__.py:2:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:4:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:8:1: E302 expected 2 blank lines, found 1
borg/localrole/__init__.py:13:37: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:13:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:41: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:14:80: E501 line too long (92 > 79 characters)
borg/localrole/__init__.py:15:80: E501 line too long (89 > 79 characters)
borg/localrole/__init__.py:16:37: E251 unexpected spaces around keyword / parameter equals
borg/localrole/__init__.py:16:39: E251 unexpected spaces around keyword / parameter equals
borg/localrole/utils.py:0:1: C101 Coding magic comment not found
borg/localrole/utils.py:1:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:2:1: I004 isort found an unexpected blank line in imports
borg/localrole/utils.py:8:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:9:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:11:1: E302 expected 2 blank lines, found 1
borg/localrole/utils.py:24:9: T001 print statement found.
borg/localrole/utils.py:24:23: Q000 Remove bad quotes.
borg/localrole/utils.py:24:23: S001 found module formatter
borg/localrole/utils.py:28:1: E302 expected 2 blank lines, found 1
borg/localrole/utils.py:33:27: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:0:1: C101 Coding magic comment not found
borg/localrole/workspace.py:1:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:5:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:6:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:7:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:8:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:9:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:10:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:11:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:12:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:13:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:14:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:15:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:16:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:17:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:20:9: Q000 Remove bad quotes.
borg/localrole/workspace.py:21:18: Q000 Remove bad quotes.
borg/localrole/workspace.py:23:1: E302 expected 2 blank lines, found 1
borg/localrole/workspace.py:23:80: E501 line too long (82 > 79 characters)
borg/localrole/workspace.py:24:80: E501 line too long (81 > 79 characters)
borg/localrole/workspace.py:30:17: S001 found module formatter
borg/localrole/workspace.py:30:80: E501 line too long (90 > 79 characters)
borg/localrole/workspace.py:46:19: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:110:80: E501 line too long (99 > 79 characters)
borg/localrole/workspace.py:118:0: P102 docstring does contain unindexed parameters
borg/localrole/workspace.py:128:1: E302 expected 2 blank lines, found 1
borg/localrole/workspace.py:152:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:246:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:247:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:249:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:253:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:353:17: Q000 Remove bad quotes.
borg/localrole/workspace.py:354:13: E221 multiple spaces before operator
borg/localrole/workspace.py:356:34: Q000 Remove bad quotes.
borg/localrole/workspace.py:365:16: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:401:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:401:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:402:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:419:19: T000 Todo note found.
borg/localrole/workspace.py:421:80: E501 line too long (80 > 79 characters)
borg/localrole/workspace.py:425:80: E501 line too long (84 > 79 characters)
borg/localrole/workspace.py:428:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:428:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:429:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:429:5: C901 'WorkspaceLocalRoleManager.checkLocalRolesAllowed' is too complex (14)
borg/localrole/workspace.py:452:15: T000 Todo note found.
borg/localrole/workspace.py:472:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:472:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:473:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:480:18: E261 at least two spaces before inline comment
borg/localrole/workspace.py:480:21: T000 Todo note found.
borg/localrole/workspace.py:487:7: T000 Todo note found.
borg/localrole/workspace.py:489:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:489:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:490:5: E301 expected 1 blank line, found 0
borg/localrole/workspace.py:501:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/setuphandlers.py:0:1: C101 Coding magic comment not found
borg/localrole/setuphandlers.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/setuphandlers.py:3:1: E302 expected 2 blank lines, found 1
borg/localrole/factory_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/factory_adapter.py:3:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/factory_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:4:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:5:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:6:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:8:1: E302 expected 2 blank lines, found 1
borg/localrole/factory_adapter.py:21:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/factory_adapter.py:65:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:66:80: E501 line too long (80 > 79 characters)
borg/localrole/factory_adapter.py:78:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:92:0: P102 docstring does contain unindexed parameters
borg/localrole/factory_adapter.py:93:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/factory_adapter.py:94:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/default_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/default_adapter.py:1:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:53:5: D001 found implements( replace it with zope.interface.implementer
borg/localrole/default_adapter.py:54:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/bbb/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/bbb/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@gforcada Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-borg.localrole/14/violations
```
borg/localrole/tests.py:61:40: C812 missing trailing comma
borg/localrole/tests.py:63:41: C812 missing trailing comma
borg/localrole/tests.py:70:36: C812 missing trailing comma
borg/localrole/__init__.py:19:24: C812 missing trailing comma
borg/localrole/utils.py:24:9: T001 print statement found.
borg/localrole/utils.py:34:27: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:30:17: C812 missing trailing comma
borg/localrole/workspace.py:41:42: C812 missing trailing comma
borg/localrole/workspace.py:42:14: C812 missing trailing comma
borg/localrole/workspace.py:123:80: E501 line too long (99 > 79 characters)
borg/localrole/workspace.py:131:0: P102 docstring does contain unindexed parameters
borg/localrole/workspace.py:262:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:263:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:381:16: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:435:19: T000 Todo note found.
borg/localrole/workspace.py:446:5: C901 'WorkspaceLocalRoleManager.checkLocalRolesAllowed' is too complex (14)
borg/localrole/workspace.py:470:15: T000 Todo note found.
borg/localrole/workspace.py:498:22: T000 Todo note found.
borg/localrole/workspace.py:504:7: T000 Todo note found.
borg/localrole/workspace.py:518:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/factory_adapter.py:71:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:72:80: E501 line too long (80 > 79 characters)
borg/localrole/factory_adapter.py:84:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:98:0: P102 docstring does contain unindexed parameters
borg/localrole/bbb/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/bbb/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


@mauritsvanrees Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-borg.localrole/15/violations
```
borg/__init__.py:0:1: C101 Coding magic comment not found
borg/localrole/config.py:0:1: C101 Coding magic comment not found
borg/localrole/tests.py:0:1: C101 Coding magic comment not found
borg/localrole/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/interfaces.py:3:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/interfaces.py:5:3: Q000 Remove bad quotes.
borg/localrole/interfaces.py:9:3: Q000 Remove bad quotes.
borg/localrole/__init__.py:0:1: C101 Coding magic comment not found
borg/localrole/__init__.py:2:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:4:1: I001 isort found an import in the wrong position
borg/localrole/__init__.py:14:80: E501 line too long (90 > 79 characters)
borg/localrole/__init__.py:15:43: E127 continuation line over-indented for visual indent
borg/localrole/__init__.py:15:80: E501 line too long (89 > 79 characters)
borg/localrole/utils.py:0:1: C101 Coding magic comment not found
borg/localrole/utils.py:1:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:2:1: I004 isort found an unexpected blank line in imports
borg/localrole/utils.py:7:1: I004 isort found an unexpected blank line in imports
borg/localrole/utils.py:8:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:9:1: I001 isort found an import in the wrong position
borg/localrole/utils.py:25:9: T001 print statement found.
borg/localrole/utils.py:25:23: Q000 Remove bad quotes.
borg/localrole/utils.py:25:23: S001 found module formatter
borg/localrole/utils.py:35:27: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:0:1: C101 Coding magic comment not found
borg/localrole/workspace.py:1:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:5:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:6:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:7:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:8:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:9:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:10:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:11:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:12:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:13:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:14:1: I004 isort found an unexpected blank line in imports
borg/localrole/workspace.py:15:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:16:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:17:1: I001 isort found an import in the wrong position
borg/localrole/workspace.py:20:9: Q000 Remove bad quotes.
borg/localrole/workspace.py:21:18: Q000 Remove bad quotes.
borg/localrole/workspace.py:24:80: E501 line too long (82 > 79 characters)
borg/localrole/workspace.py:25:80: E501 line too long (81 > 79 characters)
borg/localrole/workspace.py:31:17: S001 found module formatter
borg/localrole/workspace.py:31:80: E501 line too long (90 > 79 characters)
borg/localrole/workspace.py:47:19: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:114:80: E501 line too long (99 > 79 characters)
borg/localrole/workspace.py:122:0: P102 docstring does contain unindexed parameters
borg/localrole/workspace.py:157:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/workspace.py:251:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:252:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/workspace.py:254:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:258:17: D001 found adapts( replace it with zope.component.adapter
borg/localrole/workspace.py:358:17: Q000 Remove bad quotes.
borg/localrole/workspace.py:361:34: Q000 Remove bad quotes.
borg/localrole/workspace.py:370:16: P002 found "hasattr", consider replacing it
borg/localrole/workspace.py:406:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:406:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:425:19: T000 Todo note found.
borg/localrole/workspace.py:427:80: E501 line too long (80 > 79 characters)
borg/localrole/workspace.py:431:80: E501 line too long (84 > 79 characters)
borg/localrole/workspace.py:434:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:434:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:436:5: C901 'WorkspaceLocalRoleManager.checkLocalRolesAllowed' is too complex (14)
borg/localrole/workspace.py:459:15: T000 Todo note found.
borg/localrole/workspace.py:479:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:479:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:488:22: T000 Todo note found.
borg/localrole/workspace.py:494:7: T000 Todo note found.
borg/localrole/workspace.py:496:14: D001 found declarePrivate( replace it with AccessControl.ClassSecurityInfo.private
borg/localrole/workspace.py:496:29: Q000 Remove bad quotes.
borg/localrole/workspace.py:509:1: E305 expected 2 blank lines after class or function definition, found 1
borg/localrole/setuphandlers.py:0:1: C101 Coding magic comment not found
borg/localrole/factory_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/factory_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:4:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:5:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:6:1: I001 isort found an import in the wrong position
borg/localrole/factory_adapter.py:21:17: D001 found implements( replace it with zope.interface.implementer
borg/localrole/factory_adapter.py:65:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:66:80: E501 line too long (80 > 79 characters)
borg/localrole/factory_adapter.py:78:13: D001 found directlyProvides( replace it with zope.interface.provider
borg/localrole/factory_adapter.py:89:0: P102 docstring does contain unindexed parameters
borg/localrole/factory_adapter.py:90:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/default_adapter.py:0:1: C101 Coding magic comment not found
borg/localrole/default_adapter.py:1:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:3:1: I001 isort found an import in the wrong position
borg/localrole/default_adapter.py:54:5: D001 found adapts( replace it with zope.component.adapter
borg/localrole/bbb/interfaces.py:0:1: C101 Coding magic comment not found
borg/localrole/bbb/interfaces.py:2:1: I003 isort expected 1 blank line in imports, found 0
borg/localrole/bbb/interfaces.py:6:1: E302 expected 2 blank lines, found 1
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


Well seen, that's useless to do such complicated algorithm when assuming that the user knows already he wants to join a room.


python program on binarysearch


jvm是什么


不好意思，再请教一个问题，这里数据库的相对路径为什么是`/avater/......`，这个路径是怎么确定的


Part of #2930


@ron-popov please review and comment. Thx ^^


Валидацию нужно проводить ДО того, как помещаешь объект в общий массив, иначе там будут невалидные объекты


Why not use a commit message like `[FEATURE] Added a new page to the front-end for
 +  viewing and handling quarantined files`?

`Feature` is still too generic and this with `[BUGFIX]`, `[FEATURE]`, `[TASK]` and so on are used by TYPO3 and others too ;-)


virtualAliases, thanks for the correction!


Ah ok stock you have sprd components on your rom, I have not that all components are samsung on the j3/j2 ril.
And with the same driver and the same kernel you have a kernel panic on the cm14.1 ?

libril is the stock version too ? and maybe libsecril-client ? stock from a 5.1.1 ?
Have you a link to download your stock libs, to analyze when I have the time.


Hi @rechert, looks like it's a useful feature!
I appreciate if you would send me a Pull Request.


Shouldn't the javaFactory on the array property be taking care of this?


우왕  session하고 쿠키 배웠네요 ㅋㅋ


We can, however the query doesn't have an end time until the user closes the query. The duration end's up being very long and not representative of how long the query took to execute.


why `*.php`?


JHipster init


Result:

![image](https://user-images.githubusercontent.com/838924/31674027-57f35cc2-b326-11e7-967f-045b4e2d3da0.png)


quedó al revés


````
clang++ -Ilib -Icli -Iexternals/simplecpp -Iexternals/tinyxml   -include lib/cxx11emu.h -pedantic -Wall -Wextra -Wabi -Wcast-qual -Wfloat-equal -Wmissing-declarations -Wmissing-format-attribute -Wno-long-long -Wpacked -Wredundant-decls -Wshadow -Wno-missing-field-initializers -Wno-missing-braces -Wno-sign-compare -Wno-multichar  -g -std=c++0x  -c -o test/testio.o test/testio.cpp
test/testio.cpp:1049:86: error: too many arguments provided to function-like macro invocation
        TEST_SCANF_WARN_AKA_WIN32("%lld","long long","std::intptr_t", "signed long", "signed long long");
                                                                                ^
test/testio.cpp:843:9: note: macro 'TEST_SCANF_WARN_AKA_WIN32' defined here
#define TEST_SCANF_WARN_AKA_WIN32(FORMAT, FORMATSTR, TYPE, AKATYPE_WIN32) \
        ^
test/testio.cpp:1049:9: error: use of undeclared identifier 'TEST_SCANF_WARN_AKA_WIN32'
        TEST_SCANF_WARN_AKA_WIN32("%lld","long long","std::intptr_t", "signed long", "signed long long");
        ^
2 errors generated.
Makefile:531: recipe for target 'test/testio.o' failed
````


AFAIK that's not possible because the plan has multiple properties.


The following doc(s) have been deployed to the [2139drupal](https://2139drupal-static-docs.pantheonsite.io/docs) Multidev environment:
- [/docs/guides/drupal-8-commerce](https://2139drupal-static-docs.pantheonsite.io/docs/guides/drupal-8-commerce)
- [source/docs/assets/images/guides/drupal-8-commerce/install-modules.png](https://github.com/pantheon-systems/documentation/commit/4e29eb45d9171585f99e03aebe181a460a68dd2f/source/docs/assets/images/guides/drupal-8-commerce/install-modules.png)
- [source/docs/assets/images/guides/drupal-8-commerce/visit-dev-site.png](https://github.com/pantheon-systems/documentation/commit/4e29eb45d9171585f99e03aebe181a460a68dd2f/source/docs/assets/images/guides/drupal-8-commerce/visit-dev-site.png)


erreur


is this going to change the file distribution in each glacier directories?


Link is displayed on the site in the form of text 🤕


What is the font-rendering source you are talking about? What is the reference for this magic trick?


Got it. thanks for explaining and updating the branch!


This fails. syntax error "wget -4". Even fails when I remove that. Needs further investigation.


sure
https://drive.google.com/file/d/0B3ICr0T1ppGPaVliaENsWmVxeHc/view


完成了一个基础表单的案例
![2017-10-17_233459](https://user-images.githubusercontent.com/23024424/31674272-0052f23e-b394-11e7-9366-1af37052604c.jpg)


Just added a favicon to the GCS Web UI page


2016? 😄


Les attributs et valeurs `media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)"` ne semblent pas conformes W3C.


What's the purpose of these spaces?


hehe. seems to be a famous one 👍


Yeah, you're absolutely right. Would you like to send a PR?


> Did you mean 84? These lines are 72 columns wide, and I guess indentation would add 4, 8, or 12 lines, not an odd number such as 11. (How can I know the indentation amount, by the way?)

I just looked at the man page in the terminal, copied the line, opened `irb`, pasted it, surrounded it with quotes, added `.length` and used that as the character count. A shell purist would instead `echo -n line | wc -c`, I suppose.


Better to print only if `halt-on-error` is not set? That will give a message anyway ...


![](https://github.trello.services/images/mini-trello-icon.png) [Main page to-do function](https://trello.com/c/MIZOfEr3/19-main-page-to-do-function)


I thought of that but wasn't sure how to do this properly. updatejob is used across all job browsers, but these timers / requests are specific to impala. At the time, it seemed tidier to make those things separate.


Good catch. I am not sure if I mistunderstood the question or just blanked out... lol probably both.

 SELECT COUNT(bookings.guest_name) AS rooms_booked_per_date, bookings.guest_name FROM bookings JOIN rooms ON bookings.id = rooms.id GROUP BY bookings.guest_name HAVING COUNT(bookings.guest_name) >=2;
 rooms_booked_per_date | guest_name
-----------------------+------------
(0 rows)
This oughta get it ^


This commit breaks icon-40@2x.png (80x80) :(


Probably we should also check the number of numbers, like in the `csnmp_config_add_host_version()` function above:
```c
if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_NUMBER)) {
```


![](https://github.trello.services/images/mini-trello-icon.png) [Route all screens together](https://trello.com/c/IjkGi7Zm/31-route-all-screens-together)


@josecollazzi it depends what the license that covers that wiki or repo is - check in that :)


marge


@Adapik see #216


minor nitpick: I think the two variables above are unused?


Same comment as above.


A little more context on what "broke it"- React Native was recently changed to lazy-load view manager configurations from `UIManager` (so that `UIManager` could in turn lazily load view managers).

The status of a lazily-loaded view, and its configuration, is keyed by its native class name. Unfortunately `ProgressBarAndroid` and `ActivityIndicator` both claimed the same native component (`AndroidProgressBar`) which triggered an invariant.

If I recall, this only happened to work before because (a) we didn't have the invariant and (b) no application tried to use both `ProgressBarAndroid` and `ActivityIndicator`.

As I mentioned above, when I noticed this I chose to use `ActivityIndicator` since it was the only one that had both Android and iOS implementations. This wasn't a great solution really, just patching up something that was broken.


Thanks; That is nonsense, and almost certainly my fault.


> I'd add python2-pip as BuildRequires too...

Is `pip` used during the build of the RPMs?  It is definitely used during the build of the docs, but I don't recall where it's used during the building of the RPMs.


![](https://github.trello.services/images/mini-trello-icon.png) [Functionalize the structure of commands](https://trello.com/c/3TzEU0LU/4-functionalize-the-structure-of-commands)


Why was -DLIBSERIALPORT_LIBRARIES removed?


Of course, sorry, just overlooked it. Will fix it immediately. I would nevertheless add this error stream in order to figure out, in case a branch is not found, why it is not found.


Maybe...


wow, for et bra bidrag til prosjektet


**This is really interesting!**


Still Not Good enough , add check in  onCreate() Method mean your app will not run again if coneection back ,so user need to Run app from begining.
i think we need to add RetryButton for reconnect to server and get data after connection back.


This is Matt's thing


Also, it's hard for me to estimate how hard the particular code is hitting the memory manager.


This was working until Python 3.6 became the current 3 version. Hydrotrend has dependencies that require 3.5, which causes `conda` to downgrade to 3.5, which causes a compatibility issue with `basic-modeling-interface`, which requires 3.6. Why?! It's a bunch of empty functions.

An aside: the `basic-modeling-interface` package doesn't really *do* anything, and it's been a real pain in the rear. Just ditch it?


True.. Hadn't considered that. Good point. I'll aim for that in the future. :-) :+1:


This works only for go-lang 1.9

```
:~/go/src/supervisord$ go get
# supervisord
./set_user_id.go:10: unknown field 'NoSetGroups' in struct literal of type syscall.Credential
:~/go/src/supervisord$
:~/go/src/supervisord$ go version
go version go1.8.3 linux/amd64
```


heloo


No. This does not need to be in those repos, it just needs to be loaded from `/css/` path.


`# https://gist.github.com/DKordic/6016d743c4c124a1c04fc12accf7ef17`
Link is displayed on the site in the form of text 🤕


LGTM


Generally best to not get too carried away with comment headers <3


Make this `extra_t = (det_tc - d.epoch) % d.sample_rate`.


Com-heads


Why is this space needed?


You were correct, this query was not accurate.  This one is:
SELECT COUNT(b.*) AS same_room_rebooked, b.guest_name FROM bookings AS b JOIN rooms ON b.id = rooms.id GROUP BY b.guest_name HAVING COUNT(b.guest_name) >=2;
 same_room_rebooked | guest_name
--------------------+------------
                  2 | Adam Smith


Это в Yii не нужно. Весь JS-код, который ты формируешь в программе аккуратно складируется в футер, если обернуть код в специальный виджет, например:

```php
<?php
namespace common\widgets;

use Yii;
use yii\base\Widget;
use yii\web\View;

class JS extends Widget
{
    public $position = View::POS_READY;

    /**
     * @var string ключ для записи скрипта (по умолчанию - без ключа)
     */
    public $key;

    public static function begin($config = [])
    {
        ob_start();
        return parent::begin($config);
    }

    public static function end()
    {
        /** @var self $widget */
        $widget = parent::end();

        $output = ob_get_clean();
        if (Yii::$app->request->isAjax) {
            echo $output;
        }
        else {
            $output = preg_replace('/<script[^>]*>/i', '', $output);
            $output = str_ireplace('</script>', '', $output);
            $widget->view->registerJs($output, $widget->position, $widget->key);
        }
    }
}
```

Использовать его можно так:

```php
<?php JS::begin(); ?>
<script>
    // все что здесь будет написано будет складировано перед закрывающим тегом </body>
    alert('testing');
</script>
<?php JS::end(); ?>


This should be `-extra_t` (and +extra t below). The modulus gives how much time after the last sample point the turn-on occurs, so you want to shift the data backward to that boundary, not forward. (This will also make `d[:start] = 0` correct.)


Muchas gracias por el codigo,.
Yo utilizo vb 2010 y efectivamente no lo carga directamente, pero abres un proyecto nuevo, y agregas el par de formularios del proyecto y ya lo tienes.
Lo demas ya lo explica perfectamente gusman126.
Gracias por todo.


Прямые ссылки на ресурсы (а также другие URL) в любых фреймворках - дурной тон. Assetsы в Yii2 расположены в protected-окружении и поставляются в public-окружение только при необходимости (с помощью ядра фреймворка, либо методом копирования, либо методом указания symlink).


pause in console


NIT: commmentoraniosHeaderinos


NIT: Co-co-fance-header-ments


All those thing are here: https://github.com/remilia15/android_vendor_samsung_scx30g2-common
And yeah, all RIL blobs I used are from stock


NIT:
![giphy-downsized 6](https://user-images.githubusercontent.com/5942769/31675398-5e9ca1b2-b319-11e7-9e3a-21ebe0482dc6.gif)


This depends on the generated Swagger JSON/YAML. Please check the output and decide accordingly. We anyhow have to watch more closely on the generated Swagger syntax in order to produce a valuable API documentation/definition...


We actually did not test / migrate to 2.79 yet. So official support is up to 2.78 and it says so in bl_info


we should add blank line at the end of files (https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline)


open


You are right! I already made this bug before, how could I not remember?


<3 <3 <3


NIT: :OOOOOOOO


Mensaje de respuesta


NIT: ಠ_ಠ


At the moment I have far too small videos for testing (a few seconds long) and detect asynchronisation in the middle of the video is not possible. It just starts 1/3-1/2 second lated and stops also later.

> When audio is "only" out of sync, we must do also: syncing timestamps in audio_mlv.c! This is not done yet as I know.

Yes I've been thinking about it too. Microsecond time stamps which are in the VIDF/AUDF block headers (it starts from 0 but can be extended to the real timestamp if we take in acount last RTCI block information).

However in this case I think we must write some dedicated playback engine based on timestamps.


done


NIT: (╯°□°）╯︵ ┻━┻


zonecapacitancemultiplier_docs (mitchute) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


Defaulting to explicit constructors kills off polymorphism and extensibility.
It should only be used in special cases.

In general google's guideline is low quality, so it's a good idea to carefully consider using their clang tidy checks.


NIT: ┻━┻ ︵ヽ(`Д´)ﾉ︵ ┻━┻


TeamCity OTA+ :: rvi_sota_server :: ci [Build 2624](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=45731&buildTypeId=ota_plus_RviSotaServer_Ci) is now running


Initially I have different plan and now I have something different. So codes and procedures shall change; the button label will also change to 'Reset' or something similar.


NIT: ಥ_ಥ


is this last step necessary? the data is converted again to a frequency_series in line 677, does it make more sense to move 677 into the if and else statements? or maybe add an `if isinstance(d, Timeseries)` before line 677?


NIT: ಥ﹏ಥ ಥ﹏ಥ


Revert to Original


NIT: щ（ﾟДﾟщ）


當我們向Executor送出(submit)一批要處理的task, 且希望在它們完成後獲得結果. 此時, 若用FutureTask, 我們就可以用迭代的方式(當然你要自己維護一個list)取得task並且透過future.get()來得到結果, 但是如果當前這個task沒有完成, 程式就會被block在這裡了, 這個就不太有效率. 其實, 在很多情境下, 當你想取得第一個task的結果時, 很可能當前這個task的結果還沒有運算完, 這樣就會產生blocking, 而有很大的機率, 在被第一個task給blocking的當下, 第二個task早就已經完成了, 顯然這種情況用future task並不是最合適的, 效率也不高.

自己維護list和CompletionService的區別:

1. 從list中迭代的每個future物件並不一定處於完成(isDone = true)的狀態, 這時呼叫get()就會被block, 若系統是設計成每個thread完成才能根據其結果繼續坐後面的事, 這樣對於處於list後面但是已經先完成運算的thread就會增加額外的等待時間了.

2. 對於CompletionServie來說, 其實作是維護一個保存Future物件的BlockingQueue(有圖有真相, 見下圖). 只有當這個Future物件狀態是結束的時候, 才會被加到這個queue中, take()方法其實就是Producer-Consumer中的Consumer. 它會從queue中取出Future物件, 若queue是空的, 就會block在那邊, 直到有完成的Future物件被加到queue中.

![image](https://user-images.githubusercontent.com/838924/31675102-462108f2-b329-11e7-94fd-ec5f09c54e4b.png)

CompletionService採取的是BlockingQueue<Future<V>>無界queue來管理Future, 所以若有一個thread執行完畢把回傳結果放到queue裡面時, 就可以通過completionService.take().get()取出結果.

方法區別:

- take: 取得並移除代表下一個已完成任務的Future, 若目前不存在這樣的task, 就等待. (若需要用到回傳值就建議用這個方法)
- poll: 取得並移除代表下一個已完成任務的Future, 若不存在這樣的任務則回傳null.


A+ Namings


Wow, this effect is pretty cool. Should we use it for the `Purchase` button too, instead of the "Pulsating text + Spinner"?


TeamCity OTA+ :: rvi_sota_server :: ci [Build 2625](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=45733&buildTypeId=ota_plus_RviSotaServer_Ci) is now running


NIT:
![giphy-downsized 8](https://user-images.githubusercontent.com/5942769/31675643-219282fe-b31a-11e7-930d-57bd0cc95d3a.gif)


"Http2ServerRespose" Looks like a typo :)


Overall soooooo much nicer <3 <3 <3 <3

![giphy-downsized 9](https://user-images.githubusercontent.com/5942769/31675698-496ee0ec-b31a-11e7-95c3-f70757192bb9.gif)

Anywhere where I've written "NIT", I mean `nit-pick`, so they're really just things that bug me. You don't need to change them if you really wana keep 'em. They're not super serious.


I wonder if we should only set these if the values have been set?

So, we can set `timeout` and `retries` in `csnmp_config_add_host()` above, like this:
```c
hd->sess_handle = NULL;
hd->interval = 0;

/* A negative value means that we have not set a timeout or retry value */
hd->timeout = -1;
hd->retries = -1;
```

Then, right here we would do something like this:
```c
/* Set timeout & retries, if they have been changed from the default */
if (host->timeout >= 0) {
    sess.timeout = host->timeout;
}
if (host->retries >= 0) {
    sess.retries = host->retries;
}
```


NIT: Dis one too


ready


Oh, yes, good point. No, the switch back to time series isn't necessary. I would do this:
```
if extra_t != 0:
    d = d.to_frequencyseries()
    d = waveform.apply_fseries_time_shift(d, -extra_t, copy=False).to_timeseries()
d[:start] = 0
d = d.to_frequencyseries()
if extra_t != 0:
    d = waveform.apply_fseries_time_shift(d, extra_t, copy=False)
```


Not saying whether it will result in a bug or not. Conversion from int and size_t is a sensitive case where you need to write it explicitly for two reasons:

1. Tell compilers you know this conversion or the compilers will complain a lot
2. Tell the readers that I know this conversion and this will not result in a bug


There should be a yarn.lock change associated with this, otherwise every exec of yarn will have a diff.


workaround to issue #170


It should be in the latest development release.


I think here the getLocalizedData should not be used, but $this->getData('funderName', $locale);


ffffff


TeamCity OTA+ :: rvi_sota_server :: ci [Build 2626](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=45734&buildTypeId=ota_plus_RviSotaServer_Ci) is now running


`Test`


Qui faccio una proposta stilistica: e se mettessimo
<b>#1: A tutto il mondo piacciono i sondaggi</b>


classes/classes :-)


`helm` -> `helm.sh`


Whoops! Sorry. Published now.


maybe to leave plural -- like for all the others DB tables?


Looks good


Manual copy & paste then. Sounds sound.


Optimized Image


Bluemix [toolchain](https://console.bluemix.net/devops/toolchains/ab29ca42-3dc9-4fc1-9e7d-e0e0e5841282 "simple-toolchain-20171017122503573"): [Delivery Pipeline](https://console.bluemix.net/devops/pipelines/c5c3fca3-f005-4e78-a931-867a701df612 "simple-toolchain-20171017122503573") deployed [simple-toolchain-20171017122503573](https://github.com/alicenahas/simple-toolchain-20171017122503573/releases/tag/deploy-ibm-yp-us-south-Anahas-prod-20171017-161604 "deploy-ibm-yp-us-south-Anahas-prod-20171017-161604") to [prod](https://console.bluemix.net/apps/930e1d0e-ca76-4cfd-8388-e66e12068d6d?env_id=ibm:yp:us-south "ibm:yp:us-south:Anahas:prod"), including this commit


Can you add a "0.0.10" git tag when you have a chance?


TeamCity OTA+ :: rvi_sota_server :: ci [Build 2624](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=45731&buildTypeId=ota_plus_RviSotaServer_Ci) outcome was **SUCCESS**
Summary: Tests passed: 298, ignored: 3 Build time: 00:15:17


resolved conflicts


@neobuddy89
this needs to be reverted of "fixed" somewhere else
is causing issues installing apk from internal storage


Fixed in https://github.com/NixOS/nixpkgs/compare/b304695c7fe6...0dd2ebc518c3 & https://github.com/NixOS/nixpkgs/compare/70b2d3b1dcd0...5d24760ed190


Questa mi era proprio sfuggita prima, scusa.
1. Agosto va minuscolo (gli inglesi mettono i mesi in maiuscolo, ma in Italia non abbiamo questa usanza).
2. Per non ripetere sempre "appreso":
>Ad agosto, quando Mozilla ha lanciato il sondaggio Quanto sei connesso?, non avevamo idea di cosa avremmo potuto apprendere. I risultati sono stati scoperte decisamente interessanti.


TeamCity OTA+ :: rvi_sota_server :: ci [Build 2625](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=45733&buildTypeId=ota_plus_RviSotaServer_Ci) outcome was **SUCCESS**
Summary: Tests passed: 298, ignored: 3 Build time: 00:15:14


I think type="X" is enough -- like in the others ..._settings tables


reptyr depends on the ptrace(2) system call

$ cat /proc/sys/kernel/yama/ptrace_scope

Source:
https://johnlane.ie/detach-your-shell.html


`cp: cannot stat 'platform/debian/conffiles': No such file or directory`
I don't understand how this error could happen, because the cp is no longer there.


This is duplicate of .bg-darkgray


yes, this is a remnant from my debugging...


I am not sure if we should define size="14" as everywhere -- to support the language variants (e.g. sr_RS@latin). Although this values would probably come from Crossref... but maybe we would need a mapping in order for the system to understand it properly... Hmmm...


This is a redundant permission check because it's already set to the command in the plugin.yml


Because we don’t use PHP scripts anymore.


Bluemix [toolchain](https://console.bluemix.net/devops/toolchains/79415a93-70ba-4aa8-b0db-4391635ed0df "simple-toolchain-20171017160212951"): [Delivery Pipeline](https://console.bluemix.net/devops/pipelines/3d947bfd-2329-4d33-80b8-ce00fa07e0b1 "simple-toolchain-20171017160212951") deployed [simple-toolchain-20171017160212951](https://github.com/vchh/simple-toolchain-20171017160212951/releases/tag/deploy-ibm-yp-us-south-VChhilarcic-US-South-DevOps-20171017-162154 "deploy-ibm-yp-us-south-VChhilarcic-US-South-DevOps-20171017-162154") to [US South DevOps](https://console.bluemix.net/apps/05f89ac1-9e79-4e24-acdf-a72fed99583e?env_id=ibm:yp:us-south "ibm:yp:us-south:VChhilarcic:US South DevOps"), including this commit


also here the plural would be good :-)


[R/deprecated.R:17:5:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/deprecated.R#L17) *warning:* **no visible global function definition for ‘prepareRNASeqTemplate’**
```r
    prepareRNASeqTemplate(...)
    ^~~~~~~~~~~~~~~~~~~~~
```
[R/deprecated.R:24:5:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/deprecated.R#L24) *warning:* **no visible global function definition for ‘plotGeneSaturation’**
```r
    plotGeneSaturation(...)
    ^~~~~~~~~~~~~~~~~~
```
[R/deprecated.R:31:5:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/deprecated.R#L31) *warning:* **no visible global function definition for ‘plotDispEsts’**
```r
    plotDispEsts(...)
    ^~~~~~~~~~~~
```
[R/deprecated.R:41:5:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/deprecated.R#L41) *warning:* **no visible global function definition for ‘loadRNASeq’**
```r
    loadRNASeq(...)
    ^~~~~~~~~~
```
[R/internal-tx2gene.R:26:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/internal-tx2gene.R#L26) *warning:* **no visible global function definition for ‘tx2gene’**
```r
        tx2gene(organism, release = release)
        ^~~~~~~
```
[R/loadRNASeq.R:62:14:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L62) *warning:* **no visible global function definition for ‘str_match’**
```r
    match <- str_match(projectDir, projectDirPattern)
             ^~~~~~~~~
```
[R/loadRNASeq.R:62:36:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L62) *warning:* **no visible binding for global variable ‘projectDirPattern’**
```r
    match <- str_match(projectDir, projectDirPattern)
                                   ^~~~~~~~~~~~~~~~~
```
[R/loadRNASeq.R:67:19:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L67) *warning:* **no visible global function definition for ‘.sampleDirs’, Did you mean 'sampleDirs'?**
```r
    sampleDirs <- .sampleDirs(uploadDir)
                  ^~~~~~~~~~~
```
[R/loadRNASeq.R:87:13:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L87) *warning:* **no visible global function definition for ‘readYAML’**
```r
    yaml <- readYAML(yamlFile)
            ^~~~~~~~
```
[R/loadRNASeq.R:96:27:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L96) *warning:* **no visible global function definition for ‘sampleYAMLMetadata’**
```r
        sampleMetadata <- sampleYAMLMetadata(yaml)
                          ^~~~~~~~~~~~~~~~~~
```
[R/loadRNASeq.R:104:26:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L104) *warning:* **no visible global function definition for ‘camel’, Did you mean 'yaml'?**
```r
    interestingGroups <- camel(interestingGroups, strict = FALSE)
                         ^~~~~
```
[R/loadRNASeq.R:124:17:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L124) *warning:* **no visible global function definition for ‘detectOrganism’**
```r
    organism <- detectOrganism(genomeBuild)
                ^~~~~~~~~~~~~~
```
[R/loadRNASeq.R:136:16:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L136) *warning:* **no visible global function definition for ‘sampleYAMLMetrics’**
```r
    metrics <- sampleYAMLMetrics(yaml)
               ^~~~~~~~~~~~~~~~~
```
[R/loadRNASeq.R:179:12:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L179) *warning:* **no visible global function definition for ‘.tximport’**
```r
    txi <- .tximport(sampleDirs, tx2gene = tx2gene)
           ^~~~~~~~~
```
[R/loadRNASeq.R:181:12:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L181) *warning:* **no visible global function definition for ‘.tmm’, Did you mean 'tmm'?**
```r
    tmm <- .tmm(rawCounts)
           ^~~~
```
[R/loadRNASeq.R:190:29:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L190) *warning:* **no visible global function definition for ‘DESeq’**
```r
    dds <- suppressWarnings(DESeq(dds))
                            ^~~~~
```
[R/loadRNASeq.R:191:25:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L191) *warning:* **no visible global function definition for ‘counts’, Did you mean 'points'?**
```r
    normalizedCounts <- counts(dds, normalized = TRUE)
                        ^~~~~~
```
[R/loadRNASeq.R:209:16:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L209) *warning:* **no visible global function definition for ‘varianceStabilizingTransformation’**
```r
        vst <- varianceStabilizingTransformation(dds)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/loadRNASeq.R:251:12:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L251) *warning:* **no visible global function definition for ‘new’, Did you mean 'news'?**
```r
    bcb <- new("bcbioRNASeq", se)
           ^~~
```
[R/loadRNASeq.R:253:5:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L253) *warning:* **no visible global function definition for ‘bcbio<-’**
```r
    bcbio(bcb, "tximport") <- txi
    ^~~~~
```
[R/loadRNASeq.R:254:5:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L254) *warning:* **no visible global function definition for ‘bcbio<-’**
```r
    bcbio(bcb, "DESeqDataSet") <- dds
    ^~~~~
```
[R/loadRNASeq.R:257:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/loadRNASeq.R#L257) *warning:* **no visible global function definition for ‘bcbio<-’**
```r
        bcbio(bcb, "featureCounts") <- fc
        ^~~~~
```
[R/methods-plotDEGHeatmap.R:64:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotDEGHeatmap.R#L64) *warning:* **no visible global function definition for ‘plotGeneHeatmap’**
```r
        plotGeneHeatmap(counts, genes = genes, title = title, ...)
        ^~~~~~~~~~~~~~~
```
[R/methods-plotGene.R:65:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotGene.R#L65) *warning:* **no visible global function definition for ‘show’, Did you mean 'chol'?**
```r
        show(p)
        ^~~~
```
[R/methods-plotGeneHeatmap.R:83:19:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotGeneHeatmap.R#L83) *warning:* **no visible global function definition for ‘gene2symbol’**
```r
        counts <- gene2symbol(counts)
                  ^~~~~~~~~~~
```
[R/methods-plotMappingRate.R:51:18:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotMappingRate.R#L51) *warning:* **no visible global function definition for ‘qcPassLine’**
```r
        p <- p + qcPassLine(passLimit)
                 ^~~~~~~~~~
```
[R/methods-plotMappingRate.R:54:18:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotMappingRate.R#L54) *warning:* **no visible global function definition for ‘qcWarnLine’**
```r
        p <- p + qcWarnLine(warnLimit)
                 ^~~~~~~~~~
```
[R/methods-plotMappingRate.R:57:18:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotMappingRate.R#L57) *warning:* **no visible global function definition for ‘coord_flip’**
```r
        p <- p + coord_flip()
                 ^~~~~~~~~~
```
[R/methods-plotPCA.R:45:11:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotPCA.R#L45) *warning:* **no visible global function definition for ‘assays’**
```r
    dt <- assays(object)[[transform]]
          ^~~~~~
```
[R/methods-plotPCA.R:65:30:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotPCA.R#L65) *warning:* **no visible global function definition for ‘metadata’**
```r
        interestingGroups <- metadata(object)[["interestingGroups"]]
                             ^~~~~~~~
```
[R/methods-plotPCA.R:89:24:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotPCA.R#L89) *warning:* **no visible global function definition for ‘colData’**
```r
    data[["label"]] <- colData(object)[, "sampleName"]
                       ^~~~~~~
```
[R/methods-plotPCACovariates.R:60:16:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotPCACovariates.R#L60) *warning:* **no visible global function definition for ‘interestingGroups’**
```r
        col <- interestingGroups(object)
               ^~~~~~~~~~~~~~~~~
```
[R/methods-plotVolcano.R:77:14:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-plotVolcano.R#L77) *warning:* **no visible global function definition for ‘left_join’**
```r
    stats <- left_join(stats, g2s, by = "ensgene")
             ^~~~~~~~~
```
[R/methods-resultsTables.R:74:17:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L74) *warning:* **no visible global function definition for ‘.resContrastName’**
```r
    contrast <- .resContrastName(object)
                ^~~~~~~~~~~~~~~~
```
[R/methods-resultsTables.R:75:17:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L75) *warning:* **no visible global function definition for ‘snake’, Did you mean 'save'?**
```r
    fileStem <- snake(contrast)
                ^~~~~
```
[R/methods-resultsTables.R:78:14:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L78) *warning:* **no visible global function definition for ‘metadata’**
```r
    alpha <- metadata(object)[["alpha"]]
             ^~~~~~~~
```
[R/methods-resultsTables.R:85:13:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L85) *warning:* **no visible global function definition for ‘annotable’**
```r
    anno <- annotable(genomeBuild, quiet = FALSE)
            ^~~~~~~~~
```
[R/methods-resultsTables.R:142:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L142) *warning:* **no visible global function definition for ‘write_csv’, Did you mean 'write.csv'?**
```r
        write_csv(all, file.path(dir, allFile))
        ^~~~~~~~~
```
[R/methods-resultsTables.R:143:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L143) *warning:* **no visible global function definition for ‘write_csv’, Did you mean 'write.csv'?**
```r
        write_csv(deg, file.path(dir, degFile))
        ^~~~~~~~~
```
[R/methods-resultsTables.R:144:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L144) *warning:* **no visible global function definition for ‘write_csv’, Did you mean 'write.csv'?**
```r
        write_csv(degLFCUp, file.path(dir, degLFCUpFile))
        ^~~~~~~~~
```
[R/methods-resultsTables.R:145:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L145) *warning:* **no visible global function definition for ‘write_csv’, Did you mean 'write.csv'?**
```r
        write_csv(degLFCDown, file.path(dir, degLFCDownFile))
        ^~~~~~~~~
```
[R/methods-resultsTables.R:148:9:](https://github.com/hbc/bcbioRNASeq/blob/d4825d3a6062aea3e3a140c04186ef003bdfd23b/R/methods-resultsTables.R#L148) *warning:* **no visible global function definition for ‘.mdResultsTables’**
```r
        .mdResultsTables(resTbl, dir)
        ^~~~~~~~~~~~~~~~
```


formatting... 🤦♂


Yep, I added it in #18928


Colemak master race


renamed html file


I see.


this commit introduced a temporary test object that should not be passed through indexTest


Excessive copy-paste


also here size="14"?


@Fred-Barclay do you somehow still have the old mkdeb.sh script?


also here type="X"


Hi @stephenkostas

1. The LAYOUT-PARENT is actually an example of a template key. It would be clearer if you mention that the code is:

`<#include "${templatesPath}/TEMPLATE-KEY" />`

where TEMPLATE-KEY is the key of the generic template. This key can be obtained from the edit template view, under the "Details" section.

2. I'm not sure if users know how to create a template without structure. Maybe we could explain it briefly (Go to Templates > Add > leave Structure field blank ...)

Thanks


zonecapacitancemultiplier_docs (mitchute) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: OK (1561 of 1561 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-38.82%25-green.png)


zz


наследниках? но ты его там не используешь...


No worries - I think it's a very nice addition!


TeamCity OTA+ :: rvi_sota_server :: ci [Build 2626](http://teamcity.prod01.internal.advancedtelematic.com:8111/viewLog.html?buildId=45734&buildTypeId=ota_plus_RviSotaServer_Ci) outcome was **SUCCESS**
Summary: Tests passed: 298, ignored: 3 Build time: 00:15:43


IMHO, there's a typo here. `scalaVersion.value` here refers to the version of Scala used by sbt (Here it's Scala 2.10.6 because you use sbt 0.13). I don't think it's what you wanted to say.


Este no lo borres


Shouln't here the FunderAward object be returned?


![](https://github.trello.services/images/mini-trello-icon.png) [Client | API URL points to the correct server environment where it's deployed |3|](https://trello.com/c/bxPKPGQu/272-client-api-url-points-to-the-correct-server-environment-where-its-deployed-3)


Thx for fixing it :) First day in Garching for me and the webapp really helps to get along 👍


Should here maybe the _fromRow function be used to return the array of FunderAward objects?


Ah, shoot. That makes sense though.

Would it be overbearing when you're checking Userdata for the Role if you overwrote the global?


zonecapacitancemultiplier_docs (mitchute) - i386-Windows-7-VisualStudio-14: OK (2779 of 2779 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


[R/AddinLoginTab.R:4:15:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L4) *style:* **Put spaces around all infix operators.**
```r
  credentials <-tmcrstudioaddin::getCredentials()
              ^~~
```
[R/AddinLoginTab.R:10:69:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L10) *style:* **Put spaces around all infix operators.**
```r
      textInput(inputId = ns("username"), label = "Username", value =ifelse(!is.null(credentials)&&
                                                                    ^~
```
[R/AddinLoginTab.R:10:98:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L10) *style:* **Put spaces around all infix operators.**
```r
      textInput(inputId = ns("username"), label = "Username", value =ifelse(!is.null(credentials)&&
                                                                                ~^~~
```
[R/AddinLoginTab.R:11:89:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L11) *style:* **Put spaces around all infix operators.**
```r
                                                                     length(credentials)>0,credentials[1],"")),
                                                                                ~^~
```
[R/AddinLoginTab.R:11:92:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L11) *style:* **Commas should always have a space after.**
```r
                                                                     length(credentials)>0,credentials[1],"")),
                                                                                ^
```
[R/AddinLoginTab.R:11:107:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L11) *style:* **Commas should always have a space after.**
```r
                                                                     length(credentials)>0,credentials[1],"")),
                                                                                ^
```
[R/AddinLoginTab.R:25:24:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinLoginTab.R#L25) *warning:* **no visible global function definition for ‘.getTitleAndMessage’**
```r
    titleAndMessage <- .getTitleAndMessage(response = response)
                       ^~~~~~~~~~~~~~~~~~~
```
[R/AddinSubmitTab.R:27:30:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinSubmitTab.R#L27) *warning:* **no visible global function definition for ‘.testsPassedPercentage’, Did you mean 'testsPassedPercentage'?**
```r
    testsPassedPercentage <- .testsPassedPercentage(testResults)
                             ^~~~~~~~~~~~~~~~~~~~~~
```
[R/AddinSubmitTab.R:38:27:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinSubmitTab.R#L38) *warning:* **no visible global function definition for ‘createSingleResultDisplay’**
```r
      testResultOutput <- createSingleResultDisplay(testResults = testResults)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/AddinSubmitTab.R:66:32:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinSubmitTab.R#L66) *warning:* **no visible global function definition for ‘.createDetailedMessageWithButton’**
```r
    elements <- list(elements, .createDetailedMessageWithButton(index, message))
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/AddinSubmitTab.R:73:10:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinSubmitTab.R#L73) *warning:* **no visible binding for global variable ‘tags’, Did you mean 'rtags'?**
```r
  btn <- tags$button(id = paste("button_", index, sep = ""), "Toggle details")
         ^~~~
```
[R/AddinSubmitTab.R:94:10:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/AddinSubmitTab.R#L94) *warning:* **no visible global function definition for ‘.createTestResultElement’**
```r
  return(.createTestResultElement(name = "All tests", status = "pass"))
         ^~~~~~~~~~~~~~~~~~~~~~~~
```
[R/Authentication.R:18:31:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/Authentication.R#L18) *style:* **Commas should always have a space after.**
```r
    credentials <- c(username,token)
                              ^
```
[R/Authentication.R:19:5:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/Authentication.R#L19) *warning:* **no visible global function definition for ‘saveCredentials’**
```r
    saveCredentials(credentials)
    ^~~~~~~~~~~~~~~
```
[R/Authentication.R:41:5:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/Authentication.R#L41) *style:* **Commented code should be removed.**
```r
  # url <- "https://tmc.mooc.fi/api/v8/core/org/hy/courses"
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/Authentication.R:51:21:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/Authentication.R#L51) *style:* **Commas should always have a space after.**
```r
  write(credentials,".credentials")
                    ^
```
[R/Authentication.R:55:5:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/Authentication.R#L55) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(!file.exists(".credentials")){
    ^
```
[R/Authentication.R:59:14:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/Authentication.R#L59) *style:* **Put spaces around all infix operators.**
```r
  credentials<-tryCatch(scan(".credentials", what = character()), error = function(e) NULL)
            ~^~~
```
[R/TMC_plugin.R:23:23:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/TMC_plugin.R#L23) *warning:* **no visible binding for global variable ‘.loginTab’**
```r
    shiny::callModule(.loginTab, "login")
                      ^~~~~~~~~
```
[R/TMC_plugin.R:24:23:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/TMC_plugin.R#L24) *warning:* **no visible binding for global variable ‘.courseTab’**
```r
    shiny::callModule(.courseTab, "courses")
                      ^~~~~~~~~~
```
[R/TMC_plugin.R:25:23:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/R/TMC_plugin.R#L25) *warning:* **no visible binding for global variable ‘.submitTab’**
```r
    shiny::callModule(.submitTab, "testAndSubmit")
                      ^~~~~~~~~~
```
[tests/testthat/testAuthentication.R:2:5:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/tests/testthat/testAuthentication.R#L2) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(file.exists(".credentials")){
    ^
```
[tests/testthat/testAuthentication.R:11:5:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/tests/testthat/testAuthentication.R#L11) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(file.exists(".credentials")){
    ^
```
[tests/testthat/testLintr.R:3:5:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/tests/testthat/testLintr.R#L3) *style:* **Commented code should be removed.**
```r
#   context("lints")
    ^~~~~~~~~~~~~~~~
```
[tests/testthat/testLintr.R:5:7:](https://github.com/RTMC/tmc-rstudio/blob/8f541003d2a8a5382b92b9dfb11ae9a970c00ed3/tests/testthat/testLintr.R#L5) *style:* **Commented code should be removed.**
```r
#     lintr::expect_lint_free()
      ^~~~~~~~~~~~~~~~~~~~~~~~~
```


should be `case default`, `default` is a keyword


This sentence does a poor job of introducing the bullet points that follow. I suggest something more along the lines:
The :ref:`enable-user-space` guide provides detailed instructions on how to:


Did you try actually compiling this code? You broke the build... fix it please.


and here is fix https://github.com/crdroidandroid/android_packages_apps_PackageInstaller/pull/1


Yes, always do. Deleted too many lines


I think, after this line, there should be something like: $this->updateLocaleFields($funderAward); -- to consider the settings...


Consider changing the sentence for clarity:
This section provides steps to complete the following basic tasks to set up


please use lower case for directives


funderAward FunderAward


FunderAward


Al final no adelante nada en este proyecto, por lo que estuve mirando es mucho mejor usar webservice, mas facil y directo que usar la base de datos y leer directamente en ella.


1)Added newApartment.jsp
2)Added stub method for processNewApartment()

Cheers!
step 6 #completed


[R/KIS.R:16:34:](https://github.com/KNMI/knmiR/blob/68475b7589081b7b2893c6b98ff5f62bf4e2856c/R/KIS.R#L16) *style:* **Commas should always have a space after.**
```r
  morStations <- gsub("SENSORID","A",knmiStationsTable$knmi_kis_id)
                                 ^
```
[R/KIS.R:16:38:](https://github.com/KNMI/knmiR/blob/68475b7589081b7b2893c6b98ff5f62bf4e2856c/R/KIS.R#L16) *style:* **Commas should always have a space after.**
```r
  morStations <- gsub("SENSORID","A",knmiStationsTable$knmi_kis_id)
                                     ^
```
[R/KIS.R:19:41:](https://github.com/KNMI/knmiR/blob/68475b7589081b7b2893c6b98ff5f62bf4e2856c/R/KIS.R#L19) *style:* **Commas should always have a space after.**
```r
  groundTempStations <- gsub("SENSORID","T",knmiStationsTable$knmi_kis_id)
                                        ^
```
[R/KIS.R:19:45:](https://github.com/KNMI/knmiR/blob/68475b7589081b7b2893c6b98ff5f62bf4e2856c/R/KIS.R#L19) *style:* **Commas should always have a space after.**
```r
  groundTempStations <- gsub("SENSORID","T",knmiStationsTable$knmi_kis_id)
                                            ^
```
[R/KIS.R:22:35:](https://github.com/KNMI/knmiR/blob/68475b7589081b7b2893c6b98ff5f62bf4e2856c/R/KIS.R#L22) *style:* **Commas should always have a space after.**
```r
  windStations <- gsub("SENSORID","W",knmiStationsTable$knmi_kis_id)
                                  ^
```
[R/KIS.R:22:39:](https://github.com/KNMI/knmiR/blob/68475b7589081b7b2893c6b98ff5f62bf4e2856c/R/KIS.R#L22) *style:* **Commas should always have a space after.**
```r
  windStations <- gsub("SENSORID","W",knmiStationsTable$knmi_kis_id)
                                      ^
```


The following doc(s) have been deployed to the [customupst](https://customupst-static-docs.pantheonsite.io/docs) Multidev environment:
- [/docs/create-custom-upstream](https://customupst-static-docs.pantheonsite.io/docs/create-custom-upstream)


dist files logo and navigation built


zonecapacitancemultiplier_docs (mitchute) - x86_64-MacOS-10.9-clang: OK (2779 of 2779 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


This commit has been mentioned on **Discourse Meta**. There might be relevant details there:

https://meta.discourse.org/t/search-keyboard-shortcuts-conflicts-with-polish-diacritics-input/72286/2


src files logo and navigation built


It should be investigated more in deep the behaviour of empty parameters in sequelize


Can i get the images archive link? will appreciate it


Hello Boss !

Format your code


Bu sayfa VizeyeBasvur.com sitesinin resmi Github blog sayfasıdır.


Maybe to use FunderAwardDAO::deleteByFunderId?


Why Google didn't build this tag for me TT


This is editor code formatting issue


Please note that it shall remove legacy grub as well in my opinion


@jissereitsma

Ok, lets reformulate the question to a statement:

It is wrong, to use use ```Fooman_EmailAttachments_Model_Core_Email_Template_Mailer``` as the parent class of ````Yireo_EmailOverride_Model_Email_Template ```. The reason for this circumstance is, that ```Yireo_EmailOverride_Model_Email_Template``` rewrites ```core/email_template``` aka ```Mage_Core_Model_Email_Template```. ```Mage_Core_Model_Email_Template``` should at least be in the inheriance chain, but obviusly it is not, because ```Fooman_EmailAttachments_Model_Core_Email_Template_Mailer``` extends from ```Mage_Core_Model_Email_Template_Mailer```, which extends from ```Varien_Object``` directly. So there is no ```Mage_Core_Model_Email_Template``` anywhere in the inheritance chain of ```Mage_Core_Model_Email_Template_Mailer```.

TL;DR
Carefully read my first comment again.


![](https://github.trello.services/images/mini-trello-icon.png) [UartTerminal example doesn't print expected output](https://trello.com/c/2ql5J313/164-uartterminal-example-doesnt-print-expected-output)


@silverwind We have a bunch of duplicate selectors for `.text-gray-dark`:

* The autogenerated selector sets it to `#e2e2e2`
* It's set 3 times to `#c0c0c0` around line 2541.

This also looks like this is also the case for `.link-gray-dark`.

What would you prefer to do?


Shouldn't $this->getDataObjectSettings... be added here?


This is the only line that needed to be fixed. :P @JulienTant just forgot to remove the closing `: ?>`


There are only a few google-* checks being enabled. The rest of Google-* checks are disabled. My list is based on the Clion (not the original Clang-Tidy default). I am not sure how JetBrains team makes the decision but I believe they have done careful consideration. IMHO it is good we start with some sane list provided from a venerable company in the subject matter, rather than we going thru them in an open discussion. We will never finish the discussion, if the past events can be used as the guide.

Personally I find this check has its merit. It prevents accidental implicit construction. I don't understand how it will kill off polymorphism.


Bu sayfa [VizeyeBasvur.com](url) sitesinin resmi Github blog sayfasıdır.


this can be removed :-)


[vizeyebasvur.com](url)


`.tar.tz`?


Пожалуй ты прав. Наверняка кучу багов мы просто не замечаем в процессе игры, принимая за должное.


I agree.  Refer to these as ``host:eqExpr``, not ``eqExprDefault``.

Also, the comments about seeding flow types can be more explicit.  State that this equation uses env and returnType only to see the flowtype with these attributes.  The message that is there now doesn't make this point.


maybe funderIterator instead of sectionIterator?