Skip to content

APG Infrastructure

Simon Pieters edited this page Feb 13, 2020 · 15 revisions

This page is an overview of the infrastructure used to maintain the health of this repository.

Github Apps

Greenkeeper

The Greenkeeper app is enable on this repository to update npm dependencies. You can read about how it works in the initial PR enabling Greenkeeper. In summary: if a npm dependency has a new release, then Greenkeeper will open a PR with the bump version number in package.json. This will trigger all tests to run. It's possible the version bump of a dependency will introduce a breaking change which will have to be investigated and fixed manually.

Travis

Travis is used for continuous testing on this repository. Travis jobs are configured in .travis.yaml.

Preview Bot

Preview bot will produce a link to the new specification and a diff between the new and old specification on PRs that edit the spec. It then edits the PR description to add these links.

NPM Modules

ava

AVA is a testing framework used to run regression tests of the example widgets in the examples/ directory, read more about our testing framework here.

cheerio

Cheerio is used to parse html by the regression report and the script that creates the examples/index.js file.

cspell

cspell is a spell checker which runs during npm run lint.

eslint

ESLint is a javascript linter which runs during npm run lint.

geckodriver

Geckodriver is used to control firefox for the regression tests of the widgets in the examples/ directory, read more about our testing framework here.

glob

glob is used in the script that creates the examples/index.js file.

husky

TO DO: What is this for?

lint-staged

TO DO: What is this for?

run-node

This is used by merge-driver.

selenium-webdriver

Selenium Webdriver is our browser testing framework, read more about the framework here.

stylelint

CSS linter which runs during npm run lint.

stylelint-config-standard

CSS linter which runs during npm run lint.

vnu-jar

HTML linter which runs during npm run lint.

This utility will help us when Greenkeeper (see section on Github apps) has updated a dependency in package.json and creates a merge conflict in the auto-generated package-lock.json npm file. The merge conflict is automatically fixed by this utility.

Clone this wiki locally