blob: 42aa9434eacd760d357c79b8779c81049bbfb022 [file] [log] [blame] [view] [edit]
# Beta program for components
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.
## Import statements
Swift import statements for Beta components follow the pattern `MaterialComponentsBeta.<#ComponentName#>`.
## Component README.md
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'
```