Platform2 is going to be enabled by default today assuming all goes well. If you don't know what Platform2 is, see the doc about it at http://www.chromium.org/chromium-os/getting-started-with-platform2.In short, makefiles/SCons files for some projects in src/platform are disappearing in favour of GYP files. If your project has a GYP file, you should be updating that once the transition happens and not the Makefile. The makefiles will be cleaned out for most projects shortly after the transition happens.If your project is in src/platform and doesn't have a GYP file, you should write one. The syntax is very straightforward and you should be able to use an already ported project like cros-disks as a good reference.Eventually everything in src/platform will use GYP files and src/platform will become a single repository. Anything where this isn't appropriate will be moved somewhere else outside src/platform.
-Olof--
--
Chromium OS Developers mailing list: chromiu...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-os-dev?hl=en
2013/9/12 Liam McLoughlin <lmclo...@chromium.org>
Platform2 is going to be enabled by default today assuming all goes well. If you don't know what Platform2 is, see the doc about it at http://www.chromium.org/chromium-os/getting-started-with-platform2.In short, makefiles/SCons files for some projects in src/platform are disappearing in favour of GYP files. If your project has a GYP file, you should be updating that once the transition happens and not the Makefile. The makefiles will be cleaned out for most projects shortly after the transition happens.If your project is in src/platform and doesn't have a GYP file, you should write one. The syntax is very straightforward and you should be able to use an already ported project like cros-disks as a good reference.Eventually everything in src/platform will use GYP files and src/platform will become a single repository. Anything where this isn't appropriate will be moved somewhere else outside src/platform.What's considered "not appropriate"?
Switching over to one monolithic repo means that it makes it _much_ harder for some outside party to track just a few components of our platform, which is counterproductive for all parties. It seems like a step backwards. But maybe I'm missing what's actually considered here compared to what is already in that subtree.
On Thu, Sep 12, 2013 at 10:57 AM, Olof Johansson <ol...@chromium.org> wrote:
2013/9/12 Liam McLoughlin <lmclo...@chromium.org>
Platform2 is going to be enabled by default today assuming all goes well. If you don't know what Platform2 is, see the doc about it at http://www.chromium.org/chromium-os/getting-started-with-platform2.In short, makefiles/SCons files for some projects in src/platform are disappearing in favour of GYP files. If your project has a GYP file, you should be updating that once the transition happens and not the Makefile. The makefiles will be cleaned out for most projects shortly after the transition happens.If your project is in src/platform and doesn't have a GYP file, you should write one. The syntax is very straightforward and you should be able to use an already ported project like cros-disks as a good reference.Eventually everything in src/platform will use GYP files and src/platform will become a single repository. Anything where this isn't appropriate will be moved somewhere else outside src/platform.What's considered "not appropriate"?Switching over to one monolithic repo means that it makes it _much_ harder for some outside party to track just a few components of our platform, which is counterproductive for all parties. It seems like a step backwards. But maybe I'm missing what's actually considered here compared to what is already in that subtree.I agree with Olof. The docs on chromium.org are not clear on the benefit of combining things in one large repo. Parallel/incremental builds with GYP+Ninja seems orthogonal to the number of repos we have.
--
The explanation page doesn't explain several things I need to know in order to migrate over packages that I maintain.
1) What about generating dbus bindings for dbus-glib? Will I need to write my own generator for that? How do I get started doing that?
2) What's the expected edit/compile/test workflow using platform2? It asserts that I now get incremental builds, but doesn't tell me how to run them. And how do I run only the unit tests that I care about?
On Thu, Sep 12, 2013 at 10:57 AM, Olof Johansson <ol...@chromium.org> wrote:
2013/9/12 Liam McLoughlin <lmclo...@chromium.org>
Platform2 is going to be enabled by default today assuming all goes well. If you don't know what Platform2 is, see the doc about it at http://www.chromium.org/chromium-os/getting-started-with-platform2.In short, makefiles/SCons files for some projects in src/platform are disappearing in favour of GYP files. If your project has a GYP file, you should be updating that once the transition happens and not the Makefile. The makefiles will be cleaned out for most projects shortly after the transition happens.If your project is in src/platform and doesn't have a GYP file, you should write one. The syntax is very straightforward and you should be able to use an already ported project like cros-disks as a good reference.Eventually everything in src/platform will use GYP files and src/platform will become a single repository. Anything where this isn't appropriate will be moved somewhere else outside src/platform.What's considered "not appropriate"?Switching over to one monolithic repo means that it makes it _much_ harder for some outside party to track just a few components of our platform, which is counterproductive for all parties. It seems like a step backwards. But maybe I'm missing what's actually considered here compared to what is already in that subtree.I disagree. IMO this is perhaps the best thing that's happening to the Chrome OS repository since... it started.A single repo means more correct dependencies and ability to bisect. Also a single build instead of recursion between ebuilds and makefiles. Faster/incremental etc.As a kernel developer, you should appreciate that - imagine if each arch and top-level directory in the kernel was in a separate repo, with only loose dependencies between them, and a different makefile system in each of them. That's what Chrome OS is today, but this change definitely make us go into the right direction.
On Thu, Sep 12, 2013 at 5:23 PM, Chris Masone <cma...@chromium.org> wrote:
The explanation page doesn't explain several things I need to know in order to migrate over packages that I maintain.yeah, we need to flesh it out more1) What about generating dbus bindings for dbus-glib? Will I need to write my own generator for that? How do I get started doing that?if there isn't an existing .gypi in common-mk/, then you'll have to write a new one and store it in there
2) What's the expected edit/compile/test workflow using platform2? It asserts that I now get incremental builds, but doesn't tell me how to run them. And how do I run only the unit tests that I care about?hmm, i'm not sure it is possible to run a subset of unittests other than by hand. we probably need to fix that ;).
-mike
On Thu, Sep 12, 2013 at 2:43 PM, Mike Frysinger <vap...@chromium.org> wrote:
On Thu, Sep 12, 2013 at 5:23 PM, Chris Masone <cma...@chromium.org> wrote:
The explanation page doesn't explain several things I need to know in order to migrate over packages that I maintain.yeah, we need to flesh it out more1) What about generating dbus bindings for dbus-glib? Will I need to write my own generator for that? How do I get started doing that?if there isn't an existing .gypi in common-mk/, then you'll have to write a new one and store it in thereAnd how do I start doing that?
2) What's the expected edit/compile/test workflow using platform2? It asserts that I now get incremental builds, but doesn't tell me how to run them. And how do I run only the unit tests that I care about?hmm, i'm not sure it is possible to run a subset of unittests other than by hand. we probably need to fix that ;).Yeah. I'd recommend against anyone porting to platform2 until this is sorted. The negative impact on my productivity would be significant if I have to run all of everyone's unittests when I'm just trying to debug one of my own.
Also, I still don't know how to build the new code :-)
-mike