Prior to this change, `./scripts/release notes` would consider commits that affected our snapshot goldens (found in `snapshot_test_goldens` as multi-component changes. After this change, snapshot tests that change our goldens are properly bucketed in the relevant component. ## Before ``` ## Changes ### ActionSheet * [Fixes broken action sheet tests. (#6743)](fbcf524161) (Robert Moore) ### BottomNavigation * [Clean up internal constants (#6834)](585a5f4d30) (Robert Moore) * [Examples clean-up. (#6718)](10ed6188a5) (Robert Moore) * [Prevents the client from setting the navigation items directly when using the bottom navigation bar controller. (#6773)](d049bc882a) (Eric Lee) ### Buttons * [Allow setting `accessibilityTraits`. (#6766)](66c46649db) (Robert Moore) ### Collections * [Clean up interface by removing NS_REQUIRES_SUPER (#6788)](921ad6e4db) (dmaclach) ### Ripple * [Added a fix for the ripple sometimes blinking when ending animation (#6792)](6f51d265ad) (Yarden Eitan) * [update docs (#6772)](c2e912df8f) (Yarden Eitan) ### Snackbar * [Make initialization threadsafe. (#6768)](530c7b9b61) (Robert Moore) ### Tabs * [Fix badge text truncation bug in MDCItemBarCell (#6786)](188f05a75e) (Andrew Overton) ## Multi-component changes * [Add basic Snapshot tests (#6826)](2e5df058e3) (Robert Moore) * [Add basic Snapshot tests. (#6801)](dd363f1118) (Robert Moore) * [Add basic Snapshot tests. (#6821)](b1cab54a4f) (Robert Moore) * [Add basic Snapshot tests. (#6823)](1d058b155b) (Robert Moore) * [Add basic Snapshot tests. (#6824)](951cc57ba0) (Robert Moore) * [Add basic Snapshot tests. (#6825)](018e72e3cf) (Robert Moore) * [Add basic Snapshot tests. (#6828)](32904609b0) (Robert Moore) * [Add basic snapshot tests. (#6822)](9e8fdc2d7f) (Robert Moore) * [Dynamic Type 2.0 (#6733)](648f2499e8) (ianegordon) * [Enable -Wunguarded-availability. (#6776)](f17b01c584) (featherless) * [Revert "[Typography] Dynamic Type 2.0 (#6733)" (#6848)](7f52f35f07) (ianegordon) * [{Tests} Fix font comparison in Objective-C. (#6789)](3447c7b719) (Robert Moore) ``` ## After ``` ## Changes ### ActionSheet * [Fixes broken action sheet tests. (#6743)](fbcf524161) (Robert Moore) ### ActivityIndicator * [Add basic Snapshot tests (#6826)](2e5df058e3) (Robert Moore) ### BottomNavigation * [Clean up internal constants (#6834)](585a5f4d30) (Robert Moore) * [Examples clean-up. (#6718)](10ed6188a5) (Robert Moore) * [Prevents the client from setting the navigation items directly when using the bottom navigation bar controller. (#6773)](d049bc882a) (Eric Lee) ### Buttons * [Allow setting `accessibilityTraits`. (#6766)](66c46649db) (Robert Moore) ### Collections * [Clean up interface by removing NS_REQUIRES_SUPER (#6788)](921ad6e4db) (dmaclach) ### List * [Add basic snapshot tests. (#6822)](9e8fdc2d7f) (Robert Moore) ### NavigationBar * [Add basic Snapshot tests. (#6821)](b1cab54a4f) (Robert Moore) ### PageControl * [Add basic Snapshot tests. (#6823)](1d058b155b) (Robert Moore) ### ProgressView * [Add basic Snapshot tests. (#6825)](018e72e3cf) (Robert Moore) ### Ripple * [Added a fix for the ripple sometimes blinking when ending animation (#6792)](6f51d265ad) (Yarden Eitan) * [update docs (#6772)](c2e912df8f) (Yarden Eitan) ### Snackbar * [Add basic Snapshot tests. (#6824)](951cc57ba0) (Robert Moore) * [Make initialization threadsafe. (#6768)](530c7b9b61) (Robert Moore) ### Tabs * [Add basic Snapshot tests. (#6801)](dd363f1118) (Robert Moore) * [Fix badge text truncation bug in MDCItemBarCell (#6786)](188f05a75e) (Andrew Overton) ### Typography * [Add basic Snapshot tests. (#6828)](32904609b0) (Robert Moore) ## Multi-component changes * [Dynamic Type 2.0 (#6733)](648f2499e8) (ianegordon) * [Enable -Wunguarded-availability. (#6776)](f17b01c584) (featherless) * [Revert "[Typography] Dynamic Type 2.0 (#6733)" (#6848)](7f52f35f07) (ianegordon) * [{Tests} Fix font comparison in Objective-C. (#6789)](3447c7b719) (Robert Moore) ```
Scripts
Scripts for maintaining Material Components for iOS—none of these scripts are required to use MDC or for casual contributors.
The important scripts are:
prep_all: prepare the Material Components catalog, tests, and demos apps for building.build_all: build the Material Components catalog and each of our demo apps.test_all: build and test the Material Components unit and integration tests.clean_all: remove artifacts from theprep_all,build_all, andtest_allscripts.check_components: run component checks for documentation, examples, etc.install_contributor_tools: install local contributor tools to speed up the development cycle.
Languages
Material Components follows Google's language standards for scripting. The following languages can be used for scripts:
Either language can be used for a particular purpose, but larger or more complex scripts should be written in (or converted to) Python. Bash scripts get unwieldy quickly and advanced Bash scripting knowledge is currently less common than advanced Python scripting knowledge.
The intent is that the scripts will run on relatively current OS X machines with (only) Xcode installed.
iOS Codelabs Build Tests
iOS codelabs build tests ensure that the Objective C and Swift versions of Codelab 104 Complete and Codelab 111 Complete can be built. If a release fails the codelabs build tests, follow these steps:
- If the release changes a component that the codelabs use, submit a PR to the codelabs repo with the appropriate changes for the adjusted component. Address each codelab and language that is affected by the change (it may be helpful to run ./build_codelabs -a to determine which codelabs are affected).
- Merge the PR into the codelabs repo, and then rerun the codelabs build tests.
- Continue with the release process.