The intent of the Beta program is to provide a place for component code to land that may not be fully ready for production, but for which we still want active collaboration with the team and potentially some early adoption with select clients.
Any new component that we implement will first land in the MaterialComponentsBeta.podspec
as a
subspec, similar to how components are defined in the MaterialComponents.podspec
.
Beta components will appear in MDCCatalog and MDCDragons along with all of their examples and unit tests after a pod install. From the point of view of our catalogs, these components are just like any other.
From the point of view of the public, Beta components are not made available as part of our published pod. External clients that wish to use an Beta component in their Podfile will need to manually specify the MaterialComponentsBeta target and our repo.
Because the Beta components are pointing to the HEAD
of the develop
branch, you need to also update your MaterialComponents pod to point to develop
as well.
pod 'MaterialComponents', :git => 'https://github.com/material-components/material-components-ios.git', :branch => 'develop'
pod 'MaterialComponentsBeta', :git => 'https://github.com/material-components/material-components-ios.git'
When the component graduates to "Ready" clients will need to change their specs to point at the main pod.
Beta components are not subject to our deprecation policy and we will not provide behavioral flags for gradual migration of runtime behaviors.
Changes to Beta components will have no effect on our release version numbers.
Once a component is ready for general production use, we will graduate the component to the
MaterialComponents.podspec
. At this point the component will be subject to all of the processes
and expectations that any other production component.
Swift import statements for Beta components follow the pattern MaterialComponentsBeta.<#ComponentName#>
.
The component's README.md should include the following near the top of the document:
## Beta component
This component is an [Beta component](../../contributing/beta_components.md). This means the API is
subject to change without notice and without incrementing major/minor version numbers. To use this
component add the following to your Podfile:
pod 'MaterialComponentsBeta', :path => 'https://github.com/material-components/material-components-ios.git'