Sepsis
Sepsis is an umbrella project aiming to build better developer tools for application-level debugging.
Contents
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 have to do so begrudgingly.
- "Worse is better". The effect of waiting on a fix for a platform bug can delay progress indefinitely. 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. 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
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.
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 console on Ohloh.) A pre-release is available on AMO right now: Sepsis console. It already includes
- configurable auto-complete
- integration with DOM Inspector, Firefox, SeaMonkey, Thunderbird, and sepsis-inspector
- support for 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.
In bug 800200, JSD is set to be removed in favor of JSD2.
Inspector
See the subproject page: Sepsis/inspector
Work on the inspector has started as of 2013 June. Some pre-1.0 releases are available on AMO: sepsis-inspector versions.
bug 881850 has also been filed. Decisions whether sepsis-inspector will become the new DOM Inspector (3) should not be thought of as even "tentative" at this point.