- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
--
You received this message because you are subscribed to the Google Groups "content-owners" group.
To unsubscribe from this group and stop receiving emails from it, send an email to content-owner...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CAJ_xCimt0vwi2T%2BbYvY_wwKUtHd-qv1qW-eEmWfxHjx2iH_%2Byg%40mail.gmail.com.
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools. If we have one, would it break a component build maybe?
--On Thu, May 27, 2021 at 8:58 AM Matt Falkenhagen <fal...@chromium.org> wrote:Hi,--I occasionally get a CL to approve a DEPS change for something taking a dependency on //content /public (typically from //components).I wonder if it'd be useful to put together a list of what to look out for for these changes.Here is my current practice:
- Try to consider whether it makes architectural sense for the directory to live above //content.
- //components can take a dependency on //content/public.
- Confirm the code is running in the correct process: e.g., //component/foo/browser can only add //content/public/browser. Some components run only in one process and don't have the explicit directory name.
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
- Full guidelines for //components are in the README.
Anything else people look out for?
You received this message because you are subscribed to the Google Groups "content-owners" group.
To unsubscribe from this group and stop receiving emails from it, send an email to content-owner...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CAJ_xCimt0vwi2T%2BbYvY_wwKUtHd-qv1qW-eEmWfxHjx2iH_%2Byg%40mail.gmail.com.
--Kentaro Hara, Tokyo
You received this message because you are subscribed to the Google Groups "content-owners" group.
To unsubscribe from this group and stop receiving emails from it, send an email to content-owner...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CABg10jxWfVqo%3DjQNa%2BNjzSEu%2BUqb-X1CqZyi1nPLaVMT4ssUSg%40mail.gmail.com.
On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.
If we have one, would it break a component build maybe?I know this was previously litigated, but if it's becoming a problem, perhaps we could revisit the decision to have no layering structure in the components directory. If we separated "things content consumes" from "things that consume content" and the same for blink,we could put a DEPS in some ancestor directory and not need to revisit this all the time.On Thu, May 27, 2021 at 8:58 AM Matt Falkenhagen <fal...@chromium.org> wrote:Hi,I occasionally get a CL to approve a DEPS change for something taking a dependency on //content /public (typically from //components).I wonder if it'd be useful to put together a list of what to look out for for these changes.
Here is my current practice:
- Try to consider whether it makes architectural sense for the directory to live above //content.
- //components can take a dependency on //content/public.
- Confirm the code is running in the correct process: e.g., //component/foo/browser can only add //content/public/browser. Some components run only in one process and don't have the explicit directory name.
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
- Full guidelines for //components are in the README.
Anything else people look out for?
------
You received this message because you are subscribed to the Google Groups "content-owners" group.
To unsubscribe from this group and stop receiving emails from it, send an email to content-owner...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CAJ_xCimt0vwi2T%2BbYvY_wwKUtHd-qv1qW-eEmWfxHjx2iH_%2Byg%40mail.gmail.com.
--Kentaro Hara, Tokyo
You received this message because you are subscribed to the Google Groups "content-owners" group.
To unsubscribe from this group and stop receiving emails from it, send an email to content-owner...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CABg10jxWfVqo%3DjQNa%2BNjzSEu%2BUqb-X1CqZyi1nPLaVMT4ssUSg%40mail.gmail.com.
You received this message because you are subscribed to the Google Groups "content-owners" group.
To unsubscribe from this group and stop receiving emails from it, send an email to content-owner...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CAHtyhaR%2Bjv0Z0YAkqHtn29rmsJm34FGnoPnnOjcCm3%2BADrXxqQ%40mail.gmail.com.
On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).
On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.
Also note that adding a directory to DEPS requires the owners from that directory to agree. Adding a GN dependency has no such review requirement. While they're both useful I don't think they really provide the same thing at this point.
On Tue, Jun 1, 2021 at 7:35 AM <dan...@chromium.org> wrote:On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.My hunch is that the checking on non-component builds is sufficient. Do we have any examples where the component builds caught issues that weren't caught elsewhere?
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CALhVsw0x81xdSDZ4LR22DyzFfU-_o6Soe4qDAr9jKdWntAtmTw%40mail.gmail.com.
On Tue, Jun 1, 2021 at 12:51 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 7:35 AM <dan...@chromium.org> wrote:On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.My hunch is that the checking on non-component builds is sufficient. Do we have any examples where the component builds caught issues that weren't caught elsewhere?If we always build our tests with component build, then removing DEPS files could allow writing a test against content internals that shouldn't be.
We've seen incorrect DEPS into content/ internals before, so I guess GN did not catch those. There are still some.
It would seem to me that DEPS mostly prevents this, except in the cases where we've accidently added content incorrectly, and that we'd have no checks at all without DEPS.
On Tue, Jun 1, 2021 at 9:58 AM <dan...@chromium.org> wrote:On Tue, Jun 1, 2021 at 12:51 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 7:35 AM <dan...@chromium.org> wrote:On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.My hunch is that the checking on non-component builds is sufficient. Do we have any examples where the component builds caught issues that weren't caught elsewhere?If we always build our tests with component build, then removing DEPS files could allow writing a test against content internals that shouldn't be.To make sure I understand: are you wondering about a scenario where there are tests that are only built in debug config? I'm not aware of any. I'd say even if there's an exception, almost all of our test configs run similarly on debug/release bots, e.g. with CQ doing rel+dcheck while waterfall does normal release + debug.
We've seen incorrect DEPS into content/ internals before, so I guess GN did not catch those. There are still some.Yeah unfortunately some have leaked in due to reviewer not noticing. We have fixed most of them.It would seem to me that DEPS mostly prevents this, except in the cases where we've accidently added content incorrectly, and that we'd have no checks at all without DEPS.In this specific scenario, I've found gn visibility is better. This is because we can put a big comment say in content/test's GN file saying "DO NOT ALLOW CODE OUTSIDE OF CONTENT/". For DEPS allows, those are scattered all over the codebase (e.g. ui/, chrome/) and so it's easier for a content/owner to mistakenly allow it.
On Tue, Jun 1, 2021 at 3:22 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 9:58 AM <dan...@chromium.org> wrote:On Tue, Jun 1, 2021 at 12:51 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 7:35 AM <dan...@chromium.org> wrote:On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.My hunch is that the checking on non-component builds is sufficient. Do we have any examples where the component builds caught issues that weren't caught elsewhere?If we always build our tests with component build, then removing DEPS files could allow writing a test against content internals that shouldn't be.To make sure I understand: are you wondering about a scenario where there are tests that are only built in debug config? I'm not aware of any. I'd say even if there's an exception, almost all of our test configs run similarly on debug/release bots, e.g. with CQ doing rel+dcheck while waterfall does normal release + debug.No, component build disables the checks, not debug build.
We mostly build release+component on bots, I believe.
On Tue, Jun 1, 2021 at 12:29 PM <dan...@chromium.org> wrote:On Tue, Jun 1, 2021 at 3:22 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 9:58 AM <dan...@chromium.org> wrote:On Tue, Jun 1, 2021 at 12:51 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 7:35 AM <dan...@chromium.org> wrote:On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.My hunch is that the checking on non-component builds is sufficient. Do we have any examples where the component builds caught issues that weren't caught elsewhere?If we always build our tests with component build, then removing DEPS files could allow writing a test against content internals that shouldn't be.To make sure I understand: are you wondering about a scenario where there are tests that are only built in debug config? I'm not aware of any. I'd say even if there's an exception, almost all of our test configs run similarly on debug/release bots, e.g. with CQ doing rel+dcheck while waterfall does normal release + debug.No, component build disables the checks, not debug build.Right, sorry I was using debug as a proxy for component.We mostly build release+component on bots, I believe.Commit queue builds release non component. Waterfall builds debug (which is component) and release (non component). I don't believe we build release+component on waterfall or CQ.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/content-owners/CALhVsw3KW-ZY-CSZ4qU_Tw7s0VMmhgDW8vh8Gq8ENZ0b7Fr2OQ%40mail.gmail.com.
On Tue, Jun 1, 2021 at 3:56 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 12:29 PM <dan...@chromium.org> wrote:On Tue, Jun 1, 2021 at 3:22 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 9:58 AM <dan...@chromium.org> wrote:On Tue, Jun 1, 2021 at 12:51 PM John Abd-El-Malek <j...@chromium.org> wrote:On Tue, Jun 1, 2021 at 7:35 AM <dan...@chromium.org> wrote:On Thu, May 27, 2021 at 7:41 PM John Abd-El-Malek <j...@chromium.org> wrote:On Thu, May 27, 2021 at 7:57 AM <dan...@chromium.org> wrote:On Wed, May 26, 2021 at 10:24 PM Kentaro Hara <har...@chromium.org> wrote:
- Circular DEPS are not allowed. One way to check this is "git gs <directory>" inside //content. I don't know if presubmit automatically detects circular DEPS well.
(Slightly related topic) I sometimes struggle with reviewing DEPS changes in Blink that add a dependency from Blink to //components/ because it might introduce a circular dependency. It would be nice if circular dependencies are checked via tools.Note that most of what we get from DEPS is not needed anymore once gn check is enabled everywhere.gn should catch circular dependencies as well as DEPS right (although with both of course subdirs can work around this).Component builds in //content turn off GN checking, do you include that in "gn check is enabled everywhere"? Is there some documented path to getting to that point? While release (non-component) builds typically give you the safety needed on the bots, it won't guard anything that's only built on bots in component builds. That may or may not be enough for you.My hunch is that the checking on non-component builds is sufficient. Do we have any examples where the component builds caught issues that weren't caught elsewhere?If we always build our tests with component build, then removing DEPS files could allow writing a test against content internals that shouldn't be.To make sure I understand: are you wondering about a scenario where there are tests that are only built in debug config? I'm not aware of any. I'd say even if there's an exception, almost all of our test configs run similarly on debug/release bots, e.g. with CQ doing rel+dcheck while waterfall does normal release + debug.No, component build disables the checks, not debug build.Right, sorry I was using debug as a proxy for component.We mostly build release+component on bots, I believe.Commit queue builds release non component. Waterfall builds debug (which is component) and release (non component). I don't believe we build release+component on waterfall or CQ.I see, it seems like making content/test:test_support have reduced visibility in GN would be a good experiment to see how it feels to replace DEPS with visibility. I think we've derailed a bit though.GN visbiility doesn't really change the question a content owner has to answer. It changes the question to be about a build target instead of a directory. But "is it right to depend on content/public" is still a question content owners have to answer.
It would be less work if this question could be answered fewer times (splitting components for example, so it's answered once for the whole tree), rather than more times. If changing the number of times the question needs to be asked isn't feasible, then a clear algorithm would help.
@Matt: are you planning on adding the guidelines so far and put them in some content/ docs?
2021年6月4日(金) 8:20 John Abd-El-Malek <j...@chromium.org>:@Matt: are you planning on adding the guidelines so far and put them in some content/ docs?Yep, I'm planning to upload a CL soon. Thanks for the discussion on this.