All Projects → imodeljs → Imodeljs

imodeljs / Imodeljs

Licence: mit
Monorepo for iModel.js Library

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Imodeljs

Mapbox Gl Js
Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL
Stars: ✭ 8,017 (+3031.64%)
Mutual labels:  webgl, monorepo
Xeokit Sdk
Open source JavaScript SDK for viewing high-detail, full-precision 3D BIM and AEC models in the Web browser.
Stars: ✭ 316 (+23.44%)
Mutual labels:  webgl, bim
itwinjs-core
Monorepo for iTwin.js Library
Stars: ✭ 493 (+92.58%)
Mutual labels:  monorepo, bim
Xeogl
A WebGL-based 3D engine for technical visualization. Not actively maintained.
Stars: ✭ 920 (+259.38%)
Mutual labels:  webgl, bim
Xeokit Bim Viewer
A browser-based BIM viewer, built on the xeokit SDK
Stars: ✭ 99 (-61.33%)
Mutual labels:  webgl, bim
Bimsurfer
The latest version of the BIM Surfer WebGL viewer for IFC
Stars: ✭ 229 (-10.55%)
Mutual labels:  webgl, bim
3dio Js
JavaScript toolkit for interior apps
Stars: ✭ 255 (-0.39%)
Mutual labels:  webgl, bim
icn3d
web-based protein structure viewer and analysis tool interactively or in batch mode
Stars: ✭ 95 (-62.89%)
Mutual labels:  webgl
mono.ts
A minimal example of a typescript mono repo with pre-build support (tests, vscode).
Stars: ✭ 58 (-77.34%)
Mutual labels:  monorepo
sqlite-generate
Tool for generating demo SQLite databases
Stars: ✭ 20 (-92.19%)
Mutual labels:  sqlite
CRUDReactNativeSQLite
CRUD de app em React Native utilizando armazenamento local com SQLite
Stars: ✭ 16 (-93.75%)
Mutual labels:  sqlite
django-db-benchmark
Comparing Database performance with Django ORM
Stars: ✭ 17 (-93.36%)
Mutual labels:  sqlite
angular-mapboxgl-directive
AngularJS directive for Mapbox GL
Stars: ✭ 43 (-83.2%)
Mutual labels:  webgl
webrays
WebRays - Ray Tracing on the Web
Stars: ✭ 38 (-85.16%)
Mutual labels:  webgl
Pancake
Lightweight, Fast, Easy-to-use HTML5 2D game framework!
Stars: ✭ 79 (-69.14%)
Mutual labels:  webgl
xlib
Your isomorphic toolbox
Stars: ✭ 18 (-92.97%)
Mutual labels:  monorepo
JSceneKit
Port of SceneKit framework to JavaScript
Stars: ✭ 69 (-73.05%)
Mutual labels:  webgl
dotfiles
Configs for apps I care about
Stars: ✭ 19 (-92.58%)
Mutual labels:  sqlite
headless-gl
🎃 Windowless WebGL for node.js
Stars: ✭ 1,383 (+440.23%)
Mutual labels:  webgl
python-lsm-db
Python bindings for the SQLite4 LSM database.
Stars: ✭ 115 (-55.08%)
Mutual labels:  sqlite

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 12. 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 test

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 test
  3. Locally commit changes: git commit (or use the Visual Studio Code user interface)
  4. Repeat steps 1-3 until ready to push changes
  5. Add changelog entry (which could potentially cover several commits): rush change
  6. 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.
  7. Completing the rush change prompts will cause new changelog entry JSON files to be created.
  8. Check for API signature changes: rush extract-api. This will update the signature files, located in common/api.
  9. 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
  10. Commit the changelog JSON files and any API signature updates.
  11. Publish changes on the branch and open a pull request.

If using the command line, steps 5 through 7 above can be completed in one step by running rushchange.bat from the imodeljs-core root directory.

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 5 through 10.

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].