Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade core dependencies to 5.0 #225

Open
wants to merge 25 commits into
base: itwinjs-v5
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
403c057
rm unused flushTxns
pmconne Dec 24, 2024
c54c3a3
update core pkgs, need to update clients etc
pmconne Dec 25, 2024
23f734e
upgrade other @itwin packages to latest; still some unmet peer deps
pmconne Dec 25, 2024
5377bab
upgrade TS
pmconne Dec 25, 2024
175e5c6
wip clean up compilation errors.
pmconne Dec 25, 2024
a73834f
fix everything except performance tests that want to apply single cha…
pmconne Dec 25, 2024
dea39ab
Merge branch 'main' into pmc/no-nativedb
pmconne Jan 3, 2025
a6948be
update lockfile
pmconne Jan 3, 2025
d60fd14
remove apply changeset test
nick4598 Jan 6, 2025
4356714
fix up remaining callers
pmconne Jan 7, 2025
ba75299
Merge branch 'pmc/no-nativedb' of https://github.com/iTwin/imodel-tra…
pmconne Jan 7, 2025
a12ae45
Change files
pmconne Jan 7, 2025
eade4dc
extract-api??
pmconne Jan 7, 2025
7fdfa60
pnpm update
pmconne Jan 7, 2025
bef74dc
come on what's your problem
pmconne Jan 7, 2025
16e3468
rm font check
pmconne Jan 7, 2025
445245a
fix 1 semver test
pmconne Jan 7, 2025
a1a1890
rm another semver check
pmconne Jan 7, 2025
b1b612e
update package.json, set override on typsescript due to dep in micros…
DanRod1999 Jan 14, 2025
0d4a556
Revert "update package.json, set override on typsescript due to dep i…
pmconne Jan 27, 2025
eeea61e
dev.49
pmconne Jan 27, 2025
79cf7c1
breaking changes to map iterators.
pmconne Jan 27, 2025
dfa8339
plan projection settings
pmconne Jan 27, 2025
89d9924
fix import
pmconne Jan 27, 2025
d2dd977
extract-api
pmconne Jan 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "major",
"comment": "Upgrade to iTwin.js 5.0.",
"packageName": "@itwin/imodel-transformer",
"email": "22944042+pmconne@users.noreply.github.com",
"dependentChangeType": "patch"
}
1 change: 0 additions & 1 deletion common/api/imodel-transformer.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,6 @@ export class IModelTransformer extends IModelExportHandler {
fn: (sourceElementId: Id64String, targetElementId: Id64String) => void;
skipPropagateChangesToRootElements: boolean;
}): void;
protected get hasDefinitionContainerDeletionFeature(): boolean;
protected hasElementChanged(sourceElement: Element_2): boolean;
readonly importer: IModelImporter;
initElementProvenance(sourceElementId: Id64String, targetElementId: Id64String): ExternalSourceAspectProps;
Expand Down
48 changes: 24 additions & 24 deletions common/api/summary/imodel-transformer.exports.csv
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
sep=;
Release Tag;API Item
public;ChangedInstanceIds
public;ChangedInstanceIdsInitOptions = ExportChangesOptions &
public;ChangedInstanceOps
public;ExportChangesOptions =
beta;ExporterInitOptions = ExportChangesOptions
beta;ExportSchemaResult
internal;hasEntityChanged(entity: Entity, entityProps: EntityProps, namesToIgnore?: Set
beta;IModelExporter
beta;class IModelExportHandler
beta;IModelImporter
beta;IModelImportOptions
beta;IModelTransformer
beta;IModelTransformOptions
alpha;initializeBranchProvenance(args: ProvenanceInitArgs): Promise
beta;InitOptions
beta;OptimizeGeometryOptions
beta;ProcessChangesOptions = ExportChangesOptions &
alpha;ProvenanceInitArgs
alpha;ProvenanceInitResult
beta;RelationshipPropsForDelete
beta;TargetScopeProvenanceJsonProps
beta;TemplateModelCloner
public;TransformerLoggerCategory
Release Tag;API Item Type;API Item Name
public;class;ChangedInstanceIds
public;type;ChangedInstanceIdsInitOptions
public;class;ChangedInstanceOps
public;type;ExportChangesOptions
beta;type;ExporterInitOptions
beta;interface;ExportSchemaResult
internal;function;hasEntityChanged
beta;class;IModelExporter
beta;class;IModelExportHandler
beta;class;IModelImporter
beta;interface;IModelImportOptions
beta;class;IModelTransformer
beta;interface;IModelTransformOptions
alpha;function;initializeBranchProvenance
beta;interface;InitOptions
beta;interface;OptimizeGeometryOptions
beta;type;ProcessChangesOptions
alpha;interface;ProvenanceInitArgs
alpha;interface;ProvenanceInitResult
beta;interface;RelationshipPropsForDelete
beta;interface;TargetScopeProvenanceJsonProps
beta;class;TemplateModelCloner
public;enum;TransformerLoggerCategory
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
},
"license": "MIT",
"devDependencies": {
"beachball": "^2.33.3",
"fast-glob": "^3.2.12",
"beachball": "^2.51.0",
"fast-glob": "^3.3.3",
"husky": "^8.0.3",
"lint-staged": "^13.2.2",
"prettier": "^3.1.1"
"lint-staged": "^13.3.0",
"prettier": "^3.4.2"
},
"lint-staged": {
"*.{ts,html}": [
Expand All @@ -46,5 +46,5 @@
"overrides": {
"semver": "^7.5.2"
}
}
}
}
8 changes: 4 additions & 4 deletions packages/performance-scripts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
"author": "Bentley Systems, Inc.",
"license": "MIT",
"devDependencies": {
"@itwin/build-tools": "4.6.0-dev.27",
"@itwin/core-backend": "^4.3.5",
"@itwin/build-tools": "5.0.0-dev.49",
"@itwin/core-backend": "^5.0.0-dev.49",
"@types/node": "^18.11.5",
"typescript": "~5.3.3"
"typescript": "~5.6.2"
}
}
}
26 changes: 13 additions & 13 deletions packages/performance-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
},
"repository": {},
"dependencies": {
"@itwin/core-backend": "4.3.5",
"@itwin/core-bentley": "4.3.5",
"@itwin/core-common": "4.3.5",
"@itwin/core-geometry": "4.3.5",
"@itwin/core-quantity": "4.3.5",
"@itwin/core-backend": "^5.0.0-dev.49",
"@itwin/core-bentley": "^5.0.0-dev.49",
"@itwin/core-common": "^5.0.0-dev.49",
"@itwin/core-geometry": "^5.0.0-dev.49",
"@itwin/core-quantity": "^5.0.0-dev.49",
"@itwin/imodel-transformer": "workspace:*",
"@itwin/ecschema-metadata": "4.3.5",
"@itwin/ecschema-metadata": "^5.0.0-dev.49",
"@itwin/imodels-access-backend": "^4.1.4",
"@itwin/imodels-client-authoring": "4.4.0",
"@itwin/node-cli-authorization": "~0.9.0",
Expand All @@ -32,23 +32,23 @@
"yargs": "^16.0.0"
},
"devDependencies": {
"@itwin/build-tools": "4.6.0-dev.27",
"@itwin/eslint-plugin": "^4.0.2",
"@itwin/oidc-signin-tool": "^4.3.2",
"@itwin/itwins-client": "^1.2.1",
"@itwin/build-tools": "5.0.0-dev.49",
"@itwin/eslint-plugin": "^5.0.0",
"@itwin/oidc-signin-tool": "^4.4.0",
"@itwin/itwins-client": "^1.6.1",
"@types/chai": "^4.1.4",
"@types/fs-extra": "^4.0.7",
"@types/mocha": "^8.2.2",
"@types/node": "14.14.31",
"@types/yargs": "^12.0.5",
"chai": "^4.3.6",
"eslint": "^8.36.0",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"prettier": "^3.1.1",
"mocha": "^10.0.0",
"rimraf": "^3.0.2",
"ts-node": "^10.7.0",
"typescript": "~5.3.3"
"typescript": "~5.6.2"
},
"eslintConfig": {
"plugins": [
Expand All @@ -59,4 +59,4 @@
"project": "./tsconfig.json"
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export default async function identityTransformer(context: TestCaseContext) {
path.join(os.tmpdir(), "identity-test-schemas-dump-")
);
// eslint-disable-next-line @itwin/no-internal, deprecation/deprecation
sourceDb.nativeDb.exportSchemas(schemaDumpDir);
sourceDb.exportSchemas(schemaDumpDir);
Logger.logInfo(loggerCategory, `dumped schemas to: ${schemaDumpDir}`);
throw err;
} finally {
Expand Down
2 changes: 1 addition & 1 deletion packages/performance-tests/test/cases/prepare-fork.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export default async function prepareFork(context: TestCaseContext) {
path.join(os.tmpdir(), "fork-test-schemas-dump-")
);
// eslint-disable-next-line @itwin/no-internal, deprecation/deprecation
sourceDb.nativeDb.exportSchemas(schemaDumpDir);
sourceDb.exportSchemas(schemaDumpDir);
Logger.logInfo(loggerCategory, `dumped schemas to: ${schemaDumpDir}`);
throw err;
} finally {
Expand Down
11 changes: 1 addition & 10 deletions packages/performance-tests/test/iModelUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,7 @@ export interface IModelParams {
// TODO: dedup with other packages
// for testing purposes only, based on SetToStandalone.ts, force a snapshot to mimic a standalone iModel
export function setToStandalone(iModelPath: string) {
// eslint-disable-next-line @itwin/no-internal, deprecation/deprecation
const nativeDb = new IModelHost.platform.DgnDb();
nativeDb.openIModel(iModelPath, OpenMode.ReadWrite);
nativeDb.setITwinId(Guid.empty); // empty iTwinId means "standalone"
nativeDb.saveChanges(); // save change to iTwinId
nativeDb.deleteAllTxns(); // necessary before resetting briefcaseId
nativeDb.resetBriefcaseId(BriefcaseIdValue.Unassigned); // standalone iModels should always have BriefcaseId unassigned
nativeDb.saveLocalValue("StandaloneEdit", JSON.stringify({ txns: true }));
nativeDb.saveChanges(); // save change to briefcaseId
nativeDb.closeFile();
StandaloneDb.convertToStandalone(iModelPath);
}

export function generateTestIModel(iModelParam: IModelParams): TestIModel {
Expand Down
55 changes: 0 additions & 55 deletions packages/performance-tests/test/rawInserts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
import { ChangesetFileProps } from "@itwin/core-common";
import {
// eslint-disable-next-line @typescript-eslint/no-redeclare
Element,
ElementGroupsMembers,
IModelDb,
SnapshotDb,
StandaloneDb,
} from "@itwin/core-backend";
Expand All @@ -19,7 +17,6 @@ import { TestIModel } from "./TestContext";
import { generateTestIModel } from "./iModelUtils";
import { initOutputFile, timed } from "./TestUtils";
import assert from "assert";
import fs from "fs";
import path from "path";

const loggerCategory = "Raw Inserts";
Expand Down Expand Up @@ -70,41 +67,6 @@ export default async function rawInserts(

sourceDb.saveChanges();

Logger.logInfo(
loggerCategory,
"Done. Starting changeset application of same content"
);

const changeset1 = createChangeset(sourceDb);
const changesetDbPath = initOutputFile("RawInsertsApply.bim", outputDir);
if (fs.existsSync(changesetDbPath)) fs.unlinkSync(changesetDbPath);
const changesetDb = StandaloneDb.createEmpty(changesetDbPath, {
rootSubject: { name: "RawInsertsApply" },
});

const [applyChangeSetTimer] = timed(() => {
// eslint-disable-next-line @itwin/no-internal, deprecation/deprecation
changesetDb.nativeDb.applyChangeset(changeset1);
});

reporter.addEntry(
"populate by applying changeset",
iModelName,
"time elapsed (seconds)",
applyChangeSetTimer?.elapsedSeconds ?? -1,
{
"Element Count": IModelTransformerTestUtils.count(
sourceDb,
Element.classFullName
),
"Relationship Count": IModelTransformerTestUtils.count(
sourceDb,
ElementGroupsMembers.classFullName
),
"Branch Name": branchName,
}
);

Logger.logInfo(
loggerCategory,
"Done. Starting with-provenance transformation of same content"
Expand Down Expand Up @@ -179,23 +141,6 @@ export default async function rawInserts(
);

sourceDb.close();
changesetDb.close();
targetDb.close();
targetNoProvDb.close();
}

// stolen from itwinjs-core: core/backend/src/test/changesets/ChangeMerging.test.ts
function createChangeset(imodel: IModelDb): ChangesetFileProps {
// eslint-disable-next-line @itwin/no-internal, deprecation/deprecation
const changeset = imodel.nativeDb.startCreateChangeset();

// completeCreateChangeset deletes the file that startCreateChangeSet created.
// We make a copy of it now, before it does that.
const csFileName = path.join(outputDir, `${changeset.id}.changeset`);
fs.copyFileSync(changeset.pathname, csFileName);
changeset.pathname = csFileName;

// eslint-disable-next-line @itwin/no-internal, deprecation/deprecation
imodel.nativeDb.completeCreateChangeset({ index: 0 });
return changeset as any; // FIXME: bad peer deps
}
27 changes: 12 additions & 15 deletions packages/test-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,38 +19,35 @@
},
"repository": {},
"dependencies": {
"@itwin/core-backend": "4.3.5",
"@itwin/core-bentley": "4.3.5",
"@itwin/core-common": "4.3.5",
"@itwin/core-geometry": "4.3.5",
"@itwin/imodels-access-backend": "^2.2.1",
"@itwin/imodels-client-authoring": "2.3.0",
"@itwin/node-cli-authorization": "~0.9.0",
"@itwin/core-backend": "^5.0.0-dev.49",
"@itwin/core-bentley": "^5.0.0-dev.49",
"@itwin/core-common": "^5.0.0-dev.49",
"@itwin/core-geometry": "^5.0.0-dev.49",
"@itwin/imodels-access-backend": "^5.2.3",
"@itwin/imodels-client-authoring": "^5.9.0",
"@itwin/node-cli-authorization": "^2.0.4",
"@itwin/imodel-transformer": "workspace:*",
"@itwin/imodels-access-backend": "^2.3.0",
"@itwin/imodels-client-authoring": "^2.3.0",
"@itwin/node-cli-authorization": "~0.9.2",
"dotenv": "^10.0.0",
"dotenv-expand": "^5.1.0",
"fs-extra": "^8.1.0",
"yargs": "^17.7.2"
},
"devDependencies": {
"@itwin/build-tools": "4.6.0-dev.27",
"@itwin/eslint-plugin": "4.0.2",
"@itwin/build-tools": "5.0.0-dev.49",
"@itwin/eslint-plugin": "^5.0.0",
"@itwin/projects-client": "^0.6.0",
"@types/chai": "4.3.1",
"@types/fs-extra": "^4.0.12",
"@types/mocha": "^8.2.3",
"@types/node": "^18.16.14",
"@types/yargs": "17.0.19",
"cross-env": "^5.2.1",
"eslint": "^8.36.0",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"prettier": "^3.1.1",
"mocha": "^10.2.0",
"rimraf": "^3.0.2",
"source-map-support": "^0.5.21",
"typescript": "^5.3.3"
"typescript": "^5.6.2"
}
}
}
19 changes: 2 additions & 17 deletions packages/test-app/src/Main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import * as path from "path";
import * as fs from "fs";
import * as Yargs from "yargs";
import { assert, Guid, Logger, LogLevel, OpenMode } from "@itwin/core-bentley";
import { assert, Guid, Logger, LogLevel } from "@itwin/core-bentley";
import { ProjectsAccessClient } from "@itwin/projects-client";
import {
BriefcaseDb,
Expand Down Expand Up @@ -496,24 +496,9 @@ void (async () => {

if (args.targetStandaloneDestination) {
fs.copyFileSync(fileName, args.targetStandaloneDestination);
function setToStandalone(iModelPath: string) {
/* eslint-disable deprecation/deprecation */
const nativeDb = new IModelHost.platform.DgnDb();
nativeDb.openIModel(iModelPath, OpenMode.ReadWrite);
nativeDb.setITwinId(Guid.empty); // empty iTwinId means "standalone"
nativeDb.saveChanges(); // save change to iTwinId
nativeDb.deleteAllTxns(); // necessary before resetting briefcaseId
nativeDb.resetBriefcaseId(BriefcaseIdValue.Unassigned); // standalone iModels should always have BriefcaseId unassigned
nativeDb.saveLocalValue(
"StandaloneEdit",
JSON.stringify({ txns: true })
);
nativeDb.saveChanges(); // save change to briefcaseId
nativeDb.closeFile();
}
/* eslint-enable deprecation/deprecation */
targetDb.close();
setToStandalone(args.targetStandaloneDestination);
StandaloneDb.convertToStandalone(args.targetStandaloneDestination);
await StandaloneDb.upgradeSchemas({ fileName });
targetDb = StandaloneDb.openFile(args.targetStandaloneDestination);
}
Expand Down
4 changes: 2 additions & 2 deletions packages/test-app/src/Transformer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -424,8 +424,8 @@ export class Transformer extends IModelTransformer {
}

public logChangeTrackingMemoryUsed(): void {
if (this.targetDb.isBriefcase) {
const bytesUsed = this.targetDb.nativeDb.getChangeTrackingMemoryUsed(); // can't call this internal method unless targetDb has change tracking enabled
if (this.targetDb.isBriefcaseDb()) {
const bytesUsed = this.targetDb.txns.getChangeTrackingMemoryUsed();
const mbUsed = Math.round((bytesUsed * 100) / (1024 * 1024)) / 100;
Logger.logInfo(
loggerCategory,
Expand Down
Loading