-
Notifications
You must be signed in to change notification settings - Fork 361
APG Infrastructure
This page is an overview of the infrastructure used to maintain the health of this repository. If you are a new contributor, you mostly need to know the following:
-
We have a JavaScript, CSS and HTML linters and a spellcheck that we use to gain consistence in coding style across the repository. These linters are run in multiple places:
- Continuous Integration These linters are run as part of our continuous integration in a github action.
-
Local Development These linters can be run locally as you work with the following commands (see package.json if these change):
npm run lint # Runs all linters
npm run lint:css # Runs the CSS linter
npm run lint:js # Runs the JS linter
npm run lint:html # Runs the HTML linter
npm run lint:spelling # Runs spell check
- `npm run lint:fix # Runs JS and CSS linter to fix any automatically fixable mistakes
- Commit hooks The CSS and JS linters are also run with "--fix" as part of a "pre-commit" hook. The fix flag will fix anything that can be automatically fixed. The fixes will be automatically fixed and the changes added to your commit, so you might see different spacing or formatting in your commit than you added.
-
We have regression tests for the example widgets on the "example" pages. These regression tests only when you make a change to a file in the
examples/
ortests/
directory. They are run the following places:- Continuous Integration These regression tests are run as part of the continuous integration in a github action. Note: there is an occasional failure in the regression tests from "webdriver". If you see a "webdriver" related error, the tests should just be re-triggered by an admin.
-
Local development You can run the regression tests locally with the following command:
npm run regression
-
We have a PR previewer that will run when you are editing the specification page OR and example page. The PR previewer will host your PR and add a link that looks like "Preview | Diff" to your PR's description. You can edit this link to point to the part of the aria practices document that you edited in your PR.
TODO: Add links to the appropriate sections ^
TODO: Outline the use of git hooks
The dependabot app is enable on this repository to update npm dependencies.
Travis is used for continuous testing on this repository. Travis jobs are configured in .travis.yaml.
TO DO: We are moving from Travis to using github checks.
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.
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 is used to parse html by the regression report and the script that creates the examples/index.js file.
cspell is a spell checker which runs during npm run lint
.
ESLint is a javascript linter which runs during npm run lint
.
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 is used in the script that creates the examples/index.js file.
TO DO: What is this for?
TO DO: What is this for?
This is used by merge-driver.
Selenium Webdriver is our browser testing framework, read more about the framework here.
CSS linter which runs during npm run lint
.
CSS linter which runs during npm run lint
.
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.
- Home
- About the APG TF Work
- Contributing
- Meetings
- Management and Operations Documentation
- Publication Change Logs