The bulk of Pipe Dream lives in pipe-dream/core. In addition, each language implementation has two repositories - one for logic, and one for package distribution
repo | summary |
---|---|
pipe-dream/core |
Interfaces, base classes, vue components and more |
pipe-dream/laravel-file-factory |
Logic specific to Laravel |
pipe-dream/laravel-create |
A Laravel Package distributed with composer/packagist |
... |
... |
pipe-dream/<language>-file-factory |
Logic specific to <language> |
pipe-dream/<language>-create |
Package (npm/gem/pip ...) |
Using Laravel as example.
git clone [email protected]:pipe-dream/core.git
cd core
yarn
Still in the core
folder, prepare a link (so the other repos can access your local version of core
)
yarn link
git clone [email protected]:pipe-dream/laravel-file-factory.git
cd laravel-file-factory
yarn link @pipe-dream/core
yarn
Create a link for this repo as well
yarn link
Create a fresh laravel project to act as host app:
laravel new pd-host
cd pd-host
Add our Laravel package in a dedicated folder:
mkdir -p packages/PipeDream
cd packages/PipeDream
git clone [email protected]:pipe-dream/laravel-create.git LaravelCreate
cd LaravelCreate
composer install
yarn link @pipe-dream/core
yarn link @pipe-dream/laravel-file-factory
yarn
Add namespace to pd-host/composer.json
:
"autoload": {
"psr-4": {
"App\\": "app/",
"PipeDream\\LaravelCreate\\": "packages/PipeDream/LaravelCreate/src"
},
And in the providers array of pd-host/config/app.php
add:
/*
* Package Service Providers...
*/
PipeDream\LaravelCreate\LaravelCreateServiceProvider::class,
Finally, you probably want to open up the three repos in three separate editors as well as terminal tabs to build it
repo | build |
---|---|
core |
yarn build --watch |
laravel-file-factory |
yarn watch |
laravel-create |
yarn watch |
Changes to core
, laravel-file-factory
and to the laravel-create
package itself should now instantly reflect when visiting pd-host.test/pipe-dream
Happy coding!