Bug: 271173253

Clone this repo:
  1. 463b660 Add janitors to the OWNERS file am: 4f7f82a431 by Sadaf Ebrahimi · 5 months ago main master
  2. 4f7f82a Add janitors to the OWNERS file by Sadaf Ebrahimi · 5 months ago
  3. ef3a692 Merge tag 'upstream/0.0.10' into main am: 04d9371680 am: 33bc13950f by Matthias Maennich · 1 year ago android15-automotiveos-dev android15-automotiveos-release android15-qpr1-release android15-qpr1-s3-release android15-qpr1-s4-release android15-qpr1-s5-release android15-qpr2-release android15-qpr2-s1-release android15-qpr2-s10-release android15-qpr2-s2-release android15-qpr2-s3-release android15-qpr2-s4-release android15-qpr2-s5-release android15-qpr2-s6-release android15-qpr2-s7-release android15-qpr2-s8-release android15-qpr2-s9-release android15-tests-dev aml_adb_351010000 aml_ads_351017080 aml_ads_351121120 aml_ads_351312060 aml_ads_351420000 aml_art_350913340 aml_art_351011240 aml_art_351011340 aml_art_351110180 aml_art_351310060 aml_art_351410020 aml_ase_351010000 aml_ase_351112060 aml_ase_351114000 aml_ase_351311040 aml_ase_351412000 aml_cbr_350910020 aml_cbr_351011020 aml_cbr_351111000 aml_cbr_351310040 aml_cbr_351410000 aml_con_351010000 aml_con_351110000 aml_con_351412000 aml_doc_350915120 aml_doc_351012120 aml_doc_351113060 aml_doc_351311000 aml_doc_351412000 aml_ext_350912020 aml_ext_351122080 aml_ext_351312060 aml_ext_351423040 aml_hef_350921160 aml_hef_351016140 aml_hef_351120040 aml_hef_351314220 aml_hef_351420080 aml_ips_351010000 aml_ips_351111040 aml_ips_351310000 aml_ips_351410000 aml_med_350914000 aml_med_351010060 aml_med_351311020 aml_mpr_350914160 aml_mpr_351013100 aml_mpr_351013160 aml_mpr_351113060 aml_mpr_351113100 aml_mpr_351311140 aml_mpr_351416060 aml_net_350911020 aml_net_351010000 aml_net_351010020 aml_net_351111100 aml_net_351111140 aml_net_351310100 aml_net_351410000 aml_net_351410060 aml_odp_351020000 aml_odp_351121040 aml_odp_351313000 aml_odp_351421000 aml_per_350910080 aml_per_351014000 aml_per_351112280 aml_per_351112300 aml_per_351310020 aml_per_351410020 aml_res_351011000 aml_res_351111020 aml_res_351111040 aml_rkp_350910000 aml_rkp_351011000 aml_rkp_351310000 aml_sch_351010000 aml_sdk_350910000 aml_sdk_351110000 aml_sdk_351415000 aml_sta_350911020 aml_sta_351110040 aml_sta_351311000 aml_sta_351416000 aml_swc_351311020 aml_tet_350911120 aml_tet_351010220 aml_tet_351110060 aml_tet_351314140 aml_tet_351415080 aml_uwb_350911040 aml_uwb_351011040 aml_uwb_351310040 aml_wif_350912040 aml_wif_351010040 aml_wif_351110060 aml_wif_351310040 aml_wif_351410040 android-15.0.0_r10 android-15.0.0_r11 android-15.0.0_r12 android-15.0.0_r13 android-15.0.0_r14 android-15.0.0_r15 android-15.0.0_r16 android-15.0.0_r17 android-15.0.0_r20 android-15.0.0_r21 android-15.0.0_r22 android-15.0.0_r23 android-15.0.0_r26 android-15.0.0_r27 android-15.0.0_r28 android-15.0.0_r29 android-15.0.0_r30 android-15.0.0_r32 android-15.0.0_r33 android-15.0.0_r34 android-15.0.0_r35 android-15.0.0_r36 android-15.0.0_r6 android-15.0.0_r7 android-15.0.0_r8 android-15.0.0_r9 android-automotiveos-15.0.0_lts1
  4. 33bc139 Merge tag 'upstream/0.0.10' into main am: 04d9371680 by Matthias Maennich · 1 year ago
  5. 2a3cdd5 Fix METADATA to reflect the correct current version am: 25f19f62c3 am: 07490feb1a by Matthias Maennich · 1 year ago

Bazel Platforms

This repository houses all canonical constraint_setting()s, constraint_value()s and platform()s that are universally useful across languages and Bazel projects.

For questions or concerns please email bazel-discuss@googlegroups.com.

Motivation

Constraints must be carefully organized to avoid fragmentation. If two different declarations for, say, cpu=x86_64 were to exist at the same time then select() statements and toolchain selection would stop working across languages and projects.

Process

This repository only includes truly ubiquitous constraints.

Most common constraints -- that is settings and values that can be used across projects - fall into specific areas like “Apple” or “Java”. These are declared in those areas' respective repositories.

A very few constraints (such as OS and cpu) are relevant for essentially all projects across all areas. These are what this repository is for.

Adding a canonical constraint value

To add a new canonical constraint value, prepare a PR adding it to that the appropriate BUILD file.

Note that even global constraint values are typically area values. For example, ios is an area value for the global setting os but belongs in the apple area. For the PR's reviewer(s) choose an owner of this repository plus an owner of the area repository this references..

A constraint value should be:

  • semantically clear, particularly in its distinctions from other values of the same setting

  • well-named: consistent with existing values of the same setting and easy to understand at usage sites

  • well-documented

Remember that this value will apply for the entire Bazel community and its semantics will be difficult to impossible to change once it starts being used.

Adding a canonical constraint setting

New canonical constraint settings should be rare and well-justified.

To add a new setting, prepare a design document according to Bazel's design review process. This document should explain the need for a new setting and why it belongs here vs. area-specific repositories. It should clearly explain semantics, initial values, and criteria for adding new values.

Once the design is approved prepare a PR for the actual change. If any values are area-specific, include the area repositories' owners as reviewers.

Private changes to global constraints

If you‘d like to experiment with changes to global settings or values, you can fork this repo for experimental purposes. But in the interest of community health and interoperability please don’t share your changes with anyone not involved with the experiment. For wider distribution, submit a proper change here.

Note that you can declare constraint_values in your own repo that are members of the global constraint_settings. This lets you “extend” global settings within the confines of your own project. But don't do this if you expect other projects to use these changes - this can easily lead to fragmentation conflicts.

If you need custom constaint_settings, just declare them in your own repo. They are, by definition, not global.

If you really need a permanent global change and it isn't design-approved for this repo, start a thread on GitHub to discuss options.