- Do any leftover iP tasks from the previous week
- Create a PR to the upstream repo
- Add Increments as branches:
Level-7,Level-8 - Add Increments:
A-MoreOOP,A-Packages,A-Gradle,A-JUnit,A-Jar - Add Increments as parallel branches:
A-JavaDoc,A-CodingStandard,Level-9 - [Optional] Get a head start on JavaFX
You are required to follow the Git standard from this week, as specified in this page.
Only future commits need to follow the Git standard. Editing past commit messages (to make them comply with the Git standard) is discouraged as it changes the commit timestamp, which can alter your iP progress timeline (as seen by progress tracking scripts).
Reminder about the deadline for the weekly project tasks:
1 Do any leftover iP tasks from the previous week
- Remember to do any leftover increments from the past weeks before starting on the current week's increments. This guideline applies to future weeks too.
2 Create a PR to the upstream repo
- Create a pull request (PR) from your fork to the upstream repo. Note the following:
- Create the PR from the
masterbranch of your fork to themasterbranch of the upstream repo (https://github.com/nus-cs2103-AY2526S1/ip) - Set the PR name as
[{Your full/partial name or your GitHub username}] iP
e.g.,[Richard Mathews Chee] iPor[Rich ... hee] iPor[TheRichMat] iP
Note that the PR name will be publicly visible.
You may leave the description empty. - If you created the PR correctly, it should appear in the list of PRs here.
- Steps for creating a PR is given in this textbook topic (steps 5 onwards):
- Create the PR from the
There is no need to create new PRs every time you update the code in your fork. The PR will update automatically to reflect the latest code of the branch it was sent from (i.e., when you push changes to the master branch of your fork).
3 Add Increments as branches: Level-7, Level-8
%%{init: { 'theme': 'default', 'gitGraph': {'mainBranchName': 'master'}} }%%
gitGraph
commit id: "m1"
commit id: "m2"
branch branch-Level-7
checkout branch-Level-7
commit id: "b1c1"
commit id: "b1c2"
checkout master
merge branch-Level-7 id: "Merge branch ..." tag: "Level-7"
branch branch-Level-8
checkout branch-Level-8
commit id: "b2c1"
checkout master
merge branch-Level-8 id: "Merge branch-Level-8 ..." tag: "Level-8"
commit id: "m4"
If you are new to Git branching, before attempting this iP increment, first learn Git branching from this week's textbook topics. In particular, learn how to merge a branch without fast forwarding.
- Do Level 7 in a branch named
branch-Level-7. Here are the steps:- Start a branch
branch-Level-7. - Implement Level 7 while committing to that branch at appropriate points,
- Merge the branch back to the
masterbranch (remember to create a merge commit i.e., no fast-forward). - Git tag the merge commit in the
masterbranch as usual (i.e., add the tagLevel-7). - Push the following three things to your fork:
(a) themasterbranch,
(b) thebranch-Level-7branch,
(c) theLevel-7tag.
Advanced git users: do not delete the branch after merging.
Only merged branches are detected by the script. After merging a branchb1to themasterbranch, you need to push both themasterand theb1branches to the fork. Pushing themasterbranch does not automatically take theb1branch along with it just because it is already merged to themasterbranch.
- Start a branch
- Do Level 8 similar to the above, using a branch
branch-Level-8.
4 Add Increments: A-MoreOOP, A-Packages, A-Gradle, A-JUnit, A-Jar
- While not required, you are encouraged to use separate branches for each increment.
Reason: that way, themasterbranch will always stay in a 'unbroken' state as the work-in-progress will be in a separate branch till such work is ready to be merged. - As before, commit, tag, and push, after each increment.
- Do the following increments in the given order because after doing
A-Gradleyou should use the Gradle option (rather than the IntelliJ option) when doingA-JUnitandA-JARas they are easier to do using Gradle.
Note that if A-Jar increment does not require any code changes, you may tag the commit at which this was achieved as A-Jar (even if that commit has another tag already). Otherwise, tag the latest commit as usual. In both cases, push the tag to the fork.
5 Add Increments as parallel branches: A-JavaDoc, A-CodingStandard, Level-9
- Implement these three increments as three branches first (branch names:
branch-A-JavaDoc,branch-A-CodingStandard,branch-Level-9), and then merge them one-by-one. Hopefully, you will encounter some merge conflicts so that you get to practice de-conflicting branches.
%%{init: { 'theme': 'default', 'gitGraph': {'mainBranchName': 'master'}} }%%
gitGraph
commit id: "m1"
commit id: "m2"
branch branch-A-JavaDoc
checkout branch-A-JavaDoc
commit id: "b1c1"
commit id: "b1c2"
checkout master
branch branch-A-CodingStandard
checkout branch-A-CodingStandard
commit id: "b2c1"
checkout master
branch branch-Level-9
checkout branch-Level-9
commit id: "b3c1"
commit id: "b3c2"
checkout master
merge branch-A-JavaDoc tag: "A-JavaDoc"
merge branch-A-CodingStandard tag: "A-CodingStandard"
merge branch-Level-9 tag: "Level-9"
commit id: "m6"
- The Java and Git standards to follow (for
A-CodingStandard) are given in this page. - After finishing, assuming you encountered merge conflicts (and some were rather painful to resolve), think of how such conflicts could have been reduced (e.g., by changing the order of merging, or minimizing parallel branches when certain type of changes are being done to the code).
6 [Optional] Get a head start on JavaFX
If you can spare some time, start learning JavaFX by following the JavaFX tutorial @SE-EDU/guides. Doing so will make your life easier in the following week.