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.git\#<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
What to do in vets-json-schema
:
- Add your changes
- Create a new branch for your changes
- Update the version number in the
package.json
- Run
yarn build
to generate thedist/
directory where your form schema will be pulled from - Commit your changes to your branch and push the branch up
What to do in vets-website
:
- Go to the
package.json
file and change the vets-json-schema line to point to your latest commit hash from your branch"vets-json-schema": "https://github.com/department-of-veterans-affairs/vets-json-schema.git#YOUR_COMMIT_HASH",
- Run
yarn install
- Run vets-website locally
What to do in vets-api
:
- Go to the Gemfile and update the branch from
master
togem 'vets_json_schema', git: 'https://github.com/department-of-veterans-affairs/vets-json-schema', branch: 'BRANCH_NAME'
- Run
bundle update vets_json_schema
- You'll see that the Gemfile.lock is updated.
- Run vets-api locally
You should now see these changes locally.
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 |
link library for local development | yarn run local-link or yarn run local-unlink |
- 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
- If you're on a VA.gov Platform team, contact your Program Manager.
- If you're on a VFS team, you must complete Platform Orientation to be added to this repository. This includes completing your Platform Orientation ticket(s) in GitHub.