Skip to content

Commit

Permalink
Refactor Decision Record directory structure and file names (#8)
Browse files Browse the repository at this point in the history
* Created new folder structure for decision records
* Rename files in DR directory
* Remove duplicate folder Decision-Records
  • Loading branch information
vraer authored May 28, 2023
1 parent 02db530 commit ff673a8
Show file tree
Hide file tree
Showing 24 changed files with 341 additions and 195 deletions.
5 changes: 5 additions & 0 deletions docs/DR/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
nav:
- Decision Records: index.md
- ✅ Solutions Adopted: adopted
- ⛔ Not Implemented: not_implemented
- Decisions Records Management: decision-records-management.md
25 changes: 25 additions & 0 deletions docs/DR/adopted/explore-local-machine-linters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
status: ✅ Adopted
---

#### Issue

[#2651](https://github.com/hackforla/website/issues/2651)

#### Problem Statement

Identifying a linter which can be installed locally so that developers can identify errors before making a PR.

#### Potential Solution

Having developers set up [ESLint](https://eslint.org/) on their local machines.

#### Feasibility Determination

In order to implement ESLint for standard use, all developers on the team (old and new) would have to individually install it on their local machines, which could be a bit to handle.

#### Summary

- Potential linters for use on developers' local machines were researched as requested by issue #2651 and ESLint was suggested as a possible solution, however a decision cannot be made until a spell checker for the repo is decided on so that we can determine compatability.
- If the decision to implement ESLint as the standard local linter were made, we would need to add the files it creates to the main repo; a package.json and .eslintrc.yml config file and we would also have to implement ESLint onto the repo with Github actions so that the repo linter matches everyone's local linter.
- A roll out plan would also need to be developed to ensure that everyone who is actively working and newly working on the website repo knows they need to implement ESLint on their local environments.
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
This is a record in the [Decision Records on Solutions Adopted](Decision-Records-on-Solutions-Adopted).
---
status: ✅ Adopted
---

### Issue
- [CLASP for Google Apps Scripts development evaluation / decision #3722](https://github.com/hackforla/website/issues/3722)
#### Issue

### Problem Statement
- The decision had been made to bring Google Apps Scripts into the website GitHub repository, resulting in issue [Add latest version of Google Apps Scripts to GitHub #3641](https://github.com/hackforla/website/issues/3641). In the context of that issue, the suggestion to use clasp was made.
[#3722](https://github.com/hackforla/website/issues/3722)

#### Problem Statement

- The decision had been made to bring Google Apps Scripts into the website GitHub repository, resulting in issue [Add latest version of Google Apps Scripts to GitHub #3641](https://github.com/hackforla/website/issues/3641). In the context of that issue, the suggestion to use clasp was made.
- The Apps Script CLI, or clasp, is an npm module with commands to create, edit, and deploy Apps Script projects locally. For Hack for LA, its most useful commands would be clone, pull and push for transferring code modules between Google Drive and the local workstation, to facilitate local editing and committing of code. The tool would provide an alternative to copying/pasting code between Google Drive and the local workstation, which may be feasible for work on our current small codebase, but will become unwieldy if the codebase grows.

### Feasibility Determination
- Use of clasp is feasible and will provide benefits especially for devs who prefer to edit code in their local IDE, and especially if the codebase were to grow.
- Use of clasp will create a larger learning curve and setup time for new devs, including installation of node.js, npm, clasp, @types/google-apps-script, clasp-env.
- It would be possible to combine clasp with other npm modules such as prettifier, ESLint, Babel and tsgas, to create a custom "build/deploy" module.
#### Feasibility Determination

### Summary
- Create a new issue [#4134](https://github.com/hackforla/website/issues/4134) to document the new Google Apps Script development process.
- Update existing wins development issues to refer to new wiki page.
- Use of clasp is feasible and will provide benefits especially for devs who prefer to edit code in their local IDE, and especially if the codebase were to grow.
- Use of clasp will create a larger learning curve and setup time for new devs, including installation of node.js, npm, clasp, @types/google-apps-script, clasp-env.
- It would be possible to combine clasp with other npm modules such as prettifier, ESLint, Babel and tsgas, to create a custom "build/deploy" module.

#### Summary

- Create a new issue [#4134](https://github.com/hackforla/website/issues/4134) to document the new Google Apps Script development process.
- Update existing wins development issues to refer to new wiki page.
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
This is a record in the [Decision Records on Solutions Adopted](Decision-Records-on-Solutions-Adopted).
---
status: ✅ Adopted
---

#### Issue

None

#### Problem Statement

How to pass off an issue that needs follow-up by a lead? Also, how to keep track of those issues that need follow-up?

#### Potential Solution

- Add a `ready for [INSERT ROLE] lead` label to the issue, such as `ready for dev lead` or `ready for design lead`
- Then, the respective leads will check the `ready for [INSERT ROLE] lead` for their role and follow up with the issue.

#### Feasibility Determination
This is feasible. Also, it allows a way to pass off an issue that needs follow-up by a lead and it keeps track of issues that still need follow-up by just filtering by the label.

This is feasible. Also, it allows a way to pass off an issue that needs follow-up by a lead and it keeps track of issues that still need follow-up by just filtering by the label.
Original file line number Diff line number Diff line change
@@ -1,31 +1,34 @@
This is a record in the [Decision Records on Solutions Adopted](Decision-Records-on-Solutions-Adopted).
---
status: ✅ Adopted
---

#### Issue

**Issue**
* #3678
* https://github.com/hackforla/website/issues/3678
[#3678](https://github.com/hackforla/website/issues/3678)

**Problem Statement**
#### Problem Statement

Checking to see if the Suggest a guide button has been succesffully hidden.
Checking to see if the Suggest a guide button has been successfully hidden.

**Potential Solution**
#### Potential Solution

Using Dockers to check to see if the button has been hidden and the button is still within toolkit.html

**Feasibility Determination**
#### Feasibility Determination

The potential Solution is feasible as the button has been hidden. After reviewing the initial site on the local machine, the button is not displayed.
The potential Solution is feasible as the button has been hidden. After reviewing the initial site on the local machine, the button is not displayed.
![image](https://user-images.githubusercontent.com/38971729/220494923-cb61f083-7648-4dac-995f-9e575a5e68a1.png)

[/pages/toolkit.html](https://github.com/hackforla/website/blob/262395c6b76fa0cc2ecc3a6c4d313e96dd1d2346/pages/toolkit.html#L62):
```

```html
62 <div class="suggest-guide-group">
63 <h2 class="external-resources-text title3">External Resources</h2>
64 <!-- The Suggest a resource button has been temporarily hidden until we figure out how this button will function after it's clicked. See issue #3678 for more details. -->
65 <button hidden class="btn btn-primary btn-md-narrow">Suggest a resource</button>
66 </div>
```

**Summary:**

As of Febuary 21st, 2023, the button has been successfully hidden and is not displayed currently.
As of Febuary 21st, 2023, the button has been successfully hidden and is not displayed currently.
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
This is a record in the [Decision Records on Solutions Adopted](Decision-Records-on-Solutions-Adopted).
---
status: ✅ Adopted
---

#### Issue
[#2485 Update the Program Areas page so the projects are dynamically rendered](https://github.com/hackforla/website/issues/2485) - [comment](https://github.com/hackforla/website/issues/2485#issuecomment-1261579356) regarding the addition of project page links to mini cards.

#### Issue

[Comment](https://github.com/hackforla/website/issues/2485#issuecomment-1261579356) on [#2485](https://github.com/hackforla/website/issues/2485)

#### Problem Statement
Per comment, it was proposed that a list of "good second issues" be made to add the hyperlinks to each of the projects in the .md files. Before this issue's linked pull request, the project names on the mini cards led to their hackforla.org/projects/.. page. After the pull request was merged, the project names led to their respective hackforla github pages.

Per comment, it was proposed that a list of "good second issues" be made to add the hyperlinks to each of the projects in the .md files. Before this issue's linked pull request, the project names on the mini cards led to their hackforla.org/projects/.. page. After the pull request was merged, the project names led to their respective hackforla github pages.

#### Adopted Solution

It was determined there was a more optimized solution. This issue was fixed by the method implemented in issue [#3592 Link projects in program areas page to project page](https://github.com/hackforla/website/issues/3592) and its linked [pull request](https://github.com/hackforla/website/pull/3692). This method involves the following:

```
Expand All @@ -15,6 +21,7 @@ It was determined there was a more optimized solution. This issue was fixed by t
```

as followed by the [code](https://github.com/hackforla/website/pull/3692/files):

```
42 {% for project in site.projects %}
43 {% for project_program in project.program-area %}
Expand Down
30 changes: 30 additions & 0 deletions docs/DR/adopted/standardize-html-img-tag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
status: ✅ Adopted
---

#### Issue

None

#### Problem Statement

In our codebase, we are not consistent with whether we apply an ending slash for img HTML tags.

Example of code with `<img...>`:
<https://github.com/hackforla/website/blob/706d7ce3628f9958cda525201c7c444d3d57d21b/pages/404.html#L12>

Example of code with `<img.../>`
<https://github.com/hackforla/website/blob/706d7ce3628f9958cda525201c7c444d3d57d21b/pages/donate.html#L18>

#### Potential Solution

Use the img HTML tag without an ending slash meaning <img...> (Source 1).

#### Feasibility Determination

This is feasible because we only use HTML. An ending slash in an img tag is needed for XHTML and XML (Source 2), which we don't use.

#### Sources

1. <https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element>
2. <https://stackoverflow.com/a/15149657>
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
This is a record in the [Decision Records on Solutions Adopted](Decision-Records-on-Solutions-Adopted).
---
status: ✅ Adopted
---

#### Issue
- [#2065](https://github.com/hackforla/website/pull/3414)
#### Issue

[#2065](https://github.com/hackforla/website/pull/3414)

#### Problem Statement
Updating out-of-date dependencies of GHA using Github Dependabot.

Updating out-of-date dependencies of GHA using Github Dependabot.

#### Potential Solution
Our GHA are not latest version and hence we need to be notified when dependencies are out-of-date so that they don't break unexpectedly. The issue [#2065](https://github.com/hackforla/website/pull/3414) was created to check for updates to GHA at timed interval i.e. one week.

But now Github Dependabot was updated to give out alerts for vulnerable GHA to stay up-to-date and fix security vulnerabilities in the actions
workflow. It is powered by Github Advisory Database which will create an advisory to document the vulnerability when it is encountered in an
action, triggering an alert for the impacted repository.

Pull requests raised by Dependabot to update dependencies is in accordance with how the repository is configured i.e., version updates and/or
Our GHA are not latest version and hence we need to be notified when dependencies are out-of-date so that they don't break unexpectedly. The issue [#2065](https://github.com/hackforla/website/pull/3414) was created to check for updates to GHA at timed interval i.e. one week.

But now Github Dependabot was updated to give out alerts for vulnerable GHA to stay up-to-date and fix security vulnerabilities in the actions
workflow. It is powered by Github Advisory Database which will create an advisory to document the vulnerability when it is encountered in an
action, triggering an alert for the impacted repository.

Pull requests raised by Dependabot to update dependencies is in accordance with how the repository is configured i.e., version updates and/or
security updates and can be managed as other PRs but with extra commands which can be referred to [here](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates).

#### Feasibility Determination

Advantages for using GHA Dependabot:

- As Github Advisory Database powers Dependabot alerts for the impacted GH repository, so no additional action needs to be performed after Dependabot is enabled which has been done .
- Dependabot alert makes it easier to stay up-to-date and can be managed similar to other PRs ,thus eliminating the need for issue [#2065](https://github.com/hackforla/website/pull/3414).

Expand All @@ -29,9 +36,3 @@ Related Links:
- [Configuring dependabot version updates](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates)
- [Managing pull requests for dependency updates](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates)
- [About dependabot alerts](https://github.blog/2022-08-09-dependabot-now-alerts-for-vulnerable-github-actions/#dependabot-alerts-for-github-actions)



***


Original file line number Diff line number Diff line change
@@ -1,22 +1,30 @@
This is a record in the [Decision Records on Solutions Adopted](Decision-Records-on-Solutions-Adopted).
---
status: ✅ Adopted
---

#### Issue

None

#### Problem Statement
Over time, feature branches become out of date with the code in the gh-pages branch. After updating the feature branch as outlined in steps [A. Updating a feature branch with changes from gh-pages](How-to-update-a-feature-branch-with-changes-from-gh-pages#a-updating-a-feature-branch-with-changes-from-gh-pages) and [B. Opening a pull request](How-to-update-a-feature-branch-with-changes-from-gh-pages#b-opening-a-pull-request) from [How to update a feature branch with changes from gh pages](How-to-update-a-feature-branch-with-changes-from-gh-pages) wiki page, we need to figure out the best way to merge an "update the feature branch" pull request into the feature branch. (An "update the feature branch" pull request means a pull request that is opened for updating a feature branch with changes from gh-pages branch.)

Over time, feature branches become out of date with the code in the gh-pages branch. After updating the feature branch as outlined in steps [A. Updating a feature branch with changes from gh-pages](https://github.com/hackforla/website/wiki/How-to-update-a-feature-branch-with-changes-from-gh-pages#a-updating-a-feature-branch-with-changes-from-gh-pages) and [B. Opening a pull request](https://github.com/hackforla/website/wiki/How-to-update-a-feature-branch-with-changes-from-gh-pages#b-opening-a-pull-request) from [How to update a feature branch with changes from gh pages](https://github.com/hackforla/website/wiki/How-to-update-a-feature-branch-with-changes-from-gh-pages) wiki page, we need to figure out the best way to merge an "update the feature branch" pull request into the feature branch. (An "update the feature branch" pull request means a pull request that is opened for updating a feature branch with changes from gh-pages branch.)

#### Potential Solution
Merging an "update the feature branch" pull request into the feature branch using **"Create a merge commit"** option. For how to do it, see [D. (TECH LEADS ONLY) Merge the pull request into the feature branch with "Create a Merge Commit"](How-to-update-a-feature-branch-with-changes-from-gh-pages#d-tech-leads-only-merge-the-pull-request-into-the-feature-branch-with-create-a-merge-commit) from [How to update a feature branch with changes from gh pages](How-to-update-a-feature-branch-with-changes-from-gh-pages) wiki page.

Merging an "update the feature branch" pull request into the feature branch using **"Create a merge commit"** option. For how to do it, see [D. (TECH LEADS ONLY) Merge the pull request into the feature branch with "Create a Merge Commit"](https://github.com/hackforla/website/wiki/How-to-update-a-feature-branch-with-changes-from-gh-pages#d-tech-leads-only-merge-the-pull-request-into-the-feature-branch-with-create-a-merge-commit) from [How to update a feature branch with changes from gh pages](https://github.com/hackforla/website/wiki/How-to-update-a-feature-branch-with-changes-from-gh-pages) wiki page.

#### Feasibility Determination
There are advantages and disadvantages of using **"Create a merge commit"** option when merging an "update the feature branch" pull request into the feature branch.

There are advantages and disadvantages of using **"Create a merge commit"** option when merging an "update the feature branch" pull request into the feature branch.
The disadvantages are:

- There will be two additional commits for each update:
- INCLUDE WHAT THESE ARE AND WHERE THEY ARE FROM
-

The advantages are:

- The history of contributors and commit ids for each individual file stays the same as the ones in gh-pages branch, which makes it easier to understand the code when trying to figure out the history of changes to a file.
- Eventually, when the feature branch is ready, the feature branch will be merged into the gh-pages branch. By using **"Create a merge commit"** to merge the pull requests to update the feature branch, any merge conflicts that were resolved will remain resolved, which isn't the case if "Squash and merge" was used.

Expand Down
Loading

0 comments on commit ff673a8

Please sign in to comment.