Related to the effort moving builders to remote_run (https://groups.google.com/a/chromium.org/d/msg/infra-dev/pt70Gth16KM/vn6oNolSBAAJ), I'm also planning to move recipes to the infra repo. The former is a prerequisite, i.e. annotated_run which most of the builders use can only use recipes in the build repo, while remote_run can reference any repo.I'd like to ask for your input. Some more specific questions:1. Do you have any concerns about moving forward? I'd like to start with infra/publish_tarball which is only used by me and open source distros, so impact on Google and rest of Chrome should be minimal. Once that's ready, we can evaluate next steps.
2. Where in the infra repo do we want to add recipes? I could add recipes, recipe_modules and recipes.py directly under repo root. If you'd prefer a different directory, I'm also fine with that - let me know your suggestions. Please note that putting them e.g. under infra/infra might interfere with test.py's coverage - I haven't tried that yet. It might be best to go for simplicity and use the repo root.
3. Which places need to be updated to register the infra repo? I know about public recipe autoroller, and likely downstream recipe tryjobs. Is there anything else?
Paweł
--
You received this message because you are subscribed to the Google Groups "infra-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to infra-dev+...@chromium.org.
To post to this group, send email to infr...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAN60ya%2B0ZN%2BM%2BmJ9c42g6U_mRsu5tvZ9oFSPu79XM1iEofn8jQ%40mail.gmail.com.
Related to the effort moving builders to remote_run (https://groups.google.com/a/chromium.org/d/msg/infra-dev/pt70Gth16KM/vn6oNolSBAAJ), I'm also planning to move recipes to the infra repo. The former is a prerequisite, i.e. annotated_run which most of the builders use can only use recipes in the build repo, while remote_run can reference any repo.
I'd like to ask for your input. Some more specific questions:1. Do you have any concerns about moving forward? I'd like to start with infra/publish_tarball which is only used by me and open source distros, so impact on Google and rest of Chrome should be minimal. Once that's ready, we can evaluate next steps.2. Where in the infra repo do we want to add recipes? I could add recipes, recipe_modules and recipes.py directly under repo root. If you'd prefer a different directory, I'm also fine with that - let me know your suggestions. Please note that putting them e.g. under infra/infra might interfere with test.py's coverage - I haven't tried that yet. It might be best to go for simplicity and use the repo root.3. Which places need to be updated to register the infra repo? I know about public recipe autoroller, and likely downstream recipe tryjobs. Is there anything else?Paweł
--
You received this message because you are subscribed to the Google Groups "infra-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to infra-dev+...@chromium.org.
To post to this group, send email to infr...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAATLsPYY7OkuSQnVivW3PYezUtKLSjYWrnnk4H0dW5RttKxZFA%40mail.gmail.com.
On Fri, Jun 3, 2016 at 7:24 AM, Paweł Hajdan, Jr. <phajd...@chromium.org> wrote:Related to the effort moving builders to remote_run (https://groups.google.com/a/chromium.org/d/msg/infra-dev/pt70Gth16KM/vn6oNolSBAAJ), I'm also planning to move recipes to the infra repo. The former is a prerequisite, i.e. annotated_run which most of the builders use can only use recipes in the build repo, while remote_run can reference any repo.Are you talking about moving just infra-specific recipes from build to infra, or all recipes (e.g., chromium.py)?
---- Dirk--I'd like to ask for your input. Some more specific questions:1. Do you have any concerns about moving forward? I'd like to start with infra/publish_tarball which is only used by me and open source distros, so impact on Google and rest of Chrome should be minimal. Once that's ready, we can evaluate next steps.2. Where in the infra repo do we want to add recipes? I could add recipes, recipe_modules and recipes.py directly under repo root. If you'd prefer a different directory, I'm also fine with that - let me know your suggestions. Please note that putting them e.g. under infra/infra might interfere with test.py's coverage - I haven't tried that yet. It might be best to go for simplicity and use the repo root.3. Which places need to be updated to register the infra repo? I know about public recipe autoroller, and likely downstream recipe tryjobs. Is there anything else?Paweł
You received this message because you are subscribed to the Google Groups "infra-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to infra-dev+...@chromium.org.
To post to this group, send email to infr...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAATLsPYY7OkuSQnVivW3PYezUtKLSjYWrnnk4H0dW5RttKxZFA%40mail.gmail.com.
You received this message because you are subscribed to the Google Groups "infra-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to infra-dev+...@chromium.org.
To post to this group, send email to infr...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAEoffTApq-nyLv-i09Q0gGZMdOBjfmJsTMYtF5MHUyA4LBOF%3Dg%40mail.gmail.com.
replies inlineOn Fri, Jun 3, 2016 at 7:24 AM, Paweł Hajdan, Jr. <phajd...@chromium.org> wrote:Related to the effort moving builders to remote_run (https://groups.google.com/a/chromium.org/d/msg/infra-dev/pt70Gth16KM/vn6oNolSBAAJ), I'm also planning to move recipes to the infra repo. The former is a prerequisite, i.e. annotated_run which most of the builders use can only use recipes in the build repo, while remote_run can reference any repo.
I'd like to ask for your input. Some more specific questions:1. Do you have any concerns about moving forward? I'd like to start with infra/publish_tarball which is only used by me and open source distros, so impact on Google and rest of Chrome should be minimal. Once that's ready, we can evaluate next steps.sgtm
2. Where in the infra repo do we want to add recipes? I could add recipes, recipe_modules and recipes.py directly under repo root. If you'd prefer a different directory, I'm also fine with that - let me know your suggestions. Please note that putting them e.g. under infra/infra might interfere with test.py's coverage - I haven't tried that yet. It might be best to go for simplicity and use the repo root.I've always felt it odd that recipes get three top-level files - could we have everything under a top-level "recipes"? This would be more in line with the direction we're going with fetching subdirectories of repos using gitiles tarball API. We could then have:recipes/recipes.pyrecipes/recipe_modules/<whatever supporting files are needed with gitiles tarball fetches>
3. Which places need to be updated to register the infra repo? I know about public recipe autoroller, and likely downstream recipe tryjobs. Is there anything else?[+cc martiniss]
ErikPaweł
Homogeneity is good, but I don't think it's something we should assume is available in every repo we support. The whole reason we have luci-config is so that we have one homogenous API for configuration, even though we can't assume homogenous repo layouts. I would much rather update the hard coded locations to use the homogenous API that we built specifically for this purpose than to paper over it by making infra conform to the hard coded path assumptions.
The fact that we still have a separate list of packages in the roller recipe is also a historical bug, but has the same solution.
If there's deficiencies that we need to remedy to make luci-config's api work offline (like when we have code but no URL) we should solve that problem (e.g. a consistent way to bundle the luci-config data statically with the e.g. the isolated code). Since luci-config is already a virtual filesystem (but with a weird API), we could easily have an api call to retrieve a zip'd snapshot of config as a folder structure, which we could bundle with the isolated code. However, I don't think we need to solve that problem right away.
R
--
You received this message because you are subscribed to the Google Groups "infra-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to infra-dev+...@chromium.org.
To post to this group, send email to infr...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAATLsPbSKDtJM0GmaCUKfASFpfTBe3cgh%3DyYe793GAeL99nvPg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CA%2Bq_oBdLkT6pR3hFGfGK%2BUY%3DLMwmRFmQ0c4W-sAaWX7X%3DqzHKQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CA%2Bq_oBdLkT6pR3hFGfGK%2BUY%3DLMwmRFmQ0c4W-sAaWX7X%3DqzHKQ%40mail.gmail.com.
The repo URLs are already a bug (for the same historical reason that the hard coded paths and project lists are bugs). It should just be using the luci-config ID to get all the information it needs.
Afaik, we have two modes, online and offline. Online is e.g. remote_run or remote_bundle. These modes can talk to luci-config. The offline modes (e.g. running a bundle) should have any luci-config data captured for them at the time the online mode was run.
Right?
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CANheWB%3DzyvZ-dJCSC1q0u2b4tqXkqm2Fo5tvt9LCR2nBTbmhrQ%40mail.gmail.com.
Yes URL for luci-config service in .cfg sgtm
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAATLsPbc%2B1bS%3DtKwjyM%3DNKKUuxLSc8EZ-2XFzsn-ELGQMfK9pw%40mail.gmail.com.
How would we handle overriding recipe directories, i.e. recipes.py -O depot_tools=~/depot_tools? I use that very frequently when developing cross-repo changes. Specifically, how would the recipe engine know where to look for in the overridden depot_tools location?
I'd be fine with putting path to deps recipes.cfg in downstream recipes.cfg as suggested in the original post. It's probably important to ensure it's the same in the entire dependency tree just like we ensure the same revision of each repo.
For luci-config - that's probably also fine. Could you please provide "pseudo-code" for how to resolve location of recipes.cfg for any repo? Ideally point to specific API calls in luci-config. I may be very interested in working on this if we decide to go this way, since it seems to be on the critical path to getting further recipes-in-repos work done.
I'd still like us to consider requiring infra/config/recipes.cfg everywhere. I wonder how an evaluation of pros and cons of each of these alternatives could look like.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAATLsPYry2eCZK%3DCymEPFK%2BZUZ52SF0VMWpghQ18LpyoRJ8HnA%40mail.gmail.com.
Traceback (most recent call last):
File "E:\b\build\slave\infra-continuous\build\.remote_run\tmpxrgo0g\remote_run_workdir\checkout\scripts\slave\.recipe_deps\depot_tools\gsutil.py", line 160, in <module>
sys.exit(main())
File "E:\b\build\slave\infra-continuous\build\.remote_run\tmpxrgo0g\remote_run_workdir\checkout\scripts\slave\.recipe_deps\depot_tools\gsutil.py", line 157, in main
clean=args.clean)
File "E:\b\build\slave\infra-continuous\build\.remote_run\tmpxrgo0g\remote_run_workdir\checkout\scripts\slave\.recipe_deps\depot_tools\gsutil.py", line 125, in run_gsutil
gsutil_bin = ensure_gsutil(force_version, target, clean)
File "E:\b\build\slave\infra-continuous\build\.remote_run\tmpxrgo0g\remote_run_workdir\checkout\scripts\slave\.recipe_deps\depot_tools\gsutil.py", line 109, in ensure_gsutil
target_zip.extractall(download_dir)
File "E:\b\depot_tools\python276_bin\lib\zipfile.py", line 1036, in extractall
self.extract(zipinfo, path, pwd)
File "E:\b\depot_tools\python276_bin\lib\zipfile.py", line 1024, in extract
return self._extract_member(member, path, pwd)
File "E:\b\depot_tools\python276_bin\lib\zipfile.py", line 1079, in _extract_member
file(targetpath, "wb") as target:
IOError: [Errno 2] No such file or directory: 'E:\\b\\build\\slave\\infra-continuous\\build\\.remote_run\\tmpxrgo0g\\remote_run_workdir\\checkout\\scripts\\slave\\.recipe_deps\\depot_tools\\external_bin\\gsutil\\gsutil_pyfgpwuf\\download\\gsutil\\third_party\\gcs-oauth2-boto-plugin\\gcs_oauth2_boto_plugin\\test_oauth2_client.py'
I believe the infra-continuous-win-64 failure is also because the path is too long. I saw a Traceback [1] which had a path > 260 chars in it.
Other CLs look ok. I think we should move configs from at the root level in builders.pyl to each builder config. Change path_config (https://codereview.chromium.org/2044423002) to just be inline with each builder, since you can specify properties per builder, and the repository for remote_run (https://codereview.chromium.org/2050683002) to be configurable per builder; these are more longer term changes I can do tomorrow; was trooper today, so fairly busy.