Giter VIP home page Giter VIP logo

Comments (7)

waruqi avatar waruqi commented on June 11, 2024

Finding packages from xmake packages is very fast, it doesn't call any other processes such as pkg-config, it simply looks up the list of libraries. Nor does it recursively traverse the directory.

Also, we can't disable it, because users might run the xrepo remove --all xxx command themselves to remove them. This will cause failures for package installation and inconsistent status.

If it's slow, we'll just have to figure out how to optimise the fetch implementation.

from xmake.

SirLynix avatar SirLynix commented on June 11, 2024

It may be fast but there's a lot of packages.

Also, we can't disable it, because users might run the xrepo remove --all xxx command themselves to remove them. This will cause failures for package installation and inconsistent status.

I'm not sure to understand how not fetching private dependencies would break xrepo remove? doesn't it work on a temporary separate directory?

from xmake.

SirLynix avatar SirLynix commented on June 11, 2024

Also it doesn't feel right that xmake config --check (or xmake project) will require to update private dependencies (when a new version is updated), since it's not used by the project and the dependency is already compiled.

from xmake.

waruqi avatar waruqi commented on June 11, 2024

It may be fast but there's a lot of packages.

Also, we can't disable it, because users might run the xrepo remove --all xxx command themselves to remove them. This will cause failures for package installation and inconsistent status.

I'm not sure to understand how not fetching private dependencies would break xrepo remove? doesn't it work on a temporary separate directory?

If we have multiple packages that depend on the same private package, for example

foo -> private bar.
zoo -> private bar.

Then we need to wait for all packages to be installed. if we do not fetch private bar.

from xmake.

waruqi avatar waruqi commented on June 11, 2024

In addition, if we want to determine if all the parents of a private package have been installed, we need to run fetch first. However, at the time of running fetch, we are not sure which private packages need to be fetched.

So we need to build a dependency graph, fetch them sequentially, and there is no way to do a parallel fetch.

It would be a bit complicated to implement this mechanism.

from xmake.

waruqi avatar waruqi commented on June 11, 2024

Also it doesn't feel right that (or xmake project) will require to update private dependencies (when a new version is updated), since it's not used by the project and the dependency is already compiled.xmake config --check

To achieve this, again, there are some complications.

from xmake.

waruqi avatar waruqi commented on June 11, 2024

The logic for determining whether or not to fetch and install is already quite complex, and I don't think we should continue to add to it, or at least I'm not sure I can improve it very much at the moment.

from xmake.

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.