- Add Increment:
A-MoreOOP
- Add Increments as PRs:
Level-8
,Level-9
,A-JavaDoc
- Set up a product website
- Submit the final version Fri, Oct 11th 2359
1 Add Increment: A-MoreOOP
- As before, commit, tag, and push, after each increment.
2 Add Increments as PRs: Level-8
, Level-9
, A-JavaDoc
- Note how to merge PRs:
- Practice using parallel git branches and PRs, as explained below:
- First, do each increment as a parallel branch (follow the branch naming convention you followed earlier
branch-Level-8
etc.), but do not merge any. - Then, push each branch to your fork, and create a PR within your fork (i.e., from the increment branch to the
master
branch). Be careful not to create a PR to the upstream repo. If you did create such a PR by mistake, no worries, just close it yourself.
When you are doing the next step, you can run into merge conflicts. In some cases, GitHub will give you a way to resolve those conflicts using the Web interface. While this approach may be good enough for simple merge conflicts, de-conflicting locally in the standard way is safer (e.g., you can run tests to confirm the updated code is correct) and more standard (it's a standard Git feature that you can use even when you are not using GitHub for your project).
- Now, merge one of the PRs and update the remaining PRs accordingly, as given below:
- Merge one of the PRs on GitHub. Remember to choose the
Create merge commit
option when merging. - The above step will cause the
master
branch of your local repo to fall behind that of your fork (). Therefore, you need to sync the localmaster
with the remotemaster
branch. One way to do that is to switch to the localmaster
branch and then pull the updatedmaster
branch from your fork e.g.,$ git checkout master $ git pull origin master
- Note how the remaining are no longer in sync with the latest
master
. To rectify, merge themaster
branch on to each of them. Resolve merge conflicts, if any. - Push the updated branches to your fork. The PRs will update automatically to reflect the updated branch.
- As before, tag the merge commit in the master branch and push the tag to your fork.
- Merge the remaining PRs using a procedure similar to the above.
3 Set up a product website
- Add a brief User Guide (UG)
4 Submit the final version Fri, Oct 11th 2359
- Soft deadline: midnight before the tutorial
- Double-check to confirm your iP meets the criteria for full marks:
- Create a new jar file
- Create the JAR file in one of these ways:
- If you have added a GUI or using third-party libraries: use Gradle.
- Else: you can use IntelliJ.
- The JAR file should be cross-platform and should work in a computer that has Java 17 (but no other Java version). To avoid version compatibility issues, we strongly recommend the following approach:
- Open a terminal window, and navigate to the root of your project folder.
- Run the
java -version
command to confirm the terminal is using Java 17. - Run the
./gradlew clean shadowJar
command to create the JAR file.
- Create the JAR file in one of these ways:
- Do the following smoke tests to ensure the jar file works (reason: a similar flow will be used when grading your iP).
- Copy the jar file to an empty folder and test it from there. This should surface issues with hard-coded file paths.
- Pass the jar file to team members and ask them to do a test drive. Assuming some of your team members' OS differ from yours, this should verify if the app is cross-platform.
If you don't have ready access to a specific OS, post a link to your JAR in the forum and ask others to help with the smoke testing -- some of them will even appreciate the opportunity to help a classmate.
Note that concepts you encounter while doing course project tasks (e.g., smoke testing) are in the scope of the final exam.
- Create a new release on GitHub (e.g.,
v0.2
) and upload the JAR file.- Recommended to refrain from uploading multiple JAR files as this can cause extra work for the evaluators.