Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Orion/Use Cases
Orion is not just another set of developer tools. More broadly, Orion is a way of doing software development on the web. Such development invariably uses a wide variety of tools, services, and web sites. Some of these tools and services will be hosted on an Orion server, others will be hosted elsewhere -- possibly along with a small bit of glue code to facilitate integrating them with other Orion tools. As such, there are many different ways to "use Orion". This document attempts to capture some of the basic Orion usage workflows that we intend to focus on in 2011.
Contents
Personas
To facilitate discussion of these different uses of Orion, here are some proposed Orion user personas. Feel free to flesh these out with more detail, or add others.
Nathan
Nathan is a web site developer. His site uses a third party hosting service that provides commodity server components. He doesn't do any server side development. His site consists of traditional web technologies such as PHP, HTML, CSS, and JavaScript. Nathan thinks Git is just a British slang word, and his idea of source control is to rely on the automatic backup services of his hosting provider. His issue tracking system is a combination of a "TODO" folder in his email client, and sticky notes attached to his monitor.
Before Orion came along, Nathan's traditional workflow was to copy the site contents to his Ubuntu desktop using Filezilla (SFTP), and then use local development tools such as vi, grep, etc. He would "test" changes by pushing them directly to the live server. If a change felt risky he would create a separate copy of the web page for testing, then push that test page to a separate URL on the live server with no links to it.
Now, Nathan does all his development on orionhub.org. He imports his site into an OrionHub workspace via SFTP. He then makes all his desired changes, and launches a local site within Orion to preview the changes. Once he is satisfied with all changes he pushes them back to the live server via SFTP. He has upgraded his issue tracker to be a "TODO" folder in his Orion workspace, which helps keep the information in one place regardless of what computer he is using.
Ellie
Ellie is the author of a popular JavaScript library, CoolStuff.js. The library is used by many kinds of consumers such as web sites, mobile applications, and standalone Rhino or node.js applications. Her project is hosted on a third party SCM service (GitHub), where she interacts with a wide community of followers and forks. She has a large suite of JavaScript unit tests that she uses to validate changes and avoid regressions in her library.
Before Orion, Ellie used the git command line to pull changes to her MacBook, where she used a combination of TextMate and browser debugging tools to develop her library. After running her test suites in a variety of browsers she would push changes back to GitHub for the community to grab the changes.
Now, Ellie keeps a Git clone checked out in her OrionHub workspace. She pulls changes from the GitHub clone as needed. She uses the Orion editor and a couple of lint tool plugins for development, and the integrated js-test-driver for running her tests. Once she is satisfied with a set of changes, she commits to the local Git clone on OrionHub and then pushes the changes to GitHub.
Boris
Boris develops Orion itself. He works on both server side components written in Java, as well as the client built on HTML, CSS, and JavaScript. He needs to use traditional Eclipse desktop tools for server development, but Orion for everything else. He uses git.eclipse.org for source control, and Eclipse bugzilla for issue tracking.
Principal Tooling Requirements
Here is what each of the user personas needs most from Orion:
Nathan
- Excellent source editor for HTML, CSS, PHP, and JavaScript
- Global search
- SFTP import/export
- A way to test changes without delivering to live server
Ellie
- Excellent JavaScript editor
- Tools for managing and running JS test suites
- Basic Git workflow: clone, log, status, push, pull
Boris
- Excellent source editor for HTML, CSS, and JavaScript
- Global search
- Ability to use a combination of browser-based and traditional desktop tools