3.1.0+1
This commit is contained in:
431
CHANGELOG.md
Normal file
431
CHANGELOG.md
Normal file
@@ -0,0 +1,431 @@
|
||||
## 3.1.0+1
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed error building MacOS library
|
||||
|
||||
## 3.1.0
|
||||
|
||||
### Breaking
|
||||
|
||||
Sorry for this breaking change. Unfortunately, it was necessary to fix stability issues on Android.
|
||||
|
||||
- `directory` is now required for `Isar.open()` and `Isar.openSync()`
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed a crash that occasionally occurred when opening Isar
|
||||
- Fixed a schema migration issue
|
||||
- Fixed an issue where embedded class renaming didn't work correctly
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Many internal improvements
|
||||
- Performance improvements
|
||||
|
||||
## 3.0.6
|
||||
|
||||
### Fixes
|
||||
|
||||
- Add check to verify transactions are used for correct instance
|
||||
- Add check to verify that async transactions are still active
|
||||
- Fix upstream issue with opening databases
|
||||
|
||||
## 3.0.5
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Improved performance for all operations
|
||||
- Added `maxSizeMiB` option to `Isar.open()` to specify the maximum size of the database file
|
||||
- Significantly reduced native library size
|
||||
- With the help of the community, the docs have been translated into a range of languages
|
||||
- Improved API docs
|
||||
- Added integration tests for more platforms to ensure high-quality releases
|
||||
- Support for unicode paths on Windows
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed crash while opening Isar
|
||||
- Fixed crash on older Android devices
|
||||
- Fixed a native port that was not closed correctly in some cases
|
||||
- Added swift version to podspec
|
||||
- Fixed crash on Windows
|
||||
- Fixed "IndexNotFound" error
|
||||
|
||||
## 3.0.4
|
||||
|
||||
REDACTED.
|
||||
|
||||
## 3.0.3
|
||||
|
||||
REDACTED.
|
||||
|
||||
## 3.0.2
|
||||
|
||||
### Enhancements
|
||||
|
||||
- The Inspector now supports creating objects and importing JSON
|
||||
- Added Inspector check to make sure Chrome is used
|
||||
|
||||
### Fixes
|
||||
|
||||
- Added support for the latest analyzer
|
||||
- Fixed native ports that were not closed correctly in some cases
|
||||
- Added support for Ubuntu 18.04 and older
|
||||
- Fixed issue with aborting transactions
|
||||
- Fixed crash when invalid JSON was provided to `importJsonRaw()`
|
||||
- Added missing `exportJsonSync()` and `exportJsonRawSync()`
|
||||
- Fixed issue where secondary instance could not be selected in the Inspector
|
||||
|
||||
## 3.0.1
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Support for arm64 iOS Simulators
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed issue where `.anyOf()`, `.allOf()`, and `.oneOf()` could not be negated
|
||||
- Fixed too low min-iOS version. The minimum supported is 11.0
|
||||
- Fixed error during macOS App Store build
|
||||
|
||||
## 3.0.0
|
||||
|
||||
This release has been a lot of work! Thanks to everyone who contributed and joined the countless discussions. You are really awesome!
|
||||
|
||||
Special thanks to [@Jtplouffe](https://github.com/Jtplouffe) and [@Peyman](https://github.com/Viper-Bit) for their incredible work.
|
||||
|
||||
### Web support
|
||||
|
||||
This version does not support the web target yet. It will be back in the next version. Please continue using 2.5.0 if you need web support.
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Completely new Isar inspector that does not need to be installed anymore
|
||||
- Extreme performance improvements for almost all operations (up to 50%)
|
||||
- Support for embedded objects using `@embedded`
|
||||
- Support for enums using `@enumerated`
|
||||
- Vastly improved Isar binary format space efficiency resulting in about 20% smaller databases
|
||||
- Added `id`, `byte`, `short` and `float` typedefs
|
||||
- `IsarLinks` now support all `Set` methods based on the Isar `Id` of objects
|
||||
- Added `download` option to `Isar.initializeIsarCore()` to download binaries automatically
|
||||
- Added `replace` option for indexes
|
||||
- Added verification for correct Isar binary version
|
||||
- Added `collection.getSize()` and `collection.getSizeSync()`
|
||||
- Added `query.anyOf()` and `query.allOf()` query modifiers
|
||||
- Support for much more complex composite index queries
|
||||
- Support for logical XOR and the `.oneOf()` query modifier
|
||||
- Made providing a path optional
|
||||
- The default Isar name is now `default` and stored in `dir/name.isar` and `dir/name.isar.lock`
|
||||
- On non-web platforms, `IsarLink` and `IsarLinks` will load automatically
|
||||
- `.putSync()`, `.putAllSync()` etc. will now save links recursively by default
|
||||
- Added `isar.getSize()` and `isar.getSizeSync()`
|
||||
- Added `linksLengthEqualTo()`, `linksIsEmpty()`, `linksIsNotEmpty()`, `linksLengthGreaterThan()`, `linksLengthLessThan()`, `linksLengthBetween()` and `linkIsNull()` filters
|
||||
- Added `listLengthEqualTo()`, `listIsEmpty()`, `listIsNotEmpty()`, `listLengthGreaterThan()`, `listLengthLessThan()`, `listLengthBetween()` filters
|
||||
- Added `isNotNull()` filters
|
||||
- Added `compactOnLaunch` conditions to `Isar.open()` for automatic database compaction
|
||||
- Added `isar.copyToFile()` which copies a compacted version of the database to a path
|
||||
- Added check to verify that linked collections schemas are provided for opening an instance
|
||||
- Apply default values from constructor during deserialization
|
||||
- Added `isar.verify()` and `col.verify()` methods for checking database integrity in unit tests
|
||||
- Added missing float and double queries and an `epsilon` parameter
|
||||
|
||||
### Breaking changes
|
||||
|
||||
- Removed `TypeConverter` support in favor of `@embedded` and `@enumerated`
|
||||
- Removed `@Id()` and `@Size32()` annotations in favor of the `Id` and `short` types
|
||||
- Changed the `schemas` parameter from named to positional
|
||||
- The maximum size of objects is now 16MB
|
||||
- Removed `replaceOnConflict` and `saveLinks` parameter from `collection.put()` and `collection.putAll()`
|
||||
- Removed `isar` parameter from `Isar.txn()`, `Isar.writeTxn()`, `Isar.txnSync()` and `Isar.writeTxnSync()`
|
||||
- Removed `query.repeat()`
|
||||
- Removed `query.sortById()` and `query.distinctById()`
|
||||
- Fixed `.or()` instead of `.and()` being used implicitly when combining filters
|
||||
- Renamed multi-entry where clauses from `.yourListAnyEqualTo()` to `.yourListElementEqualTo()` to avoid confusion
|
||||
- Isar will no longer create the provided directory. Make sure it exists before opening an Isar Instance.
|
||||
- Changed the default index type for all `List`s to `IndexType.hash`
|
||||
- Renamed `isar.getCollection()` to `isar.collection()`
|
||||
- It is no longer allowed to extend or implement another collection
|
||||
- Unsupported properties will no longer be ignored by default
|
||||
- Renamed the `initialReturn` parameter to `fireImmediately`
|
||||
- Renamed `Isar.initializeLibraries()` to `Isar.initializeIsarCore()`
|
||||
|
||||
### Fixes
|
||||
|
||||
There are too many fixes to list them all.
|
||||
|
||||
- A lot of link fixes and a slight behavior change to make them super reliable
|
||||
- Fixed missing symbols on older Android phones
|
||||
- Fixed composite queries
|
||||
- Fixed various generator issues
|
||||
- Fixed error retrieving the id property in a query
|
||||
- Fixed missing symbols on 32-bit Android 5 & 6 devices
|
||||
- Fixed inconsistent `null` handling in json export
|
||||
- Fixed default directory issue on Android
|
||||
- Fixed different where clauses returning duplicate results
|
||||
- Fixed hash index issue where multiple list values resulted in the same hash
|
||||
- Fixed edge case where creating a new index failed
|
||||
|
||||
## 2.5.0
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Support for Android x86 (32 bit emulator) and macOS arm64 (Apple Silicon)
|
||||
- Greatly improved test coverage for sync methods
|
||||
- `col.clear()` now resets the auto increment counter to `0`
|
||||
- Significantly reduced Isar Core binary size (about 1.4MB -> 800KB)
|
||||
|
||||
### Minor Breaking
|
||||
|
||||
- Changed `initializeLibraries(Map<String, String> libraries)` to `initializeLibraries(Map<IsarAbi, String> libraries)`
|
||||
- Changed min Dart SDK to `2.16.0`
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed issue with `IsarLink.saveSync()`
|
||||
- Fixed `id` queries
|
||||
- Fixed error thrown by `BroadcastChannel` in Firefox
|
||||
- Fixed Isar Inspector connection issue
|
||||
|
||||
## 2.4.0
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Support for querying links
|
||||
- Support for filtering and sorting links
|
||||
- Added methods to update and count links without loading them
|
||||
- Added `isLoaded` property to links
|
||||
- Added methods to count the number of objects in a collection
|
||||
- Big internal improvements
|
||||
|
||||
### Minor Breaking
|
||||
|
||||
- There are now different kinds of where clauses for dynamic queries
|
||||
- `isar.getCollection()` no longer requires the name of the collection
|
||||
- `Isar.instanceNames` now returns a `Set` instead of a `List`
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed iOS crash that frequently happened on older devices
|
||||
- Fixed 32bit issue on Android
|
||||
- Fixed link issues
|
||||
- Fixed missing `BroadcastChannel` API for older Safari versions
|
||||
|
||||
## 2.2.1
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Reduced Isar web code size by 50%
|
||||
- Made `directory` parameter of `Isar.open()` optional for web
|
||||
- Made `name` parameter of `Isar.getInstance()` optional
|
||||
- Added `Isar.defaultName` constant
|
||||
- Enabled `TypeConverter`s with supertypes
|
||||
- Added message if `TypeConverter` nullability doesn't match
|
||||
- Added more tests
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fixed issue with date queries
|
||||
- Fixed `FilterGroup.not` constructor (thanks for the PR @jtzell)
|
||||
|
||||
## 2.2.0
|
||||
|
||||
Isar now has full web support 🎉. No changes to your code required, just run it.
|
||||
|
||||
_Web passes all unit tests but is still considered beta for now._
|
||||
|
||||
### Minor Breaking
|
||||
|
||||
- Added `saveLinks` parameter to `.put()` and `.putAll()` which defaults to `false`
|
||||
- Changed default `overrideChanges` parameter of `links.load()` to `true` to avoid unintended behavior
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Full web support!
|
||||
- Improved write performance
|
||||
- Added `deleteFromDisk` option to `isar.close()`
|
||||
- Added `.reset()` and `.resetSync()` methods to `IsarLink` and `IsarLinks`
|
||||
- Improved `links.save()` performance
|
||||
- Added many tests
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed value of `null` dates to be `DateTime.fromMillisecondsSinceEpoch(0)`
|
||||
- Fixed problem with migration
|
||||
- Fixed incorrect list values for new properties (`[]` instead of `null`)
|
||||
- Improved handling of link edge-cases
|
||||
|
||||
## 2.1.4
|
||||
|
||||
- Removed `path` dependency
|
||||
- Fixed incorrect return value of `deleteByIndex()`
|
||||
- Fixed wrong auto increment ids in some cases (thanks @robban112)
|
||||
- Fixed an issue with `Isar.close()` (thanks @msxenon)
|
||||
- Fixed `$` escaping in generated code (thanks @jtzell)
|
||||
- Fixed broken link in pub.dev example page
|
||||
|
||||
## 2.1.0
|
||||
|
||||
`isar_connect` is now integrated into `isar`
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Added check for outdated generated files
|
||||
- Added check for changed schema across isolates
|
||||
- Added `Isar.openSync()`
|
||||
- Added `col.importJsonRawSync()`, `col.importJsonSync()`, `query.exportJsonRawSync()`, `query.exportJsonSync()`
|
||||
- Improved performance for queries
|
||||
- Improved handling of ffi memory
|
||||
- More tests
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where imported json required existing ids
|
||||
- Fixed issue with transaction handling (thanks @Peng-Qian for the awesome help)
|
||||
- Fixed issue with `@Ignore` annotation not always working
|
||||
- Fixed issue with `getByIndex()` not returning correct object id (thanks @jtzell)
|
||||
|
||||
## 2.0.0
|
||||
|
||||
### Breaking
|
||||
|
||||
- The id for non-final objects is now assigned automatically after `.put()` and `.putSync()`
|
||||
- `double` and `List<double>` indexes can no longer be at the beginning of a composite index
|
||||
- `List<double>` indexes can no longer be hashed
|
||||
- `.greaterThan()`, `.lessThan()` and `.between()` filters and are now excluding for `double` values (`>=` -> `>`)
|
||||
- Changed the default index type for lists to `IndexType.value`
|
||||
- `IsarLink` and `IsarLinks` will no longer be initialized by Isar and must not be `nullable` or `late`.
|
||||
- Dart `2.14` or higher is required
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Added API docs for all public methods
|
||||
- Added `isar.clear()`, `isar.clearSync()`, `col.clear()` and `col.clearSync()`
|
||||
- Added `col.filter()` as shortcut for `col.where().filter()`
|
||||
- Added `include` parameter to `.greaterThan()` and `.lessThan()` filters and where clauses
|
||||
- Added `includeLower` and `includeUpper` parameters to `.between()` filters and where clauses
|
||||
- Added `Isar.autoIncrement` to allow non-nullable auto-incrementing ids
|
||||
- `Isar.close()` now returns whether the last instance was closed
|
||||
- List values in composite indexes are now of type `IndexType.hash` automatically
|
||||
- Allowed multiple indexes on the same property
|
||||
- Removed exported packages from API docs
|
||||
- Improved generated code
|
||||
- Improved Isar Core error messages
|
||||
- Minor performance improvements
|
||||
- Automatic XCode configuration
|
||||
- Updated analyzer to `3.0.0`
|
||||
- More tests
|
||||
|
||||
### Fixed
|
||||
|
||||
- `IsarLink` and `IsarLinks` can now be final
|
||||
- Fixed multi-entry index queries returning items multiple times in some cases
|
||||
- Fixed `.anyLessThan()` and `.anyGreaterThan()` issues
|
||||
- Fixed issues with backlinks
|
||||
- Fixed issue where query only returned the first `99999` results
|
||||
- Fixed issue with id where clauses
|
||||
- Fixed default index type for lists and bytes
|
||||
- Fixed issue where renaming indexes was not possible
|
||||
- Fixed issue where wrong index name was used for `.getByX()` and `.deleteByX()`
|
||||
- Fixed issue where composite indexes did not allow non-hashed Strings as last value
|
||||
- Fixed issue where `@Ignore()` fields were not ignored
|
||||
|
||||
## 1.0.5
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Updated dependencies
|
||||
|
||||
### Fixes:
|
||||
|
||||
- Included desktop binaries
|
||||
- Fixed "Cannot allocate memory" error on older iOS devices
|
||||
- Fixed stripped binaries for iOS release builds
|
||||
- Fixed IsarInspector issues (thanks to [RubenBez](https://github.com/RubenBez) and [rizzi37](https://github.com/rizzi37))
|
||||
|
||||
## 1.0.0+1
|
||||
|
||||
Added missing binaries
|
||||
|
||||
## 1.0.0
|
||||
|
||||
Switched from liblmdb to libmdbx for better performance, more stability and many internal improvements.
|
||||
|
||||
### Breaking
|
||||
|
||||
The internal database format has been changed to improve performance. Old databases do not work anymore!
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix issue with links being removed after object update
|
||||
- Fix String index problems
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Support `greaterThan`, `lessThan` and `between` queries for String values
|
||||
- Support for inheritance (enabled by default)
|
||||
- Support for `final` properties and getters
|
||||
- Support for `freezed` and other code generators
|
||||
- Support getting / deleting objects by a key `col.deleteByName('Anne')`
|
||||
- Support for list indexes (hash an element based)
|
||||
- Generator now creates individual files instead of one big file
|
||||
- Allow specifying the collection accessor name
|
||||
- Unsupported properties are now ignored automatically
|
||||
- Returns the assigned ids after `.put()` operations (objects are no longer mutated)
|
||||
- Introduces `replaceOnConflict` option for `.put()` (instead of specifying it for index)
|
||||
- many more...
|
||||
|
||||
### Internal
|
||||
|
||||
- Improve generated code
|
||||
- Many new unit tests
|
||||
|
||||
## 0.4.0
|
||||
|
||||
### Breaking
|
||||
|
||||
- Remove `.where...In()` and `...In()` extension methods
|
||||
- Split `.watch(lazy: bool)` into `.watch()` and `.watchLazy()`
|
||||
- Remove `include` option for filters
|
||||
|
||||
### Fixes
|
||||
|
||||
- Generate id for JSON imports that don't have an id
|
||||
- Enable `sortBy` and `thenBy` generation
|
||||
|
||||
### Enhancements
|
||||
|
||||
- Add `.optional()` and `.repeat()` query modifiers
|
||||
- Support property queries
|
||||
- Support query aggregation
|
||||
- Support dynamic queries (for custom query languages)
|
||||
- Support multi package configuration with `@ExternalCollection()`
|
||||
- Add `caseSensitive` option to `.distinctBy()`
|
||||
|
||||
### Internal
|
||||
|
||||
- Change iOS linking
|
||||
- Improve generated code
|
||||
- Set up integration tests and improve unit tests
|
||||
- Use CORE/0.4.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
- Link support
|
||||
- Many improvements and fixes
|
||||
|
||||
## 0.1.0
|
||||
|
||||
- Support for links and backlinks
|
||||
|
||||
## 0.0.4
|
||||
|
||||
- Bugfixes and many improvements
|
||||
|
||||
## 0.0.2
|
||||
|
||||
Fix dependency issue
|
||||
|
||||
## 0.0.1
|
||||
|
||||
Initial release
|
||||
Reference in New Issue
Block a user