OK, all. It's time.
I apologize for the delays here, but I think the schedule now allows for concentrated effort on delivery of a stable ShrinkWrap Descriptors API.
I'd like to handle this in stages:
1) API Design
2) Compile-only TestSuite to prove the API
3) Build Source Generators for the API and Impl
4) Get it all plugged in and working along with testsuite
I imagine the first stage, API Design, should last about 4 weeks based upon the review and refactoring done last year when we rebooted ShrinkWrap Resolvers.
Ralf Battenfeld has provided us with a Herculean effort thus far in showing a POC to generate an object model for Descriptors from spec XSD / DTDs. As the process has gone on, we've obviously wanted to refine the API and add features; due to the verbose nature of the XSL sheets which acted as templates for the generated source, this has proven to be a difficult project to maintain.
What I'd like to do is set out to define in handwritten code our eventual ideal, then worry about the source generators which realize this goal as a separate problem.
To that end, I've added "*-prototype" modules to the current upstream/master as a seed for what we'd like the API to look like. I want these fleshed out to reflect all operations on all available XSD types for review before we proceed further.
Additionally, I've seeded a document to define the scope of the requirements for SWD:
A lot of this is based off feedback from Michal Matloka, Karel, and Aslak as well. Keep in mind that I've dug through this project's history over the past few weeks / months, and have concluded that a this stage, surgery on disparate components working towards a fix isn't going to be our path forward. I want to burn down the house, build fresh, assume nothing aside from the requirements, and cherry-pick the bits that HAVE worked from the last implementation as we need them (which is why I've left them in the repository).
As part of the first stage, I'd like to see pull requests into nothing other than the prototype modules.
We've all been waiting for this, and the iron is hot now, so...GO!