Skip to content

Releases: iTwin/itwinjs-core

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

v3.7.5

04 May 19:44
Compare
Choose a tag to compare

Release notes

Changes

  • Add gaps between TreeNodeItem content items (#5447)
  • Mobile backend access token fixes (backport #5456) [release/3.7.x] (#5459)
  • Remove EC rule 102 Abstract class must have abstract base class (backport #5353) [release/3.7.x] (#5483)
  • Mobile RPC queue up pending messages until reconnected in foreground (backport #5479) [release/3.7.x] (#5484)

Full changelog: 3.7.4...3.7.5

v3.7.4

25 Apr 17:52
Compare
Choose a tag to compare

Release notes

Changes

  • Address tile content disposal issues (bp #5440) (#5442)

Full changelog: 3.7.3...3.7.4

v3.7.3

20 Apr 13:20
Compare
Choose a tag to compare

Release notes

Changes

  • Fix selection scope field (#5391)
  • IPC blocking fix (backport #5400) [release/3.7.x] (#5404)
  • Fix for timing issue in core tests (backport #5419) [release/3.7.x] (#5420)
  • add missing file to core-geometry barrel (backport #5412) [release/3.7.x] (#5414)
  • Fix point cloud jitter and quantization issues for additive refinement pnts (backport #5324) [release/3.7.x] (#5421)
  • Fix point cloud voxel size issues for additive refinement pnts (backport #5407) [release/3.7.x] (#5423)
  • Prune unnecessary deps and update rush audit [release/3.7.x] (#5406)

Full changelog: 3.7.2...3.7.3

v3.7.2

12 Apr 13:13
Compare
Choose a tag to compare

Release notes

Changes

  • Exit the LookAndMove tool when ESC is used to disable pointer lock. (backport #5362) [release/3.7.x] (#5363)
  • fix type definition in TileStorage.ts (backport #5359) [release/3.7.x] (#5365)
  • Temporarily ignore xml2js CVE until @azure/storage-blob is updated (backport #5372) [release/3.7.x] (#5381)
  • Presentation: Fix BisCore supplemental rules for related bis.ExternalSource properties (backport #5378) [release/3.7.x] (#5380)

Full changelog: 3.7.1...3.7.2

v3.7.1

03 Apr 15:16
Compare
Choose a tag to compare

Release notes

Changes

  • Add a ViewCreator3d option to make all subcategories visible (backport #5308) [release/3.7.x] (#5309)
  • @bentley/imodeljs-native 3.6.10 (#5329)
  • Harden computeFrustumPlanes() in FrustumPlanes.ts (backport #5328) [release/3.7.x] (#5341)

Full changelog: 3.7.0...3.7.1

v3.7.0

29 Mar 15:03
Compare
Choose a tag to compare

Release notes

For the full list of changes see the detailed release notes.

v3.6.3

27 Mar 16:27
Compare
Choose a tag to compare

Release notes

Changes

  • Presentation: Add an enum value required for presentation-components 4.0 (#5289)

Full changelog: 3.6.2...3.6.3