Commit 2d4439d6 authored by Mike Ryan's avatar Mike Ryan

#96: Prepare for 0.7.0 release.

parent 7223e1ed
Pipeline #69458215 passed with stage
in 2 minutes and 20 seconds
......@@ -6,7 +6,6 @@ declare(strict_types=1);
* Simple script for running Soong operations using Symfony Console.
*/
// @todo Detect appropriate timezone.
date_default_timezone_set('America/Chicago');
set_time_limit(0);
......@@ -26,7 +25,6 @@ use Soong\Console\Command\MigrateCommand;
use Soong\Console\Command\RollbackCommand;
use Soong\Console\Command\StatusCommand;
// @todo Extend Application to provide all commands directly.
$app = new Application('Soong POC', '0.1.0');
$app->addCommands([
new MigrateCommand(),
......
......@@ -8,6 +8,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
## [Unreleased]
## [0.7.0] - 2019-06-25
### Changed
- The former `Transformer` interface is now named `PropertyTransformer`, to distinguish it from the new `RecordTransformer` interface.
- Property transformer classes have been moved to the `Soong\Transformer\Property` namespace.
......@@ -15,13 +17,15 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- Transformer construction has been moved from the `EtlTask` implementation to the `EtlCommand` implementation - the `transform` option for `EtlTask` now requires an array of `RecordTransformer` instances.
- `PropertyTransformer::transform()` no longer specifies the types of its argument and return value. Implementations should specify their specific return type, and validate the expected argument type.
- `Record::getProperty()` renamed to `getPropertyValue()`, `setProperty()` renamed to `setPropertyValue()`.
- Symfony Console dependency has been loosened to allow versions 3.4 through 4.x.
- Release checklist added to [CONTRIBUTING](CONTRIBUTING.md)
### Removed
- The `Property` and `PropertyFactory` interfaces and implementations have been removed - all code using properties now uses values directly, leaving type-checking to PHP. `property_factory` configuration options have accordingly been removed.
### Added
- The `RecordTransformer` interface has been added.
- The `ProperyMapper` record transformer class has been added.
- The `PropertyMapper` record transformer class has been added.
- The `Copy` record transformer class has been added.
- The `--limit` option has been added to the `migrate` and `rollback` commands.
- Transformer exceptions added.
......@@ -132,7 +136,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
Initial release on Packagist.
[Unreleased]: https://gitlab.com/soongetl/soong/compare/0.6.0...master
[Unreleased]: https://gitlab.com/soongetl/soong/compare/0.7.0...master
[0.7.0]: https://gitlab.com/soongetl/soong/compare/0.6.0...0.7.0
[0.6.0]: https://gitlab.com/soongetl/soong/compare/0.5.3...0.6.0
[0.5.3]: https://gitlab.com/soongetl/soong/compare/0.5.2...0.5.3
[0.5.2]: https://gitlab.com/soongetl/soong/compare/0.4.0...0.5.2
......
......@@ -44,4 +44,5 @@ Process for tagging a new release:
1. Review all `@todo` tags in the code. Create issues in Github for any which are still relevant, and remove all of them.
1. Add a new heading `## [0.6.0] - 2019-05-01` (replacing `0.6.0` with the new release number and `2019-05-01` with the release date) to [CHANGELOG](CHANGELOG.md) below `[Unreleased]`
1. Add a link for the new release at the bottom of [CHANGELOG](CHANGELOG.md), and update the `[Unreleased]` link to reflect the new release number.
1. Make sure any changes made in the preceding steps are merged into `master`.
1. [Create the new tag](https://gitlab.com/soongetl/soong/-/tags).
......@@ -51,7 +51,6 @@ abstract class OptionsResolverComponent implements ConfigurableComponent
* List of definition arrays for each option supported by the component.
*
* @return array
* @todo Make this a class?
* Keyed by option name, each element is an array with these contents:
* default_value - default value, if any
* required - true if the option is required, false if optional.
......
......@@ -37,9 +37,6 @@ interface Extractor extends ConfigurableComponent
/**
* List the properties available in records generated by this extractor.
*
* @todo: We want to optionally have metadata for the properties - types,
* descriptions, etc. Add getPropertyMetadata($property_name).
*
* @return array
* Array of property names.
*/
......@@ -48,8 +45,6 @@ interface Extractor extends ConfigurableComponent
/**
* List the properties which form a unique key for the extracted data.
*
* @todo: Per above, move the metadata out of there.
*
* @return array
* Array keyed by property name, with value being an array containing
* a 'type' key whose value is the type of the property.
......
......@@ -60,8 +60,6 @@ interface KeyMap extends ConfigurableComponent, \Countable
/**
* Iterate over the key map, generating the keys.
*
* @todo: Make the class \Iterable instead?
*
* @return iterable
*/
public function iterate() : iterable;
......
......@@ -25,9 +25,6 @@ interface Loader extends ConfigurableComponent
/**
* List the properties available in records generated by this extractor.
*
* @todo: We want to optionally have metadata for the properties - types,
* descriptions, etc. Add getPropertyMetadata($property_name).
*
* @return array
* Array of property names.
*/
......@@ -36,8 +33,6 @@ interface Loader extends ConfigurableComponent
/**
* List the properties which form a unique key for the extracted data.
*
* @todo: Per above, move the metadata out of there.
*
* @return array
* Array keyed by property name, with value being an array containing
* a 'type' key whose value is the type of the property.
......@@ -47,8 +42,6 @@ interface Loader extends ConfigurableComponent
/**
* Remove a record which has been loaded from the destination.
*
* @todo move to RollbackableInterface
*
* @param array $key
* Unique key of the destination record to be removed.
*
......
......@@ -15,14 +15,15 @@ interface RecordTransformer extends ConfigurableComponent
/**
* Accept a data record and turn it into another data record.
*
* @todo: Return result instead of changing in place?
*
* @throws \Soong\Contracts\Exception\RecordTransformerException
*
* @param Record $sourceData
* Record containing incoming data properties to be transformed.
* @param Record $resultData
* Record being populated with transformed properties.
*
* @return \Soong\Contracts\Data\Record
* The transformed record.
*/
public function transform(Record $sourceData, Record $resultData) : Record;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment