Releases: iTwin/itwinjs-core
v3.7.11
Release notes
Changes
- @bentley/imodeljs-native 3.7.2 [release/3.7.x] (#5709)
- Work around content range tile problems when reprojecting tiles (backport #5649) [release/3.7.x] (#5650)
Full changelog: 3.7.10...3.7.11
v3.7.10
Release notes
Changes
- pin down node ver to LKG (w/o segfault) on release/3.7.x (#5674)
- Add support for API keys to DTA Android (#5667)
- ControlledTree: cleanup copiled SparseTree code [Backport] (#5706)
Full changelog: 3.7.9...3.7.10
v4.0.3
Release notes
Changes
- my imodels -> my itwins (backport #5686) [release/4.0.x] (#5693)
- pin tile cache URL expiry timestamp (backport #5626) [release/4.0.x] (#5700)
- [frontend-tiles] promote to beta; mesh export service APIs; unit tests (bp #5690) (#5703)
- imodeljs-native 4.0.12 (#5704)
Full changelog: 4.0.2...4.0.3
v4.0.2
v4.0.1
Release notes
Changes
- Update gather-docs.yaml (#5566)
- Two map-layers instances having different formatId or subLayers set should not share the same tile tree. (backport #5591) [release/4.0.x] (#5594)
- docs - move 2.x to 'previous versions' in change history side panel (backport #5596) [release/4.0.x] (#5598)
- My iModels -> My iTwins (backport #5602) [release/4.0.x] (#5603)
- Azurite 3.24.0 (backport #5623) [release/4.0.x] (#5624)
- correctly set
previous
dist tag on patches (backport #5590) [release/4.0.x] (#5630) - Ensure Ids are included in render timeline if needed (backport #5628) [release/4.0.x] (#5629)
- Work around content range tile problems when reprojecting tiles (backport #5649) [release/4.0.x] (#5651)
- Changelogs for 3.7.7 + 3.7.8 + 3.7.9 (#5665)
Full changelog: 4.0.0...4.0.1
v3.7.9
Release notes
Changes
- Fix docs v3 archive (#5595)
- Support OIDC auth in android display-test-app (#5611)
- correctly set
previous
dist tag on patches (backport #5590) [release/3.7.x] (#5631) - Check for a 'maxBlocks' config when prefetching a checkpoint (backport #5632) [release/3.7.x] (#5635)
- @bentley/imodeljs-native 3.7.1 (#5640)
- Sub-menu close problem (#5641)
- pin tile cache URL expiry timestamp (backport #5626) [release/3.7.x] (#5656)
Full changelog: 3.7.8...3.7.9
v3.7.8
Release notes
Changes
- Make minRequests/maxRequests for a prefetch configurable during an attach (backport #5577) [release/3.7.x] (#5583)
Full changelog: 3.7.7...3.7.8
v3.7.7
v4.0.0
4.0.0 Change Notes
Table of contents:
Breaking Changes
Updated minimum requirements
A new major release of iTwin.js affords us the opportunity to update our requirements to continue to provide modern, secure, and rich libraries. Please visit our Supported Platforms documentation for a full breakdown.
Node.js
Node 12 reached end-of-life in 2020, and Node 14 as well as Node 16 will do so shortly. iTwin.js 4.0 requires a minimum of Node 18.12.0, though we recommend using the latest long-term-support version.
WebGL
Web browsers display 3d graphics using an API called WebGL, which comes in 2 versions: WebGL 1, released 11 years ago; and WebGL 2, released 6 years ago. WebGL 2 provides many more capabilities than WebGL 1. Because some browsers (chiefly Safari) did not provide support for WebGL 2, iTwin.js has maintained support for both versions, which imposed some limitations on the features and efficiency of its rendering system.
Over a year ago, support for WebGL 2 finally became available in all major browsers. iTwin.js now requires WebGL 2 - WebGL 1 is no longer supported. This change will have no effect on most users, other than to improve their graphics performance. However, users of iOS will need to make sure they have upgraded to iOS 15 or newer to take advantage of WebGL 2 (along with the many other benefits of keeping their operating system up to date).
IModelApp.queryRenderCompatibility will now produce WebGLRenderCompatibilityStatus.CannotCreateContext for a client that does not support WebGL 2.
Electron
Electron versions from 14 to 17 reached their end-of-life last year, and for this reason, support for these versions were dropped. To be able to drop Node 16, Electron 22 was also dropped. iTwin.js now supports Electron 23 and Electron 24.
Default RPC Registration
Previously, @itwin/core-electron
and @itwin/core-mobile
automatically registered the following RPCs on your behalf:
- IModelReadRpcInterface
- IModelTileRpcInterface
- SnapshotIModelRpcInterface
- PresentationRpcInterface
To be more aligned with our approach on Web and to prevent unnecessary registrations and coupling of dependencies, we are now requiring the consumer to register all RPCs they need on their end. Please refer to the documentation for ElectronApp.startup and MobileHost.startup.
Breaking out of lockstep
To move more quickly and release independently, the following packages have broken out of lockstep with iTwin.js Core and have moved outside of the itwinjs-core repository.
AppUI
The source code for the following packages was moved to the new AppUi repository.
- @itwin/appui-react
- @itwin/appui-layout-react
- @itwin/components-react
- @itwin/core-react
- @itwin/imodel-components-react
Presentation
The source code for the following packages was moved to the new Presentation repository.
- @itwin/presentation-components
- @itwin/presentation-opentelemetry
- @itwin/presentation-testing
Transformation
The transformer package @itwin/core-transformer
was renamed to @itwin/imodel-transformer
and has its own repository now with supporting packages.
eslint-plugin
@itwin/eslint-plugin
has moved to the eslint-plugin repository.
map-layers
@itwin/map-layers
has moved into the viewer-components-react repository.
Deprecated API removals
The following previously-deprecated APIs have been removed:
@itwin/core-backend:
AliCloudStorageService
AliCloudStorageServiceCredentials
AzureBlobStorage
CloudStorageService
CloudStorageTileUploader
CloudStorageUploadOptions
tileCacheService
property of IModelHost, IModelHostOptions, and IModelHostConfigurationIModelHost.tileUploader
@itwin/core-common:
CloudStorageCache
CloudStorageContainerDescriptor
CloudStorageContainerUrl
CloudStorageProvider
CloudStorageTileCache
IModelTileRpcInterface.getTileCacheContainerUrl
IModelTileRpcInterface.isUsingExternalTileCache
@itwin/presentation-common
ContentInstancesOfSpecificClassesSpecification.handlePropertiesPolymorphically
Deprecated API replacements
Querying ECSql
ECSqlReader can be used as an AsyncIterableIterator. This makes migrating from using query
to using createQueryReader
much easier.
Both of these are methods that exist in IModelDb, ECDb, and IModelConnection.
createQueryReader
can now be used as shown below:
for await (const row of iModel.createQueryReader("SELECT * FROM bis.Element")) {
const rowId = row[0]; // or 'row.id'
}
It is important to note that the object returned by createQueryReader
is a QueryRowProxy object and not a raw JavaScript object. To get a raw JavaScript object (as would have been assumed previously when using query
), call .toRow()
on the QueryRowProxy object.
for await (const row of iModel.createQueryReader("SELECT * FROM bis.Element")) {
const jsRow = row.toRow();
}
Interfaces changed
@itwin/core-quantity
- The interface
UnitConversion
has been renamed to UnitConversionProps.
@itwin/ecschema-metadata
- The
FormatProps
interface has been replaced with the SchemaItemFormatProps type alias. - The
UnitProps
interface has been renamed to SchemaItemUnitProps. - ISchemaLocater.getSchema and ISchemaLocater.getSchemaSync now take a
Readonly<SchemaKey>
instead of a SchemaKey and the SchemaContext parameter is no longer optional.
Backend
BackendHubAccess
BackendHubAccess has been marked ...
v3.7.6
Release notes
Changes
- Disable native SQLite logger category when calling 'updateToRequestedVersion' (backport #5187) [release/3.7.x] (#5494)
- Log metadata when uploading tiles (backport #5469) [release/3.7.x] (#5515)
- @bentley/imodeljs-native 3.7.0 [release/3.7.x] (#5521)
- Check that current tool still wants snap after promise is resolved. (backport #5520) [release/3.7.x] (#5524)
Full changelog: 3.7.5...3.7.6