Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.
iTwin.js is an open source platform for creating, querying, modifying, and displaying Infrastructure Digital Twins.
If you have questions, or wish to contribute to iTwin.js, see our Contributing guide.
See rush.json for the complete list of packages.
Each package has its own node_modules directory that contains symbolic links to common dependencies managed by Rush.
npm install -g @microsoft/rush
See supported platforms for further information.
git cloneor pull updates to the repository (subsequent times) with
-v option for
rush is short for
--verbose which results in a more verbose command.
The above commands iterate and perform their action against each package in the monorepo.
For incremental builds, the
rush build command can be used to only build packages that have changes versus
rush rebuild which always rebuilds all packages.
Note: It is a good idea to
rush installafter each
git pullas dependencies may have changed.
git commit(or use the Visual Studio Code user interface)
rush extract-api. This will update the signature files, located in
common/apidirectory to ensure they are compatible with the intended release of the package.
rush changewill indicate that a changelog entry is not needed.
rush changeprompts will cause new changelog entry JSON files to be created.
If using the command line, steps 8 through 11 above can be completed in one step by running
rushchange.bat from the imodeljs root directory.
rushchange.bat if none of the changes require a changelog entry.
Note: The CI build will break if changes are pushed without running
rush extract-api(if the API was changed). The fix will be to complete steps 6 through 11.
Here is a sample changelog to demonstrate the level of detail expected.
The version numbers of internal dependencies should not be manually edited. These will be automatically updated by the overall version bump workflow. Note that the packages are published by CI builds only.
Use these instructions to update dependencies and devDependencies on external packages (ones that live outside of this monorepo).
package.jsonfile to update the semantic version range
rush checkto make sure that you are specifying consistent versions across the repository
rush updateto make sure the newer version of the module specified in #1 is installed
cd core\backendand then
npm run docs