-
Notifications
You must be signed in to change notification settings - Fork 212
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
Add tests for computeSchemaChecksum
#3733
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IModelHost.platform
is @internal
. You need to provide a public API in @itwin/core-backend that can be called from other packages to compute schema checksums.
Should I add these functions to an existing class like schema for example as they are related to schema XML's checksum? or create a new exported functionality? |
Probably makes sense to add static methods to the Schema class in core-backend. |
ok and in that static function definition, I can call |
Yep, that's the whole point. |
When I add a static function into the |
Sounds like circular import. Push your changes so we can see. Also provide the full text of the error (with line numbers etc). |
Ok let me do that. |
|
Yes, it's a circular import. You added an import from IModelHost into Schema.ts.
|
You could actually move your static method onto I frankly don't understand why there's two internal methods rather than one method that takes named arguments with an optional "exact" arg. Your new public method should use named arguments too. |
First option seems reasonable to me. Yesterday, I spent some time to resolve this circular import issue but I think it will be more time consuming. |
Yes, its seems possible but I think moving it there may represent it that its specific to BisCore. I can move it to |
Fine by me. I will nitpick the name "getSchemaSha1Hash" since it's actually doing a fair amount of work (and on the main thread, but that's a separate conversation)...I would use "compute" or "generate" instead. But I won't argue over it. |
Yes, I think its a good suggestion. Let me update this name. |
@pmconne This is an API that is just used to verify that schemas have not changed as part of our schema release process. I would prefer to have this be internal API with no long term contract on support. That way we can modify or remove it as is dictated by the needs of the schema release process. I thought this fit our definition of API that could be marked as |
By "public" I mean, exported from @itwin/core-backend. No package other than core-backend should be talking to |
Given this, i strongly suggest this be an (undocumented) @internal method on @internal
public static computeSchemaChecksum(arg: { schemaXmlPath: string, referencePaths: string[], exactMatch?: boolean }) {
return this.platform.computeSchemaChecksum(arg);
} |
Sounds like a plan! |
computeSchemaChecksum
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think you need to run rush change
before you finish this PR.
Ok |
Pushed the file after |
* test native fixes for roundtripping placement when no geometry is present (#3642) * move up equalWithFpTolerance and add test for placement geometry json roundtrip * remove dead imports from development * rush change Co-authored-by: Michael Belousov <MichaelBelousov@users.noreply.github.com> * close transformer state dumps even if overrides threw an error (#3612) (#3656) * close transformer state dumps even if producing them threw an error Co-authored-by: Michael Belousov <MichaelBelousov@users.noreply.github.com> Co-authored-by: Michael Belousov <MichaelBelousov@users.noreply.github.com> * fix failing test due to (previous) rounding error in queryModelRange (#3675) * UI: Optimize creating subjects hierarchy in Models Tree (#3671) * Bump tile format version (#3732) * Add support for CloudSqlite (#3747) * work on cloud containers * make workspace containers use CloudSqlite * wip * workspace editor with new CloudSqlite * support CloudContainers for opening SQLiteDbs * add tests for CloudSqlite * test anonymous access * add tests for using CloudCache guid for write locks * work on download checkpoint * more download testing * allow creating and opening SQLiteDbs with params * cloud workspace tests * rework resolveContainerName * add WorkspaceDb versioning * fix tests * lint errors * enable checksums for block names * add makeVersion command to WorkspaceEditor * documentation cleanup * documentation cleanup * add --noPrompt for initializeWorkspace * support "@" scripts * fix package file * cleanup * don't allow writes to workspaceDbs unless they have been versioned in the current txn * fix tests * rename container.attach to container.connect * fix tests * add detach arg to disconnect * separate detach and disconnect * allow offline usage * collate nocase for listDb * add detach command to WorkpsaceEditor * show "friendly" file sizes * add version for testing cloud gcs * renames for customuri api * workspace settings * checkForChanges is not async * get tests working * load extra gcs databases stored in iModel settings * work on loading settings * work on settings * read all settings and schema files at startup * fix tests * old->newV2props, add test for daemon, start working on supporting v2checkpoint without daemon * doc cleanup * don't rename V2CheckpointAccessProps members * fixes, Nick please review * doc cleanup * wip * merge * fix tests * cleanup lint warnings * Add some tests, more changes around cache / blockcache_dir * doc * Add two env variables, prefetchbeforeopen, prefetchafteropen for testing. add non null assertions to some failing tests * wip * lint errors * fix tests * validate settings against schema * validate array entries * validate setting schemas * workspace documentation * afds * rename curl debugging option * wip * time prefetch * make editor functions async * workspaceEditor doc * document @ scripts * workspaceEditor doc * @ script examples * cleanup * new sqlite code for prefetch * prefetch testing * cleanup * add a PREFETCH_TIMe env variable * make WorkspaceDb.prefetch return the prefetch object * wip * merge * update @types/chai * add prefetch_nrequests * use parseSync for Yargs * log time taken for prefetch always * lint errors * allow choosing nRequests for prefetch testing * don't use env variables, switch to app settings to determine a prefetch * improve prefetch logging * lint errors * cleanup * allow importDb to supply extension for input file * use CloudContainer.blockSize * lint errors * use https for gcs data url Co-authored-by: nick.tessier <22119573+nick4598@users.noreply.github.com> * Fix requestElementGraphics (#3748) * Add tests for `computeSchemaChecksum` (#3733) * Functionality to generate sha1 hash for schema xml * consuming iModelHost * Adding static function to the schema class * Made the hash generation as separate functionality due to circular import issue * removed unnecessary import * function name updated with lint fixes * Moving changes to IModelHost * Documentation removed * combined test * line space added back * changelogs added * Presentation: Avoid counting target instances when calling getContentDescriptor RPC operation (#3816) * how about we avoid running rush update on imodel02 branch. * fix up core-backend * fix CheckpointManager test. * Delete core-transformer's HubMock Temporarily comment out TileCache tests. * unused imports. * fix TileCache.test.ts merge * extract-api; doc TODOs * lint * invalid doc links. * Fix presentation-backend test * remove unncessary dependencies from map-layers-auth * re-remove merge-restored removed deepEqualWithFpTolerance impl * Lock down ts-node to 10.8.0 for now because istanbuljs/nyc#1473 * fix slash direction * Lock superagent down to 7.1.3 because 7.1.6 has core-full-stack-test integration test failures in electron. * String.replaceAll no existe. * remove unnecessary pretest script that triggers an nyc bug * fix test errors * extract-api, lint * remove temporary test setting for gcs * fix lint error Co-authored-by: Michael Belousov <mike.belousov@bentley.com> Co-authored-by: Michael Belousov <MichaelBelousov@users.noreply.github.com> Co-authored-by: NancyMcCallB <45079789+NancyMcCallB@users.noreply.github.com> Co-authored-by: imodeljs-admin <38288322+imodeljs-admin@users.noreply.github.com> Co-authored-by: Robert Lukasonok <70327485+roluk@users.noreply.github.com> Co-authored-by: Caleb Shafer <31107829+calebmshafer@users.noreply.github.com> Co-authored-by: Arun George <aruniverse@users.noreply.github.com> Co-authored-by: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Co-authored-by: Bill Steinbock <65047615+bsteinbk@users.noreply.github.com> Co-authored-by: Mark Schlosser <47000437+markschlosseratbentley@users.noreply.github.com> Co-authored-by: Michel D'Astous <mdastous-bentley@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: bbastings <65233531+bbastings@users.noreply.github.com> Co-authored-by: Arun George <11051042+aruniverse@users.noreply.github.com> Co-authored-by: kckst8 <6283674+kckst8@users.noreply.github.com> Co-authored-by: AlainRobertAtBentley <73677355+AlainRobertAtBentley@users.noreply.github.com> Co-authored-by: Alina Paliulionytė <67429235+Alina657@users.noreply.github.com> Co-authored-by: Alina Paliulionyte <Alina657@users.noreply.github.com> Co-authored-by: Daniel Toby <41296254+DanielToby@users.noreply.github.com> Co-authored-by: kabentley <33296803+kabentley@users.noreply.github.com> Co-authored-by: Grigas <35135765+grigasp@users.noreply.github.com> Co-authored-by: nick.tessier <22119573+nick4598@users.noreply.github.com> Co-authored-by: naveedkhan8067 <38525837+naveedkhan8067@users.noreply.github.com>
These new tests verifies the functionality of two new functions that generates the sha1 hash for schema xml's
Corresponding native PR.