Version 7 vs 8
Version 7 vs 8
Edits
Edits
- Edit by epriestley, Version 8
- Feb 8 2013 6:01 PM
- Edit by epriestley, Version 7
- Feb 8 2013 5:20 PM
| « Previous Change | Next Change » |
| Edit Older Version 7... | Edit Older Version 8... |
Content Changes
Content Changes
This page overviews the open source student project for Phabricator in Spring 2013.
= Mentors =
| Name | Username | Affiliation | Role | Timezone |
|--|--|--|--|--|
| Evan Priestley | @epriestley | Phacility | Mentor Lead | GMT-8 |
| Bob Trahan | @btrahan | Phacility | Engineering | GMT-8 |
| Chad Little | @chad | Phacility | Design | GMT-8 |
= Students =
| Name | Team | Username | Affiliation | Timezone |
|--|--|--|--|--|
| Irina-Elena Veliche | **1** | @irinav | Imperial | GMT |
| Andrei Antonescu | **1**| @aba | Imperial | GMT |
| Bryan Cuccioli | **1**| @blc | Cornell | GMT-5 |
| Debarghya Daas | **1**| @DeedyDas | Cornell | GMT-5 |
| Afaque Hussain | **2** | @Afaque_Hussain | Helsinki | GMT+2 |
| Lauri-Hendrik Jalonen | **2** | @ljalonen | Helsinki | GMT+2 |
| Kwadwo Nyako | **2** | @kwadwon | MIT | GMT-5 |
| Nicholas Pellegrino | **2** | @nickpell | MIT | GMT-5 |
| Vedha Sayyaparaju | **2** | @vedharaju | MIT | GMT-5 |
= Faculty =
| Name | Username | Affiliation | Role |
|--|--|--|--|
| Fabian Fagerholm | ? |Helsinki | Faculty Liason |
| Ross Tate | @RossTate | Cornell | Local Faculty |
| Ted Benson | ? | MIT | Local Faculty |
| Andrey Antyufeev | ? |Imperial | Local Faculty |
= Staying in Touch =
The best way to get in touch with mentors is via IRC, in #phabricator on FreeNode. @epriestley is around most days from approximately 6AM - 8PM PST (14:00 - 04:00 GMT). @btrahan and @chad (nickname "clittle") also frequent the channel, and a number of other contributors can be found there. This is the also the best way to get answers to technical questions.
You can email @epriestley at <epriestley@phacility.com>.
Day to day project communication will be handled through Phabricator itself. When you CC anyone on an object in Phabricator (like a task or review), they'll get email or notifications about updates.
= Finding Stuff to Work On (Students) =
@epriestley will write up projects in [[ /maniphest/ | Maniphest ]], Phabricator's bug/task tracking application, and provide a description of what to do and how to accomplish it. At the beginning of the semester we'll focus on small projects (e.g., bugs and small features with lots of details about how to approach them) to get everyone familiar with the codebase and review process. As you gain experience with the codebase and demonstrate mastery of highly-specified tasks, we can increase project scope.
To get started, or if you want to work on something different, these are good queries:
- [[/maniphest/view/all/?s=o&o=p&g=p&projects=PHID-PROJ-bumaagaiomh7e7x2gr4m | Tasks tagged "OS Students 2013"]] - These are projects which I've added enough context and implementation details to that you should be able to move forward on them.
- [[/maniphest/view/all/?s=o&o=p&g=p&projects=PHID-PROJ-9e6ad1cf8ceda50b57d9 | Tasks tagged "Easy"]] - These are projects which aren't especially difficult. However, they may not have much guidance or context.
The task list as a whole is up to date and curated, so you can also browse through it, but some tasks are large, or complicated, or are implicitly blocked on things like refactoring. If you're interested in working on something not tagged "OS Students 2013", make sure @epriestley is CC'd and post a comment like "I'm interested in working on this, what's involved?" on the task.
= Reviewing Progress (Faculty) =
Faculty can review what a student has been working on by clicking their username in the tables above (e.g., "@epriestley"), which will take you to their profile page. This page has a feed of recent activity, and links to their recent commits, open revisions (waiting for review), and open assigned tasks (what they're working on now) in the left navigation bar.
The [[/project/view/650/ | Project Page]] has an overview of everyone's activity.
= Expectations =
Students:
- Each team should make a post in the [[ https://www.facebook.com/groups/245840398877320/ | Facebook Group ]] every week describing progress and goals of the team members (other teams will be doing this as well).
- Each student should be making visible forward progress every week, either by submitting code, updating Maniphest tasks, or sending @epriestley an email explaining what else they've been doing.
Mentors:
- @epriestley will submit a weekly email to Fabian summarizing each student's accomplishments.
= Quick Workflow Reference =
Here's a very quick summary of the code review workflow. To work on a new feature:
$ git checkout -b newfeature # Create a local feature branch named "newfeature"
$ nano file.php # Make changes
$ git commit -a -m . # Commit changes
$ arc diff # Send changes for review
To work on another feature afterward, or while you wait for review:
$ git checkout master # Switch back to master
$ git checkout -b newfeature2 # Start another feature branch
$ ... # Continue as above
To update a change:
$ git checkout newfeature # Switch to the feature branch
$ nano file.php # Make more changes
$ git commit -a --amend # Merge new changes into existing commit
$ arc diff # Update code review
To pull in updates from other contributors:
$ git checkout master # Switch back to master
$ git pull # Pull in new changes
$ git checkout newfeature # Switch to your feature branch
$ git rebase master # Update the feature branch
= General Guidelines =
- Break large projects into **small steps that take no longer than a day or two to complete**. Most steps should be even smaller, and take no longer than a few hours. In the beginning, I'll help you do this, but over the course of the program you should begin doing it yourself. See [[ http://www.phabricator.com/docs/phabricator/article/Writing_Reviewable_Code.html | Writing Reviewable Code ]].
- Even if you're working on a huge project, you should never have thousands of lines of code or multiple days of work in a local/feature branch. While there are varying approaches to remote feature branching in industry (where new features are developed slowly in a giant remote branch), this project avoids it in all cases (see [[ http://www.phabricator.com/docs/phabricator/article/Recommendations_on_Branching.html | Recommendations on Branching]]). Break things into small iterations.
- If you aren't already familiar with Git, you can find some workflow recommendations at [[ guides/arcanist_workflows | Arcanist Workflows]].
- A general overview of source layout is available at [[ http://www.phabricator.com/docs/phabricator/article/Phabricator_Code_Layout.html | Phabricator Code Layout]].
- Project coding conventions are here: [[ http://www.phabricator.com/docs/phabricator/article/General_Coding_Standards.html | General Coding Standards ]], [[ http://www.phabricator.com/docs/phabricator/article/PHP_Coding_Standards.html | PHP Coding Standards ]].
- You can find a history of the project at [[ http://www.phabricator.com/docs/phabricator/article/Phabricator_Project_History.html | Phabricator Project History ]].
This page overviews the open source student project for Phabricator in Spring 2013.
= Mentors =
| Name | Username | Affiliation | Role | Timezone |
|--|--|--|--|--|
| Evan Priestley | @epriestley | Phacility | Mentor Lead | GMT-8 |
| Bob Trahan | @btrahan | Phacility | Engineering | GMT-8 |
| Chad Little | @chad | Phacility | Design | GMT-8 |
= Students =
| Name | Team | Username | Affiliation | Timezone |
|--|--|--|--|--|
| Irina-Elena Veliche | **1** | @irinav | Imperial | GMT |
| Andrei Antonescu | **1**| @aba | Imperial | GMT |
| Bryan Cuccioli | **1**| @blc | Cornell | GMT-5 |
| Debarghya Daas | **1**| @DeedyDas | Cornell | GMT-5 |
| Afaque Hussain | **2** | @Afaque_Hussain | Helsinki | GMT+2 |
| Lauri-Hendrik Jalonen | **2** | @ljalonen | Helsinki | GMT+2 |
| Kwadwo Nyako | **2** | @kwadwon | MIT | GMT-5 |
| Nicholas Pellegrino | **2** | @nickpell | MIT | GMT-5 |
| Vedha Sayyaparaju | **2** | @vedharaju | MIT | GMT-5 |
= Faculty =
| Name | Username | Affiliation | Role |
|--|--|--|--|
| Fabian Fagerholm | ? |Helsinki | Faculty Liason |
| Ross Tate | @RossTate | Cornell | Local Faculty |
| Ted Benson | ? | MIT | Local Faculty |
| Andrey Antyufeev | ? |Imperial | Local Faculty |
= Staying in Touch =
The best way to get in touch with mentors is via IRC, in #phabricator on FreeNode. @epriestley is around most days from approximately 6AM - 8PM PST (14:00 - 04:00 GMT). @btrahan and @chad (nickname "clittle") also frequent the channel, and a number of other contributors can be found there. This is the also the best way to get answers to technical questions.
You can email @epriestley at <epriestley@phacility.com>.
Day to day project communication will be handled through Phabricator itself. When you CC anyone on an object in Phabricator (like a task or review), they'll get email or notifications about updates.
Team 1 has a weekly Hangout on Thursday at 5PM GMT.
Team 2 has a weekly Hangout on Friday at 5:15PM GMT.
= Facebook Updates =
Every week, each team should post a quick status update about what everyone on the team is working on to [[ https://www.facebook.com/groups/245840398877320/ | the Facebook group ]]. To do this:
- Write up a draft of what you know.
- If you're missing some info, get in touch with whoever you're missing a status from, or ask @epriestley.
- Post it to the group.
| Week Of | Team 1 | Team 2 |
|--|--|--|
| Feb 4 | @DeedyDas | - |
| Feb 11 | @blc | @Afaque_Hussain |
| Feb 18 | @aba | @ljalonen |
| Feb 25 | @irinav | @kwadwon |
| Mar 4 | @DeedyDas | @nickpell |
| Mar 11 | @blc | @vedharaju |
| Mar 18 | @aba | @Afaque_Hussain
| Mar 25 | @irinav | @ljalonen |
| ... | (pattern continues) | (pattern continues) |
= Finding Stuff to Work On (Students) =
@epriestley will write up projects in [[ /maniphest/ | Maniphest ]], Phabricator's bug/task tracking application, and provide a description of what to do and how to accomplish it. At the beginning of the semester we'll focus on small projects (e.g., bugs and small features with lots of details about how to approach them) to get everyone familiar with the codebase and review process. As you gain experience with the codebase and demonstrate mastery of highly-specified tasks, we can increase project scope.
To get started, or if you want to work on something different, these are good queries:
- [[/maniphest/view/all/?s=o&o=p&g=p&projects=PHID-PROJ-bumaagaiomh7e7x2gr4m | Tasks tagged "OS Students 2013"]] - These are projects which I've added enough context and implementation details to that you should be able to move forward on them.
- [[/maniphest/view/all/?s=o&o=p&g=p&projects=PHID-PROJ-9e6ad1cf8ceda50b57d9 | Tasks tagged "Easy"]] - These are projects which aren't especially difficult. However, they may not have much guidance or context.
The task list as a whole is up to date and curated, so you can also browse through it, but some tasks are large, or complicated, or are implicitly blocked on things like refactoring. If you're interested in working on something not tagged "OS Students 2013", make sure @epriestley is CC'd and post a comment like "I'm interested in working on this, what's involved?" on the task.
= Reviewing Progress (Faculty) =
Faculty can review what a student has been working on by clicking their username in the tables above (e.g., "@epriestley"), which will take you to their profile page. This page has a feed of recent activity, and links to their recent commits, open revisions (waiting for review), and open assigned tasks (what they're working on now) in the left navigation bar.
The [[/project/view/650/ | Project Page]] has an overview of everyone's activity.
= Expectations =
Students:
- Each team should make a post in the [[ https://www.facebook.com/groups/245840398877320/ | Facebook Group ]] every week describing progress and goals of the team members (other teams will be doing this as well).
- Each student should be making visible forward progress every week, either by submitting code, updating Maniphest tasks, or sending @epriestley an email explaining what else they've been doing.
Mentors:
- @epriestley will submit a weekly email to Fabian summarizing each student's accomplishments.
= Quick Workflow Reference =
Here's a very quick summary of the code review workflow. To work on a new feature:
$ git checkout -b newfeature # Create a local feature branch named "newfeature"
$ nano file.php # Make changes
$ git commit -a -m . # Commit changes
$ arc diff # Send changes for review
To work on another feature afterward, or while you wait for review:
$ git checkout master # Switch back to master
$ git checkout -b newfeature2 # Start another feature branch
$ ... # Continue as above
To update a change:
$ git checkout newfeature # Switch to the feature branch
$ nano file.php # Make more changes
$ git commit -a --amend # Merge new changes into existing commit
$ arc diff # Update code review
To pull in updates from other contributors:
$ git checkout master # Switch back to master
$ git pull # Pull in new changes
$ git checkout newfeature # Switch to your feature branch
$ git rebase master # Update the feature branch
= General Guidelines =
- Break large projects into **small steps that take no longer than a day or two to complete**. Most steps should be even smaller, and take no longer than a few hours. In the beginning, I'll help you do this, but over the course of the program you should begin doing it yourself. See [[ http://www.phabricator.com/docs/phabricator/article/Writing_Reviewable_Code.html | Writing Reviewable Code ]].
- Even if you're working on a huge project, you should never have thousands of lines of code or multiple days of work in a local/feature branch. While there are varying approaches to remote feature branching in industry (where new features are developed slowly in a giant remote branch), this project avoids it in all cases (see [[ http://www.phabricator.com/docs/phabricator/article/Recommendations_on_Branching.html | Recommendations on Branching]]). Break things into small iterations.
- If you aren't already familiar with Git, you can find some workflow recommendations at [[ guides/arcanist_workflows | Arcanist Workflows]].
- A general overview of source layout is available at [[ http://www.phabricator.com/docs/phabricator/article/Phabricator_Code_Layout.html | Phabricator Code Layout]].
- Project coding conventions are here: [[ http://www.phabricator.com/docs/phabricator/article/General_Coding_Standards.html | General Coding Standards ]], [[ http://www.phabricator.com/docs/phabricator/article/PHP_Coding_Standards.html | PHP Coding Standards ]].
- You can find a history of the project at [[ http://www.phabricator.com/docs/phabricator/article/Phabricator_Project_History.html | Phabricator Project History ]].
This page overviews the open source student project for Phabricator in Spring 2013.
= Mentors =
| Name | Username | Affiliation | Role | Timezone |
|--|--|--|--|--|
| Evan Priestley | @epriestley | Phacility | Mentor Lead | GMT-8 |
| Bob Trahan | @btrahan | Phacility | Engineering | GMT-8 |
| Chad Little | @chad | Phacility | Design | GMT-8 |
= Students =
| Name | Team | Username | Affiliation | Timezone |
|--|--|--|--|--|
| Irina-Elena Veliche | **1** | @irinav | Imperial | GMT |
| Andrei Antonescu | **1**| @aba | Imperial | GMT |
| Bryan Cuccioli | **1**| @blc | Cornell | GMT-5 |
| Debarghya Daas | **1**| @DeedyDas | Cornell | GMT-5 |
| Afaque Hussain | **2** | @Afaque_Hussain | Helsinki | GMT+2 |
| Lauri-Hendrik Jalonen | **2** | @ljalonen | Helsinki | GMT+2 |
| Kwadwo Nyako | **2** | @kwadwon | MIT | GMT-5 |
| Nicholas Pellegrino | **2** | @nickpell | MIT | GMT-5 |
| Vedha Sayyaparaju | **2** | @vedharaju | MIT | GMT-5 |
= Faculty =
| Name | Username | Affiliation | Role |
|--|--|--|--|
| Fabian Fagerholm | ? |Helsinki | Faculty Liason |
| Ross Tate | @RossTate | Cornell | Local Faculty |
| Ted Benson | ? | MIT | Local Faculty |
| Andrey Antyufeev | ? |Imperial | Local Faculty |
= Staying in Touch =
The best way to get in touch with mentors is via IRC, in #phabricator on FreeNode. @epriestley is around most days from approximately 6AM - 8PM PST (14:00 - 04:00 GMT). @btrahan and @chad (nickname "clittle") also frequent the channel, and a number of other contributors can be found there. This is the also the best way to get answers to technical questions.
You can email @epriestley at <epriestley@phacility.com>.
Day to day project communication will be handled through Phabricator itself. When you CC anyone on an object in Phabricator (like a task or review), they'll get email or notifications about updates.
Team 1 has a weekly Hangout on Thursday at 5PM GMT.
Team 2 has a weekly Hangout on Friday at 5:15PM GMT.
= Facebook Updates =
Every week, each team should post a quick status update about what everyone on the team is working on to [[ https://www.facebook.com/groups/245840398877320/ | the Facebook group ]]. To do this:
- Write up a draft of what you know.
- If you're missing some info, get in touch with whoever you're missing a status from, or ask @epriestley.
- Post it to the group.
| Week Of | Team 1 | Team 2 |
|--|--|--|
| Feb 4 | @DeedyDas | - |
| Feb 11 | @blc | @Afaque_Hussain |
| Feb 18 | @aba | @ljalonen |
| Feb 25 | @irinav | @kwadwon |
| Mar 4 | @DeedyDas | @nickpell |
| Mar 11 | @blc | @vedharaju |
| Mar 18 | @aba | @Afaque_Hussain
| Mar 25 | @irinav | @ljalonen |
| ... | (pattern continues) | (pattern continues) |
= Finding Stuff to Work On (Students) =
@epriestley will write up projects in [[ /maniphest/ | Maniphest ]], Phabricator's bug/task tracking application, and provide a description of what to do and how to accomplish it. At the beginning of the semester we'll focus on small projects (e.g., bugs and small features with lots of details about how to approach them) to get everyone familiar with the codebase and review process. As you gain experience with the codebase and demonstrate mastery of highly-specified tasks, we can increase project scope.
To get started, or if you want to work on something different, these are good queries:
- [[/maniphest/view/all/?s=o&o=p&g=p&projects=PHID-PROJ-bumaagaiomh7e7x2gr4m | Tasks tagged "OS Students 2013"]] - These are projects which I've added enough context and implementation details to that you should be able to move forward on them.
- [[/maniphest/view/all/?s=o&o=p&g=p&projects=PHID-PROJ-9e6ad1cf8ceda50b57d9 | Tasks tagged "Easy"]] - These are projects which aren't especially difficult. However, they may not have much guidance or context.
The task list as a whole is up to date and curated, so you can also browse through it, but some tasks are large, or complicated, or are implicitly blocked on things like refactoring. If you're interested in working on something not tagged "OS Students 2013", make sure @epriestley is CC'd and post a comment like "I'm interested in working on this, what's involved?" on the task.
= Reviewing Progress (Faculty) =
Faculty can review what a student has been working on by clicking their username in the tables above (e.g., "@epriestley"), which will take you to their profile page. This page has a feed of recent activity, and links to their recent commits, open revisions (waiting for review), and open assigned tasks (what they're working on now) in the left navigation bar.
The [[/project/view/650/ | Project Page]] has an overview of everyone's activity.
= Expectations =
Students:
- Each team should make a post in the [[ https://www.facebook.com/groups/245840398877320/ | Facebook Group ]] every week describing progress and goals of the team members (other teams will be doing this as well).
- Each student should be making visible forward progress every week, either by submitting code, updating Maniphest tasks, or sending @epriestley an email explaining what else they've been doing.
Mentors:
- @epriestley will submit a weekly email to Fabian summarizing each student's accomplishments.
= Quick Workflow Reference =
Here's a very quick summary of the code review workflow. To work on a new feature:
$ git checkout -b newfeature # Create a local feature branch named "newfeature"
$ nano file.php # Make changes
$ git commit -a -m . # Commit changes
$ arc diff # Send changes for review
To work on another feature afterward, or while you wait for review:
$ git checkout master # Switch back to master
$ git checkout -b newfeature2 # Start another feature branch
$ ... # Continue as above
To update a change:
$ git checkout newfeature # Switch to the feature branch
$ nano file.php # Make more changes
$ git commit -a --amend # Merge new changes into existing commit
$ arc diff # Update code review
To pull in updates from other contributors:
$ git checkout master # Switch back to master
$ git pull # Pull in new changes
$ git checkout newfeature # Switch to your feature branch
$ git rebase master # Update the feature branch
= General Guidelines =
- Break large projects into **small steps that take no longer than a day or two to complete**. Most steps should be even smaller, and take no longer than a few hours. In the beginning, I'll help you do this, but over the course of the program you should begin doing it yourself. See [[ http://www.phabricator.com/docs/phabricator/article/Writing_Reviewable_Code.html | Writing Reviewable Code ]].
- Even if you're working on a huge project, you should never have thousands of lines of code or multiple days of work in a local/feature branch. While there are varying approaches to remote feature branching in industry (where new features are developed slowly in a giant remote branch), this project avoids it in all cases (see [[ http://www.phabricator.com/docs/phabricator/article/Recommendations_on_Branching.html | Recommendations on Branching]]). Break things into small iterations.
- If you aren't already familiar with Git, you can find some workflow recommendations at [[ guides/arcanist_workflows | Arcanist Workflows]].
- A general overview of source layout is available at [[ http://www.phabricator.com/docs/phabricator/article/Phabricator_Code_Layout.html | Phabricator Code Layout]].
- Project coding conventions are here: [[ http://www.phabricator.com/docs/phabricator/article/General_Coding_Standards.html | General Coding Standards ]], [[ http://www.phabricator.com/docs/phabricator/article/PHP_Coding_Standards.html | PHP Coding Standards ]].
- You can find a history of the project at [[ http://www.phabricator.com/docs/phabricator/article/Phabricator_Project_History.html | Phabricator Project History ]].