@mistercrunch one clarification here is that we don't need _multiple_ repos for
the ui packages. It's pretty common to have one mono repo (eg
`xxx/superset-ui`) that then contains multiple packages. It's almost easier to
have them all in one place when there are inter-dependencies, and tools like
`lerna.js` exist to help manage this + publishing. `vx` and `data-ui` are both
written this way so I'm pretty familiar with how to do it.
So an example repo dir structure would look like
`xxx/superset-ui`
```javascript
// root package.json that has deps like lerna.js and shared things like build,
testing, linting
package.json
// each of these packages can be developed independently, and have dependencies
on each other
// lerna.js is used to manage inter-package dependencies + publishing.
packages/
superset-core/
package.json
README.md
src/ // source for THIS package only
tests/
…
superset-plugin-vis-timeseries/
superset-plugin-vis-histogram/
…
superset-preset-vis-core/
superset-preset-vis-airbnb/
superset-preset-vis-lyft/
```
so you could do that in a separate repo, or include it within
`apache/incubator-superset` and update the structure to be
```javascript
superset/
assets/
// this defines the deps of the overall Superset app (including superset
// npm packages) + manages the build. This allows the packages to be
developed
// and versioned independently from the Superset app 🎉
package.json
webpack.config.js
…
src/
// these do NOT have package.json’s, their deps are defined in the root.
// when an app has a dependency on a package (e.g., @superset/core),
// it is referencing the npm version of that code, not the code in the
local
// repository. In development you can symlink such deps
apps/
explore/
dashboard/
…
// each of these packages can be developed separately from the app.
// lerna.js is used to manage inter-package dependencies + publishing.
packages/
superset-core/
package.json
README.md
src/ // source for THIS package only
tests/
…
superset-plugin-vis-timeseries/
superset-plugin-vis-histogram/
…
```
[ Full content available at:
https://github.com/apache/incubator-superset/issues/5667 ]
This message was relayed via gitbox.apache.org for [email protected]