Skip to content

New features galore!!! (and a tiny pinch of BC breackage)

Pre-release
Pre-release
Compare
Choose a tag to compare
@gggeek gggeek released this 06 Oct 10:08
· 1006 commits to main since this release
  • New: updating and deleting of Users, User Groups, Roles and Content Types now accepts more flexible definitions of the elements to act upon, and comprehensive resolution of references
  • New: it is now possible to assign a section when creating and updating Contents
  • New: it is now possible to assign an owner when creating and updating Contents
  • New: it is now possible to set publication and modification dates when creating and updating Contents
  • New: it is now possible to assign object states when creating and updating Contents
  • New: it is now possible to assign a remote id for the Location when creating Contents
  • New: references are now resolved for user_id and group_id when assigning Roles
  • New: the main_location and other_locations tags in Content creation, as well as parent_location in Location creation will now try to identify the desired Location by its remote id when a non integer value is used
  • New: the content_type_group tags in ContentType creation will accept a Content Type Group identifier besides an id
  • New: added 2 events to which you can listen to implement custom logic just-before and just-after migration steps are executed:
    • ez_migration.before_execution => listeners receive a BeforeStepExecutionEvent event instance
    • ez_migration.step_executed => listeners receive a StepExecutedEvent event instance
  • Fixed: migrations will not silently swallow any more errors when creating users or assigning roles and an inexisting group is specified
  • New: it is now possible to add resolvers for custom references using tagged services. The tag to use is: ez_migration_bundle.reference_resolver.customreference. For an example, see the test UnitTestOK010_customrefs.yml and class Kaliop\eZMigrationBundle\Tests\helper\CustomReferenceResolver
  • New: it is now possible to inject field type handlers for scalar field types, as well as for field type handlers that only affect the field type of a single content type. This gives greater flexibility in deciding which types of references are resolved for each field when creating or updating contents
  • Changed: removed unused Behat and Phpunit tests as well as one leftover Interface
  • Changed: removed from the YML documentation the description of keys which had been deprecated in version 2. The keys are still accepted, but support for them will be dropped in a future version
  • Changed: the service ez_migration_bundle.reference_resolver.content is now deprecated and will be removed in a future version
  • Changes to the YML definition language:
    • Updating and deleting of Users, User Groups, Roles and Content Types: usage of a match key is allowed; previous ways of defining elements to match are deprecated
    • new tags modification_date, section, object_states and owner are available for content creation and update
    • content creation supports the following new tags: is_hidden, sort_field, sort_order, location_remote_id
    • content update supports the following new tags: creation_date
    • location creation and update now support the tag parent_location as preferred form for parent_location_id. The former variant is considered deprecated and will be desupported in a future version
  • BC BREAKS:
    • when deleting users, a single migration step can not be used any more to match users based at the same time on id, email and login. Use separate steps for that
    • when creating an object and defining its remote_id, the location remote_id is not automatically set any more. On the other hand, it is possible to set the location remote id explicitly using tag location_remote_id
    • when adding locations without defining sort field and sort order, the defaults from the content type definition are used, instead of publication-date/asc
    • references to 'tag:' and 'location:' will not be resolved any more in fields of type Object Relation and Object Relation List. On the other hand non-integer strings will be resolved as remote-content-ids
    • changes for developers who extended the bundle: the MatcherInterface and ReferenceResolverInterface have a new method each; many Executor services now have a different constructor signature; one Trait has been removed from the public API; the service ez_migration_bundle.helper.role_handler has been renamed to ez_migration_bundle.helper.limitation_converter; the chainResolver will now apply reference transformation from all matching sub-resolvers, not only from the 1st one