Project

Profile

Help

Maintenance. Planio will be undergoing a scheduled maintenance this weekend. Between Saturday, July 24 at 9:00 UTC and Sunday, July 25, 22:00 UTC your account might observe occasional downtimes which may last up to several minutes in some cases.

Story #6938

As a developer, I have an easy way to check my commit and code locally before pushing

Added by daviddavis about 1 year ago. Updated about 1 month ago.

Status:
NEW
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:

Description

I was talking to ggainey about some of the automation checks we have in pulp (commit validation, style/lint checks, changelog, etc) and how it might be frustrating for new devs. I've heard the same feedback from other contributors such as galaxy.

We need to provide an easy way for developers to run our CI checks locally. I've seen other projects (bandersnatch[0], black[1], celery[2], etc) use pre-commit:

https://pre-commit.com/

[0] https://github.com/pypa/bandersnatch/blob/master/.pre-commit-config.yaml

[1] https://github.com/psf/black/blob/master/.pre-commit-config.yaml

[2] https://github.com/celery/celery/blob/master/.pre-commit-config.yaml


Related issues

Has duplicate Pulp - Task #5073: Add pre-commit to plugin_templateCLOSED - DUPLICATE

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by daviddavis about 1 year ago

  • Description updated (diff)

#2 Updated by ggainey about 1 year ago

None of the individual bookeeping tasks are bad - they're all great individually - but en masse, they cause a lot of friction for the dev, which is a good way to get people to not-contribute to your project

Consider:

  1. "black/flake"
  2. "check for issue/noissue"
  3. "check for coverage/nocoverage"
  4. "check issue is in project"
  5. "check for CHANGES existence"
  6. "check that CHANGES file has an allowed suffix"

are all checks that happen serially in travis, and which therefore will fail individually. So if you're particularly dense (like I have been on frequent occasions), that can mean SIX separate pushes/builds, just to get to the point where travis will tell you if your code even builds/works.

#3 Updated by fao89 about 1 year ago

  • Groomed changed from No to Yes
  • Sprint Candidate changed from No to Yes

We can start a new directory on plugin_template or use .travis one. It needs to be customizable by plugins, as only pulp_rpm needs [nocoverage]. Maybe calling a script "additional_checks.sh": https://stackoverflow.com/a/59499550 It would be helpful to have a makefile for facilitating setting and using the pre-commit

install:
        pip install --upgrade pip
        pip install -r requirements_dev.txt
        make setup-pre-commit

setup-pre-commit:
        pre-commit install
        pre-commit install-hooks

run-pre-commit:
        rm -rf .tox/
        pre-commit run --files $$(find -regex '.*\.\(py\|yaml\|yml\|md\)') -v

example from: https://github.com/rochacbruno/dynaconf/blob/master/Makefile#L135-L146

#4 Updated by daviddavis about 1 year ago

  • Groomed changed from Yes to No
  • Sprint Candidate changed from Yes to No

#6 Updated by daviddavis about 1 year ago

Thanks for the article. I posted a small PoC:

https://github.com/daviddavis/pulpcore/commit/eba832370

#7 Updated by fao89 12 months ago

I never got the notification, I like your PoC, I think we should be working on it after 3.6

#8 Updated by daviddavis 10 months ago

One of the problems that was raised today during open floor is that users could have different flake8 plugins installed with different versions. We need to figure out how to handle this issue.

#9 Updated by daviddavis 10 months ago

  • Has duplicate Task #5073: Add pre-commit to plugin_template added

#10 Updated by pulpbot 9 months ago

  • Status changed from NEW to POST

#11 Updated by daviddavis about 1 month ago

  • Status changed from POST to NEW

Please register to edit this issue

Also available in: Atom PDF