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

2492: Update developer onboarding ticket #2510

Merged
merged 19 commits into from
Jul 31, 2024

Conversation

erinysong
Copy link
Contributor

@erinysong erinysong commented Jul 29, 2024

Ticket

Resolves #2492

Changes

  • Adds required and recommended software installations on DHS device.
  • Adds known issues to setting up developer environment on DHS device.

Context for reviewers

Changes to be discussed in 7/29 engineering huddle. Also interested in opening discussion to explore ways we can organize onboarding to be easier to follow. Considerations include DHS device setup, public/private onboarding info, and the number of docs/links onboarding is spread across.

This PR would ideally deprecate the need for the Developing on a CISA laptop doc.

Setup

Code Review Verification Steps

As the original developer, I have

Satisfied acceptance criteria and met development standards

  • Met the acceptance criteria, or will meet them in a subsequent PR
  • Created/modified automated tests
  • Added at least 2 developers as PR reviewers (only 1 will need to approve)
  • Messaged on Slack or in standup to notify the team that a PR is ready for review
  • Changes to “how we do things” are documented in READMEs and or onboarding guide
  • If any model was updated to modify/add/delete columns, makemigrations was ran and the associated migrations file has been commited.

Ensured code standards are met (Original Developer)

  • All new functions and methods are commented using plain language
  • Did dependency updates in Pipfile also get changed in requirements.txt?
  • Interactions with external systems are wrapped in try/except
  • Error handling exists for unusual or missing values

Validated user-facing changes (if applicable)

  • New pages have been added to .pa11yci file so that they will be tested with our automated accessibility testing
  • Checked keyboard navigability
  • Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI)
  • Add at least 1 designer as PR reviewer

As a code reviewer, I have

Reviewed, tested, and left feedback about the changes

  • Pulled this branch locally and tested it
  • Reviewed this code and left comments
  • Checked that all code is adequately covered by tests
  • Made it clear which comments need to be addressed before this work is merged
  • If any model was updated to modify/add/delete columns, makemigrations was ran and the associated migrations file has been commited.

Ensured code standards are met (Code reviewer)

  • All new functions and methods are commented using plain language
  • Interactions with external systems are wrapped in try/except
  • Error handling exists for unusual or missing values
  • (Rarely needed) Did dependency updates in Pipfile also get changed in requirements.txt?

Validated user-facing changes as a developer

  • New pages have been added to .pa11yci file so that they will be tested with our automated accessibility testing

  • Checked keyboard navigability

  • Meets all designs and user flows provided by design/product

  • Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI)

  • Tested with multiple browsers, the suggestion is to use ones that the developer didn't (check off which ones were used)

    • Chrome
    • Microsoft Edge
    • FireFox
    • Safari
  • (Rarely needed) Tested as both an analyst and applicant user

Note: Multiple code reviewers can share the checklists above, a second reviewers should not make a duplicate checklist

As a designer reviewer, I have

Verified that the changes match the design intention

  • Checked that the design translated visually
  • Checked behavior
  • Checked different states (empty, one, some, error)
  • Checked for landmarks, page heading structure, and links
  • Tried to break the intended flow

Validated user-facing changes as a designer

  • Checked keyboard navigability

  • Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI)

  • Tested with multiple browsers (check off which ones were used)

    • Chrome
    • Microsoft Edge
    • FireFox
    • Safari
  • (Rarely needed) Tested as both an analyst and applicant user

Screenshots

@@ -21,6 +21,22 @@ There are several tools we use locally that you will need to have.
- [ ] Make sure you have `gpg` >2.1.7. Run `gpg --version` to check. If not, [install gnupg](https://formulae.brew.sh/formula/gnupg)
- Alternatively, you can skip this step and [use ssh keys](#setting-up-commit-signing-with-ssh) instead
- [ ] Install the [Github CLI](https://cli.github.com/)
Optional
- [ ] Install the Slack Desktop App
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Would suggest omitting this since this would focus on dev onboarding, unless this was intended to be in the DHS device install suggestions

Copy link
Contributor

@zandercymatics zandercymatics left a comment

Choose a reason for hiding this comment

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

Couple of suggestions

.github/ISSUE_TEMPLATE/developer-onboarding.md Outdated Show resolved Hide resolved
.github/ISSUE_TEMPLATE/developer-onboarding.md Outdated Show resolved Hide resolved
- [ ] *Docker Community Edition
- [ ] *Git
- [ ] *VSCode (our preferred editor)
- [ ] *Github Desktop
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we could add some text here in a sub bullet like: - If you'd prefer, install the [Github CLI](https://cli.github.com/) instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Unrelated, but thoughts on moving this to recommended software? I don't think Github CLI/Desktop are necessary for development and more a quality of life option

Copy link
Contributor

Choose a reason for hiding this comment

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

We do need one or the other, but we could definitely put desktop in there

.github/ISSUE_TEMPLATE/developer-onboarding.md Outdated Show resolved Hide resolved
.github/ISSUE_TEMPLATE/developer-onboarding.md Outdated Show resolved Hide resolved
## Known Issues

### SSL Verification Failure
Some developers, especially those using Government Furnished Equipment (GFE), have problems installing python packages due to an SSL verification failure. This happens because GFE has a custom certificate chain installed, but python uses its own certificate bundle. As a result, when pip tries to verify the TLS connection to download a package, it cannot and so the download fails. To resolve this, if you are running locally you can use --use-feature=truststore to direct pip to use the local certificate store. If you are running a docker container, you will need to export the root certificate and pull it into the container. Ask another developer how to do this properly.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Some developers, especially those using Government Furnished Equipment (GFE), have problems installing python packages due to an SSL verification failure. This happens because GFE has a custom certificate chain installed, but python uses its own certificate bundle. As a result, when pip tries to verify the TLS connection to download a package, it cannot and so the download fails. To resolve this, if you are running locally you can use --use-feature=truststore to direct pip to use the local certificate store. If you are running a docker container, you will need to export the root certificate and pull it into the container. Ask another developer how to do this properly.
Some developers, especially those using Government Furnished Equipment (GFE), have problems installing python packages due to an SSL verification failure. This happens because GFE has a custom certificate chain installed, but python uses its own certificate bundle. As a result, when pip tries to verify the TLS connection to download a package, it cannot and so the download fails. To resolve this, if you are running locally you can use --use-feature=truststore to direct pip to use the local certificate store. If you are running a docker container, you will need to export the root certificate and pull it into the container.

(nitpick/optional) I think that is implied, right?

.github/ISSUE_TEMPLATE/developer-onboarding.md Outdated Show resolved Hide resolved
@zandercymatics zandercymatics self-assigned this Jul 30, 2024
erinysong and others added 6 commits July 30, 2024 15:39
Remove whitespace

Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com>
Format required software to more readable format
Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com>
Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com>
Co-authored-by: zandercymatics <141044360+zandercymatics@users.noreply.github.com>
Copy link
Contributor

@zandercymatics zandercymatics left a comment

Choose a reason for hiding this comment

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

Looks great guys. See my two suggestions before merging, but your good to go after those get resolved!

- [ ] Docker Community Edition*
- [ ] Git*
- [ ] VSCode (our preferred editor)*
- [ ] Github Desktop*
Copy link
Contributor

@zandercymatics zandercymatics Jul 31, 2024

Choose a reason for hiding this comment

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

Suggested change
- [ ] Github Desktop*
- [ ] Github Desktop* or the Github CLI*

I'd recommend adding this because Github Desktop is a pain to get on linux (its a third party community one). I think either or would work in our case.

Copy link
Contributor

Choose a reason for hiding this comment

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

Good point, what we really want is the github cli for running some of our scripts.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah yep, sorry I meant github cli

- [ ] Putty*
- [ ] Windows Subsystem for Linux*

\* Must be requested through DHS IT portal on DHS devices
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
\* Must be requested through DHS IT portal on DHS devices
* Must be requested through DHS IT portal on DHS devices

Typo?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yep

Copy link
Contributor

@zandercymatics zandercymatics left a comment

Choose a reason for hiding this comment

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

Looks great!

@Matt-Spence Matt-Spence merged commit 152e4c0 into main Jul 31, 2024
3 checks passed
@Matt-Spence Matt-Spence deleted the ms-es/2492-Update-Onboarding-Doc branch July 31, 2024 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update the developer onboarding template and document the HW/SW needs of an engineer on the team
3 participants