Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

How can we improve dependency compilation? #130

Open
sophiewigmore opened this issue Dec 10, 2021 · 0 comments
Open

How can we improve dependency compilation? #130

sophiewigmore opened this issue Dec 10, 2021 · 0 comments
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@sophiewigmore
Copy link
Member

sophiewigmore commented Dec 10, 2021

Context

The dependencies we ship in the dep-server are for the most part compiled from source. This is to provide a more thorough chain of custody for our dependencies, and also compiling against the stack they will ultimately run provides us with an extra guarantee of compatibility. The dependency compilation step of our automation reaches out to compilation code from the previous iteration of buildpacks (Cloud Foundry buildpacks) located at:

This code is fairly hard to maintain due to its complexity, being located in multiple repositories, and being written in Ruby (the Paketo codebase is largely written in Golang). Previous refactoring efforts were challenging, leading to the second repository (linked above) that contains some of the compilation code, but not all.

We should do a complete overhaul of our compilation code to make it more modular, maintainable, and well-documented.

Desired Outcome:

This issue is meant to surface the need for a new compilation codebase, as well as enumerate items a new implementation should include. The intended outcome of this issue has two parts:

  1. Come to a consensus about an architecture that makes sense for a new dependency compilation system. It should be summarized in a comment on this issue, or in a in a new issue.
  2. Create a batch of issues to track the work involved in the implementation.

The new system we decide on should have the following features:

  • Minimal code duplication across dependencies (factor out common functionality where possible.)
  • The code should be easily extendable to other operating systems (like ARM64 to enable Roadmap 2023: ARM64 Support feedback#23)
  • The code should be easily extendable when adding new dependencies.
  • Documentation in the form of comments (or something else) outlining decisions for compiling dependencies with certain flags

Open Questions:

  • Are there other projects or tools that accomplish a similar task? If so, how do they manage dependency compilation?
  • Should it live in the dep-server, or somewhere else?
  • What parts of the previous implementation do we want to keep?
@sophiewigmore sophiewigmore added enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Dec 10, 2021
@sophiewigmore sophiewigmore changed the title How can we improve dependency compilation How can we improve dependency compilation? Dec 13, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant