Repo of project scripts. These scripts manage dependencies as well as project life cycles.
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) |
- Command hierarchy: lib -> app -> cmp. each overrides portions of the templates and commands in the package below it.
- These projects depend on a paths.js that makes the assumption that commands are executed by npm in the host project root.
- 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.
- node_module resolution algorithm is heavily assumed
Dependencies needed by the build/test tools as well as shared (react) libraries are mananaged by specifying them in the lib/app scripts projects.
nti.web.app
nti.web.environments
nti.web.login
nti.web.mobile
nti.lib.analytics
nti.lib.anchors
nti.lib.commons
nti.lib.content-processing
nti.lib.decorators
nti.lib.dispatcher
nti.lib.dom
nti.lib.interfaces
nti.lib.locale
nti.lib.ntiids
nti.lib.ranges
nti.lib.store.connector
nti.lib.store
nti.lib.whiteboard
nti.util.detection.touch
nti.util.git.rev
nti.util.ios-version
nti.util.logger
nti.web.assignment-editor
nti.web.calendar
nti.web.catalog
nti.web.charts
nti.web.client
nti.web.commons
nti.web.contacts
nti.web.content
nti.web.core
nti.web.course
nti.web.discussions
nti.web.editor
nti.web.help
nti.web.integrations
nti.web.library
nti.web.modeled-content
nti.web.notifications
nti.web.payments
nti.web.profiles
nti.web.reports
nti.web.routing
nti.web.search
nti.web.service
nti.web.session
nti.web.storage
nti.web.video
nti.web.whiteboard