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

Restructure the repository to use separate extensions #59

Closed
akosyakov opened this issue May 2, 2017 · 10 comments
Closed

Restructure the repository to use separate extensions #59

akosyakov opened this issue May 2, 2017 · 10 comments
Assignees

Comments

@akosyakov
Copy link
Member

akosyakov commented May 2, 2017

Because npm link only creates a symlink instead of prepublishing and copying content, as npm install does, it is recommended to use file dependencies for local development: http://stackoverflow.com/questions/14381898/local-dependency-in-package-json

In addition we should make sure that theia prepublish script includes other resources as styles and example consumes them from lib folder not from src as now.

@svenefftinge
Copy link
Contributor

Should we also move the main framework to be a sibling rather then the parent of examples (and extensions)?

@svenefftinge svenefftinge added this to the Theia Goes Public milestone May 4, 2017
@svenefftinge
Copy link
Contributor

We would like to restructure the repository to have sibling npm packages instead of ancestors.
It should have the following stucture:

  • core - Contains the current top level npm package
  • extensions - Contains many theia extensions as individual npm packages (First one will be terminal, but we should move additional ones from core, like e.g. java and python support)
  • example - Contains the example app that supports both browser and electron, as well as integrating all extensions from this repository.

@hexa00
Copy link

hexa00 commented Jun 1, 2017

Is this still true after LDM ? Can we close this ?
@akosyakov ^^

@akosyakov
Copy link
Member Author

akosyakov commented Jun 1, 2017

It is still valid. We should try to decompose theia-core on separate node packages as @svenefftinge described.

@akosyakov
Copy link
Member Author

It will be nice to structure in such way that we can open core, extensions, and examples in separate instances of VS code. Since there will be a lot of duplicate dependencies in node_modules and VS code will just go bananas watching them.

@hexa00 hexa00 changed the title Switch example to consume theia as a file dependency Restructure the repository to use separate extentions Jun 1, 2017
@hexa00
Copy link

hexa00 commented Jun 1, 2017

OK I just changed the title to reflect that

@hexa00 hexa00 changed the title Restructure the repository to use separate extentions Restructure the repository to use separate extensions Jun 1, 2017
@svenefftinge
Copy link
Contributor

We should reconsider using 'lerna' with dependency hoisting. If we can

  • have a linter that tells us when we use dependencies not listed in package.json
  • configure tsc to resolve against typescript modules from src instead of lib (cross package).

@svenefftinge
Copy link
Contributor

Related microsoft/TypeScript#16792

@svenefftinge
Copy link
Contributor

svenefftinge commented Jun 29, 2017

I managed to end up in *.ts when navigating by putting this into the example's tsconfig:

{
   ...
    "baseUrl": "../..",
    "paths": {
      "theia-core/lib/*": [
        "src/*"
      ],
      "*": [
        "node_modules/*"
      ]
    }
}

We could list all our extensions in a commonly extended tsconfig, so tsc will reslve against the real src. Together with lerna and hoisted dependencies, we should also be able to use symbolic links again.

@akosyakov
Copy link
Member Author

Done with #299

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

3 participants