Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 50 million developers.Sign up
Refactored most of the library to take a more decoupled approach, removing the Timeline (it had too many responsibilities) and adding a DomainBus instead. Added unit tests that cover many more use-cases.
DirectoryRepository's signature [BC break].
DirectoryRepository: Use SHA1 digests for version IDs by default (makes it easier to specify versions to migrate in the CLI).
- Made resolver classes final [BC break].
AbstractComparator, since all comparators should be reversible now [BC break].
Sortablecollections. Since sorting is a relatively expensive operation, we're making it the user's responsibility to trigger a sort on those collections on an as-needed basis.
FilenameResolver, which simplifies specifying target versions for the user by allowing relative paths.
IMPORTANT: this release introduces multiple BC-breaking changes.
This release introduces a RepositoryStack class that can be used to aggregate multiple repositories (e.g. to offer plugins the ability to add their own migrations inside their own packages/bundles).
It also introduces several BC-breaking changes with the goal of adding stability to the entire codebase:
- One such major change is dropping the
ebidtech/collectionlibrary in favor of
doctrine/collections(a more mature library that also has no major dependencies).
- Another notable change is that several interfaces have been changed to follow some extremely defensive php principles.
AbstractMigrationto follow naming rules for abstract classes.
- Refactor collections to use Doctrine\Collections
- Change code to use
- Refactored TimelineFactory
- Improved the "reverse" mechanism of collections by making the Comparator know how to return a reverse version of itself
- Defensive PHP:
- Made several classes
- Made several methods in abstract classes and traits
- Changed several class properties to
- Made several classes
- Added interfaces for classes that were made final. E.g.
- Add IdResolver to the default Resolver stack
- Made Repositories return sorted collections automatically via
FileStorageclass and re-implemented it as
FlyStoragein the separate baleen/storage-flysystem repository.
- RepositoryStack class, which simply aggregates multiple repositories under a single object. Useful to load migrations from multiple directories (i.e. DirectoryRepositories).
- SortedCollection now delegates alias resolution to the new collection resolvers functionality.
- Collection resolvers.
- Unit tests for AbstractStorage and FileStorage.
- Various minor code-style fixes.
[0.5.0] - 2015-08-13
- Support for aliases in sortable version collections.
- Support for progress reports when running migrations in batch.
- TimelineInterface, in order to support the new progress report additions.
- Made StorageInterface have discrete commands to add/remove individual versions.
- Fixed bug that reversed the meaning of version aliases 'last' and 'first' when rolling back.
Timeline now accepts a MigrationBus as an optional 3rd parameter. This allows consumers to customise the Middleware that runs migrations to potentially inject their own custom middleware.