New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Brainstorming: path to DataLad v2? #7560
Comments
Factor out a fundational package (FP)The purpose of such a package would be to serve as a foundation to build DataLad-powered libraries and apps -- implemented in Python. This package is:
The development procedures should be suitable for creating a package that radiates confidence to build 3rd-party code on
"Phase-in" processThe FP would be introduced gradually, by shifting and elevating code from other projects. Pretty much never would from-scratch implementations be introduced to the FP directly. This will make sure that code has seen some usage, and some "application" code already exists downstream to illustrate concrete usage patterns, and immediately justify a code addition to serve dependent packages. After being established, code can flow to the FP from any source, and the source project sheds that code and adds a dependency to this FP, once a release was made. Envisioned development trajectory for "datalad/datalad"With respect to a v2 concept, code would flow out of the present main datalad package, and it would gain the dependency on FP. It would continue to be the main entrypoint. If and when we would approach a modernization of the CLI, we would need to reevaluate the role again. It could then become an application/meta package: graph TD;
FP-->datalad;
FP-->datalad-cli;
datalad-cli-->datalad;
or continue as a provider of assorted functionality that is exposed via different API (hence have its own CLI implementation stripped). graph TD;
FP-->datalad;
FP-->datalad-cli;
datalad-->datalad-cli;
datalad-->datalad-gooey
FP-->datalad-gooey
Pros
Cons
Discussion
Updates
|
An effort towards a foundational library has started at https://github.com/datalad/datasalad |
This is not simply about a
datalad
v2. This is about a strategy to reorganize the DataLad ecosystem, of whichdatalad
, but also its extensions are only one gear in the box.The primary aim is to create more homogeneous modules, with streamlined dependencies. Modules that decouple code bases that evolve at different paces (more stable foundation, faster iteration on prototypes and focused applications), have disjoint dependencies (not just installation, but also how much code needs to be imported to be able to use a particular piece of DataLad), have different test demands (network operations with specific services vs local code).
One (possibly more) scenario(s) will be posted below. They should be discussed regarding their individual merits and problems. This issue is about collecting idea, not about making decisions.
Please do not use this issue for discussions -- github issues don't work well for that. Rather post any alternative/derived ideas (longform) into a dedicated response. If we keep individual ideas self-contained, and also updated over time, it will be easier to refer to them and also refine them.
To communicate appreciation or opposition for individual concept, please use the "reactions" interface.
The text was updated successfully, but these errors were encountered: