Skip to content

OpenNTI/nti.util.project.scripts

Repository files navigation

nti.util.project.scripts

Repo of project scripts. These scripts manage dependencies as well as project life cycles.

Project structure

This is a lerna mono-repo. The root package is a meta package and does not represent a single artifact. Its sole purpose is to manage lerna and common dependencies for releasing/testing the individual projects within.

dir purpose
.github This directory contains the configuration files for github features (dependabot, actions, etc)
actions/sync A custom github action step to synchronize project template files into all dependent projects within the NextThought org
packages The main directory of all leaf projects
packages/command-clone The main initialization command to clone all projects and install them into a workspace. Workspace template files are located here as well.
packages/command-fix The command to start a fix on a maintenance branch. This will create/checkout-head of the maint-X.X branch of the project.
packages/command-gen-docs Prototype command to generate documents from jsdoc comments. Was never really used.
packages/command-pre-commit Command run during a precommit event. Blocking code with lint errors.
packages/command-release The command that releases a new release from master or a new patch from maint.
packages/command-rollup A tool to run rollup on a directory with just a rollup config. Was only used to babel / commonjs-ify the mobile server directory.
packages/command-snapshot This command will dispatch an event to github to start a snapshot build. This command is context aware of the current directory and will use the github origin to send the dispatch event details.
packages/command-workspace-post-install To workaround a limitation of npm7, this script performs some cleanup and invokes the workspace's 'build' script defined in the root package.json as well as run docker setup/update scripts.
packages/command-workspace-refresh Reinitialize the workspace, reinstalling node_modules.
packages/dev-ssl-config dev tool library to acquire the ssl cert from the docker container or the locally install buildout.
packages/github-api API library wrapper for github. Used by various command line tools in this repo.
packages/lint-config-app-scripts Extends lint-config-lib-scripts to add/configure lint rules appropriate from React projects.
packages/lint-config-lib-scripts Sets the base lint rules for all js projects
packages/lint-config-styles Sets the base lint rules for all css in each project.
packages/scripts-app Extends lib-scripts to add webpack config and dev-server common runtime and overrides some templates
packages/scripts-ci Defines the steps used in Jenkinsfile pipelines and commands for GitHub Actions to test/lint/build projects
packages/scripts-cmp Extends app-scripts to add storybook and templates/config/commands appropriate for component libraries that are not standalone apps.
packages/scripts-lib Defines the template files, common configs, and actions for js projects. (start, test, fix, snapshot, init, install, etc)

Core concepts

  1. Command hierarchy: lib -> app -> cmp. each overrides portions of the templates and commands in the package below it.
  2. These projects depend on a paths.js that makes the assumption that commands are executed by npm in the host project root.
  3. configs are passed to tools by wrappers. eg: test calls jest and passes a config. in app-scripts, start wraps web-service and passes a config.
  4. node_module resolution algorithm is heavily assumed

Common dependencies

Dependencies needed by the build/test tools as well as shared (react) libraries are mananaged by specifying them in the lib/app scripts projects.


Build Statuses

Health Check nti.web.app
Health Check nti.web.environments
Health Check nti.web.login
Health Check nti.web.mobile


Health Check nti.lib.analytics
Health Check nti.lib.anchors
Health Check nti.lib.commons
Health Check nti.lib.content-processing
Health Check nti.lib.decorators
Health Check nti.lib.dispatcher
Health Check nti.lib.dom
Health Check nti.lib.interfaces
Health Check nti.lib.locale
Health Check nti.lib.ntiids
Health Check nti.lib.ranges
Health Check nti.lib.store.connector
Health Check nti.lib.store
Health Check nti.lib.whiteboard
Health Check nti.util.detection.touch
Health Check nti.util.git.rev
Health Check nti.util.ios-version
Health Check nti.util.logger
Health Check nti.web.assignment-editor
Health Check nti.web.calendar
Health Check nti.web.catalog
Health Check nti.web.charts
Health Check nti.web.client
Health Check nti.web.commons
Health Check nti.web.contacts
Health Check nti.web.content
Health Check nti.web.core
Health Check nti.web.course
Health Check nti.web.discussions
Health Check nti.web.editor
Health Check nti.web.help
Health Check nti.web.integrations
Health Check nti.web.library
Health Check nti.web.modeled-content
Health Check nti.web.notifications
Health Check nti.web.payments
Health Check nti.web.profiles
Health Check nti.web.reports
Health Check nti.web.routing
Health Check nti.web.search
Health Check nti.web.service
Health Check nti.web.session
Health Check nti.web.storage
Health Check nti.web.video
Health Check nti.web.whiteboard