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

Imrove source prediction robustness #553

Merged
merged 6 commits into from
Feb 18, 2024

Conversation

jkloetzke
Copy link
Member

No description provided.

These caching data structures are prone to incorrect data e.g., if some
checkout is not really deterministic. The old behaviour was to never
replace the files which sets the very first execution result into stone.
If that was incorrect, there are no tools to purge the wrong cache
except deleting the whole binary archive.

Instead, Bob now always uploads the live-build-id and fingerprint
caches. These files are small so there should be no performance impact.
But at least the cache will reflect the last build, giving the user the
possibility to replace the wrong predictions with the right ones.
The Jenkins build is usually used to provide binary artifacts. This
implies that the build should be as stable as possible. If a checkout
step of some recipe is not fully deterministic, though, then relying on
live-build-ids may never rectify the problem. It might also hide such a
problem only until the checkout is really forced for some other reason.

To increase the robustness, add a "scm.always-checkout" extended option
that defaults to "true". If enabled, checkout steps will always be
executed and live-build-ids will only be uploaded but never used. If the
user wants to rely on live-build-ids to speed up builds he can disable
the scm.always-checkout option.
The Jenkins build is usually used for creating binary artifacts and
release builds. This is done best by doing clean builds. If the user
wants to focus on speed, the --incremental option can be used when
creating a new Jenkins alias.
Copy link

codecov bot commented Feb 17, 2024

Codecov Report

Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (47a0c29) 88.91% compared to head (b987c12) 88.92%.

Files Patch % Lines
pym/bob/archive.py 88.88% 5 Missing ⚠️
pym/bob/state.py 75.00% 2 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #553   +/-   ##
=======================================
  Coverage   88.91%   88.92%           
=======================================
  Files          46       46           
  Lines       14774    14795   +21     
=======================================
+ Hits        13137    13156   +19     
- Misses       1637     1639    +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@jkloetzke jkloetzke merged commit f4e85e2 into BobBuildTool:master Feb 18, 2024
10 of 11 checks passed
@jkloetzke jkloetzke deleted the robust-predictions branch February 18, 2024 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant