-
Notifications
You must be signed in to change notification settings - Fork 303
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
Monorepo structure #2300
base: master
Are you sure you want to change the base?
Monorepo structure #2300
Conversation
9431214
to
e23cfef
Compare
@Desplandis I resolve some issues
|
@gchoqueux Nice! I will take a quick look of your changes and write a todo list of things that should absolutely be tested before reviewing more thoroughly this PR. Expect it for tomorrow or next tuesday! @jailln @mgermerie @ftoromanoff @AnthonyGlt I think we'll need your inputs on this change! ;) This should be a good start to fix #2197, #1930, #2201 (list not exhaustive, feel free to complete). Shall we create a meta-issue to aggregate all those issues? |
e5ec2ea
to
b2308ff
Compare
ea0116d
to
962c99d
Compare
a6179f1
to
3569118
Compare
You need to register the packages, it seems to manage dependencies as a single package. I think I used a publish-latest in local to register all subpackages. The deploying an releasing work see jobs I'm trying to solve this problem, and I think I've got a lead. |
582a15a
to
7f00fd3
Compare
@gchoqueux Did you fix it? |
3736a8b
to
2a55e71
Compare
@Desplandis |
Okay, so you managed to test the publishing of all packages? |
Yes, the PR manages all packages, next packages |
806f422
to
981dcfa
Compare
981dcfa
to
41444c2
Compare
Description
Refactoring iTowns to monorepo structure.
The goal is to split itowns down into feature packages.
As an example, I've started with the geographic functionalities. (@itowns/geographic)
create organization NPM to support @iTownsexportsFields
For the moment
Debug
andWidget
modules are private.Motivation and Context
Split code in packages for clearly structured code.
Simplifies development and facilitates contributions.
Increases the scope of users who only want to use a few functions.
This structure makes it necessary to make functions independent
Code movement
The classes
Coordinates, Crs, Ellipsoid, Extent, OrientationUtils
files are moved to./packages/geographic/src
.The
proj4
dependency moves to geographic package.The unit tests moves to
packages/xxx/test
.the code
utils/debug
movespackages/Debug
the code
src/Utils/Gui
movespackages/Widget
dependencies
This proposal from monorepo doesn't use monorepo package (by example Lerna).
New dev dependency is
Concurrently
, it's used to watch script in parallelItowns dependencies
(three, proj4...) are moved to the packages that use themnode scripts
The scripts uses the options
--workspaces
or-ws
, to call the corresponding script in each sub packages.