All Projects → iTwin → itwinjs-core

iTwin / itwinjs-core

Licence: MIT license
Monorepo for iTwin.js Library

Programming Languages

typescript
32286 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
swift
15916 projects
CSS
56736 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to itwinjs-core

imodeljs-samples
No description or website provided.
Stars: ✭ 34 (-93.1%)
Mutual labels:  bim, bentley, imodel
forge-digital-twin
Autodesk Forge application demonstrating various use cases in manufacturing, specifically in context of digital twins.
Stars: ✭ 95 (-80.73%)
Mutual labels:  autodesk, digital-twin
Imodeljs
Monorepo for iModel.js Library
Stars: ✭ 256 (-48.07%)
Mutual labels:  monorepo, bim
desktop-starter
An iTwin.js Desktop starter app
Stars: ✭ 20 (-95.94%)
Mutual labels:  imodel, itwin
Rushstack
Monorepo for tools developed by the Rush Stack community
Stars: ✭ 3,465 (+602.84%)
Mutual labels:  monorepo, rush
flex-plugin-builder
Packages related to building a Twilio Flex Plugin
Stars: ✭ 69 (-86%)
Mutual labels:  monorepo
nextjs-dapp-starter-ts
A fullstack monorepo template to develop ethereum dapps
Stars: ✭ 228 (-53.75%)
Mutual labels:  monorepo
reactXstarter
React + Redux + React Native Starter Kit with reusable business logic. Sample TODO app built in.
Stars: ✭ 42 (-91.48%)
Mutual labels:  monorepo
hasura-node-monolith-example
Example of a monolithic web application using Hasura GraphQL Engine + Node.js + Next.js
Stars: ✭ 25 (-94.93%)
Mutual labels:  monorepo
shared-react-components-example
An example of a mono-repository of shared React components libraries!
Stars: ✭ 85 (-82.76%)
Mutual labels:  monorepo
lodToolkit
level-of-details toolkit(LTK). Convert osgb lod tree to 3mx tree. Convert pointcloud in ply/las/laz/xyz to 3mx/osgb tree.
Stars: ✭ 81 (-83.57%)
Mutual labels:  bentley
tributech-catalog-api
Tributech Catalog - Create and manage your DTDL models using our graphical interface and store them using our APIs.
Stars: ✭ 15 (-96.96%)
Mutual labels:  digital-twin
comptroller
A simple and lightweight tool to manage your monorepo.
Stars: ✭ 26 (-94.73%)
Mutual labels:  monorepo
monorepo-utils
A collection of utilities for monorepo/lerna. Tools for TypeScript project references etc..
Stars: ✭ 143 (-70.99%)
Mutual labels:  monorepo
awesome-nx
An awesome list that curates the best Nrwl Nx tools, tutorials, articles and more.
Stars: ✭ 45 (-90.87%)
Mutual labels:  monorepo
moon-design
Moon Design System for React
Stars: ✭ 209 (-57.61%)
Mutual labels:  monorepo
Nishan
An ecosystem of packages for notion written in typescript.
Stars: ✭ 161 (-67.34%)
Mutual labels:  monorepo
lerna-sync
A package to synchronize distributed GitHub repos inside a Lerna monorepo.
Stars: ✭ 15 (-96.96%)
Mutual labels:  monorepo
yall
Yarn/npm for monorepos
Stars: ✭ 27 (-94.52%)
Mutual labels:  monorepo
react-native-web-monorepo-navigation
⚛️ An opinionated universal navigation strategy for codebases containing both React & React Native
Stars: ✭ 24 (-95.13%)
Mutual labels:  monorepo

iTwin.js

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.

About this Repository

Build status

This repository is a monorepo that holds the source code to multiple iTwin.js npm packages. It is built using Rush.

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.

Prerequisites

  • Git
  • Node:an installation of the latest security patch of Node 18. The Node installation also includes the npm package manager.
  • Rush: to install npm install -g @microsoft/rush
  • TypeScript: this is listed as a devDependency, so if you're building it from source, you will get it with rush install.
  • Visual Studio Code: an optional dependency, but the repository structure is optimized for its use

See supported platforms for further information.

Build Instructions

  1. Clone repository (first time) with git clone or pull updates to the repository (subsequent times) with git pull
  2. Install dependencies: rush install
  3. Clean: rush clean
  4. Rebuild source: rush rebuild
  5. Run tests: rush cover

The -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 install after each git pull as dependencies may have changed.

Source Code Edit Workflow

  1. Make source code changes on a new Git branch
  2. Ensure unit tests pass when run locally: rush cover
  3. Ensure linting passes when run locally: rush lint
  4. Locally commit changes: git commit (or use the Visual Studio Code user interface)
  5. Repeat steps 1-4 until ready to push changes
  6. Check for API signature changes: rush extract-api. This will update the signature files, located in common/api. Note: before doing this, first do the following:
    • Be sure that your branch is up to date with the target branch (i.e. git merge origin/master)
    • Cleanup your build output: rush clean
    • Rebuild the project: rush build
  7. Review any diffs to the API signature files in the common/api directory to ensure they are compatible with the intended release of the package.
    • If any differences are in packages not modified on this branch, revert the changes before committing.
  8. Add changelog entry (which could potentially cover several commits): rush change
  9. Follow prompts to enter a change description or press ENTER if the change does not warrant a changelog entry. If multiple packages have changed, multiple sets of prompts will be presented. If the changes are only to non-published packages (like display-test-app), then rush change will indicate that a changelog entry is not needed.
  10. Completing the rush change prompts will cause new changelog entry JSON files to be created.
  11. Add and commit the changelog JSON files and any API signature updates.
  12. Publish changes on the branch and open a pull request.

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. Only use rushchange.bat if none of the changes require a changelog entry.

Note: The CI build will break if changes are pushed without running rush change and 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.

Updating dependencies/devDependencies on packages within the monorepo

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.

Updating dependencies/devDependencies on packages external to monorepo

Use these instructions to update dependencies and devDependencies on external packages (ones that live outside of this monorepo).

  1. Edit the appropriate package.json file to update the semantic version range
  2. Run rush check to make sure that you are specifying consistent versions across the repository
  3. Run rush update to make sure the newer version of the module specified in #1 is installed

Other NPM Scripts

  1. Build TypeDoc documentation for all packages: rush docs
  2. Build TypeDoc documentation for a single package: cd core\backend and then npm run docs
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].