ELEC5616 Project Configuring Phabricator

Luke Anderson

2021/04/08

University Of Sydney Overview

1. Create User Account 1.1 Setup initial repository 1.2 Work on and push your changes

2. Getting Help Introduction

In this project, we will be using professional code management tools to work with our project. The two tools we will use in particular are: : Git is source code version control software that is very widely used in the IT industry. If you are not already familiar with this, you will need to familiarise yourself. Simple Git Guide # GitHub’s interactive introduction # Git Book - Basics Phabricator: # Developed internally at , Phabricator is a useful tool for managing tasks, bugs, code revisions, etc. You should be able to pick this one up as you go. User Docs - Introduction # Phabricator User Guide # Create User Account Create User Account

You may have received a “Welcome to Phabricator” email with your pre-configured user account.

If you havent, please head to https://phab.elec5616.com/ and try logging in with your unikey as your username and your student ID as your password.

Change your login password immediately. Set your VCS password

There are two passwords to access Phabricator, and they must be different. The first one, you use to log in, it will be automatically set to your SID (you should change this). The second password is to be used by git and is called the VCS (Version Control System) password. As such, you must also set your “VCS password” 1. Visit: https://phab.elec5616.com/settings/panel/vcspassword/ 2. Enter a new “VCS Password” (different from your login password) 3. When you “push” or “pull” with git, you will use this VCS password. Setup initial repository

First, you want to take the original code provided to you, then commit it to your new repository as the first commit. Below is an easy way to do this: 1. Clone the empty repository from Phabricator: 1.1 Select “Diffusion” 1.2 Select your repository 1.3 Run the command under “Clone (HTTP)” on your PC: (This will probably be an empty repository, that’s okay) 2. In the directory, add a new origin pointing to the original on Github: git remote add https://github.com/Elec5616/skynet intro 3. Pull the changes from github: git pull github master Get this right! Be sure to complete this step on a fresh folder to start with a clean repository. If you run git log, on your new repository, the latest commit ID should be: accecbb0eadced7f6b153fc9a1ded78ba3dc1cbf Commit your changes

Now that you have cloned the git repository from phabricator, you’re ready to start working, or add your existing changes to the repository.

If you have already made some changes, copy the changed files into the repository. For each of the files that you change, you should run the command:

git add

Only add python files, or files directly relevant to your project. Be careful not add any other files that may have been created automatically.

Once you’ve added your changes, you should regularly commit those changes using the git commit command, providing a useful commit message. Push your changes

Every now and then, you should also push those changes to Phabricator using the command: ‘git push origin master’. This will allow your group members to “pull” your code using the command: ‘git pull origin master’.

Your work will then be properly backed up on the server and will be ready for submission. By committing code regularly, we can see who has been contributing to the project, and it will become clear to the markers if any group members have not participated. So please make sure your commits are tagged with your name. Final differential

On the due date, a final differential will be automatically created of your code repository. If your code is not pushed to Phabricator before the due date, it will not be marked. This differential will be reviewed by your markers and will be used to provide feedback and marks on your code.

Never commit large files (>1MB) to your repository. It will cause bad things to happen.

Things you should not commit: Images # Videos # Caches # *.pyc files # Files automatically created by your code editor. It’s# highly recommended that you implement a .gitignore file to prevent accidentally committing too much. Getting Help Getting Help

If you’re struggling to get git and/or phabricator working properly, try these things: Google it - these are both popular tools and have lots of # documentation online Ask your classmates - other people have probably already # struggled with this, ask them, post on Ed. Email Alan - A last resort, this should only be for things that you # could not have found out online. [email protected]