-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Thanks @ruffsl for this helpful extension! I am using this to speed up CI for feature branches and would like to seek some clarification to what is described in the README. (Also, much thanks to providing a nice readme instead of just a mostly empty file only containing the package name!)
Can you please explain the purpose of the --packages-select-cache-key? For example, where would I look to see what the default key is and why would I need to override it?
Also, the lock workflow is not intuitive to me. In the quick start example, why do I need to lock the workspace before the first colcon build and also after the minor source file changes? When colcon build --packages-skip-cache-valid is run, does it re-hash the package and compare to what is cached? Or does the hashing only happen when colcon lock is called? Also, it appears that lockfiles are also updated/created after the build and test verbs too (as described by the sentence "Upon successful task completion for a package job, as when evoking colcon verbs like build, test, etc, these lockfiles are updated for the evoked verb, thereby delineating the provenance of the job’s results"). To my understanding, the verb lock is a bit strong because it sounds like other actions would not be permitted to make changes to lockfiles, but that is not the case. To me, the verb is closer to hash or maybe update to manually trigger an update to the lock files.
I think that a more detailed explanation (maybe annotating the example) of what creates and or modifies which lock files and what checks against the lock files are performed would be helpful. Also, an example of using --packages-select-cache-key would be helpful.
Overall, I think that understanding that there are some "automatic" updates to lock files depending on using verbs like build and test is an important concept that a new user may not be aware of based on the current example and explanation.