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

New dependency management system #54

Closed
obiwac opened this issue Nov 8, 2024 · 0 comments · Fixed by #67
Closed

New dependency management system #54

obiwac opened this issue Nov 8, 2024 · 0 comments · Fixed by #67
Labels
feature New feature, yo

Comments

@obiwac
Copy link
Member

obiwac commented Nov 8, 2024

I had initially described this in #50, but bringing that all in here:

Dependencies

Have some kind of list of Dep objects which looks something like this maybe:

deps = [
   Dep.local("/path/to/local/directory"),
   Dep.git("git://[email protected]/inobulles/iar", "v0.1.0"), # Could also be just 'main' e.g.
]

The process would be as follows:

  • Copy or clone all the dependencies.
  • Evaluate their dependencies in turn if they have a build.fl file (maybe through a command like bob list-deps).
  • Once we have a list of all first-layer dependencies, we can copy/clone them and repeat this process until we've traversed the whole dependency tree.
  • Build all these dependencies in parallel, layer-by-layer, starting from the leaf layer and working our way up. For Bob projects, figure out some way for them not to build their dependencies as we're already building them.
  • Have some kind of fake install environment and install all the dependencies there.

Maybe it'd be cool to display the dependency tree while building, and for dependency lists to collapse once their parent has finished building.

For communicating changes in how many cores are available, look into eventfd?

@obiwac obiwac added the feature New feature, yo label Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature, yo
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant