Skip to content

Releases: iTwin/itwinjs-core

v3.7.11

11 Jul 17:18
Compare
Choose a tag to compare

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

05 Jul 13:42
Compare
Choose a tag to compare

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

03 Jul 15:29
Compare
Choose a tag to compare

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

21 Jun 22:05
Compare
Choose a tag to compare

Release notes

Changes

  • Force node 18.16.0 for CI (backport #5661) [release/4.0.x] (#5668)

Full changelog: 4.0.1...4.0.2

v4.0.1

21 Jun 20:30
Compare
Choose a tag to compare

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

20 Jun 12:51
Compare
Choose a tag to compare

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

01 Jun 17:01
Compare
Choose a tag to compare

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

24 May 17:28
Compare
Choose a tag to compare

Release notes

Changes

  • Navigation Cube Bugs [release/3.7.x] (#5493)
  • Update branching-imodels.md (#5555)

Full changelog: 3.7.6...3.7.7

v4.0.0

22 May 15:35
Compare
Choose a tag to compare

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 IModelHostConfiguration
  • IModelHost.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

@itwin/ecschema-metadata

Backend

BackendHubAccess

BackendHubAccess has been marked ...

Read more

v3.7.6

15 May 18:24
Compare
Choose a tag to compare

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