Defining interdependencies between Adapt modules #629
Labels
high priority
Should be prioritised over all other issues
question
Discussion is required
standards
Related to coding standards
We need to establish the best way to define dependencies between Adapt modules*
Adapt modules fall into two categories:
AbstractModule
). In this case, a missing module will likely cause an error during app initialisation.waitForModule
). In this case, a missing module will likely cause an unexpected runtime error at some point in the future.We have the following requirements of Adapt module dependency management:
We currently handle all interdependencies between Adapt modules with NPM, using a mix of NPM's
dependencies
,peerDependencies
, and apackage-lock.json
file.On
peerDependencies
(from the NPM docs):Whether this is the most sensible approach remains to be seen. This issue has been created for discussion purposes.
See the below issues for some related discussion:
Versioning
Following the above, a solution for versioning a current state of the app/dependencies needs to be agreed upon and documented. We want simple (minimal effort required from devs) and robust (version clamping within a single AAT release).
As with the framework, we should introduce automation via GitHub actions where possible. We need to agree on how releases are triggered (automatic or manual) - It's likely to be a common occurrence that a feature requires changes in multiple modules, so an automatic release mechanism for
adapt-authoring
may not be possible (although this could/should be implemented for the Adapt modules).Use cases
See below for some common example use cases for a dependency management mechanism:
Please comment below with thoughts/opinions.
* Where an 'Adapt module' here refers to the AAT-specific type of Node modules which form the building blocks of the AAT v1.
The text was updated successfully, but these errors were encountered: