I think a daffodil-dap module seems very reasonable. A benefit of splitting this out is it could maybe be made an optional dependency so it becomes easy to disable when in production if there are any performance or security concerns with having debugging capabilities.
Regarding churn, it might makes sense to create a "daffodil-dap" branch that this work goes on, rather than merging directly to master. We did this with the daffodil-runtime2 work and I think it worked out pretty well. We still need to go through the same PR process to merge changes into the branch, but it's much more acceptable for things to be in a not fully working state or have known issues that need to be fixed that wouldn't normally be merged into master. And then once things reach a somewhat stable state, we can merge into the master branch and continue development there. - Steve On 5/7/21 8:25 PM, Adam Rosien wrote: > Thanks. We don't yet have anything to commit for the extension itself, but > would like advice for where the DAP-related Daffodil should go: > >> * The Daffodil `Debugger` to DAP code *could* exist as a sub-module of > the main Daffodil project, say, `daffodil-dap`. We expect a lot of churn > for this code as we translate more and more of the Daffodil parsing state > into the DAP domain. There are a few new dependencies, like the java-debug > project that handles the DAP protocol, and helper code like cats and fs2 > (for streaming). > > > > On Fri, May 7, 2021 at 5:20 PM Beckerle, Mike <[email protected]> > wrote: > >> daffodil-vscode repo is now setup and working. >> ________________________________ >> From: Beckerle, Mike <[email protected]> >> Sent: Tuesday, May 4, 2021 6:07 PM >> To: [email protected] <[email protected]> >> Subject: Re: Daffodil DAP debugger modules and repos >> >> Grrr. I can't write to it however. >> >> INFRA says it may just be an hour before the permissions propagate to it. >> >> I hope to update this Wednesday, push a single file over there so people >> can fork it and get started. >> >> I confirmed vscode is MIT license, which is Category A, as in "allowed". >> >> >> >> >> ________________________________ >> From: Beckerle, Mike <[email protected]> >> Sent: Tuesday, May 4, 2021 5:46 PM >> To: [email protected] <[email protected]> >> Subject: Re: Daffodil DAP debugger modules and repos >> >> Well I'd like to see this be in an Apache Daffodil repo. >> >> In fact, I just created one. You can find it at >> >> https://github.com/apache/daffodil-vscode >> >> The DFDLSchemas is not directly analogous, as there are other DFDL >> implementations and numerous schemas there are created by others for use >> with those implementations. E.g., EDIFACT, iso8586, etc. It also all >> significantly pre-dates Apache Daffodil. >> >> >> >> >> ________________________________ >> From: Adam Rosien <[email protected]> >> Sent: Tuesday, May 4, 2021 5:36 PM >> To: [email protected] <[email protected]> >> Subject: Daffodil DAP debugger modules and repos >> >> I've been extending John's debugger prototype to support DAP, the debug >> protocol supported by VS Code and other IDEs. There's an animated gif of >> what the VS Code interaction looks like, where only the current schema >> element and data position are relayed, at [1]. >> >> Now that we've made these first steps, we wanted the community's advice and >> opinion about where the related code should live. Here is our initial >> proposal: >> >> * The VS Code extension would live in a separate repository, >> `daffodil-vscode`. This is a common pattern with other extensions, and >> would allow the extension to be released independently of daffodil itself. >> However, I'm not sure what "organization" this would live under; this >> situation is similar to auxiliary Daffodil repos like >> https://github.com/DFDLSchemas. >> >> * The Daffodil `Debugger` to DAP code *could* exist as a sub-module of the >> main Daffodil project, say, `daffodil-dap`. We expect a lot of churn for >> this code as we translate more and more of the Daffodil parsing state into >> the DAP domain. There are a few new dependencies, like the java-debug >> project that handles the DAP protocol, and helper code like cats and fs2 >> (for streaming). >> >> That's the basics. We'd love to know if this fits or if you have some >> better ideas. >> >> .. Adam >> >> [1] https://github.com/jw3/example-daffodil-debug/discussions/10 >> >
