Forms on VA.gov use JSON schema to define a common contract for data validation between the front and back ends. This is where those schemas are kept.
-
Clone the
vets-json-schema
repository -
Create a new branch for your changes
-
Make any required changes needed for your form schema
-
Update the version number in this repo's
package.json
- Ensure that you run
yarn build
to generate thedist/
directory where your form schema will be pulled from - Commit your changes to your branch
- Ensure that you run
-
Submit a Pull Request in
vets-json-schema
-
Once that PR is merged into
vets-json-schema
atmaster
-
In
vets-website
to update thevets-json-schema
dependency do the following:- Create a new branch
- Find the latest commit hash for
vets-json-schema#master
(see all commits) - Run
yarn remove vets-json-schema
- Run
yarn add https://github.com/department-of-veterans-affairs/vets-json-schema.it\#<commit-hash>
- Run
yarn update:schema
- Create a Pull Request
-
In
vets-api
to update thevets-json-schema
dependency do the following:- Create a new branch
- Run
bundle update vets_json_schema
-
If adding or removing a form, update forms tests in
vets-website
node v8.10.0
I want to... | Then you should... |
---|---|
clone the repo | git clone https://github.com/department-of-veterans-affairs/vets-json-schema.git followed by cd vets-json-schema , yarn install . Run yarn install any time package.json changes. |
build the json schemas and examples | yarn run build |
watch for changes and rebuild when they happen | yarn run watch |
run tests on the built schemas | yarn run test |
create a new schema | https://github.com/department-of-veterans-affairs/va.gov-team/blob/master/platform/engineering/frontend/vets-website/creating-form-schema.md |
- Update the "version" property in
package.json
with the new version. Please follow Semantic Versioning practices.- If implementing a major version update, add a link in your vets-json-schema PR that references the vets-api, or vets-website, PR that addresses the breaking changes.
- Breaking changes include:
- Removing a property from a schema
- Adding a property to a schema that has
additionalProperties
set to false - Making a property required that was not previously required on that schema
- Changing the
type
on a schema's property - Removing values in the
enum
key of a schema's property - ect.
- Run
yarn update
. - Commit the changes to
package.json
andyarn.lock
- After changes to
vets-json-schema
have been merged into master:- update
vets-website
to point to the latestvets-json-schema
version by runningyarn update:schema
and making a PR - update
vets-api
by runningbundle update vets_json_schema
and making a PR. Caution: verify that you changes are only related to vets_json_schema version. If you see sidekiq changes, follow these instructions
- update