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

Feat (470): Script commands for development operations #1549

Merged
merged 28 commits into from
Feb 1, 2022

Conversation

raftmsohani
Copy link

@raftmsohani raftmsohani commented Jan 15, 2022

Summary of Changes

The pull request adds a script file containing commands necessary for development.

Pull request closes #470
Acceptance criteria as stated in the issue

Note: This PR DOES NOT affect backend/frontend code and is solely for standardizing the development tools.

How to Test

List the steps to test the PR
These steps are generic, please adjust as necessary.

source commands.sh

And test commands listed in the .sh file.

  1. Open command line
  2. Change directory to project root (where commands.sh) is located
  3. Type source commands.sh
  4. Test commands one by one

Demo GIF(s) and screenshots for testing procedure

470-demo.mp4

Deliverable 1: Accepted Features

Performance Standard(s): At the beginning of each sprint, the Product Owner and development team will collaborate to define a set of user stories to be completed during the sprint. Acceptance criteria for each story will also be defined. The development team will deliver code and functionality to satisfy these user stories.

Acceptable Quality Level: Delivered code meets the acceptance criteria for each user story. Incomplete stories will be assessed and considered for inclusion in the next sprint.

  • Look up the acceptance criteria in the related issue; paste ACs below in checklist format.
  • Check against the criteria:
    • There are standardized Linux commands as part of the code respository for our project as listed in the Notes section
    • These commands should work on both Mac and Ubuntu
    • The commands are well documented in a README
    • Testing Checklist has been run and all tests pass
    • @ADPennington reviewed + tested
      As Product Owner, @lfrohlich will decide if ACs are met.

Deliverable 2: Tested Code

Performance Standard(s): Code delivered under the order must have substantial test code coverage. Version-controlled HHS GitHub repository of code that comprises products that will remain in the government domain.

n/a: DX

Deliverable 3: Properly Styled Code

Performance Standard(s): GSA 18F Front- End Guide

Acceptable Quality Level: 0 linting errors and 0 warnings

n/a: DX

Deliverable 4: Accessible

Performance Standard(s): Web Content Accessibility Guidelines 2.1 AA standards

Acceptable Quality Level: 0 errors reported using an automated scanner and 0 errors reported in manual testing

n/a: DX

Deliverable 5: Deployed

Performance Standard(s): Code must successfully build and deploy into the staging environment.

Acceptable Quality Level: Successful deployment by assigning a 'Deploy with CircleCI - {env}' label

n/a: DX

Deliverable 6: Documented

Performance Standard(s): Summary of user stories completed every two weeks. All dependencies are listed and the licenses are documented. Major functionality in the software/source code is documented, including system diagram. Individual methods are documented inline in a format that permits the use of tools such as JSDoc. All non-inherited 800-53 system security controls are documented in the Open Control or OSCAL format and HHS Section 508 Product Assessment Template (PAT) are updated as appropriate.

Acceptable Quality Level: Combination of manual review and automated testing, if available

n/a: DX but well-documented

Deliverable 7: Secure

Performance Standard(s): Open Web Application Security Project (OWASP) Application Security Verification Standard 3.0

Acceptable Quality Level: Code submitted must be free of medium- and high-level static and dynamic security vulnerabilities

n/a: DX

Deliverable 8: Context

  • Performance Standard(s): Code must be understandable and contextualized for the reviewers possess the knowledge and background necessary for analysis and constructive criticism to take place.
  • Acceptable Quality Level: Code submitted in the pull request has context.*
  • Does this pull request contain sufficient inline comments providing relevant context for code snippets?
  • Is the code understandable and lucid?
  • Does this pull request provide background for why coding decisions were made?
  • Can you as a reviewer explain and take ownership of these elements presented in this code review?

commands.sh Show resolved Hide resolved
commands.sh Outdated Show resolved Hide resolved
commands.sh Outdated Show resolved Hide resolved
commands.sh Outdated Show resolved Hide resolved
commands.sh Outdated Show resolved Hide resolved
commands.sh Outdated Show resolved Hide resolved
commands.sh Outdated
cd ..
}
# Run eslint against frontend source from frontend container
tdrs-lint-frontend() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do I need installed locally?

$ tdrs-lint-frontend
Creating network "tdrs-frontend_local" with driver "bridge"
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module '/home/node/app/bash'
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was running the linter inside of the container when we usually weren't doing that.

commands.sh Outdated Show resolved Hide resolved
commands.sh Outdated Show resolved Hide resolved
commands.sh Show resolved Hide resolved
Co-authored-by: Andrew <84722778+abottoms-coder@users.noreply.github.com>
@codecov
Copy link

codecov bot commented Jan 19, 2022

Codecov Report

Merging #1549 (43fb840) into raft-tdp-main (ea0cf3c) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff               @@
##           raft-tdp-main    #1549   +/-   ##
==============================================
  Coverage          97.58%   97.58%           
==============================================
  Files                 80       80           
  Lines               1901     1901           
  Branches             249      249           
==============================================
  Hits                1855     1855           
  Misses                22       22           
  Partials              24       24           
Flag Coverage Δ
dev-backend 99.10% <ø> (ø)
dev-frontend 94.76% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ea0cf3c...43fb840. Read the comment docs.

commands.sh Outdated Show resolved Hide resolved
@andrew-jameson
Copy link
Collaborator

@msohanifr @riatzukiza Before COB today, please write an update/summary comment detailing work finished and still to-do here. I don't believe most of my comments were addressed yet.

@andrew-jameson andrew-jameson added QASP Review and removed raft review This issue is ready for raft review labels Jan 31, 2022
@ADPennington ADPennington added the DX Developer Experience label Feb 1, 2022
Copy link
Collaborator

@ADPennington ADPennington left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andrew-jameson andrew-jameson merged commit a70a4aa into raft-tdp-main Feb 1, 2022
@andrew-jameson andrew-jameson deleted the feat/470-commands branch February 1, 2022 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

As a developer, I want a consistent set of commands to perform essential development operations
6 participants