@smcmahon Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.schemaeditor/1/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/__init__.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/__init__.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/fields.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/fields.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/fields.py:20:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:26:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:28:1: W293 blank line contains whitespace
plone/schemaeditor/fields.py:30:1: W293 blank line contains whitespace
plone/schemaeditor/fields.py:42:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:45:80: E501 line too long (107 > 79 characters)
plone/schemaeditor/fields.py:46:80: E501 line too long (97 > 79 characters)
plone/schemaeditor/fields.py:50:80: E501 line too long (86 > 79 characters)
plone/schemaeditor/fields.py:51:80: E501 line too long (106 > 79 characters)
plone/schemaeditor/fields.py:54:80: E501 line too long (80 > 79 characters)
plone/schemaeditor/fields.py:55:80: E501 line too long (84 > 79 characters)
plone/schemaeditor/fields.py:56:80: E501 line too long (100 > 79 characters)
plone/schemaeditor/fields.py:57:80: E501 line too long (85 > 79 characters)
plone/schemaeditor/fields.py:58:80: E501 line too long (96 > 79 characters)
plone/schemaeditor/fields.py:59:80: E501 line too long (97 > 79 characters)
plone/schemaeditor/fields.py:60:80: E501 line too long (80 > 79 characters)
plone/schemaeditor/fields.py:62:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:71:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:104:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:114:1: W293 blank line contains whitespace
plone/schemaeditor/fields.py:122:28: S001 found %s formatter
plone/schemaeditor/fields.py:123:21: S001 found % formatter
plone/schemaeditor/fields.py:126:28: S001 found %s formatter
plone/schemaeditor/fields.py:127:21: S001 found % formatter
plone/schemaeditor/fields.py:130:1: W293 blank line contains whitespace
plone/schemaeditor/fields.py:133:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/fields.py:143:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/interfaces.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/interfaces.py:17:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:22:15: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:22:17: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:24:1: W293 blank line contains whitespace
plone/schemaeditor/interfaces.py:25:80: E501 line too long (81 > 79 characters)
plone/schemaeditor/interfaces.py:26:1: W293 blank line contains whitespace
plone/schemaeditor/interfaces.py:27:80: E501 line too long (86 > 79 characters)
plone/schemaeditor/interfaces.py:38:15: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:38:17: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:47:15: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:47:17: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:50:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:59:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:66:80: E501 line too long (88 > 79 characters)
plone/schemaeditor/interfaces.py:73:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:77:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:82:5: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:82:16: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:82:26: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:82:38: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:82:50: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:82:66: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:83:5: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:83:23: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:89:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/interfaces.py:91:80: E501 line too long (94 > 79 characters)
plone/schemaeditor/interfaces.py:93:80: E501 line too long (89 > 79 characters)
plone/schemaeditor/interfaces.py:100:14: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:100:16: E251 unexpected spaces around keyword / parameter equals
plone/schemaeditor/interfaces.py:119:20: Q000 Remove bad quotes.
plone/schemaeditor/interfaces.py:125:1: W293 blank line contains whitespace
plone/schemaeditor/interfaces.py:129:80: E501 line too long (82 > 79 characters)
plone/schemaeditor/interfaces.py:130:80: E501 line too long (90 > 79 characters)
plone/schemaeditor/interfaces.py:131:80: E501 line too long (84 > 79 characters)
plone/schemaeditor/interfaces.py:132:80: E501 line too long (82 > 79 characters)
plone/schemaeditor/schema.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/schema.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/schema.py:2:35: W291 trailing whitespace
plone/schemaeditor/schema.py:8:21: E261 at least two spaces before inline comment
plone/schemaeditor/schema.py:15:25: E261 at least two spaces before inline comment
plone/schemaeditor/schema.py:47:1: W293 blank line contains whitespace
plone/schemaeditor/schema.py:48:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/schema.py:62:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/schema.py:81:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/schema.py:84:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/utils.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/utils.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/utils.py:12:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:24:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/utils.py:26:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:31:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:34:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:40:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:41:46: W601 .has_key() is deprecated, use 'in'
plone/schemaeditor/utils.py:42:29: W602 deprecated form of raising exception
plone/schemaeditor/utils.py:42:32: S001 found %s formatter
plone/schemaeditor/utils.py:42:80: E501 line too long (103 > 79 characters)
plone/schemaeditor/utils.py:43:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:45:12: P002 found "hasattr", consider replacing it
plone/schemaeditor/utils.py:47:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:56:16: P002 found "hasattr", consider replacing it
plone/schemaeditor/utils.py:59:29: W602 deprecated form of raising exception
plone/schemaeditor/utils.py:59:32: S001 found %s formatter
plone/schemaeditor/utils.py:59:80: E501 line too long (96 > 79 characters)
plone/schemaeditor/utils.py:62:80: E501 line too long (90 > 79 characters)
plone/schemaeditor/utils.py:64:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:65:80: E501 line too long (94 > 79 characters)
plone/schemaeditor/utils.py:66:80: E501 line too long (95 > 79 characters)
plone/schemaeditor/utils.py:69:80: E501 line too long (81 > 79 characters)
plone/schemaeditor/utils.py:73:29: W602 deprecated form of raising exception
plone/schemaeditor/utils.py:75:29: W602 deprecated form of raising exception
plone/schemaeditor/utils.py:77:29: W602 deprecated form of raising exception
plone/schemaeditor/utils.py:77:80: E501 line too long (94 > 79 characters)
plone/schemaeditor/utils.py:78:1: W293 blank line contains whitespace
plone/schemaeditor/utils.py:90:61: F812 list comprehension redefines 'field_id' from line 61
plone/schemaeditor/utils.py:90:80: E501 line too long (116 > 79 characters)
plone/schemaeditor/utils.py:92:80: E501 line too long (115 > 79 characters)
plone/schemaeditor/utils.py:93:1: W293 blank line contains whitespace
plone/schemaeditor/widgets.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/widgets.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/widgets.py:58:1: W391 blank line at end of file
plone/schemaeditor/tests/fixtures.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/tests/fixtures.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/tests/fixtures.py:5:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/fixtures.py:6:1: W293 blank line contains whitespace
plone/schemaeditor/tests/fixtures.py:13:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/fixtures.py:15:80: E501 line too long (94 > 79 characters)
plone/schemaeditor/tests/fixtures.py:17:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/fixtures.py:18:5: T001 print statement found.
plone/schemaeditor/tests/fixtures.py:18:20: S001 found %s formatter
plone/schemaeditor/tests/fixtures.py:18:80: E501 line too long (85 > 79 characters)
plone/schemaeditor/tests/fixtures.py:20:1: E402 module level import not at top of file
plone/schemaeditor/tests/fixtures.py:21:1: E402 module level import not at top of file
plone/schemaeditor/tests/fixtures.py:23:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/tests.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/tests/tests.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/tests/tests.py:6:28: D001 found classImplements replace it with zope.interface.implementer
plone/schemaeditor/tests/tests.py:9:14: E222 multiple spaces after operator
plone/schemaeditor/tests/tests.py:13:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/tests.py:28:1: W293 blank line contains whitespace
plone/schemaeditor/tests/tests.py:29:80: E501 line too long (85 > 79 characters)
plone/schemaeditor/tests/tests.py:31:5: D001 found classImplements replace it with zope.interface.implementer
plone/schemaeditor/tests/tests.py:32:1: W293 blank line contains whitespace
plone/schemaeditor/tests/tests.py:33:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/tests.py:34:5: D001 found classImplements replace it with zope.interface.implementer
plone/schemaeditor/tests/tests.py:36:1: E302 expected 2 blank lines, found 1
plone/schemaeditor/tests/tests.py:52:1: E402 module level import not at top of file
plone/schemaeditor/tests/tests.py:53:1: E302 expected 2 blank lines, found 0
plone/schemaeditor/tests/tests.py:55:1: E302 expected 2 blank lines, found 0
plone/schemaeditor/tests/tests.py:58:5: E301 expected 1 blank line, found 0
plone/schemaeditor/tests/tests.py:60:1: E402 module level import not at top of file
plone/schemaeditor/tests/tests.py:61:1: E402 module level import not at top of file
plone/schemaeditor/tests/tests.py:62:1: E402 module level import not at top of file
plone/schemaeditor/tests/tests.py:63:1: E731 do not assign a lambda expression, use a def
plone/schemaeditor/tests/tests.py:64:80: E501 line too long (101 > 79 characters)
plone/schemaeditor/browser/__init__.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/__init__.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/__init__.py:1:2: W292 no newline at end of file
plone/schemaeditor/browser/field/edit.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/field/edit.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/field/edit.py:124:12: P002 found "hasattr", consider replacing it
plone/schemaeditor/browser/field/order.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/field/order.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/field/traversal.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/field/traversal.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/schema/__init__.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/schema/__init__.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/schema/__init__.py:1:2: W292 no newline at end of file
plone/schemaeditor/browser/schema/add_field.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/schema/add_field.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/schema/add_field.py:17:15: Q000 Remove bad quotes.
plone/schemaeditor/browser/schema/listing.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/schema/listing.py:0:1: I001 isort found changes, run it on the file
plone/schemaeditor/browser/schema/listing.py:47:30: S001 found %s formatter
plone/schemaeditor/browser/schema/listing.py:64:21: S001 found %s formatter
plone/schemaeditor/browser/schema/listing.py:67:17: S001 found %s formatter
plone/schemaeditor/browser/schema/traversal.py:0:1: C101 Coding magic comment not found
plone/schemaeditor/browser/schema/traversal.py:0:1: I001 isort found changes, run it on the file
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.


By removing the @SystemApi i can enable/disable NFC from my applications


@datakurre Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.alterego/1/violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/alterego/dynamic.py:0:1: C101 Coding magic comment not found
plone/alterego/dynamic.py:0:1: I001 isort found changes, run it on the file
plone/alterego/dynamic.py:23:34: Q000 Remove bad quotes.
plone/alterego/dynamic.py:23:80: E501 line too long (100 > 79 characters)
plone/alterego/dynamic.py:23:81: S001 found %s formatter
plone/alterego/dynamic.py:27:34: Q000 Remove bad quotes.
plone/alterego/dynamic.py:27:80: E501 line too long (114 > 79 characters)
plone/alterego/dynamic.py:27:81: S001 found %s formatter
plone/alterego/dynamic.py:31:1: E302 expected 2 blank lines, found 1
plone/alterego/dynamic.py:36:22: W292 no newline at end of file
plone/alterego/interfaces.py:0:1: C101 Coding magic comment not found
plone/alterego/interfaces.py:0:1: I001 isort found changes, run it on the file
plone/alterego/interfaces.py:3:1: E302 expected 2 blank lines, found 1
plone/alterego/interfaces.py:7:1: E302 expected 2 blank lines, found 1
plone/alterego/interfaces.py:21:10: S001 found %s formatter
plone/alterego/interfaces.py:26:12: W292 no newline at end of file
plone/alterego/tests.py:0:1: C101 Coding magic comment not found
plone/alterego/tests.py:0:1: I001 isort found changes, run it on the file
plone/alterego/tests.py:26:14: E128 continuation line under-indented for visual indent
plone/alterego/tests.py:27:14: E128 continuation line under-indented for visual indent
plone/alterego/tests.py:28:14: E128 continuation line under-indented for visual indent
plone/alterego/tests.py:30:11: 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.


Hrm, we got an exception today where the DB rejected an insert for duplicate unique index on that field. Feels like that should not happen based on that code. Will investigate further. Thanks!


@vincic Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.blob/1/violations
```
Traceback (most recent call last):
  File "/home/jenkins/workspace/package-plone.app.blob/bin/flake8", line 31, in <module>
    sys.exit(flake8.main.main())
  File "/home/jenkins/.buildout/eggs/flake8-2.5.4-py2.7.egg/flake8/main.py", line 33, in main
    report = flake8_style.check_files()
  File "/home/jenkins/.buildout/eggs/flake8-2.5.4-py2.7.egg/flake8/engine.py", line 181, in check_files
    return self._retry_serial(self._styleguide.check_files, paths=paths)
  File "/home/jenkins/.buildout/eggs/flake8-2.5.4-py2.7.egg/flake8/engine.py", line 172, in _retry_serial
    return func(*args, **kwargs)
  File "/home/jenkins/.buildout/eggs/pep8-1.7.0-py2.7.egg/pep8.py", line 1842, in check_files
    runner(path)
  File "/home/jenkins/.buildout/eggs/flake8-2.5.4-py2.7.egg/flake8/engine.py", line 126, in input_file
    return fchecker.check_all(expected=expected, line_offset=line_offset)
  File "/home/jenkins/.buildout/eggs/pep8-1.7.0-py2.7.egg/pep8.py", line 1574, in check_all
    self.check_ast()
  File "/home/jenkins/.buildout/eggs/pep8-1.7.0-py2.7.egg/pep8.py", line 1521, in check_ast
    for lineno, offset, text, check in checker.run():
  File "/home/jenkins/.buildout/eggs/flake8_debugger-1.4.0-py2.7.egg/flake8_debugger.py", line 23, in run
    with open(self.filename, 'r') as file_to_check:
IOError: [Errno 2] No such file or directory: 'src'
```
Follow [these instructions](https://github.com/plone/jenkins.plone.org/blob/master/docs/source/run-qa-on-package.rst) to reproduce it locally.