Soong 0.7.0 released

The 0.7.0 release of the Soong ETL library is now available on Packagist. Key changes since 0.6.0 include:

  1. The property abstractions (PropertyInterface, PropertyFactory, and implementations) have been removed - it seems like the abstractions will only get in the way of leveraging PHP 7.x's improved native type-checking.
  2. The Record Transformer concept has been introduced. While our experience with Drupal emphasized the mapping of properties within each record, the logical purpose of the transformation segment of an ETL pipeline is to transform a record at a time (stipulating that, yes, 90+% of the time you're individually transforming each property within the record)...
  3. ...thus one of the two RecordTransformer implementations provided out-of-the-box is the PropertyMapper. The field mapping configuration we previously provided within the transform key is now the PropertyMapper's configuration, and the classes are now implementations of PropertyTransformer rather than Transformer.
  4. The other provided RecordTransformer is Copy, for bulk-copying properties directly from the source record to the destination record. In many instances, most if not all properties being migrated are retaining exactly the same name and content, so it can help clarify the "interesting" property transformations if you don't have to individual express each and every trivial property copy.

This release was meant to be more ambitious (including refactoring of task pipelines) and sooner, but I've been busy working a couple of contracts since May. So, for the forseeable future, progress will be slower (unless/until other folks start contributing, of course!). For now, the emphasis for 0.8.0 is task refactoring, starting with seeing if we can leverage other libraries like league/pipeline.

Use the Twitter thread below to comment on this post: