+ All Categories
Home > Documents > OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf ·...

OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf ·...

Date post: 27-Sep-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
17
Eclipse-Orion OA Project Albert Cui & Mei-Vern Then
Transcript
Page 1: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Eclipse-Orion OA Project

Albert Cui & Mei-Vern Then

Page 2: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Our Team

● Paul (mentor)○ IBM ○ Canadian (eh?)

● Lef ○ MIT○ Greek

● Brandon○ UW○ Amurrican

● Albert & Mei-Vern○ CU

Page 3: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

What is Eclipse Orion?● Cloud IDE

● Two parts:○ Orion Client○ Orion Server

● Features:○ file editing○ terminal○ git

Page 4: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Server: Java vs. Node

WHAT WE’RE IMPLEMENTING

Page 5: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Goals

● Replicate Java server Git API endpoints on the Node server

○ Client side code has already been written

○ Use NodeGit and the Orion API to complete the task

○ Frontend UI completely taken care of

Page 6: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

BEFORE OPEN ACADEMY

Page 7: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Example Code

Page 8: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

1. Parse the route

2. Use nodegit to open the repo and get list of remote names

3. Look up each remote and populate response for each remotea. Async / sync issues

4. Send response with correct headers

Page 9: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

DEMO TIME!

Page 10: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

1. Writing test to see if getting a list of remotes works

2. Test the response of the route using assertions

3. Re-check using nodegit

Page 11: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

RUN TESTS!

Page 13: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Difficulties● Poor documentation

○ Both the Orion API and the NodeGit API

● NodeGit isn’t fully featured○ API also changing between releases

● Orion Node uses old, outdated libraries

● Minimize use of outside dependencies ○ Results in very roundabout solutions

● Communication

Page 14: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Work to be Done

● Rebasing● Amending commits● Stashing● Discarding changes● Cloning & pushing to SSH remotes

○ (Right now only for HTTP remotes)● Adding tags

… and some edge cases in existing code we wrote :(

Page 15: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Lessons Learned● Document your code

● Issue tracking

● Writing async code

● Working with large legacy code base

● Writing tests

● Reading API documentation

● Internal workings of git

● Cool git commands

● Client-server routes, HTTP interaction

Page 16: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

A thank you to:

● Facebook (California was nice, yo);

● Our mentor, Paul;

● Jae and Cannon!

Page 17: OA Project Eclipse-Orioncolumbia-openacademy.github.io/presentations/spring2015/Orion.pdf · Eclipse-Orion OA Project Albert Cui & Mei-Vern Then. Our Team Paul (mentor) IBM Canadian

Questions?


Recommended