-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs(prs): Clarify automatic PR comment text #87
Conversation
Just something I try to remember to do whenever I touch code.
Clarify that usually contributors should get all other checks passing before running the Plone Jenkins PR jobs and add a link to the Plone Jenkins docs. Also fix some typos and do some other editing for brevity and clarity. Fixes #84
I captured everything I did to try things out locally in the `./Makefile`. I don't see anything broken related to my PR automatic trigger bot comment changes, but there are, I assume existing, errors and failures. For reference, here's the output from running all the testing and code analysis tools: $ make test + exit_status=0 + ./bin/pytest ========================================= test session starts ========================================== platform linux -- Python 3.7.12, pytest-5.3.4, py-1.8.1, pluggy-0.13.1 rootdir: /home/rpatterson/src/plone/buildout.coredev/src/mr.roboto, inifile: setup.cfg plugins: cov-2.8.1 collected 107 items src/mr.roboto/src/mr/roboto/tests/test_add_to_checkouts.py ...... [ 5%] src/mr.roboto/src/mr/roboto/tests/test_buildout.py FE [ 6%] src/mr.roboto/src/mr/roboto/tests/test_changelog_entry.py ..... [ 11%] src/mr.roboto/src/mr/roboto/tests/test_comments.py ................ [ 26%] src/mr.roboto/src/mr/roboto/tests/test_config.py ......... [ 34%] src/mr.roboto/src/mr/roboto/tests/test_contributor_agreement.py ........ [ 42%] src/mr.roboto/src/mr/roboto/tests/test_pull_requests.py ....... [ 48%] src/mr.roboto/src/mr/roboto/tests/test_runcorejob.py ............ [ 59%] src/mr.roboto/src/mr/roboto/tests/test_runhooks.py ........ [ 67%] src/mr.roboto/src/mr/roboto/tests/test_simple_views.py ................... [ 85%] src/mr.roboto/src/mr/roboto/tests/test_subscriber.py ... [ 87%] src/mr.roboto/src/mr/roboto/tests/test_utils.py ....... [ 94%] src/mr.roboto/src/mr/roboto/tests/test_warn_pull_request_jobs.py ...... [100%] ================================================ ERRORS ================================================ ___________________ ERROR at teardown of BuildoutTest.test_get_sources_and_checkouts ___________________ self = <mr.roboto.tests.test_buildout.BuildoutTest testMethod=test_get_sources_and_checkouts> def tearDown(self): shutil.rmtree(self.coredev_repo.working_tree_dir) > os.remove(self.settings['sources_file']) E FileNotFoundError: [Errno 2] No such file or directory: 'sources.pickle' src/mr.roboto/src/mr/roboto/tests/test_buildout.py:53: FileNotFoundError =============================================== FAILURES =============================================== _____________________________ BuildoutTest.test_get_sources_and_checkouts ______________________________ self = <mr.roboto.tests.test_buildout.BuildoutTest testMethod=test_get_sources_and_checkouts> def test_get_sources_and_checkouts(self): self.roboto.get( > f'/update-sources-and-checkouts?token={self.settings["api_key"]}' ) src/mr.roboto/src/mr/roboto/tests/test_buildout.py:65: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ eggs/WebTest-2.0.33-py3.7.egg/webtest/app.py:335: in get expect_errors=expect_errors) eggs/WebTest-2.0.33-py3.7.egg/webtest/app.py:628: in do_request res = req.get_response(app, catch_exc_info=True) eggs/WebOb-1.8.6-py3.7.egg/webob/request.py:1310: in send application, catch_exc_info=True) eggs/WebOb-1.8.6-py3.7.egg/webob/request.py:1278: in call_application app_iter = application(self.environ, start_response) eggs/WebTest-2.0.33-py3.7.egg/webtest/lint.py:201: in lint_app iterator = application(environ, start_response_wrapper) eggs/pyramid-1.10.4-py3.7.egg/pyramid/router.py:270: in __call__ response = self.execution_policy(environ, self) eggs/pyramid-1.10.4-py3.7.egg/pyramid/router.py:279: in default_execution_policy return request.invoke_exception_view(reraise=True) eggs/pyramid-1.10.4-py3.7.egg/pyramid/view.py:771: in invoke_exception_view reraise_(*exc_info) eggs/pyramid-1.10.4-py3.7.egg/pyramid/compat.py:178: in reraise raise value.with_traceback(tb) eggs/pyramid-1.10.4-py3.7.egg/pyramid/router.py:277: in default_execution_policy return router.invoke_request(request) eggs/pyramid-1.10.4-py3.7.egg/pyramid/router.py:249: in invoke_request response = handle_request(request) eggs/pyramid-1.10.4-py3.7.egg/pyramid/tweens.py:43: in excview_tween response = _error_handler(request, exc) eggs/pyramid-1.10.4-py3.7.egg/pyramid/tweens.py:13: in _error_handler response = request.invoke_exception_view(exc_info) eggs/pyramid-1.10.4-py3.7.egg/pyramid/view.py:767: in invoke_exception_view request_iface=request_iface.combined, eggs/pyramid-1.10.4-py3.7.egg/pyramid/view.py:667: in _call_view response = view_callable(context, request) eggs/pyramid-1.10.4-py3.7.egg/pyramid/viewderivers.py:401: in viewresult_to_response result = view(context, request) eggs/pyramid-1.10.4-py3.7.egg/pyramid/tweens.py:41: in excview_tween response = handler(request) eggs/pyramid-1.10.4-py3.7.egg/pyramid/router.py:148: in handle_request registry, request, context, context_iface, view_name eggs/pyramid-1.10.4-py3.7.egg/pyramid/view.py:667: in _call_view response = view_callable(context, request) eggs/pyramid-1.10.4-py3.7.egg/pyramid/viewderivers.py:436: in rendered_view result = view(context, request) src/mr.roboto/src/mr/roboto/security.py:40: in wrapped return fn(context, request) src/mr.roboto/src/mr/roboto/views/home.py:128: in update_pickles get_sources_and_checkouts(request) src/mr.roboto/src/mr/roboto/buildout.py:146: in get_sources_and_checkouts for source in buildout.sources: src/mr.roboto/src/mr/roboto/buildout.py:81: in __iter__ return self.data.__iter__() src/mr.roboto/src/mr/roboto/buildout.py:72: in data config["buildout"]["directory"] = os.getcwd() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <backports.configparser.ConfigParser object at 0x7f0a801ed290>, key = 'buildout' def __getitem__(self, key): if key != self.default_section and not self.has_section(key): > raise KeyError(key) E KeyError: 'buildout' eggs/configparser-4.0.2-py3.7.egg/backports/configparser/__init__.py:1040: KeyError =========================================== warnings summary =========================================== eggs/pyramid-1.10.4-py3.7.egg/pyramid/path.py:4 /home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/pyramid-1.10.4-py3.7.egg/pyramid/path.py:4: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses import imp -- Docs: https://docs.pytest.org/en/latest/warnings.html ========================== 1 failed, 106 passed, 1 warning, 1 error in 2.53s =========================== + exit_status=1 + ./bin/code-analysis --return-status-codes Check clean lines....................[ OK ] in 0.042s Flake8..........................[ FAILURE ] in 0.800s /home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/src/mr.roboto/src/mr/roboto/buildout.py:72:16: Q000 Remove bad quotes /home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/src/mr.roboto/src/mr/roboto/buildout.py:72:28: Q000 Remove bad quotes The command "bin/code-analysis" exited with 1 in 0.811s. + exit_status=1 + ./bin/versioncheck Parsing buildout files: - /home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/buildout.cfg 84 entries in versions section. parsing finished. Read tracking information from buildout extension: - /home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/.plone.versioncheck.tracked.json - age of gathered data: 0d 0h 16m 51.328s Report for humans attrs 21.3.0 ... X beautifulsoup4 4.8.2 .... A cachecontrol 0.12.6 ... A certifi 2019.11.28 A chameleon 3.6.2 .... A chardet 3.0.4 .... A check-manifest 0.40 ..... A collective.recipe.omelette 0.16 ..... A colorama 0.4.3 .... A configparser 4.0.2 .... A cornice 4.0.1 .... A coverage 5.0.3 .... A deprecated 1.2.7 .... A flake8 3.6.0 .... A flake8-blind-except 0.1.1 .... A flake8-coding 1.3.1 .... A flake8-debugger 3.1.0 .... A flake8-deprecated 1.3 ...... A flake8-pep3101 1.2.1 .... A flake8-polyfill 1.0.2 .... A flake8-print 3.1.0 .... A flake8-quotes 1.0.0 .... A flake8-string-format 0.2.3 .... A flake8-todo 0.7 ...... A gitdb2 2.0.6 .... A gitpython 3.0.5 .... A hupper 1.9.1 .... A idna 2.8 ...... A importlib-metadata 1.4.0 .... A jinja2 2.10.3 ... A lockfile 0.12.2 ... A lxml 4.4.2 .... A mako 1.1.1 .... A markupsafe 1.1.1 .... A mccabe 0.6.1 .... A mock 3.0.5 .... A more-itertools 8.1.0 .... A mr.roboto 2.0 ...... D msgpack 0.6.2 .... A packaging 20.1 ..... A paste 3.2.6 .... A pastedeploy 2.0.1 .... A pep8-naming 0.7.0 .... A plaster 1.0 ...... A plaster-pastedeploy 0.7 ...... A plone.recipe.codeanalysis 3.0.1 .... A plone.versioncheck 1.7.0 .... A pluggy 0.13.1 ... A py 1.8.1 .... A pycodestyle 2.4.0 .... A pyflakes 2.0.0 .... A pygithub 1.45 ..... A pygments 2.5.2 .... A pyjwt 1.7.1 .... A pyparsing 2.4.6 .... A pyramid 1.10.4 ... A pyramid-chameleon 0.3 ...... A pyramid-debugtoolbar 4.6 ...... A pyramid-mailer 0.15.1 ... A pyramid-mako 1.1.0 .... A pytest 5.3.4 .... A pytest-cov 2.8.1 .... A repoze.lru 0.7 ...... A repoze.sendmail 4.4.1 .... A requests 2.22.0 ... A setuptools 41.6.0 ... A simplejson 3.17.0 ... A six 1.14.0 ... A smmap2 2.0.5 .... A soupsieve 1.9.5 .... A testfixtures 6.10.3 ... A toml 0.10.2 ... X transaction 3.0.0 .... A translationstring 1.3 ...... A unidiff 0.5.4 .... A urllib3 1.25.8 ... A venusian 3.0.0 .... A waitress 1.4.2 .... A wcwidth 0.1.7 .... A webob 1.8.6 .... A webtest 2.0.33 ... A wrapt 1.11.2 ... A zc.buildout 2.13.2 ... A zc.recipe.egg 2.0.7 .... A zipp 2.1.0 .... A zope.deprecation 4.4.0 .... A zope.interface 4.7.1 .... A + exit 1 For reference, here's the output from running the development server: $ make run + ./bin/pserve development.ini --reload Starting monitor for PID 3263123. Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/hupper-1.9.1-py3.7.egg/hupper/ipc.py", line 320, in spawn_main func(**kwargs) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/hupper-1.9.1-py3.7.egg/hupper/worker.py", line 265, in worker_main func(*spec_args, **spec_kwargs) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/pyramid-1.10.4-py3.7.egg/pyramid/scripts/pserve.py", line 34, in main return command.run() File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/pyramid-1.10.4-py3.7.egg/pyramid/scripts/pserve.py", line 275, in run app = loader.get_wsgi_app(app_name, config_vars) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/plaster_pastedeploy-0.7-py3.7.egg/plaster_pastedeploy/__init__.py", line 129, in get_wsgi_app global_conf=defaults, File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 253, in loadapp return loadobj(APP, uri, name=name, **kw) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 278, in loadobj return context.create() File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 715, in create return self.object_type.invoke(self) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 150, in invoke **context.local_conf) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/util.py", line 55, in fix_call val = callable(*args, **kw) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/Paste-3.2.6-py3.7.egg/paste/urlmap.py", line 31, in urlmap_factory app = loader.get_app(app_name, global_conf=global_conf) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 356, in get_app name=name, global_conf=global_conf).create() File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 715, in create return self.object_type.invoke(self) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/loadwsgi.py", line 152, in invoke return fix_call(context.object, context.global_conf, **context.local_conf) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/eggs/PasteDeploy-2.0.1-py3.7.egg/paste/deploy/util.py", line 55, in fix_call val = callable(*args, **kw) File "/home/rpatterson/src/plone/buildout.coredev/src/mr.roboto/src/mr.roboto/src/mr/roboto/__init__.py", line 37, in main settings['py_versions'] KeyError: 'py_versions' Press ENTER or change a file to reload.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have no opinion on the Makefile, but the new comment is good for me.
Thanks for the review, @mauritsvanrees. LMK if there's anything more I can do to get this merged. CC: @gforcada |
Hey @rpatterson thanks for the PR! I LGTM though, the |
Deployed! 🚀 |
Clarify that usually contributors should get all other checks passing before running the
Plone Jenkins PR jobs and add a link to the Plone Jenkins docs. Also fix some typos and
do some other editing for brevity and clarity.
Fixes #84
Also includes capturing some cleanup and local development build and set up I did along
the way.