Sepsis
Sepsis is an umbrella project aiming to build better developer tools for application-level debugging.
Goals
Provide adequate tooling to add-on authors and Mozilla application developers that are on par with the offering available to Web developers. This includes an interactive JavaScript console, a stepping debugger, and an inspector.
Project priorities
- Not tied to any one app (e.g., Firefox-only). Sepsis tools have broad support for toolkit applications in mind from the start.
- Highly configurable. Sepsis utilities should handle most of the needs of almost all of its target users. These tools are going to be used in contexts where the user is already working on a problem, and likely to frustrate easily (if not already so). Users shouldn't be averse to ever using Sepsis utilities because, e.g., they don't like the approach to auto-complete, and when they do use them, they shouldn't to do so begrudgingly.
- "Worse is better". Contrast the success and general utility of Firebug, which has essentially followed the "worse is better" approach, to DOM Inspector, which has generally held off on development until a "proper" fix has been made. The effect of waiting on a fix for a platform bug can delay progress indefinitely. When Sepsis runs into one of these kinds of dependencies, it takes the "worse is better" path to make sure the approach most useful to users is available to them right now while waiting for things to be ironed out elsewhere. (Note, there are restrictions on this. See Code standards below.)
Survey and action plan
At this time (2013) DOM Inspector and Venkman are languishing and on life support, respectively, but can still address the needs of their users where they are capable of doing so.
DOM Inspector is the most well-supported. For the most part, it always works on latest-release builds and should work with builds from an up-to-date development tree. The DOM Inspector's status is ranked FAIR.
Venkman is more fickle. Mozilla code changes over the years have caused breakage, and it tends to remain unfixed. Getting a working Venkman on mozilla-central builds is a gamble. There have been some reports of it being unusable on release builds. For others, its basic feature set (breakpoints and code stepping) is usable for the most part and when conscious of what needs a workaround. (The latter has been my experience. --crussell) Venkman's status is ranked POOR.
A component dedicated to being an interactive JS console is non-existent. With some pain, the Error Console or the "Evaluate JavaScript…" dialog from the DOM Inspector's "JavaScript Object" viewer can made to do what needs to be done. Accordingly, the status in this area has a ranking of JUST AWFUL.
The plan with Sepsis is to work on what's most needed first. Given the state of things, that means we start with providing a JS Console. When development has gotten off the ground and has been sufficiently bootstrapped, a parallel effort will start on developing a debugger. At some unknown point in the future, we will start to build a replacement for DOM Inspector.
Project status
Work on a console component has begun and a promising start on a debugger exists.
JS console
See the subproject page: Sepsis/console
I (Colby) began work on the console last summer (2012). I backed off while taking the last leg of a hiatus from Mozilla, but began ramping up activity in February/March. (See the stats: Sepsis on Ohloh.) A pre-release is available on AMO: Sepsis console. Right now, it includes configurable auto-complete; integration with DOM Inspector, Firefox, SeaMonkey, and Thunderbird; and attaching to arbitrary execution contexts, DOMi-style.
Debugger
At the end of January, Patrick Brunschwig announced TinyJSD. The likliest approach to creating a piece to fill the debugger-shaped hole will be to co-opt TinyJSD and use it as a base, or to absorb the project entirely. Check with pbrunschwig.
Inspector
No work has been done on an inspector replacement. Keep using DOM Inspector.
Contributing
The code for the console is at https://hg.mozilla.org/users/sevenspade_gmail.com/sepsis.
Code standards
TBD