LoopBack comprises dozens of GitHub repositories. Beyond the core repositories such as
loopback-boot, there are dozens of ancillary modules, that fall into three main categories:
loopback-component-passport, and so on.
loopback-connector-soap, dozens of others; see LoopBack data source connectors.
loopback-getting-started, many others; see Tutorials and examples.
Each of these repositories has its own documentation in the repository README file. It makes sense to maintain the documentation there, close to the code, where it can be updated as part of related pull requests to that module. At the same time, it’s useful to aggregate all the documentation on this site. So, essentially we want to keep the module-specific documentation in the README as well as in this repo (loopback.io).
Instead of manually copying the README files from their “home” repositories, we use Bash scripts to automate the process. This enables each repository to maintain its own README and yet also provide the same information in the documentation, with a single source to avoid divergence or duplication of effort.
Due to this system of single-sourcing READMEs, to update one of the files in the
readmes directory, you must open a PR in the corresponding repository, not here in the loopback.io repo. For example, to update the file
strongloop/loopback-connector-mongodb/README.md and open a PR in the
There are two Bash scripts:
update-readmes.sh- Gets example, connector, and component READMEs and puts them into
update-community-readmes.sh- Gets community READMEs and puts them into
We have a Jenkins pipeline that runs the scripts whenever there is a commit to the loopback.io repository.