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

Foundations / Installation Overview: Preliminary WSL2 Introduction #25402

Merged
merged 37 commits into from
Nov 30, 2023

Conversation

xandora
Copy link
Member

@xandora xandora commented Apr 29, 2023

Include preliminary introduction to WSL2.

Because

It's about time we include WSL2 as an option for learners to work their way through the curriculum.

This PR

  • Sets a base branch for collaboration to start including WSL in the lessons.
  • Will touch on the following lessons:
    • Installation Overview
    • ...

Issue

Additional Information

Pull Request Requirements

  • I have thoroughly read and understand The Odin Project Contributing Guide
  • The title of this PR follows the location of change: brief description of change format, e.g. Intro to HTML and CSS lesson: Fix link text
  • The Because section summarizes the reason for this PR
  • The This PR section has a bullet point list describing the changes in this PR
  • If this PR addresses an open issue, it is linked in the Issue section
  • If any lesson files are included in this PR, they have been previewed with the Markdown preview tool to ensure it is formatted correctly
  • If any lesson files are included in this PR, they follow the Layout Style Guide

Include preliminary introduction to WSL2.
@github-actions github-actions bot added Content: Foundations Involves the Foundations content Status: Needs Triage labels Apr 29, 2023
@KevinMulhern KevinMulhern requested review from a team, zachmmeyer, dm-murphy and fortypercenttitanium and removed request for a team, zachmmeyer and dm-murphy April 29, 2023 22:19
@KevinMulhern
Copy link
Member

Whoops, sorry @xandora, just noticing this is in draft. Would you like a reviewer assigned yet or do you have a bit more to do before it's ready for review?

@xandora
Copy link
Member Author

xandora commented Apr 29, 2023

Whoops, sorry @xandora, just noticing this is in draft. Would you like a reviewer assigned yet or do you have a bit more to do before it's ready for review?

It's very very draft, I just wanted a PR to point people to from the beta channel to kick off the collaboration.

@JoshDevHub
Copy link
Contributor

Lessons that need to be touched:

  • Installations Overview: The language on the section regarding Windows support and OS options will have to be updated
  • Foundations Installations: Will need to include WSL2 specific installation instructions
  • Text Editors: Will have to show how to use VSCode with WSL2. Introduce WSL-remote extension
  • Command Line Basics: Using the terminal with WSL2. This could just be about using the default Ubuntu terminal that comes with WSL2 Ubuntu, or it could include instructions on using WSL2 via the Windows Terminal.

At some point, it'll need to be communicated how to deal with filesystem difference and in particular, how to move files from Windows to WSL2's filesystem. This could be introduced when it's installed. I might think it's best to be put here in Links and Images, which is the first time learners would actually need to use this.

The rules and bot commands (hosted in other repos) will have to be updated as well. Probably want to have it so everything is rolled out together.

Copy link
Contributor

@fortypercenttitanium fortypercenttitanium left a comment

Choose a reason for hiding this comment

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

Looking good so far, I'm excited for this. Let me know if I can help by testing anything

@codyloyd
Copy link
Member

codyloyd commented Jun 5, 2023

I am going to remove the 'needs triage' label from this one to get it off of the list since it's still in draft... feel free to start pinging maintainers and/or add that label back when you're ready for a review here.

@Asartea
Copy link
Contributor

Asartea commented Jul 31, 2023

@xandora I think all the relevant lessons have now been updated, so this should be ready for review once the merge conflicts are resolved

@xandora xandora dismissed ManonLef’s stale review August 29, 2023 10:30

I can't find it to resolve it. 🙄

@xandora xandora requested a review from a team August 29, 2023 10:31
@ManonLef
Copy link
Member

I have gone through my previous review and left the ones unresolved that seem to be missing from the file now. Feel free to resolve those if they have become obsolete.

Copy link
Member

@ManonLef ManonLef left a comment

Choose a reason for hiding this comment

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

I left a bit more general feedback, mostly involving the installation lesson and style/formatting.

Good job everyone!

foundations/installations/command_line_basics.md Outdated Show resolved Hide resolved
foundations/installations/installations.md Outdated Show resolved Hide resolved
foundations/installations/installations.md Outdated Show resolved Hide resolved
foundations/installations/installations.md Outdated Show resolved Hide resolved
Copy link
Member

@01zulfi 01zulfi left a comment

Choose a reason for hiding this comment

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

Nothing to review from my side.

This is going to be a huge step forward in supporting windows; kudos to everyone contributing 🚀 🔥

foundations/html_css/html-foundations/links-and-images.md Outdated Show resolved Hide resolved

2. Next, download [this image](https://unsplash.com/photos/Mv9hjnEUHR4/download?force=true&w=640).

3. Right click on the new download at the bottom of the chrome window and select "Show in folder".
Copy link
Contributor

Choose a reason for hiding this comment

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

Not a blocker, but could be good to include instructions if a user doesn't have this enabled. "Alternatively, open the "Customize and control Google Chrome" kebab menu and select the "Downloads" item. This will show all of your downloads, each with its own "Show in folder" button."

Copy link
Contributor

Choose a reason for hiding this comment

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

Forgot to reply to this, but this is ✅ Done


4. Drag the file from your downloads folder to VSCode's file browser into your new `images` directory.

Dragging files from Windows into the VSCode file browser prevents the `Zone.Identifier` files from being copied over. From now on, any time you need to copy pictures or other downloaded files like this into WSL, you can do it in this way. If you ever accidentally copy these `Zone.Identifier` files into WSL, you can safely delete them without any issue.
Copy link
Contributor

Choose a reason for hiding this comment

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

I feel like we should still include some alternative instructions to drag and drop, even it means warning that copy pasting or whatever other way may result in a (harmless) duplicate file.

Copy link
Member Author

Choose a reason for hiding this comment

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

There's a small amount of dragging and dropping with the alternative:

  • Using your Ubuntu terminal, navigate to the folder you want to copy the image to (cd ~/odin-links-and-images for example)
  • Type cp <space>
  • Drag the dog.jpg image from a Windows Explorer window and drop it onto the terminal window, it should appear as "/mnt/c/users/username/Downloads/dog.jpg"
  • Type <space> . to tell cp that you want to copy the file to your current working directory
    • The full command will look something like cp "/mnt/c/users/username/Downloads/dog.jpg" .
  • Hit to complete the command, and use ls to confirm the file now exists

Copy link
Contributor

Choose a reason for hiding this comment

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

The alternative alternative is to just do this:

  1. Copy the file in Windows Explorer
  2. In Windows Explorer, navigate to Linux > > /home//etc
  3. Paste the file in that folder

This does get the :Zone.Identifier file, but doesn't use drag 'n drop

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe the solution is as simple as updating the verbiage to "Either drag and drop or copy and paste..." or something

Copy link
Contributor

Choose a reason for hiding this comment

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

Added the extra explanation by @xandora , which I think should be enough. If we see that lots of learners on Discord run into issues at this step we can always add extra instructions

foundations/installations/command_line_basics.md Outdated Show resolved Hide resolved
foundations/installations/installation_overview.md Outdated Show resolved Hide resolved
foundations/installations/installation_overview.md Outdated Show resolved Hide resolved
foundations/installations/installation_overview.md Outdated Show resolved Hide resolved
foundations/installations/text_editors.md Outdated Show resolved Hide resolved
foundations/installations/text_editors.md Outdated Show resolved Hide resolved
@thatblindgeye
Copy link
Contributor

@xandora despite the number of comments above 🎉 🔥 🚀 on this content! 😆

@Asartea
Copy link
Contributor

Asartea commented Sep 11, 2023

Will try to get to the comments either today or tomorrow

@Asartea
Copy link
Contributor

Asartea commented Sep 21, 2023

Will try to get to the comments either today or tomorrow

Okay, so that was a lie, but I think I should have gotten all your comments @thatblindgeye

@Asartea
Copy link
Contributor

Asartea commented Oct 1, 2023

Pokes @thatblindgeye

Copy link
Contributor

@thatblindgeye thatblindgeye left a comment

Choose a reason for hiding this comment

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

Left a reply to convo above, but I don't think it's a blocker at the moment. "Drag and drop this file..." may be synonymous to "copy and paste..." to users.

@Asartea
Copy link
Contributor

Asartea commented Oct 11, 2023

I think it should be okay to merge at this point. Hopefully, we have gotten every major issue fixed, and if anything minor pops up we can always fix it later

@xandora xandora merged commit 2302043 into TheOdinProject:main Nov 30, 2023
1 check passed
xandora pushed a commit to TheOdinProject/theodinproject that referenced this pull request Nov 30, 2023
**DO NOT MERGE:** Depends on TheOdinProject/curriculum/pull/25402

## Because
- We're moving to support WSL2

## This PR
- Updates the rules file to refer to WSL as a supported OS

## Pull Request Requirements
<!-- Replace the whitespace between the square brackets with an 'x',
e.g. [x]. After you create the PR, they will become checkboxes that you
can click on. -->
- [x] I have thoroughly read and understand [The Odin Project
Contributing
Guide](https://github.com/TheOdinProject/theodinproject/blob/main/CONTRIBUTING.md)
- [x] The title of this PR follows the `keyword: brief description of
change` format, using one of the following keywords:
  - `Feature` - adds new or amends existing user-facing behavior
- `Chore` - changes that have no user-facing value, refactors,
dependency bumps, etc
  - `Fix` - bug fixes
-   [x] The `Because` section summarizes the reason for this PR
- [x] The `This PR` section has a bullet point list describing the
changes in this PR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Content: Foundations Involves the Foundations content
Projects
No open projects
Status: 🆕 Needs Review
Development

Successfully merging this pull request may close these issues.