Skip to content
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 #319

Closed
3 tasks
0xGabi opened this issue Jan 3, 2019 · 8 comments
Closed
3 tasks

Monorepo structure #319

0xGabi opened this issue Jan 3, 2019 · 8 comments

Comments

@0xGabi
Copy link
Contributor

0xGabi commented Jan 3, 2019

Change the structure of Aragon CLI to be a monorepo.

Kick off discussion: AragonDAC/create-aragon-app#1

TODO:

  • dao-cmds
  • apm-cmds
  • Ipfs-cmds
@0xGabi 0xGabi added the Epic label Jan 3, 2019
@0xGabi
Copy link
Contributor Author

0xGabi commented Jan 4, 2019

I started working on this issue and I been thinking a few things:

  1. I believe it make sense to include the boilerplates, I found them to be related to the cli at some extend (is aragen also a posible candidate to include as a package?)
  2. A few structures I thought:
aragonCLI/
  package.json
  packages/
    apm/
      package.json
    dao/
      package.json
    utils/  *this is cli-utils*
      package.json
    create-aragon-app/
      package.json
    bare-boilerplate/
      package.json
    react-boilerplate/
      package.json
    react-kit-boilerplate/
      package.json
aragonCLI/
  package.json
  cli/
    apm/
      package.json
    dao/
      package.json
    util/
      package.json
    …
  util/
    create-aragon-app/
      package.json
    …
  boilerplates/
    bare/
      package.json
    react/
      package.json
    react-kit/
      package.json

@osarrouy what do you think?

@osarrouy
Copy link

osarrouy commented Jan 4, 2019

Hey @galactusss

I'm not sure about Aragen cause i've not dived into its code yet but doesn't it introduce some cyclic dependencies ? Not sure about that. Otherwise i think it makes sense to introduce it in the monorepo as all the CLI related tools will rely on it.

Regarding the monorepo structure i'm not sure either - lots of doubts this morning ;) I definitely find the second version cleaner and really like it. However the last time I tried to play with a non-standard monorepo struct - i.e. every packages under the packages folder - I ran into a couple of issue. But maybe it was because of my particular monorepo structure. I can't remember to be honest.

Have you tried to mock both of these structures with lerna ? Was it fine ?

@0xGabi
Copy link
Contributor Author

0xGabi commented Jan 4, 2019

Thank you for the feedback. I read the same thing, others bumped into problems with an structure similar to the second. Also, 0x have a bunch of package and they are using the first one. So I will go with the first structure.

I did mock a first basic example in my repo aragonCLI. As first step, I would like to refactor at something like this

@0xGabi 0xGabi changed the title Monorepo [EPIC] Monorepo Jan 5, 2019
@sohkai
Copy link
Contributor

sohkai commented Jan 11, 2019

I believe it make sense to include the boilerplates, I found them to be related to the cli at some extend (is aragen also a posible candidate to include as a package?)

I think it might get harder to clone the boilerplates if we included it in a monorepo (don't think it's easy to only clone a particular directory from a repo), so I'd probably leave them out.

aragen would make sense to include in the repo, however its problem is that it has a fairly involved installation phase as well an automated release strategy through merges to master. If we do move it, I'd do it later once we've settled on the structure.


On the lerna structure, you'll notice we don't use the "packages" lerna structure in aragon-apps. I don't think naming the directories different makes a big difference, but it's just that they'll be in different scopes with lerna usually using "packages" as the default scope.

@kernelwhisperer kernelwhisperer changed the title [EPIC] Monorepo Monorepo structure Mar 25, 2019
@stale
Copy link

stale bot commented Sep 21, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for contributing to Aragon! 🦅

@stale stale bot added the abandoned label Sep 21, 2019
@stale stale bot closed this as completed Sep 28, 2019
@macor161
Copy link
Contributor

macor161 commented Oct 2, 2019

@0xGabi Don't know if you want to reopen this?

@0xGabi
Copy link
Contributor Author

0xGabi commented Oct 3, 2019

Yes let's do it to track our progress with v7 on both new dao and apm packages. What you think?

@0xGabi
Copy link
Contributor Author

0xGabi commented Oct 21, 2019

Replaced by #826

@0xGabi 0xGabi closed this as completed Oct 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants