Skip to content
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

[ADR]: Back-end Code Quality Tools #101

Closed
8 of 14 tasks
Tracked by #50
widal001 opened this issue Jun 28, 2023 · 5 comments · Fixed by #113
Closed
8 of 14 tasks
Tracked by #50

[ADR]: Back-end Code Quality Tools #101

widal001 opened this issue Jun 28, 2023 · 5 comments · Fixed by #113
Assignees
Labels
docs: adr Architecture decision record ticket project: grants.gov Grants.gov Modernization tickets topic: backend Backend development tickets

Comments

@widal001
Copy link
Collaborator

widal001 commented Jun 28, 2023

Description

Evaluate and select libraries to enforce the following standards within the backend codebase:

  • Dependency management (e.g. conflicts, updates, etc.)
  • Code Linting
  • Auto-formatting
  • Type checking
  • Checking for vulnerable dependencies
  • Checking for open source licenses
  • Unit testing
  • Test coverage

Options

Note: The following list of options for these tools assume we are using python, which needs to be decided by #38

  • Dependency management
    • pipenv
    • poetry
    • others as recommended
  • Code linting
    • ruff
    • flake8
    • pylint
    • others as recommended
  • Auto-formatting
    • black
    • autopep8
    • others as recommend
  • Type checking
    • mypy
    • pyright
    • pyre
    • others as recommended
  • Vulnerable dependencies
    • safety
    • dependency-check
    • others as recommended
  • License checking
    • licensecheck
    • pip-licenses
    • others as recommended
  • Unit testing
    • unittest
    • pytest
    • others as recommended
  • Test coverage
    • coverage.py
    • pytest-cov

Definition of Done

  • The ADR is drafted and stored in documentation/[ADR folders TBD]/
  • The ADR is included in the necessary table of contents in the ADR/decision folder
  • The ADR describes the drivers and pros and cons of the decision
  • The ADR has been reviewed and approved by the internal team
  • The ADR satisfies requirements that are outlined in the ADR template
  • The ADR covers each of the following tools:
    • Dependency management
    • Code linting
    • Auto-formatting
    • Type checking
    • Dependency vulnerability checking
    • License checking
    • Unit tests
    • Test coverage
@widal001 widal001 added the docs: adr Architecture decision record ticket label Jun 28, 2023
@widal001 widal001 added this to the Developer Tools milestone Jun 28, 2023
@widal001 widal001 added the topic: backend Backend development tickets label Jun 29, 2023
@widal001 widal001 modified the milestones: Developer Tools, GET Opportunities Jun 29, 2023
@widal001 widal001 moved this from Backlog to Prioritized in Simpler.Grants.gov Product Backlog Jun 30, 2023
@widal001 widal001 mentioned this issue Jun 30, 2023
18 tasks
@daphnegold
Copy link
Contributor

Commit conventions

@acouch and I agree this should be in a separate ADR or working agreement. We already have some great documentation on conventions that might work for us.

@daphnegold
Copy link
Contributor

daphnegold commented Jun 30, 2023

Branch: <username>/issue-<number>-<brief description>
Commits: Nava Conventions

@widal001
Copy link
Collaborator Author

widal001 commented Jun 30, 2023

Commit conventions

@acouch and I agree this should be in a separate ADR or working agreement. We already have some great documentation on conventions that might work for us.

@daphnegold @acouch Good call! I'll create a separate ADR for Git Conventions (e.g. branch naming, merge strategies, commit conventions)

I would love to have this be enforced with some tooling though, for example:

@daphnegold
Copy link
Contributor

daphnegold commented Jun 30, 2023

@widal001 as we discussed offline, unit testing and coverage is a big thing on its own. As this ADR keeps growing, that's a clear conceptual place we can split off into another ADR (again :P). Let me know if you'd like me to create that issue or if you're on it!

@acouch
Copy link
Collaborator

acouch commented Jul 5, 2023

ref: #50

@widal001 widal001 added the project: grants.gov Grants.gov Modernization tickets label Jul 17, 2023
@widal001 widal001 changed the title ADR: Back-end Code Quality Tools [ADR]: Back-end Code Quality Tools Jul 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs: adr Architecture decision record ticket project: grants.gov Grants.gov Modernization tickets topic: backend Backend development tickets
Projects
Development

Successfully merging a pull request may close this issue.

3 participants