This directory contains the root release config from which all other release
configs inherit. It is used to set the com.android.aconfig.test flags (used in
the aconfig integration tests). Other changes to the root release config are not
expected: you probably want to modify the next or trunk release configs instead.
