<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Development Environment | Chemeketa CS</title><link>https://computerscience.chemeketa.edu/guides/development/</link><atom:link href="https://computerscience.chemeketa.edu/guides/development/index.xml" rel="self" type="application/rss+xml"/><description>Development Environment</description><generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><image><url>https://computerscience.chemeketa.edu/images/icon_hu_9ce158bca5f7cacc.png</url><title>Development Environment</title><link>https://computerscience.chemeketa.edu/guides/development/</link></image><item><title>Codespace Development Workflow</title><link>https://computerscience.chemeketa.edu/guides/development/codespace-workflow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/codespace-workflow/</guid><description>&lt;p&gt;Follow these steps each time you work on a project in Codespaces. When working in
a local environment you won't need to sync to GitHub (Step 3) unless you have started
by cloning a project you cloned from GitHub and want to save your changes to that repository.&lt;/p&gt;
&lt;h2 id="1-edit-and-save"&gt;1. Edit and save&lt;/h2&gt;
&lt;p&gt;Chemeketa Worklog watches the project files and makes frequent Git commits as you save.
These commits document how your program developed. They are stored in the working copy
until you push them.&lt;/p&gt;
&lt;h2 id="2-build-and-run"&gt;2. Build and run&lt;/h2&gt;
&lt;p&gt;Open &lt;strong&gt;Run and Debug&lt;/strong&gt; in VS Code and choose the program or test configuration for your
project. To build from the terminal instead, use the commands in
&lt;a href="https://computerscience.chemeketa.edu/guides/command-line-development/compile-and-run/"&gt;Compile and Run&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="3-submit-the-assignment"&gt;3. Submit the assignment&lt;/h2&gt;
&lt;p&gt;Follow the submission instructions in the assignment. When a ZIP is required, open the
Command Palette and run &lt;strong&gt;Zip Project&lt;/strong&gt;, then upload the resulting &lt;code&gt;project.zip&lt;/code&gt; file.&lt;/p&gt;
&lt;h2 id="4-sync-to-github-optional"&gt;4. Sync to GitHub (Optional)&lt;/h2&gt;
&lt;p&gt;Making commits in your codespace (or having Chemeketa Worklog make them for you) does not automatically update the GitHub repository. You must sync or &lt;code&gt;push&lt;/code&gt; your commits to GitHub to save your work there. Syncing your work back to GitHub is optional. But it is the only way to preserve your work
after your codespace is deleted.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Source Control&lt;/strong&gt; in VS Code.&lt;/li&gt;
&lt;li&gt;Wait for Worklog to commit your most recent saved changes. If changes remain, commit
them manually.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Sync Changes&lt;/strong&gt; or &lt;strong&gt;Push&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open the repository on GitHub and confirm that the latest files and commits appear.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="5-stop-a-codespace"&gt;5. Stop a Codespace&lt;/h2&gt;
&lt;p&gt;Closing the browser tab does not necessarily stop the Codespace. Open the Command
Palette and run &lt;strong&gt;Codespaces: Stop Current Codespace&lt;/strong&gt;, or manage it from
&lt;a href="https://github.com/codespaces" target="_blank" rel="noopener"&gt;github.com/codespaces&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Stopping preserves the Codespace. You can restart it later and continue working on the same project. This is like putting a computer to sleep.&lt;/p&gt;
&lt;p&gt;Deleting a Codespace is equivalent to throwing away a computer. Only delete a Codespace once you are completely done with it. If you first sync your work to GitHub, you can delete the Codespace and later clone the repository to a new Codespace or to your local computer.&lt;/p&gt;
&lt;div class="alert alert-warning"&gt;
&lt;div&gt;
Projects that are stopped still consume storage space that counts against your quota on Github.
Once you are done with a project (it is turned in and you have received a grade), you should delete the Codespace to free up storage space.
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Develop in GitHub Codespaces</title><link>https://computerscience.chemeketa.edu/guides/development/codespaces/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/codespaces/</guid><description>&lt;p&gt;Use GitHub Codespaces for your first projects. It runs VS Code in a web browser and
already has the C++ compiler, Git, and VS Code extensions used in Chemeketa CS courses.
You can move the same projects to your own computer later.&lt;/p&gt;
&lt;p&gt;Watch this overview to see a repository opened and used in Codespaces:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/W7jANiojTOw" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="GitHub Codespaces Overview"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="set-up-github"&gt;Set up GitHub&lt;/h2&gt;
&lt;p&gt;Create a
&lt;a href="https://github.com/signup" target="_blank" rel="noopener"&gt;GitHub account&lt;/a&gt; if you do not already have one.
Use your Chemeketa email address and apply for
&lt;a href="https://github.com/settings/education/benefits" target="_blank" rel="noopener"&gt;GitHub Education benefits&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can begin using Codespaces while GitHub reviews your education application.
GitHub changes its included usage allowances periodically, so check the
&lt;a href="https://docs.github.com/en/billing/concepts/product-billing/github-codespaces" target="_blank" rel="noopener"&gt;Codespaces billing
documentation&lt;/a&gt;
for current limits.&lt;/p&gt;
&lt;h2 id="create-the-repository"&gt;Create the repository&lt;/h2&gt;
&lt;p&gt;Create a GitHub repository from the
&lt;a href="../project-templates/"&gt;Chemeketa project template&lt;/a&gt;
required by your assignment.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the template required by your assignment.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Use this template&lt;/strong&gt;, then &lt;strong&gt;Create a new repository&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Give the repository a descriptive name.&lt;/li&gt;
&lt;li&gt;Set its visibility to &lt;strong&gt;Private&lt;/strong&gt; unless your instructor says otherwise.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create repository&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not choose &lt;strong&gt;Open in a codespace&lt;/strong&gt; directly from the template repository. Create
your own repository first so your work has a permanent home.&lt;/p&gt;
&lt;h2 id="create-the-codespace"&gt;Create the Codespace&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;On your new repository's page, select &lt;strong&gt;Code&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Codespaces&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create codespace on main&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Wait while GitHub builds the development environment.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The VS Code editor opens in your browser when the Codespace is ready.&lt;/p&gt;
&lt;div class="alert alert-info"&gt;
&lt;div&gt;
The repository on GitHub is the permanent home for the project. The Codespace is a
temporary computer containing a working copy. You must sync your commits to GitHub
before deleting a Codespace.
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Development Setup Troubleshooting</title><link>https://computerscience.chemeketa.edu/guides/development/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/troubleshooting/</guid><description>&lt;h2 id="a-command-is-not-recognized"&gt;A command is not recognized&lt;/h2&gt;
&lt;p&gt;Run the command in a newly opened terminal. Install or repair the component if the test
fails:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;g++ --version
make --version
git --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On native Windows, test &lt;code&gt;mingw32-make --version&lt;/code&gt; instead of &lt;code&gt;make --version&lt;/code&gt;. On macOS,
test &lt;code&gt;g++-15 --version&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If a command works in one terminal but not VS Code, completely quit and reopen VS Code
so it receives the updated &lt;code&gt;Path&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="include-errors-or-wrong-compiler"&gt;Include errors or wrong compiler&lt;/h2&gt;
&lt;p&gt;If the project builds but VS Code underlines valid &lt;code&gt;#include&lt;/code&gt; statements:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/troubleshooting/error-includePath.jpg" alt="VS Code reporting an include-path error"&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the Command Palette.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;strong&gt;C/C++: Select IntelliSense Configuration&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/troubleshooting/intellisenseSelect.jpg" alt="Select the IntelliSense configuration command"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the compiler installed for the current environment.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/troubleshooting/intellisenseSelect2.jpg" alt="Choose the installed C&amp;#43;&amp;#43; compiler"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Expected locations include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;C:\mingw64\bin\g++.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Apple Silicon macOS: &lt;code&gt;/opt/homebrew/bin/g++-15&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux or WSL: the result of &lt;code&gt;which g++&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The compiler can have a different path on Intel Macs or Linux distributions. Select the
path reported by &lt;code&gt;which g++-15&lt;/code&gt; or &lt;code&gt;which g++&lt;/code&gt; rather than copying another platform's
path.&lt;/p&gt;
&lt;h2 id="vs-code-runs-in-the-wrong-environment"&gt;VS Code runs in the wrong environment&lt;/h2&gt;
&lt;p&gt;On Windows, check the lower-left corner of VS Code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A normal Windows window uses the native MinGW compiler.&lt;/li&gt;
&lt;li&gt;A window labeled &lt;strong&gt;WSL: Ubuntu&lt;/strong&gt; uses tools installed inside WSL.&lt;/li&gt;
&lt;li&gt;A Codespaces window uses the tools in the cloud development container.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Open a terminal in that window and run &lt;code&gt;g++ --version&lt;/code&gt; to test the environment VS Code
is actually using.&lt;/p&gt;
&lt;h2 id="the-run-and-debug-choices-are-missing"&gt;The Run and Debug choices are missing&lt;/h2&gt;
&lt;p&gt;Open the entire project folder rather than an individual source file. Confirm that the
folder contains &lt;code&gt;.vscode&lt;/code&gt;, &lt;code&gt;Makefile&lt;/code&gt;, and the program or test source files.&lt;/p&gt;
&lt;h2 id="worklog-is-not-making-commits"&gt;Worklog is not making commits&lt;/h2&gt;
&lt;p&gt;Confirm that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the Chemeketa Worklog extension is installed in the current environment;&lt;/li&gt;
&lt;li&gt;you opened the entire project folder;&lt;/li&gt;
&lt;li&gt;the project came from a prepared Chemeketa template; and&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git config --global --list&lt;/code&gt; shows your name and email.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Worklog does not push automatically. Use &lt;strong&gt;Sync Changes&lt;/strong&gt; after it commits.&lt;/p&gt;
&lt;h2 id="a-codespace-says-you-are-offline"&gt;A Codespace says you are offline&lt;/h2&gt;
&lt;p&gt;Browser privacy settings or content-blocking extensions can prevent Codespaces from
loading. Temporarily disable blocking for GitHub, allow the site's required cookies, or
try a supported browser without privacy extensions.&lt;/p&gt;
&lt;h2 id="git-reports-a-conflict"&gt;Git reports a conflict&lt;/h2&gt;
&lt;p&gt;Stop editing and do not delete either copy. A conflict means two environments changed
the same history. Preserve both versions and ask your instructor or tutor for help if
you are unsure which changes to keep.&lt;/p&gt;
&lt;p&gt;Before changing environments, complete the
&lt;a href="../working-locally/#switch-between-development-environments"&gt;environment-switching checklist&lt;/a&gt;
to prevent conflicts.&lt;/p&gt;</description></item><item><title>Git and Chemeketa Worklog</title><link>https://computerscience.chemeketa.edu/guides/development/git-worklog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/git-worklog/</guid><description>&lt;p&gt;Git records changes to a project as &lt;strong&gt;commits&lt;/strong&gt;. Chemeketa Worklog creates frequent
commits while you work in a Chemeketa project template. Keep this history: it documents
how you developed the program and is part of programming assignment requirements.&lt;/p&gt;
&lt;p&gt;This demonstration uses Worklog's former name, GitDoc. The workflow remains the same:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/UrNj0JRVhVc" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="Chemeketa Worklog"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="commits-vs-local-saves"&gt;Commits vs Local Saves&lt;/h2&gt;
&lt;p&gt;VSCode will save local edits to files. These saves are not recorded in the git history. A &lt;strong&gt;commit&lt;/strong&gt; is a snapshot of the changes to the project that is recorded in the git history.
When you save a project to turn in, your local VS code edit history is NOT included. Only the
git commits will be available to your instructor.&lt;/p&gt;
&lt;h2 id="troubleshooting-the-worklog-while-developing-locally"&gt;Troubleshooting the Worklog While Developing Locally&lt;/h2&gt;
&lt;p&gt;If you are working locally (using VS code on your computer and not in a codespace) and you do not see commits being created, check that the Chemeketa Worklog extension is installed and enabled. If it is installed, verify that you have configured your Git identity. See the
&lt;a href="../git-identity/"&gt;Git Identity Setup instructions&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Git Identity Setup</title><link>https://computerscience.chemeketa.edu/guides/development/git-identity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/git-identity/</guid><description>&lt;p&gt;After installing Git, you must configure your identity with your name and Chemeketa email address. This is required for the Chemeketa Worklog extension to create commits while you work in a project template.&lt;/p&gt;
&lt;p&gt;To do so, open a terminal and run these commands. Replace the example
values with your own name and Chemeketa email address:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;git config --global user.name &amp;quot;Your Name&amp;quot;
git config --global user.email &amp;quot;yourname@my.chemeketa.edu&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify the settings:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;git config --global --list
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Configure Git separately in native Windows and WSL if you use both environments.&lt;/p&gt;</description></item><item><title>Install Windows Subsystem for Linux</title><link>https://computerscience.chemeketa.edu/guides/development/wsl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/wsl/</guid><description>&lt;p&gt;Install Windows Subsystem for Linux (WSL) after completing the
&lt;a href="../windows/"&gt;native Windows setup&lt;/a&gt;. WSL lets you run Linux tools, including Valgrind,
on your Windows computer.&lt;/p&gt;
&lt;p&gt;WSL has its own compiler, Git configuration, and VS Code extensions. Your course
projects can remain in the Windows filesystem and be accessed from both Windows and
WSL.&lt;/p&gt;
&lt;p&gt;You must have an up-to-date copy of Windows 10 or Windows 11.&lt;/p&gt;
&lt;h2 id="enable-windows-subsystem-for-linux"&gt;Enable Windows Subsystem for Linux&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the Start menu and search for &lt;strong&gt;Turn Windows features on or off&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/WindowsFeatures.png" alt="Windows Features in the Start menu"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open it and select &lt;strong&gt;Windows Subsystem for Linux&lt;/strong&gt; and
&lt;strong&gt;Virtual Machine Platform&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/WSLFeature.png" alt="Enable Windows Subsystem for Linux"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/vmpplatform.png" alt="Enable Virtual Machine Platform"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;OK&lt;/strong&gt; and allow Windows to install the feature.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Restart your computer when prompted.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="install-ubuntu"&gt;Install Ubuntu&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the &lt;strong&gt;Microsoft Store&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/MSStore.png" alt="Microsoft Store in the Start menu"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Search for &lt;strong&gt;Ubuntu&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the unversioned Ubuntu app and install it. If an unversioned app is not
available, install the app with the highest version number.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/UbuntuApp.png" alt="Install Ubuntu from the Microsoft Store"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open Ubuntu from the Start menu after installation finishes.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/WSLApp.png" alt="Open Ubuntu from the Start menu"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first launch takes a few minutes to finish setting up Ubuntu. It then asks you to
create a Linux username and password. Choose a password you can remember and keep it
private. Linux does not display characters while you type a password; that is normal.&lt;/p&gt;
&lt;h2 id="install-linux-development-tools"&gt;Install Linux development tools&lt;/h2&gt;
&lt;p&gt;In the Ubuntu terminal, update the available package information:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;sudo apt update
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ubuntu checks its package sources and displays the available updates:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/wsl/UbuntuUpdates.png" alt="Ubuntu checking for package updates"&gt;&lt;/p&gt;
&lt;p&gt;Enter the Linux password you created when prompted. Then install the compiler, debugger,
Git, and Valgrind:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;sudo apt install build-essential gdb git valgrind
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then test the tools:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;g++ --version
make --version
gdb --version
git --version
valgrind --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project Makefiles use the default &lt;code&gt;g++&lt;/code&gt; command. The template's included IntelliSense
configuration may name a versioned compiler such as &lt;code&gt;/usr/bin/g++-15&lt;/code&gt;. If VS Code shows
include errors, select the compiler you installed as described in
&lt;a href="../troubleshooting/#include-errors-or-wrong-compiler"&gt;Troubleshooting&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="configure-git-inside-wsl"&gt;Configure Git inside WSL&lt;/h2&gt;
&lt;p&gt;Git's Windows configuration is not automatically reused inside WSL. Follow
&lt;a href="../local-setup/#configure-your-identity"&gt;Configure your identity&lt;/a&gt; from an Ubuntu
terminal.&lt;/p&gt;
&lt;h2 id="navigating-in-the-virtual-machine"&gt;Navigating in the Virtual Machine&lt;/h2&gt;
&lt;p&gt;Windows drives appear inside WSL under &lt;code&gt;/mnt&lt;/code&gt;. For example, &lt;code&gt;C:\CSProjects&lt;/code&gt; is
&lt;code&gt;/mnt/c/CSProjects&lt;/code&gt; in Ubuntu.&lt;/p&gt;
&lt;p&gt;This video demonstrates how to navigate in WSL and access files stored in Windows:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/n9Wl9KjcWKw" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="Using WSL"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This alternate walkthrough demonstrates the same Windows-file navigation in another
version of Ubuntu:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/ZNniXE80REA" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="Using WSL: Alternate Walkthrough"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;After the commands work,
&lt;a href="../vscode-wsl/"&gt;connect VS Code to WSL&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Linux Local Setup</title><link>https://computerscience.chemeketa.edu/guides/development/linux/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/linux/</guid><description>&lt;p&gt;On Ubuntu or another distribution that uses &lt;code&gt;apt&lt;/code&gt;, install the required tools with:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;sudo apt update
sudo apt install build-essential gdb git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Test the tools:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;g++ --version
make --version
gdb --version
git --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Chemeketa projects use C++20. Package names and compiler versions vary among Linux
distributions. If your compiler cannot build the project, install a newer GCC package
using your distribution's instructions.&lt;/p&gt;
&lt;h2 id="install-vs-code-and-extensions"&gt;Install VS Code and extensions&lt;/h2&gt;
&lt;p&gt;Install
&lt;a href="https://code.visualstudio.com/download" target="_blank" rel="noopener"&gt;Visual Studio Code&lt;/a&gt; using the package
for your distribution. Open the Extensions view with &lt;code&gt;Ctrl+Shift+X&lt;/code&gt; and install:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;ms-vscode.cpptools
cschlosser.doxdocgen
usernamehw.errorlens
ascholer.chemeketa-gitdoc
davidkaiser.kaiser-project-zip
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="configure-git"&gt;Configure Git&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;git&lt;/code&gt; package was installed with the development tools above. Complete the
&lt;a href="../local-setup/#configure-your-identity"&gt;Git identity setup&lt;/a&gt; before starting a local
project.&lt;/p&gt;
&lt;h2 id="verify-the-complete-setup"&gt;Verify the complete setup&lt;/h2&gt;
&lt;p&gt;Create or download a fresh
&lt;a href="../project-templates/"&gt;Basic Project&lt;/a&gt;, open its entire folder
in VS Code, and run the &lt;strong&gt;Run Program&lt;/strong&gt; configuration.&lt;/p&gt;
&lt;p&gt;The template's IntelliSense configuration currently names &lt;code&gt;/usr/bin/g++-15&lt;/code&gt;. If your
compiler has a different path, use &lt;strong&gt;C/C++: Select IntelliSense Configuration&lt;/strong&gt; in the
Command Palette and select the &lt;code&gt;g++&lt;/code&gt; you installed.&lt;/p&gt;</description></item><item><title>macOS Local Setup</title><link>https://computerscience.chemeketa.edu/guides/development/macos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/macos/</guid><description>&lt;p&gt;Install Homebrew GCC 15 for Chemeketa projects. The project settings select this
compiler instead of Apple's Clang compiler.&lt;/p&gt;
&lt;h2 id="install-the-command-line-tools"&gt;Install the command-line tools&lt;/h2&gt;
&lt;p&gt;Open Terminal and run:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;xcode-select --install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This installs Make, Git, and other command-line tools required by Homebrew and VS Code.&lt;/p&gt;
&lt;h2 id="install-homebrew-and-gcc"&gt;Install Homebrew and GCC&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Follow the installation command at
&lt;a href="https://brew.sh/" target="_blank" rel="noopener"&gt;brew.sh&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Follow every shell-configuration instruction Homebrew prints after installation.&lt;/li&gt;
&lt;li&gt;Close and reopen Terminal.&lt;/li&gt;
&lt;li&gt;Install the GCC version used by the templates:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;brew install gcc@15
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Test the compiler and other command-line tools:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;g++-15 --version
make --version
git --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This demonstration shows the Xcode tools, Homebrew, and GCC installation process.
Follow the current commands above if the Homebrew output or GCC version shown in the
video differs:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/vPI3DTYwx1s" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="macOS Compiler Setup"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="install-vs-code-and-extensions"&gt;Install VS Code and extensions&lt;/h2&gt;
&lt;p&gt;Install
&lt;a href="https://code.visualstudio.com/download" target="_blank" rel="noopener"&gt;Visual Studio Code&lt;/a&gt;. Open the Extensions
view with &lt;code&gt;Cmd+Shift+X&lt;/code&gt; and install:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;ms-vscode.cpptools
cschlosser.doxdocgen
usernamehw.errorlens
ascholer.chemeketa-gitdoc
davidkaiser.kaiser-project-zip
vadimcn.vscode-lldb
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="configure-git"&gt;Configure Git&lt;/h2&gt;
&lt;p&gt;Git was installed with the Xcode command-line tools. Complete the
&lt;a href="../local-setup/#configure-your-identity"&gt;Git identity setup&lt;/a&gt; before starting a local
project.&lt;/p&gt;
&lt;h2 id="verify-the-complete-setup"&gt;Verify the complete setup&lt;/h2&gt;
&lt;p&gt;Create or download a fresh
&lt;a href="../project-templates/"&gt;Basic Project&lt;/a&gt;, open its entire folder
in VS Code, and run the &lt;strong&gt;Run Program (Mac)&lt;/strong&gt; configuration.&lt;/p&gt;
&lt;p&gt;The templates expect Homebrew at &lt;code&gt;/opt/homebrew&lt;/code&gt;, the normal location on Apple Silicon
Macs. On an Intel Mac, or if &lt;code&gt;which g++-15&lt;/code&gt; reports another location, use
&lt;strong&gt;C/C++: Select IntelliSense Configuration&lt;/strong&gt; in the Command Palette and select the
installed &lt;code&gt;g++-15&lt;/code&gt;. See
&lt;a href="../troubleshooting/"&gt;Troubleshooting&lt;/a&gt; if the project builds but
VS Code shows include errors.&lt;/p&gt;</description></item><item><title>Project Templates</title><link>https://computerscience.chemeketa.edu/guides/development/project-templates/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/project-templates/</guid><description>&lt;p&gt;Start each project from the template named in the assignment. The template includes the
build, debugging, formatting, and Worklog settings used by Chemeketa CS courses.&lt;/p&gt;
&lt;h2 id="choose-a-template"&gt;Choose a template&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ChemeketaCS/TemplateBasicProject" target="_blank" rel="noopener"&gt;Basic Project&lt;/a&gt; contains a
&lt;code&gt;main.cpp&lt;/code&gt; program.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ChemeketaCS/TemplateUnitTestProject" target="_blank" rel="noopener"&gt;Unit Test Project&lt;/a&gt; contains
a doctest test program.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ChemeketaCS/TemplateComboProject" target="_blank" rel="noopener"&gt;Combo Project&lt;/a&gt; contains both
a main program and a doctest test program.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the Basic Project when your instructor does not specify a template.&lt;/p&gt;
&lt;h2 id="create-a-github-repository"&gt;Create a GitHub repository&lt;/h2&gt;
&lt;p&gt;This is the recommended method for Codespaces and local development.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the appropriate template repository.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Use this template&lt;/strong&gt;, then &lt;strong&gt;Create a new repository&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Name the repository and make it private.&lt;/li&gt;
&lt;li&gt;Create it, then either open a Codespace or clone it to your computer.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="create-a-project-without-github"&gt;Create a project without GitHub&lt;/h2&gt;
&lt;p&gt;Use this method only when you need a project that will remain completely local.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the appropriate template repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the &lt;strong&gt;Releases&lt;/strong&gt; page and select the release marked &lt;strong&gt;Latest&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/project-templates/releases.png" alt="Open the latest release from a GitHub repository"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Download the prepared project ZIP attached to that release.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Extract it and rename the project folder.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not use GitHub's general &lt;strong&gt;Download ZIP&lt;/strong&gt; button. That archive does not include the
prepared Git history needed by Chemeketa Worklog.&lt;/p&gt;
&lt;p&gt;Avoid spaces in project names and do not place active projects in OneDrive, iCloud, or
another synchronized folder.&lt;/p&gt;
&lt;h2 id="use-the-included-project-settings"&gt;Use the included project settings&lt;/h2&gt;
&lt;p&gt;Keep the template's Makefile and &lt;code&gt;.vscode&lt;/code&gt; folder with your project. Together, they:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;build C++20 projects through a Makefile;&lt;/li&gt;
&lt;li&gt;provide VS Code build and debugging commands;&lt;/li&gt;
&lt;li&gt;use MinGW GCC on Windows, Homebrew GCC on macOS, and GCC on Linux;&lt;/li&gt;
&lt;li&gt;enable Chemeketa Worklog to make frequent local commits; and&lt;/li&gt;
&lt;li&gt;provide a Codespaces development container.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Worklog creates commits but does not push them to GitHub. Follow the steps in
&lt;a href="../git-worklog/"&gt;Git and Worklog&lt;/a&gt; to save those commits to GitHub.&lt;/p&gt;</description></item><item><title>Set Up Your Computer</title><link>https://computerscience.chemeketa.edu/guides/development/local-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/local-setup/</guid><description>&lt;p&gt;Continue using Codespaces until your course asks you to work locally. Then install the
tools for your operating system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="../windows/"&gt;Windows setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="../macos/"&gt;macOS setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="../linux/"&gt;Linux setup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You then will need to configure Git with your name and Chemeketa email address. See
&lt;a href="../git-identity/"&gt;Git and Worklog&lt;/a&gt; for instructions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="../git-identity/"&gt;Git setup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Install all four components before opening an assignment on your computer:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A C++ compiler and Make&lt;/li&gt;
&lt;li&gt;Visual Studio Code&lt;/li&gt;
&lt;li&gt;The required VS Code extensions&lt;/li&gt;
&lt;li&gt;Git, including your name and email configuration&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This demonstration shows how to install VS Code and the course extensions. Use your
operating system's setup steps above for the current extension list:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/Z-kGtzLAIxc" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="VS Code Setup"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Use VS Code with WSL</title><link>https://computerscience.chemeketa.edu/guides/development/vscode-wsl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/vscode-wsl/</guid><description>&lt;p&gt;Use the copy of VS Code installed in Windows; do not install a second copy inside WSL.
Install this extension in the Windows copy of VS Code:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;ms-vscode-remote.remote-wsl
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="keep-projects-in-the-windows-filesystem"&gt;Keep projects in the Windows filesystem&lt;/h2&gt;
&lt;p&gt;Use the same Windows project folder you created for local development. Do not put
projects in OneDrive, Dropbox, or another synchronized folder, and do not create a
second copy in the WSL home folder.&lt;/p&gt;
&lt;p&gt;WSL mounts the Windows &lt;code&gt;C:&lt;/code&gt; drive at &lt;code&gt;/mnt/c&lt;/code&gt;. For example, the Windows project
&lt;code&gt;C:\CSProjects\MyProject&lt;/code&gt; is available in WSL at:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;/mnt/c/CSProjects/MyProject
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="open-the-project-in-wsl"&gt;Open the project in WSL&lt;/h2&gt;
&lt;p&gt;Open Ubuntu and change to the Windows project folder:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;cd /mnt/c/CSProjects/MyProject
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Replace the example path with the location of your project. Put quotation marks around
the path if any folder name contains spaces. Then run:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;code .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;VS Code opens a new window connected to WSL. Look for &lt;strong&gt;WSL: Ubuntu&lt;/strong&gt; in the lower-left
corner. Terminals, builds, and debugging in this window now run inside Linux.&lt;/p&gt;
&lt;p&gt;VS Code extensions that execute tools must also be installed in WSL. When prompted,
install the recommended C/C++, Error Lens, Doxygen, Worklog, and Project Zip extensions
in the WSL environment.&lt;/p&gt;
&lt;h2 id="switch-between-windows-and-wsl"&gt;Switch between Windows and WSL&lt;/h2&gt;
&lt;p&gt;Close the current VS Code window before opening the project in the other environment.
Windows and Linux programs are not interchangeable, even when both are named
&lt;code&gt;program.exe&lt;/code&gt;. Clean the old build before rebuilding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;After moving from Windows to WSL, run &lt;code&gt;make clean&lt;/code&gt;, then build in WSL.&lt;/li&gt;
&lt;li&gt;After moving from WSL to Windows, run &lt;code&gt;mingw32-make clean&lt;/code&gt;, then build in Windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not edit the project from Windows and WSL at the same time. Before moving between
your computer and Codespaces, use the
&lt;a href="../working-locally/#switch-between-development-environments"&gt;environment-switching checklist&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Windows Local Setup</title><link>https://computerscience.chemeketa.edu/guides/development/windows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/windows/</guid><description>&lt;p&gt;Install the native Windows tools first. You will use them for local projects before you
add WSL.&lt;/p&gt;
&lt;h2 id="install-the-compiler-and-make"&gt;Install the compiler and Make&lt;/h2&gt;
&lt;p&gt;Download the
&lt;a href="https://github.com/niXman/mingw-builds-binaries/releases/download/15.2.0-rt_v13-rev1/x86_64-15.2.0-release-posix-seh-ucrt-rt_v13-rev1.7z" target="_blank" rel="noopener"&gt;GCC 15 MinGW archive&lt;/a&gt;. (We are installing the 64-bit version of GCC 15.2.0 with POSIX threading, SEH, and the UCRT runtime.)&lt;/p&gt;
&lt;p&gt;Windows 11 can extract &lt;code&gt;.7z&lt;/code&gt; archives. On older systems, install
&lt;a href="https://www.7-zip.org/" target="_blank" rel="noopener"&gt;7-Zip&lt;/a&gt; first.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Extract the archive to &lt;code&gt;C:\&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Confirm that &lt;code&gt;C:\mingw64\bin&lt;/code&gt; contains &lt;code&gt;g++.exe&lt;/code&gt; and &lt;code&gt;mingw32-make.exe&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the Start menu and search for &lt;strong&gt;Edit the system environment variables&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/windows/env_vars_menu.png" alt="Search for the Windows environment-variable settings"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the result, select the &lt;strong&gt;Advanced&lt;/strong&gt; tab, and select &lt;strong&gt;Environment Variables&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/windows/sys_properties.png" alt="Open Environment Variables from System Properties"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;code&gt;Path&lt;/code&gt; under &lt;strong&gt;User variables&lt;/strong&gt;, then select &lt;strong&gt;Edit&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/windows/env_vars_cpl.png" alt="Select the Path environment variable"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;New&lt;/strong&gt;, enter &lt;code&gt;C:\mingw64\bin&lt;/code&gt;, and select &lt;strong&gt;OK&lt;/strong&gt; until all the settings
windows close.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/windows/path_edit.png" alt="Add a folder to the Windows Path"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Close and reopen any terminal windows.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Open PowerShell and test both tools:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;g++ --version
mingw32-make --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This demonstration shows how to extract MinGW and add its &lt;code&gt;bin&lt;/code&gt; folder to the Windows
Path. Follow the folder names and compiler version in the written steps above if they
differ from the video:&lt;/p&gt;
&lt;div class="video-block" style="position: relative; width: 500px; max-width: 100%;"&gt;
&lt;div class="youtube" style="position: relative; width: 500px; height: 281px; max-width: 100%;"&gt;
&lt;iframe src="https://www.youtube.com/embed/cbEMl2NPW2s" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="MinGW and Path Setup"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="install-vs-code-and-extensions"&gt;Install VS Code and extensions&lt;/h2&gt;
&lt;p&gt;Install
&lt;a href="https://code.visualstudio.com/download" target="_blank" rel="noopener"&gt;Visual Studio Code&lt;/a&gt;. Then open the
Extensions view with &lt;code&gt;Ctrl+Shift+X&lt;/code&gt; and install:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;ms-vscode.cpptools
cschlosser.doxdocgen
usernamehw.errorlens
ascholer.chemeketa-gitdoc
davidkaiser.kaiser-project-zip
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="install-and-configure-git"&gt;Install and configure Git&lt;/h2&gt;
&lt;p&gt;Install the 64-bit version of
&lt;a href="https://git-scm.com/download/win" target="_blank" rel="noopener"&gt;Git for Windows&lt;/a&gt;.
Choose Visual Studio Code when the installer asks for a default text editor.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://computerscience.chemeketa.edu/img/guides/development/windows/git-default-editor.png" alt="Choose Visual Studio Code as Git&amp;#39;s default editor"&gt;&lt;/p&gt;
&lt;p&gt;Open a new PowerShell window and verify the installation:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;git --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then
&lt;a href="../local-setup/#configure-your-identity"&gt;configure your Git identity&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="verify-the-complete-setup"&gt;Verify the complete setup&lt;/h2&gt;
&lt;p&gt;Create or download a fresh
&lt;a href="../project-templates/"&gt;Basic Project&lt;/a&gt; and open its entire
folder in VS Code.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Run and Debug&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Run Program&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Start the program.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The template should run &lt;code&gt;mingw32-make&lt;/code&gt;, create &lt;code&gt;program.exe&lt;/code&gt;, and open the program in
the debugger. If it does not, see
&lt;a href="../troubleshooting/"&gt;Troubleshooting&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Work on a Project Locally</title><link>https://computerscience.chemeketa.edu/guides/development/working-locally/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://computerscience.chemeketa.edu/guides/development/working-locally/</guid><description>&lt;p&gt;Complete the
&lt;a href="../local-setup/"&gt;local setup&lt;/a&gt; for your operating system before following
this page.&lt;/p&gt;
&lt;h2 id="choose-a-project-location"&gt;Choose a project location&lt;/h2&gt;
&lt;p&gt;Make a folder for your CS projects. Avoid spaces in folder names and avoid OneDrive,
iCloud, Dropbox, or other synchronized folders. Synchronization programs can interfere
with Git and build tools.&lt;/p&gt;
&lt;h2 id="set-up-the-code"&gt;Set up the Code&lt;/h2&gt;
&lt;p&gt;Use one of these methods to get the project code on your computer.&lt;/p&gt;
&lt;h3 id="a-clone-code-from-github"&gt;A. Clone code from GitHub&lt;/h3&gt;
&lt;p&gt;For projects that began in Codespaces. Or if you want to be able to synchronize with a GitHub repository.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make a Github repository from the
&lt;a href="../project-templates/"&gt;Chemeketa project template&lt;/a&gt; required by your assignment. (Or find your existing repository on GitHub.)&lt;/li&gt;
&lt;li&gt;In VSCode, open the Command Palette with &lt;code&gt;Ctrl+Shift+P&lt;/code&gt; or &lt;code&gt;Cmd+Shift+P&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;strong&gt;Git: Clone&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Clone from GitHub&lt;/strong&gt; and authorize VS Code if prompted.&lt;/li&gt;
&lt;li&gt;Select the project repository.&lt;/li&gt;
&lt;li&gt;Choose your CS projects folder on your computer as the destination.&lt;/li&gt;
&lt;li&gt;Open the cloned project when VS Code prompts you.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="b-start-a-completely-local-project"&gt;B. Start a completely local project&lt;/h3&gt;
&lt;p&gt;If you just want to work on a project locally without using GitHub, download the prepared release described under
&lt;a href="../project-templates/#create-a-project-without-github"&gt;Create a project without GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Open the whole project folder in VS Code (File &amp;gt; Open Folder).&lt;/p&gt;
&lt;div class="alert alert-warning"&gt;
&lt;div&gt;
Do not open single files in VS Code. Opening a folder is required for the build and debugger to work correctly (they need the Makefile and &lt;code&gt;.vscode&lt;/code&gt; folder).
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="build-and-run"&gt;Build and run&lt;/h2&gt;
&lt;p&gt;Open &lt;strong&gt;Run and Debug&lt;/strong&gt;, select the configuration for your platform and target, and start
the program. See
&lt;a href="https://computerscience.chemeketa.edu/guides/command-line-development/compile-and-run/"&gt;Compile and Run&lt;/a&gt; to
build from the terminal.&lt;/p&gt;
&lt;h2 id="switch-between-development-environments"&gt;Switch between development environments&lt;/h2&gt;
&lt;p&gt;A GitHub repository lets you work on the same project in Codespaces, directly on your
computer, or in WSL. GitHub is the handoff point between those working copies.&lt;/p&gt;
&lt;h3 id="before-leaving-the-current-environment"&gt;Before leaving the current environment&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Save every file.&lt;/li&gt;
&lt;li&gt;Confirm that Worklog committed the latest changes.&lt;/li&gt;
&lt;li&gt;Open Source Control and select &lt;strong&gt;Sync Changes&lt;/strong&gt; or &lt;strong&gt;Push&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open the repository on GitHub and confirm the latest commit appears.&lt;/li&gt;
&lt;li&gt;Close the project or stop the Codespace.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="when-entering-the-other-environment"&gt;When entering the other environment&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If this is the first time using the project there, clone the repository.&lt;/li&gt;
&lt;li&gt;If it has already been cloned, pull or sync before editing anything.&lt;/li&gt;
&lt;li&gt;Resolve any reported conflict before continuing to work.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="alert alert-warning"&gt;
&lt;div&gt;
Do not edit the same project in two environments at the same time. Worklog can create
commits in both copies, making conflicts more likely.
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Downloading a ZIP is appropriate for submitting an assignment or making a snapshot. It
is not the normal way to move an active project between development environments because
the ZIP is disconnected from its GitHub repository.&lt;/p&gt;</description></item></channel></rss>