This is an in-progress experimentation for hitting a couple of wishlist items in ppb:
Move to modern packaging tooling.
Breaking up ppb into sub-packages to fully deliver on the modularity promises.
To that end, the conceptualization of the new layout:
ppb-core: The engine and anything strictly required to run ppb. Also utilities and other stuff that will be used by a bunch of the other packages in the constellation.
ppb-sdl: Everything that touches SDL and applies additional expectations due to that layout.
ppb-experimental: An explicitly unsafe set of APIs for more ready experimentation.
ppb-features: Optional stuff.
ppb: The friendly face of the ppb world. This will stitch together all the other packages and present the same great experience we serve now. Things that are unique to this package: things like the directions that are nice utilities, but not necessary for core.
Dependency graph:
ppb-core: No dependencies. If this references another package, it probably needs to live in core.
ppb-sdl: can reference core and SDL requirements.
ppb-experimental: ppb-sdl and ppb-core
ppb-features: ppb-core, ppb-sdl? (Maybe, might need to rethink this one.
ppb: can import from anything.
This is an in-progress experimentation for hitting a couple of wishlist items in ppb:
To that end, the conceptualization of the new layout:
ppb-core: The engine and anything strictly required to run ppb. Also utilities and other stuff that will be used by a bunch of the other packages in the constellation. ppb-sdl: Everything that touches SDL and applies additional expectations due to that layout. ppb-experimental: An explicitly unsafe set of APIs for more ready experimentation. ppb-features: Optional stuff. ppb: The friendly face of the ppb world. This will stitch together all the other packages and present the same great experience we serve now. Things that are unique to this package: things like the directions that are nice utilities, but not necessary for core.
Dependency graph: ppb-core: No dependencies. If this references another package, it probably needs to live in core. ppb-sdl: can reference core and SDL requirements. ppb-experimental: ppb-sdl and ppb-core ppb-features: ppb-core, ppb-sdl? (Maybe, might need to rethink this one. ppb: can import from anything.