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

Pre-work Checklist: Developer: Kevin Lei #5219

Closed
34 tasks done
klei0229 opened this issue Aug 15, 2023 · 7 comments
Closed
34 tasks done

Pre-work Checklist: Developer: Kevin Lei #5219

klei0229 opened this issue Aug 15, 2023 · 7 comments
Assignees
Labels
Complexity: Prework prework Feature: Onboarding/Contributing.md needed next issue role: back end/devOps Tasks for back-end developers role: front end Tasks for front end developers size: 1pt Can be done in 4-6 hours

Comments

@klei0229
Copy link
Member

klei0229 commented Aug 15, 2023

Prerequisite

We are looking forward to having you on our team. Please make sure to attend the general Hack for LA onboarding to get the process started https://meetup.com/hackforla/events.

Overview

As a new developer on the HfLA website team, fill in the following fields as you complete each onboarding item.

Special Notes

  1. It may take you a few weeks to finish this issue, because part of it is learning how to provide updates on issues that take more than a week to complete. Please keep this issue open until you have been able to do all the steps.
  2. Usually we don't want to you have more than one issue assigned to you at a time, this issue is the exception, because it is instructions on how to work on other issues.
  3. The action items listed below should mostly be worked on in a sequential order. However, you don't have to wait on one if you can proceed with the others, For instance, you don't have to wait for attending a weekly meeting before setting up your dev environment.

Action Items

  • Add yourself to the #hfla-site and #hfla-site-pr Slack channels
  • Share your GitHub handle and Gmail address in the hfla-site-onboarding slack channel so you can be added to the Google Drive (alternative to go to meeting and direct message a merge team member at the meeting)
    • To find contact information for the merge team members and technical leads, please take a look at our Meet the Team wiki page
  • Also, confirm with a merge team member or a technical lead that they have added you to the Google Calendar invites for our Zoom meetings
  • (Once added to the Drive) Add yourself to the team roster
  • After you have finished adding yourself to the roster, let a merge team member or a technical lead know you have added yourself to the roster and would like to be added to the website-write and website teams on GitHub
  • Once added to the website-write team:
    • Self Assign this issue (gear in right side panel)
    • Add the "role: front end" or "role: back end" or both label(s) to this issue and remove the "role missing" label (gear in right side panel)
    • Add this issue to the Project Board under the Projects section (gear in right side panel)
  • Signup for a Figma account
  • Attend weekly team meetings:
    • Developer (front-end/back-end) weekly team meeting, Tuesdays 7-8pm PST
    • (Optional) Office Hours, Thursdays 7-8pm PST
    • All team meeting (UX, Development, Product), Sunday 10am-12pm PST
  • Note: There are no meetings on the 1st-7th of every month.
  • Note regarding weekly team meeting requirements: All website team members are required to attend at least 1 team meeting in a week (held on Tuesdays, Thursdays and Sundays). In case, you are unable in any given week, you should reach out to the tech leadership team. Exceptions to this requirement may be provided on a case-by-case basis. Also, please let the tech leadership team know (through a slack message in the hfla-site channel as well as an @ mention in a comment of the issue that you would be working on) if you are planning to take a week off or a longer vacation.
  • Complete steps 1.1 - 1.6 in Part 1: Setting up the development environment within Contributing.md
  • Read section 2.1 - 2.4 in Part 2: How the Website team works with GitHub issues within Contributing.md
  • Once you take a good first issue, you will provide estimates and progress reports. Also, once you finish providing your "Estimate" action item below, please answer the question in the "Time spent so far" action item (also below).
    • Estimate: Copy the below and put it in the "good first issue" that you picked.
      Check this box when you have completed this task so that we can identify if you understood the instructions and know what to do on all subsequent issues upon assignment. (Note: Please provide estimates on all the issues that you pick up, going forward.)
    Availability for this week:
    My estimated ETA for completing this issue:
    
    • Time spent so far: Copy the question below into a new comment below (in this pre-work issue only) and answer it. This is just to get feedback on how long it took you to get to this point on this pre-work. There is no right or wrong answers. There is no judgement. It is ok if you take a long time or if you do it really fast or at any pace.
    How many hours did it take you to finish the pre-work up to and including adding your initial ETA and availability for your good first issue, including attending your first meetings?
    
    • Progress Reports: Copy the below and put it in the issue once you have been assigned to the issue at least 5 days (we check weekly on Fridays), or sooner if you have something to report. If you finish this issue before 5 days are reached, Yeah!!, do it on your next issue. This update should be done every week for every issue that you are assigned to. The checkbox here is meant for us to see if you understood the instructions when you end up doing your first weekly progress update.
    Provide Update
    1. Progress
    2. Blockers
    3. Availability
    4. ETA
    
  • Read sections 3.1.a - 3.1.c in 3.1 How to make a pull request to learn more about how to make a pull request (PR) for the issue that you are working on and how to make changes to your PR if changes are requested by the reviewer
  • Additional notes:
    • Please don't forget to review pull requests whenever you are able to. The How to review Pull Requests guide will teach you how to review pull requests.
    • Please work on only one issue at a time and wait until your pull request is merged before picking up another issue.
  • Read and understand how we progress through issues. Then, you can check this off.
    Progress through issues in the prioritized backlog only with increasing complexity in the following order:
    • Good first issue (one per person)
    • Good second issue (one per person)
    • Small (one per person, with some exceptions, see below)
    • Medium (you can work on more than one medium issue, but only one at a time)
    • Large (you can work on more than one large issue, but only one at a time)
      • The reasons for this progression are:
        • The issues start out as being prescriptive and become less so as you gain more experience by working through increasingly complex issues.
        • We are trying to teach you the team methodology through the issues themselves.
        • It ensures you understand what we expect and the quality of contributions.
      • You can work on back-to-back small issues if it meets the following criteria:
        • You are learning something new and need to work on an issue of a lesser complexity
        • Special request by a lead or pm
  • Read the Start Here - Developers in Figma
  • Go familiarize yourself with the Hack for LA Design System page in Figma (where you can see components and their SCSS classes)
  • Once all tasks are completed, close this issue. This issue will remain open until you get through your first progress report. Once you have done that, we are confident you know how to keep the momentum going on your issue and keep your team informed.

What should I do if I have a question about an issue I'm working on, and I haven't gotten a response yet?

  • First, you should post the question or blocker as a comment on your assigned issue, so it can be easily referred to in the next bullet points.
  • Then, add the label "Status: Help Wanted" so other developers can see it and potentially help answer your question. In addition, you will still need to post a Slack message or bring it up in meeting so we know you need help; see below for how to do that.
  • Also, you can post your question on the hfla-site slack channel and link the issue you're working on, so other developers can see and respond.
  • Lastly, you can add the issue to the "Development team meeting discussion items" column of the Project Board so that it can be addressed in the next development meeting. Please bring it during the meeting that you need help.

Resources/Instructions

@roslynwythe
Copy link
Member

Hi @klei0229 Please add the appropriate role label and also for Project, select "Project Board". When you have made those changes, please let me know in a comment. Thanks and welcome to Hack for LA

@klei0229 klei0229 added role: front end Tasks for front end developers role: back end/devOps Tasks for back-end developers and removed role missing labels Aug 16, 2023
@klei0229
Copy link
Member Author

klei0229 commented Aug 16, 2023

Hi @roslynwythe, I went ahead and made the changes. Will proceed to work on the remaining items. Thanks!

@wanyuguan wanyuguan added this to the 08. Team workflow milestone Aug 19, 2023
@klei0229
Copy link
Member Author

I'm having a blocker while working on 1.6 of this guide: setting up the docker dev enviroment.

Context: I am trying to set up my development environment. I am on a Windows machine that runs WSL Ubuntu.

Blocker: Running the command docker-compose up on WSL does not yield the expected result. I get the following permission denied error.

Error:

root@DESKTOP-9670AL5:~/hackforla/website# docker-compose up
[+] Running 1/0
✔ Container hfla_site Created 0.0s
Attaching to hfla_site
hfla_site | ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux-musl]
hfla_site | Configuration file: /srv/jekyll/_config.yml
hfla_site | Cleaner: Nothing to do for /srv/jekyll/_site.
hfla_site | Cleaner: Nothing to do for ./.jekyll-metadata.
hfla_site | Cleaner: Nothing to do for .sass-cache.
hfla_site | ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux-musl]
hfla_site | Configuration file: _config.yml
hfla_site | Configuration file: _config.docker.yml
hfla_site | Source: .
hfla_site | Destination: /srv/jekyll/_site
hfla_site | Incremental build: enabled
hfla_site | Generating...
hfla_site | jekyll 3.9.2 | Error: Permission denied @ dir_s_mkdir - /srv/jekyll/_site
hfla_site | /usr/local/lib/ruby/2.7.0/fileutils.rb:250:in mkdir': Permission denied @ dir_s_mkdir - /srv/jekyll/_site (Errno::EACCES) hfla_site | from /usr/local/lib/ruby/2.7.0/fileutils.rb:250:in fu_mkdir'
hfla_site | from /usr/local/lib/ruby/2.7.0/fileutils.rb:228:in block (2 levels) in mkdir_p' hfla_site | from /usr/local/lib/ruby/2.7.0/fileutils.rb:226:in reverse_each'
hfla_site | from /usr/local/lib/ruby/2.7.0/fileutils.rb:226:in block in mkdir_p' hfla_site | from /usr/local/lib/ruby/2.7.0/fileutils.rb:211:in each'
hfla_site | from /usr/local/lib/ruby/2.7.0/fileutils.rb:211:in mkdir_p' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/convertible.rb:226:in write'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:209:in block in write' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:332:in block (2 levels) in each_site_file'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:331:in each' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:331:in block in each_site_file'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:330:in each' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:330:in each_site_file'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:208:in write' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/site.rb:73:in process'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/command.rb:28:in process_site' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/commands/build.rb:65:in build'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/commands/build.rb:36:in process' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/commands/serve.rb:93:in block in start'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/commands/serve.rb:93:in each' hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/commands/serve.rb:93:in start'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/lib/jekyll/commands/serve.rb:75:in block (2 levels) in init_with_program' hfla_site | from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in block in execute'
hfla_site | from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in each' hfla_site | from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in execute'
hfla_site | from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in go' hfla_site | from /usr/gem/gems/mercenary-0.3.6/lib/mercenary.rb:19:in program'
hfla_site | from /usr/gem/gems/jekyll-3.9.2/exe/jekyll:15:in <top (required)>' hfla_site | from /usr/gem/bin/jekyll:25:in load'
hfla_site | from /usr/gem/bin/jekyll:25:in `

'
hfla_site exited with code 1

Expected Result: Running docker-compose up would create the hfla site image which would then create a image. This image would be accessed through localhost:4000 on the host machine.

My approach so far: Following this post: stackoverflow, it seems like the service does not have the proper permissions and is exiting. I tried to google how to give Jekyll the proper permissions by following the fixes within this post and have also tried to do a fresh install of docker - but neither worked for me.

Does anyone have any leads as to what is going on here? Appreciate any help. Thank you!

@MattPereira
Copy link
Contributor

MattPereira commented Aug 23, 2023

@klei0229 excellent job providing context for your blocker! 👏

My understanding is that the Jekyll proccess that is running inside the Docker container is trying to write to the /srv/jekyll/_site directory but the "user" that exists inside the container does not have the required permissions.

I've run into this situation with other projects and the fix that worked for me was running this command in the root directory of the project

sudo chown -R $USER:$USER .

The command changes the ownership of the files and directories for the current working directory and sub-directories. You also may need to docker compose build --no-cache afterwords.

I'm curious what the output of the command ls -l looks like on your machine if you run it before the suggested fix. Here is what a working file/directory permissions output looks like

See screenshot

image

And here are some GPT4 logs that may help with understanding the situation:
https://chat.openai.com/share/804348f0-7273-44ee-95c4-edf3af3dbd1a

@klei0229
Copy link
Member Author

klei0229 commented Aug 24, 2023

@MattPereira Thanks for looking into this!

Just wanted to update what I've tried today after looking into the things you suggested.

Update 1: I think it was odd that there's a permission issue because I was running as a root user on ubuntu. I tried running sudo chown -R $USER:$USER . both as a root user and as a regular user but I'm still having the same issue.

I wasn't able to capture the output of ls -l before using sudo chown -R $USER:$USER . but this is what the output is after running it. I think it looks similar to the output from your screenshot. What would you recommend for next steps?

image

My approach today: I'm looking into other approaches regarding not having the right permissions still and using chatgpt to generate a definitive guide as to how to install docker on windows with ubuntu. I think as a last resort I would consider create a new Ubuntu WSL distribution.

@klei0229
Copy link
Member Author

klei0229 commented Aug 24, 2023

Update 2: Fixed this issue!

I referenced this stack overflow post to get more information about granting permissions before running docker-compose up

I used this command to grant the Jekyll user (UID1000) write access and was able to get a successful output
sudo chown -R 1000:$USER ~/hackforla/website

image

@klei0229
Copy link
Member Author

klei0229 commented Aug 27, 2023

Prework Question: How many hours did it take you to finish the pre-work up to and including adding your initial ETA and availability for your good first issue, including attending your first meetings?

Answer: The progress I've made for the pre-work so far (27/34 tasks) took approximately 6-8 hours. Majority of the time was setting up/fixing a Docker issue during setup on my local environment.

I attended a Tuesday & Thursday Meeting. My development setup is done now and I am on the lookout for a first good issue under the prioritized backlog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complexity: Prework prework Feature: Onboarding/Contributing.md needed next issue role: back end/devOps Tasks for back-end developers role: front end Tasks for front end developers size: 1pt Can be done in 4-6 hours
Projects
Development

No branches or pull requests

5 participants