Giter Club home page Giter Club logo

Comments (8)

Ryuno-Ki avatar Ryuno-Ki commented on July 26, 2024

What about using git submodules?

from positron.

mykmelez avatar mykmelez commented on July 26, 2024

@Ryuno-Ki That's a possibility, and it's one I've been considering. I deliberately didn't suggest it (nor other solutions) in the description because I wanted to separate the description of the issue from potential solutions for it, like Git submodules (which is what Electron uses) and importing dependencies with an explicit version identifier in the import commit (as Node appears to do).

from positron.

Ryuno-Ki avatar Ryuno-Ki commented on July 26, 2024

I'm not fit in C++, how do you "import dependencies" in C++? I remember something about linking in my C course at university …

What lines would I have to look out for?

from positron.

mykmelez avatar mykmelez commented on July 26, 2024

I'm not fit in C++, how do you "import dependencies" in C++? I remember something about linking in my C course at university …

The "dependencies" in this case are the Electron and Node codebases, and specifically certain files in those codebases, all of which are currently JavaScript files (but which may in the future include C++ files).

To date, we've imported these files into the positron/electron/ and positron/node/ subdirectories, where by "import" I mean that I copied the files from local clones of those repositories into a local clone of the Positron repository, then committed them. I'm doing more of that work in #26.

But it'd be better to establish dependencies on the Electron/Node codebases as a whole, rather than copying individual files (since the files that Positron depends upon will change over time, and the set of files it depends upon should all come from the same revision); and identify the exact revision for each dependency.

Note that in some cases we'll also modify files in the depending codebases (as I've done in #26), so it isn't as simple as configuring a Git submodule for each one that points to the upstream repository. We could, however, fork those repositories and then configure a Git submodule that points to the fork.

from positron.

Ryuno-Ki avatar Ryuno-Ki commented on July 26, 2024

Okay, let me rephrase:

When I create a project using Node I track my dependencies in a package.json and run npm install to install them locally. How does Node itself imports Node's dependencies?

from positron.

Ryuno-Ki avatar Ryuno-Ki commented on July 26, 2024

Sorry, but fits my example perfectly:

A moment of nostalgia
(Credits: A moment of nostalgia by CommitStrip)

from positron.

mykmelez avatar mykmelez commented on July 26, 2024

When I create a project using Node I track my dependencies in a package.json and run npm install to install them locally. How does Node itself imports Node's dependencies?

I'm unsure. I know they don't use Git submodules, because the repository contains no .gitmodules file. And their dependencies are committed to the Node repository (in the deps/ subdirectory), so they don't use a tool like Git submodules or NPM that maintains a list of dependencies that live outside the Node repository.

They might use something like Git subtree, although I don't see the branches I would expect in that case. Or perhaps they use homegrown tools or manually import code like we're currently doing for Positron.

from positron.

mykmelez avatar mykmelez commented on July 26, 2024

Sorry, but fits my example perfectly:

So true!

from positron.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.