AIP validator
Validation rules
Mandatory fields
- aip
- title
- author
- type
- category (conditional on type)
- status
- created
Optional fields
- discussions-to
- layer
- replaces
- requires
- resolution
- review-period-end
- superseded-by
- updated
Mandatory values
status
must be 'Draft', 'Last Call', 'Accepted', 'Final', 'Active', 'Abandoned', 'Deferred', 'Rejected', or 'Superseded'
Prerequisite
Setup
gem install aip_validator
Usage (command line)
aip_validator INPUT_FILES
Usage (as a lib)
require 'aip_validator
AipValidator::Runner.run
Example
$aip_validator ~/src/AIPs/AIPS/*[0-9].md
Warning: /Users/ccusce/src/AIPs/AIPS/aip-158.md unknown attribute 'superseded-by' for AipValidator::Validator.
Warning: /Users/ccusce/src/AIPs/AIPS/aip-615.md unknown attribute 'edited' for AipValidator::Validator.
total:51, valid:49, invalid:0, errors:2
statuses: [["Final", 29], ["Draft", 17], ["Accepted", 2], ["Active", 1]]
types: [["Meta", 6], ["Standards Track", 42], ["Standard Track", 1]]
categories: [[nil, 6], ["Core", 23], ["ARC", 11], ["Interface", 5], ["Networking", 4]]
layers: [[nil, 47], ["Applications", 1], ["Process", 1]]
Running tests
bundle exec rspec
Releasing new gem
gem bump --version patch|minor|major
bundle exec rake release