-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Improve binary re-use to fasten compilation and reduce package size (Conan) #3630
Comments
Some "build avoidance" strategies from long ago look at trying to determine a "signature" of a built object ("Derived Object", or "DO"). For example: busy box's signature might be a hash of a set of text config files that define the added parts of the build plus the version/arch of the toolchain -- or even the toolchain's signature if available. If that resulting build exists in the object cache, pull it into place (Clearmake called this "winking in a DO"). This worked fairly well, but the lesson in Clearcase/Clearmake was that a single whitespace change can result in a different signature that ripples down the line, destroying the build-avoidance strategy. This sort of signature algorithm would require very consistent and repeatable signature logic, even to the point of "beautifying" config files to remove nonessential/whitespace fluctuations. In toolchains in an unrelated project, I remember also having to set the current notion of a date (to granularity of a day) to set internal strings in toolchain and generated kernel identical. |
As an admin and user of Artifactory, I find Conan package manager suitable for our needs: https://docs.conan.io/en/latest/getting_started.html |
@ymartin59 and @chickenandpork are you already workin on this topic? Would be really nice to see if there is someone working on it. |
I hade a look to conan and Ig guess it should be possible to use conan to preserve the content of install folder. But I faced the following question:
I guess it's possible to generate a conanfile.txt for each package, something like this: [generators] [options] [imports] Then we should be able to restore the content of I guess a quick and dirty proof of concept would be nice, at which place would you suggest to insert such a behavior? |
What are your opinion about including version in dependencies? For conan we will just remove the directory in front of and for build we will remove everything after he package. For the beginning I would prefer to restrictive caching to cross packages only. How to publish the prebuilt packages to remote? Who will register a remote on bintray? Should we crate a branch this change? |
Current situation:
Context:
Problem:
Proposals/ideas:
The text was updated successfully, but these errors were encountered: