Hi everyone, Quiz 02 feedback and grades are now posted to Gradescope. The median grade was ~85%; which is a great result for this point in the course! This quiz can be used to diagnose areas to invest time and focus to strengthen your understanding. I encourage you to review your graded quiz and visit office hours and/or tutoring this week if you have any questions or need clarification about anything you missed. Quiz 3 will be focusing on different topics, but because this course is inherently cumulative, now is the best time to resolve any confusion or uncertainty. See you on Wednesday, Prof. ___
Setup Project Tracking Board
- The oldest member of your team present in class should carefully create a project board (after everyone joins classroom repo).
- From your team’s repository, go to the Projects Tab. Then look for the green button regarding projects, click the down-facing triangle and select “New Project”. Click the New Project button.
- In the Project Templates Sidebar, select “Featured.” Then select the Team Planning template.
- In the Project name choose “Final Team ZN” where Z is your zone and N is your table number.
- Confirm steps 3 and 4 are correct, then select “Create”.
- Go to Project Settings (top-right ellipses)
- Select Manage Access in the left-hand sidebar
- Under Invite Collaborators search for your team (Final Team ZN) and select it.
- Change Role to Admin.
- Press Invite.
Initialize Team Repository
- The second youngest and second oldest members should pair up on the second oldest member’s computer to initialize the team repository.
- In a terminal on your host system, not within VSCode, create a new directory with the name of your team’s final project repository and
cd
into it:mkdir csxl-team-ZN
(replace ZN with your team’s zone and table number)cd csxl-team-ZN
- Initialize the new empty directory as a
git
repository:git init
- Add a git remote repository named
upstream
bound to the public, open source CSXL web app repository:git remote add upstream https://github.com/unc-csxl/csxl.unc.edu.git
- Pull the
main
branch fromupstream
:git pull upstream main
- Add a git remote repository named
origin
. This will be bound to your team’s private final project repository. You will need to find the correct repository URL. Open your team’s final project repository on GitHub in a web browser, click the down triangle on the green Code button, and copy the Clone URL. Use this URL in the placeholder below:git remote add origin TEAM_REPO_URL_PLACEHOLDER
- Switch to main:
git switch main
- Push the
main
branch to theorigin
remote (your team’s repository):git push origin main
- Your team will work off of a staging branch named
stage
, rather than themain
branch. Go ahead and establish astage
branch locally and push it:git switch --create stage
git push origin stage
GitHub Repository Configuration
After the team repository has been initialized, the youngest member of the team needs to setup the following repository branch settings in GitHub. This can only be done after completing the prior steps:
- Settings
- General > Default Branch > Change Branch to
stage
- Press the Swap Button (not the Pencil!) and select
stage
- If you do not see
stage
, be sure you completed all the steps in “Initialize Team Repository”, then refresh this page and try again.
- Press the Swap Button (not the Pencil!) and select
- Change to the Branches tab in the sidebar
- Add Branch Ruleset
- Ruleset Name:
main
- Enforcement status:
Active
- Targets, Add Target, Include by Pattern:
main
- (Check) Restrict creations
- (Check) Restrict updates
- (Check) Block force pushes
- Save Changes with
Create
Button
- Add another Ruleset (Go back to Rulesets tab)
- New Branch Ruleset
- Ruleset name:
stage
- Enforcement status:
Active
- Targets, Add Target, Include by Pattern:
stage
- (Check) Restrict deletions
- (Check) Require linear history
- (Check) Require a pull request before merging
- (Check) Require approvals: 1 required
- (Check) Dismiss stale pull request approvals when new commits are pushed
- (Check) Require approval of the most recent reviewable push
- (Check) Require conversation resolution before merging
- Save Changes with
Create
Setting up Team Member’s Development Repositories
After the GitHub Repository Configuration step has been completed, the other members of the team can setup their local development repositories. The team member who completed “Initialize Team Repository” can forego these steps.
- In a terminal on your host system, not within VSCode, clone your team’s final project repository and
cd
into it:git clone FINAL-TEAM-REPOSITORY
- Find the Final Team Repository Clone link from the Code dropdown in your GitHub project’s page.cd csxl-team-ZN
- Replace ZN with your team’s zone and table number.
- Fetch all branches:
git fetch --all
- Switch to the
stage
branch. This is the primary branch your team will work off of and merge into:git switch stage
- Add a git remote repository named
upstream
bound to the public, open source CSXL web app repository:git remote add upstream https://github.com/unc-csxl/csxl.unc.edu.git
Setting up your Development Environment
Go ahead and delete your Docker DevContainers for earlier exercises in the course. Delete their corresponding Volumes, as well. Don’t worry, your work is still secure on your host machine’s hard drive.
Before opening your cloned project in a DevContainer, remember there is a step required before the DevContainer will start up successfully. First open your project directory in a local VSCode instance and do not attempt to open it in a DevContainer. If you directly open in a DevContainer, you will certainly see an error.
Follow the instructions to get started found in the project’s docs
directory: docs/get_started.md