Break up unwieldy Implicit class into various FooOps traits (where Foo is a related block of functionality)
Create a package object that extends all the traits for an really nice default import
import com.zendesk.scalaflow._
Users can also pick n'mix. By applying the selfless trait pattern they can choose to either import specific objects or mixin the trait of each FooOps class (http://www.artima.com/scalazine/articles/selfless_trait_pattern.html)
For example if you just want the PCollection implicits you have the choice of either
import com.zendesk.scalaflow.sugar.CollectionOps._
or
class YourClass extends CollectionOps
Bump the version number as this will break existing clients imports
Minor
Add fluent “registerCoder” methods to RichPipeline
Extract PTransform creation to WrapperOps
Risks
Low - Despite a breaking import change, it's mostly moving stuff around
Description
It's not you, it's me...
FooOps
traits (where Foo is a related block of functionality)import com.zendesk.scalaflow._
import com.zendesk.scalaflow.sugar.CollectionOps._
orclass YourClass extends CollectionOps
Minor
Risks
Low - Despite a breaking import change, it's mostly moving stuff around