commit | 669e11fe5aefd6acb0c2d69f692d7cb6615838a8 | [log] [tgz] |
---|---|---|
author | C Shapiro <shapiroc@chromium.org> | Tue Mar 31 13:36:31 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Mar 31 20:54:58 2020 |
tree | 52fc0e745344ba562cd09d9f0ee7ea3ad5c7353e | |
parent | 573a05092a5c05d863adf2f1bd3cecaa5b231640 [diff] |
config: Remove dep on build_target See parent change for rationale BUG=None TEST=None Cq-Depend: chrome-internal:2831504 Change-Id: If882e6fccbe8e83ebc2dc5fce705f87330953d2a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/config/+/2129652 Commit-Queue: C Shapiro <shapiroc@chromium.org> Tested-by: C Shapiro <shapiroc@chromium.org> Auto-Submit: C Shapiro <shapiroc@chromium.org> Reviewed-by: Andrew Lamb <andrewlamb@chromium.org> Reviewed-by: David Burger <dburger@chromium.org>
Before beginning verify that you have appropriate permissions to work with the project. This will usually mean having membership in the partner domain account that is configured for your project. Inquire with your local representative or Google contact if you need more information about the partner domain accounts configured for your project.
Follow the Chromium OS Quick Start Guide through to the end of the “Get the Source” section. This guide walks you through installing prerequisites and syncing the public Chromium OS source code into a $SOURCE_REPO directory. This step pulls down a lot of code and could take up to an hour.
Verify the name of your $PROGRAM and $PROJECT with your local representative or Google contact. These values will be used in the command below.
Run the following command to sync your $PROGRAM and $PROJECT from within your chromiumos checkout in the $SOURCE_REPO/src/config directory:
./setup_project.sh $PROGRAM $PROJECT
This command will execute a number of steps including checking out your program and project and other related repositories, symlinking a local manifest, and finally doing a full chromiumos sync.
The $SOURCE_REPO/src/config/bin directory contains utilties for working with your project. Add the directory to the end of your PATH. You will probably want to add this configuration in your ~/.bashrc file or other appropriate location so you don't have to repeatedly set the PATH:
export PATH=$PATH:$SOURCE_REPO/src/config/bin
If you got to this point without an error you are set up to start working on your project.
After setting up your project you'll want to note the location of several important repositories within the checkout:
Partners will rarely propose changes to src/config and occasionally propose changes to src/program/$PROGRAM. The bulk of a partner's work will occur in in src/project/$PROGRAM/$PROJECT.
Configuration changes are made to a project by adjusting the Starlark configuration definition in $SOURCE_REPO/src/project/$PROGRAM/$PROJECT/config.star and then running the gen_config script (added to the PATH above). An example session updating project configuration follows:
cd $SOURCE_REPO/src/project/$PROGRAM/$PROJECT/ $EDITOR config.star # Adjust contents of config.star and save. gen_config config.star
This will cause the generation of configuration payloads that can be found at:
These files represent the same configuration, one is in binary format and is used in production. The binary format is more flexible and allows easier evolution of the schema. The second is in text format. The text format is intended to allow the user to easily eyeball the effects of changes.
To submit the changes the user first commits the files and then submits them to commit queue (CQ):
git add . git commit # Add commit message with BUG= and TEST= directives repo upload .
This will result in a reviewable CL in gerrit. The exact URL will for your CL will be output when the CL is uploaded. The CL will need to be approved and pass CQ. Details on working with CLs and the progression through review and CQ can be found in the Chromium OS Contributing Guide and more specifically in the Going through review section. CQ verifies that you have correctly generated your configuration payload and that you have not violated the program's constraints.