Over the past couple of weeks I've been looking into WO's .api format, thinking on how it might be extended to make it more useful and informative. The format can be made far more valuable, for both developers and tooling, by adding both human-readable documentation and a more detailed structural contract — what types bindings accept, how attributes outside the declared API are handled (if at all) and so on. A richer more informative API makes the elements both easier to use, and increases the ability of tools to validate and verify templates statically, catching whole classes of binding errors that can currently go unnoticed.
Of course, like everything I do in WO, this all eventually leads to ng-objects, since this work doubles as the creation of ng's eventual canonical element API.
The format's design is happening in in a designated github repository; htttps://www.github.com/undur/apiext-format. The format's current development version is based on and backwards-compatible with WO's original .api format. But if that compatibility turns out to hinder the design, we might change the design direction.
I encourage anyone with thoughts or ideas to pipe up and let me know, either directly or by filing an issue on the github repo.
.apiext github repository.apiext files..apiext in Eclipse (video, 43sec).apiext documentation on element-hover in Eclipse (video, 2min)| 🧩 apiext-format | Document the legacy WebObjects .api format | Jun 25 |
| 🧩 apiext-format | Split STATUS into DONE + ROADMAP; file roadmap issues | Jun 25 |
| 📚 whoacommunity.com | Add apiext-format to watched github repos | Jun 25 |
| 🤸♀️ wonder-slim | Move the .apiext format spec to its own repository | Jun 25 |
| 🧩 apiext-format | Initial commit: .apiext element-API format specification | Jun 25 |
| 📚 whoacommunity.com | Update cayenne project files for cayenne v5.0-M2 | Jun 25 |
| 📚 whoacommunity.com | Update Cayenne v5.0-M1 -> v5.0-M2 | Jun 25 |
| 💋 parslips | Exclude abstract types from element enumeration | Jun 25 |
| 💋 parslips | Sort element bindings alphabetically in the docs | Jun 25 |
| 💋 parslips | Add "Show in Element Reference" command (Cmd+Opt+9) | Jun 24 |
| 🌿 parsley | 1.5.0 | Jun 18 |
| 🤸♀️ wonder-slim | 8.0.2 | Jun 18 |
| 🦡 vermilingua | 1.1.5 | Jun 15 |
| 🤸♀️ wonder-slim | 8.0.1 | Jun 1 |
| 🌿 parsley | 1.4.2 | Jun 1 |
| 🤸♀️ wonder-slim | 8.0.0 | Apr 30 |
| 🦡 vermilingua | 1.1.4 | Apr 24 |
| 🌿 parsley | 1.4.1 | Apr 22 |
| 🚀 ng-objects | 0.1.1 | Apr 22 |
| 🦡 vermilingua | 1.1.3 | Apr 15 |
| 🧩 apiext-format | Root <wo class> uses the simple class name (Obj-C relic) — reconcile with FQN class references | Jun 25 |
| 🧩 apiext-format | Value sets — allowed values for a binding (literal enums and dynamic sources) | Jun 25 |
| 🧩 apiext-format | Declare the primary HTML element an element renders as | Jun 25 |
| 🧩 apiext-format | Review, document, and possibly redesign the binding-validation syntax | Jun 25 |
| 🧩 apiext-format | Element/component use scope (access control / visibility) | Jun 25 |
| 🤸♀️ wonder-slim | bfcache: stale page on back/forward after an ajax update | Jun 22 |
| 🦡 vermilingua | Write a file to the WOA containing some info about the build | Jun 22 |
| 🤖 modulo | Audit and complete the set of adaptor headers modulo injects | Jun 19 |
| 🦡 vermilingua | Non-clean rebuilds leave deleted/renamed resources in the .woa | Jun 15 |
| 🦡 vermilingua | Detect resource name conflicts during component flattening | Jun 8 |