This site is from a past semester! The current version will be here when the new semester starts.

iP: Week 4iP: Week 6

iP: Week 5

  1. Generate a new JAR file
  2. Write some full commit messages
  3. Add Increments as PRs: A-Assertions, A-CodeQuality, A-Streams
  4. Add Increment: A-CI
  5. Add an extension

1 Generate a new JAR file

  • Generate a new JAR file using Gradle (Gradle can bundle the JavaFX third-party library into the jar file. If you do not bundle JavaFX with the JAR file, the application will not work in computers that don't have JavaFX installed). Refer to the Gradle tutorial @SE-EDU/guides to find how.
    If the .jar file is smaller than 5MB, most likely JavaFX libraries are not inside it.
  • There is no need to create a release in GitHub with this jar file (although you are welcome to).

2 Write some full commit messages

  • While we do not require you to write full commit messages (i.e., including a message body) in the work done in this module, it is still good to learn how to write such commit message. The purpose of this task is to give you some practice in writing such full and well-written commit messages.
  • Requirements:
    1. Write full commit messages for at least 2-3 commits that you push this week.
    2. Follow these Git conventions for the commit message body as specified by @SE-EDU/guides when writing them.
    3. Git tag one of those commits as A-FullCommitMessage.

3 Add Increments as PRs: A-Assertions, A-CodeQuality, A-Streams

  • Note how to merge PRs:

  • Practice using parallel git branches and PRs, as explained below:
  1. 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.
  2. 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.

  1. Now, merge one of the PRs and update the remaining PRs accordingly, as given below:
    1. Merge one of the PRs on GitHub. Remember to choose the Create merge commit option when merging.
    2. 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 local master with the remote master branch. One way to do that is to switch to the local master branch and then pull the the updated master branch from your fork e.g.,
      git checkout master
      git pull origin master
    3. Note how the remaining un-merged branches are no longer in sync with the latest master. To rectify, merge the master branch to each of them. Resolve merge conflicts, if any.
    4. Push the updated branches to your fork. The PRs will update automatically to reflect the updated branch.
    5. As before, tag the merge commit in the master branch and push the tag to your fork.
  2. Merge the remaining PRs using a procedure similar to the above.
Duke A-Assertions: Use Assertions

Duke A-CodeQuality: Improve Code Quality

Duke A-Streams: Use Streams optional

4 Add Increment: A-CI

  • We recommend that at least one member of the team attempt the following.
Duke A-CI: Set up CI optional

5 Add an extension

  • Add at least one extension of your choice, selected from category B, C, or D i.e., pick just one item from one category e.g., B-DoWithinPeriodTasks or C-Sort or D-Places
  • Recommended to add the extension via a branch (branch name is up to you). Optional to add it via a PR.
  • Add a tag named BCD-Extension to the corresponding commit.

Discuss with your team members to ensure that each member picks a different extension.

You may want to pick an extension that is potentially relevant to your tP so that the code can be reused in the tP later, if possible.

iP: Week 4iP: Week 6