Skip to content

WIP: WAP-2520: Better error handling #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
230 commits
Select commit Hold shift + click to select a range
3b56846
chore(package): update license and copyright info
Jan 8, 2018
3e9cebf
chore(license): change start license year range
Jan 8, 2018
0d5dbd4
Merge pull request #2 from michaelcarter-wf/update_license
Jan 8, 2018
8963060
chore(package): fix dart analyzer warnings
Jan 11, 2018
49233fe
chore(package): remove unused file
Jan 11, 2018
211648f
chore(readme): switch to workiva travis build for status
Jan 11, 2018
4752e86
fix(test): remove missing command from test run script
Jan 11, 2018
487d442
imp(package): add basic smithy file to do dependency tracking
Jan 11, 2018
0ee5c74
chore(package): clean up pubspec.yaml
Jan 11, 2018
198c0a4
chore(package): alpha .gitignore, add coverage folder
Jan 11, 2018
818f477
chore(package): remove old build files
Jan 11, 2018
6426beb
feat(package): setup standard dart_dev tooling
Jan 11, 2018
d2fa54d
chore(packaeg): apply license and ddev format to all files
Jan 11, 2018
978e292
chore(package): add default github files
Jan 11, 2018
cb5e040
chore(package): update the change log
Jan 11, 2018
46670f9
fix(travis): add coverage to the list of ignored packages for depende…
Jan 11, 2018
cb5eadd
chore(package): update license year
Jan 16, 2018
614a56c
chore(package): empty commit to trigger smithy
Jan 17, 2018
8584ab3
Merge pull request #3 from michaelcarter-wf/cleanup
Jan 18, 2018
2539f0e
json_schema_1.0.8
rmconsole-readonly-wk Jan 18, 2018
98208e8
Merge pull request #4 from Workiva/release_json_schema_1_0_8
Jan 18, 2018
17fa24b
feat(package): add semver_audit checks
Jan 19, 2018
f6e9768
Merge pull request #5 from michaelcarter-wf/add_semver_audit
Jan 19, 2018
abf0d64
ugly wip
Jan 24, 2018
6fb6037
feat(package): refactor platform specific functionality into separate…
Jan 24, 2018
0638c8b
test(package): add a browser test
Jan 24, 2018
33541de
chore(package): license headers
Jan 24, 2018
3dc7372
fix(travis): add content shell to CI runner
Jan 25, 2018
c56ad76
fix(travis): add commands for content-shell to start
Jan 25, 2018
f8ab9dc
fix(travis): add commands for content-shell to start, try #2
Jan 25, 2018
f2bc143
fix(package): add export for SchemaType
Jan 25, 2018
bfee497
fix(package): address cr comments
Feb 27, 2018
ba6552a
fix(browser): code review changes
Feb 28, 2018
b5e421e
chore(pubspec): double quotes to single
Feb 28, 2018
1d31f5a
chore(README): update examples in README
Feb 28, 2018
c24a367
chore(travis): travis fix attempt #1
Feb 28, 2018
c437f93
Merge pull request #6 from michaelcarter-wf/platform_agnostic_2
michaelcarter-wf Mar 1, 2018
77e620b
chore(package): add analysis_options.yaml and fix issues
Mar 2, 2018
09d207f
feat(package): factor out type validations
Mar 2, 2018
088082f
chore(package): comment to death
Mar 5, 2018
86337e3
chore(json-schema): typedefs, cleanup, comments
Mar 5, 2018
85f220c
feat(json-schema): factor out property validation into functions
Mar 5, 2018
aa7980f
chore(package): fmt
Mar 5, 2018
252fbaa
feat(json-schema): factor out ref fetching into it's own function
Mar 5, 2018
5e2a2cf
feat(json-schema): make the validation logic more functional
Mar 9, 2018
01871d2
feat(package): allow parsing and validation of nested remote refs
Mar 9, 2018
7096a8a
fix(package): cr fixes
Mar 9, 2018
f963a28
Merge branch 'rework_parsing_logic' of github.com:michaelcarter-wf/js…
Mar 9, 2018
c4c5d2d
chore(package): fmt
Mar 9, 2018
220b314
Merge pull request #7 from michaelcarter-wf/rework_parsing_logic
michaelcarter-wf Mar 9, 2018
f11511d
Merge branch '2.0.0_wip' of github.com:workiva/json_schema into neste…
Mar 9, 2018
418513b
feat(package): resolve uri fragments when provided, add comments
Mar 12, 2018
b313cf2
fix(package): remove refs in refs, we don't support these yet.
Mar 12, 2018
b5119ef
chore(package): fmt
Mar 16, 2018
62e4e03
fix(package): cr nits
Mar 16, 2018
3b55b2f
feat(package): updates to allow sync schema validation
Mar 16, 2018
250db0c
Merge pull request #9 from michaelcarter-wf/nested_ref_fetch
michaelcarter-wf Mar 16, 2018
7674556
Update Dockerfile to mirror smithy.yaml
Apr 6, 2018
51b2858
feat(package): update schema behavior to be closer to compliance with…
Apr 16, 2018
66ba278
chore(test): update test cases with current
Apr 16, 2018
e3ec36e
chore(package): fmt
Apr 16, 2018
f3db379
test(package): point at draft6 tests | 112 tests failing
Apr 16, 2018
d947c5b
chore(validation-test): remove rougue print
Apr 16, 2018
f0b20d7
Merge branch 'update_draft4_schema_tests' of github.com:michaelcarter…
Apr 16, 2018
2bc7ce7
feat(package): add support for boolean schemas | 89 tests failing
Apr 16, 2018
b1583ad
feat(package): add support for root boolean schemas | 71 tests failing
Apr 16, 2018
6b62f05
feat(package): add support for const keyword | 64 tests failing
Apr 16, 2018
b98cc3a
feat(package): add support for contains keyword | 58 tests failing
Apr 16, 2018
06932d6
feat(package): support multiple schema versions and allow the user to…
Apr 17, 2018
713fb87
fix(package): need to know the schema version sooner, so the access m…
Apr 17, 2018
157c0f2
feat(package): update the id property to $id in v6
Apr 17, 2018
1190f42
fix(test): move invalid schema test cases to draft4 folder, always ru…
Apr 17, 2018
adae4e4
chore(package): fmt
Apr 17, 2018
20659b5
feat(package): support exclusive max / min behavior in both draft4 an…
Apr 17, 2018
05802a2
feat(package): allow empty arrays of dependencies in draft6
Apr 17, 2018
17dc256
chore(package): format
Apr 17, 2018
9c95c9d
feat(package): allow boolean dependency schemas in draft6 | 38 tests …
Apr 17, 2018
d47dec7
feat(package): support boolean schemas in items in draft6 | 35 tests …
Apr 17, 2018
2ed204b
feat(package): allow boolean schemas on the not keyword in draft6 | 3…
Apr 17, 2018
fb35254
feat(package): support propertyNames keyword in draft6 | 30 tests fai…
Apr 17, 2018
e9c482b
feat(package): allow empty arrays of required properties in draft6 | …
Apr 17, 2018
eb26765
feat(package): support uri references and templates in draft6 | 21 te…
Apr 17, 2018
997d567
feat(package): support json-pointer format after draft6 | 1 test failing
Apr 17, 2018
bf9814a
chore(package): change constIsSet to hasConst to be more consistent w…
Apr 17, 2018
e650685
fix(package): allow integers to be nums with a ".0" on the end | all …
Apr 17, 2018
33e1f4b
test(package): run tests against both drafts (4 and 6) | 4 tests failing
Apr 17, 2018
3c982ff
fix(package): cr comments and dependency_valuidator
Apr 18, 2018
91f03df
Merge branch 'update_draft4_schema_tests' of github.com:michaelcarter…
Apr 18, 2018
e22c45f
fix(test): fix test directory typo
Apr 18, 2018
87aa19e
feat(package): fix int parsing behavior for draft6 | all tests passing
Apr 18, 2018
1cefe71
fix(package): allow createFromUrl functions to specify schemaVersion …
Apr 18, 2018
be4c208
Merge pull request #11 from michaelcarter-wf/update_draft4_schema_tests
michaelcarter-wf Apr 18, 2018
536622d
Merge branch '2.0.0_wip' of github.com:workiva/json_schema into draft…
Apr 18, 2018
2fee3be
fix(package): cr fixes
Apr 18, 2018
9fd1fcf
fix(package): cr fixes
Apr 18, 2018
caeb6db
Merge pull request #12 from michaelcarter-wf/draft6_update
michaelcarter-wf Apr 18, 2018
97c21ad
feat(package): add a method for consumers to specify their own $ref p…
Apr 20, 2018
91ba717
feat(package): recursive ref tests passing
Apr 24, 2018
47dafe9
Update Dockerfile
travisreed-wf Apr 25, 2018
d01115b
Update Dockerfile
travisreed-wf Apr 25, 2018
9c0bd43
Update Dockerfile
travisreed-wf Apr 25, 2018
28f143d
Merge pull request #14 from travisreed-wf/patch-1
michaelcarter-wf Apr 25, 2018
8220bcd
Merge pull request #10 from Workiva/smithy_dockerfile_migration
michaelcarter-wf Apr 26, 2018
3e063ad
Update .gitignore to new `dart_tool` pub cache
bcko May 24, 2018
f4ac8f2
Merge pull request #16 from bcko/patch-1
michaelcarter-wf May 24, 2018
ede8704
feat(remote-ref): fix ref within remote ref tests - 7 tests failing
May 24, 2018
0afe923
feat(package): added inheritance to ids and refs
May 30, 2018
60189a4
imp(package): remove parentOrRoot, not needed
May 30, 2018
e532f6e
fix(package): remove unnecessary parameter
May 30, 2018
83250a2
feat(package): all draft06 tests passing #awyeah
Jun 4, 2018
8a76f80
fix(json-schema): cr fixes
Jun 21, 2018
1ea72b1
chore(json-schema): remove prints
Jun 21, 2018
b4c54c5
fix(json-schema): hide members that don't need to be public
Jun 21, 2018
fa0a763
chore(json-schema): remove another public member
Jun 21, 2018
f8601cb
cleanup(package): remove ref provider for now, need to do sync work f…
Jun 21, 2018
41ba846
Merge branch 'master' of github.com:workiva/json_schema into ref_prov…
Jun 21, 2018
b4e77c7
chore(package): remove for refProvider related stuff
Jun 21, 2018
9353656
Merge branch 'ref_provider' of github.com:michaelcarter-wf/json_schem…
Jun 21, 2018
d2c0aca
af_new_drydock_image : updates
Jun 22, 2018
02610a6
feat(package): sync schemas mostly working | 4 tests failing
Jun 25, 2018
1f99368
feat(package): local cache of draft4 and draft6 schema definitions fo…
Jun 25, 2018
f3d8875
Merge pull request #18 from dustinlessard-wf/af_new_drydock_image
michaelcarter-wf Jun 25, 2018
52eb4a6
fix(package): remove provider stuff
Jun 25, 2018
9f9e291
fix(package): cr fixes
Jun 25, 2018
b6642f2
fix(json-schema): comment cleanup
Jun 25, 2018
50d9600
chore(travis): update dartium expiration date
Jun 25, 2018
b8c68f5
Merge pull request #13 from michaelcarter-wf/ref_provider
michaelcarter-wf Jun 25, 2018
c6e0413
Merge branch '2.0.0_wip' of github.com:workiva/json_schema into sync_…
Jun 25, 2018
8338e47
feat(package): change the default createSchema function to be the syn…
Jun 25, 2018
be23822
fix(package): actually set isSync flag properly | 3 tests failing
Jun 25, 2018
5fb224f
fix(package): fix resolution of top level refs | all tests passing
Jun 26, 2018
770f305
fix(package): update comments
Jun 26, 2018
1682380
Merge pull request #19 from michaelcarter-wf/sync_schemas_2
michaelcarter-wf Jun 27, 2018
c77f148
feat(package): allow sync and async RefProviders to be specified when…
Jun 27, 2018
7065e4c
chore(package): ddev format
Jun 27, 2018
e90d125
fix a Completer's type
devoncarew Jun 29, 2018
d18b4ba
Merge pull request #22 from devoncarew/fix_completer
michaelcarter-wf Jul 2, 2018
975356c
fix(package): cr fixes
Jul 2, 2018
3272e44
chore(package): ddev format
Jul 2, 2018
f7ba24f
Merge pull request #20 from michaelcarter-wf/sync_async_ref_provider
michaelcarter-wf Jul 2, 2018
ee5e7e4
json_schema_1.0.9
rmconsole-readonly-wk Jul 2, 2018
f76cca5
Merge pull request #23 from Workiva/release_json_schema_1_0_9
rm-astro-wf Jul 2, 2018
102b4b1
Merge branch 'master' of github.com:workiva/json_schema into 2.0.0_wip
Jul 2, 2018
e7656e2
Merge pull request #21 from Workiva/2.0.0_wip
michaelcarter-wf Jul 2, 2018
139157d
json_schema_2.0.0-RC1
rmconsole-readonly-wk Jul 2, 2018
1c60fc3
Merge pull request #24 from Workiva/release_json_schema_2_0_0-RC1
michaelcarter-wf Jul 2, 2018
cffd509
Make compatible with Dart 1 and Dart 2 constant names
leafpetersen Jul 23, 2018
0100993
Bump sdk constraint
leafpetersen Jul 26, 2018
8cca979
json_schema_2.0.0-RC2
rmconsole-readonly-wk Jul 26, 2018
9f34ef3
Bump lower bound to 1.24
leafpetersen Jul 26, 2018
5bc61b8
Merge pull request #26 from leafpetersen/fix_constants
michaelcarter-wf Jul 26, 2018
23b577d
chore(package): fix version
Jul 26, 2018
14e7bb5
Merge pull request #28 from Workiva/release_json_schema_2_0_0-RC2
michaelcarter-wf Jul 26, 2018
2d1e8ac
use dart base image
josephswanson-wf Oct 24, 2018
0ce64af
chore(examples): cleanup commented code
michaelcarter-wf Nov 2, 2018
1fc578e
imp(package): schemaVersion string --> class
michaelcarter-wf Nov 2, 2018
b782c3d
imp(schema-type): no more SCREAMING CAPS!
michaelcarter-wf Nov 2, 2018
232480e
feat(package): allow strings to be passed to createSchema calls, and …
michaelcarter-wf Nov 2, 2018
33a3816
feat(package): break "additionalItems" into additionalItemsBool and a…
michaelcarter-wf Nov 2, 2018
56ff2eb
doc(package): add some comments
michaelcarter-wf Nov 2, 2018
c41dbce
imp(package): expose single type getter and rename old to be in line …
michaelcarter-wf Nov 2, 2018
eb10d0b
imp(package): clarify additionalProperties getter split
michaelcarter-wf Nov 2, 2018
54ef689
chore(package): remove unused import
michaelcarter-wf Nov 2, 2018
dd9ff62
imp(package): remove "paths" getter, wasn't used and is an implementa…
michaelcarter-wf Nov 2, 2018
a867c2a
imp(validation): update validate api params to allow JSON decode, and…
michaelcarter-wf Nov 2, 2018
e9dc6b7
chore(package): more schemaTypeList --> typeList
michaelcarter-wf Nov 2, 2018
03a3661
chore(package): ddev format
michaelcarter-wf Nov 2, 2018
ccce6d9
feat(package): add a toJson() function, so that all JsonSchema object…
michaelcarter-wf Nov 2, 2018
28d6284
chore(package): deprecate schema_dot and provide a warning about usin…
michaelcarter-wf Nov 2, 2018
fbf6fe3
feat(package): add the "examples" keyword
michaelcarter-wf Nov 2, 2018
3869afe
chore(package): deprecate refMap
michaelcarter-wf Nov 2, 2018
2c84697
doc(package): update documentation and add references to the relevant…
michaelcarter-wf Nov 2, 2018
7e232e8
chore(package): deprecate schema_dot's createDot
michaelcarter-wf Nov 2, 2018
0c2ca76
chore(package): ddev format
michaelcarter-wf Nov 2, 2018
db9391b
doc(package): update CHANGELOG
michaelcarter-wf Nov 2, 2018
29096b5
doc(package): update migration guide
michaelcarter-wf Nov 2, 2018
00de440
doc(migration): minor updates
michaelcarter-wf Nov 2, 2018
0a0bc27
wip(README): initial updates
michaelcarter-wf Nov 2, 2018
9452729
fix(package): spelling error
michaelcarter-wf Nov 5, 2018
a471456
imp(package): update documentation and examples, allow https in dart:…
michaelcarter-wf Nov 6, 2018
53c5356
Merge pull request #32 from josephswanson-wf/srg
michaelcarter-wf Nov 6, 2018
af58c25
Merge branch 'master' of github.com:workiva/json_schema into final_2.…
michaelcarter-wf Nov 6, 2018
21403a9
fix(readme): cr fixes
michaelcarter-wf Nov 7, 2018
f382d8b
fix(package): cr fixes
michaelcarter-wf Nov 7, 2018
04e7f6d
Merge pull request #33 from Workiva/final_2.0_cleanup
rmconsole3-wf Nov 7, 2018
4ac0660
json_schema_2.0.0-RC3
rmconsole-readonly-wk Nov 7, 2018
d906099
chore(package): fix release version
michaelcarter-wf Nov 7, 2018
d315d9e
Merge pull request #35 from Workiva/release_json_schema_2.0.0-rc3
rmconsole5-wk Nov 7, 2018
ca345f4
json_schema_2.0.0
rmconsole-readonly-wk Nov 7, 2018
0e8f970
chore(package): fix rosie version nonsense
michaelcarter-wf Nov 7, 2018
991f18f
Merge pull request #37 from Workiva/release_json_schema_2.0.0
rmconsole7-wk Nov 7, 2018
69c6700
CPLAT-4192: Update json_schema to be Dart 2 compatible
sebastianmalysa-wf Feb 11, 2019
0b91061
CPLAT-4192: get coverage working
sebastianmalysa-wf Feb 11, 2019
db63a87
CPLAT-4192: disable coverage until a Dart 2 solution is available
sebastianmalysa-wf Feb 12, 2019
db5fbfd
Merge pull request #39 from sebastianmalysa-wf/CPLAT-4192
michaelcarter-wf Feb 15, 2019
0d63cfd
json_schema_2.0.1
rmconsole-readonly-wk Feb 15, 2019
1eb848b
Merge pull request #40 from Workiva/release_json_schema_2.0.1
rmconsole6-wk Feb 15, 2019
5516ab1
WAP-2264: Added propertyName, parent, and requiredOnParent getters an…
jordanross-wf Feb 19, 2019
99317c1
WAP-2264: Warning clean up
jordanross-wf Feb 19, 2019
d15a368
WAP-2264: comment update
jordanross-wf Feb 19, 2019
3d3b4f3
WAP-2264: getter re-ordering
jordanross-wf Feb 19, 2019
e3a5dd4
WAP-2264: Parse path into a URI and split fragment
jordanross-wf Feb 19, 2019
f30cf39
WAP-2264: Safety check against _parent being null
jordanross-wf Feb 19, 2019
d89b776
WAP-2264: ddev format
jordanross-wf Feb 20, 2019
f966a6f
WAP-2264: Added equality overrides
jordanross-wf Feb 21, 2019
1bbab1f
WAP-2264: Re-added hashCodes
jordanross-wf Feb 21, 2019
aec9c9d
WAP-2264: Use map hash method
jordanross-wf Feb 21, 2019
7e4a84a
WAP-2264: Revert constants and schema type changes
jordanross-wf Feb 21, 2019
7730d48
WAP-2264: Added collection dependency to pubspec and formatted in dart 2
jordanross-wf Feb 25, 2019
7f51171
Merge pull request #41 from Workiva/WAP-2264
rmconsole2-wf Feb 25, 2019
e1d3384
json_schema_2.1.0
rmconsole-readonly-wk Feb 25, 2019
ce7a022
Merge pull request #42 from Workiva/release_json_schema_2.1.0
rm-astro-wf Feb 25, 2019
a747721
Add support for relative local file ref fetching
aaronkavlie-wf Mar 1, 2019
b1c8ffb
Simpler URI modification that avoids special-casing for files
aaronkavlie-wf Mar 4, 2019
17a65f7
Test on Dart 2.1.1 as 2.2.0 fails
aaronkavlie-wf Mar 4, 2019
6fde82e
Revert erroneous pub2 change in travis config
aaronkavlie-wf Mar 4, 2019
c44a259
Exclude bignum tests
aaronkavlie-wf Mar 5, 2019
fbf1d8a
Merge pull request #43 from Workiva/WAP-2519__filesystem_paths
rmconsole5-wk Mar 5, 2019
763a275
Merge pull request #44 from Workiva/WAP-2536__failing_bignum_tests
rmconsole5-wk Mar 5, 2019
1bd1327
json_schema_2.1.1
rmconsole-readonly-wk Mar 5, 2019
2d1e6e3
Merge pull request #45 from Workiva/release_json_schema_2.1.1
rmconsole7-wk Mar 5, 2019
e9d02a9
Use Instance object to track path on traversal of instance JSON
aaronkavlie-wf Mar 6, 2019
5a2dca9
Add ValidationError class to track relevant details of each error
aaronkavlie-wf Mar 6, 2019
9902ac6
Add coverage of error output for a number of validators; fix issues u…
aaronkavlie-wf Mar 7, 2019
246db9a
Test of anyOf, and code change to rectify schema path.
aaronkavlie-wf Mar 7, 2019
83685a3
Add oneOf coverage; make multi-schema types return a single error.
aaronkavlie-wf Mar 8, 2019
3f1dafd
Test coverage of format operation errors.
aaronkavlie-wf Mar 8, 2019
086ea4d
Object validation error tests.
aaronkavlie-wf Mar 8, 2019
c5c6597
One possible approach to a more informative path for remote refs.
aaronkavlie-wf Mar 8, 2019
8e5d305
Explain ref schema path override.
aaronkavlie-wf Mar 11, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 183 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
# Contributing to json_schema

Looking to contribute something to the json_schema library? __Here's how you can help.__

+ __[Coding Standards](#coding-standards)__
+ [General Formatting Guidelines](#general-formatting-guidelines)
+ __[Using the Issue Tracker](#using-the-issue-tracker)__
+ [Reporting Bugs](#bug-reports)
+ [Feature Requests](#feature-requests)
+ [Submitting Pull Requests](#pull-requests)
+ __[Developer Workflow](#developer-workflow)__




## Coding standards

A lot can be gained by writing code in a consistent way. Moreover, always remember that code is written and
maintained by _people_. Ensure your code is descriptive, well commented, and approachable by others.

__ALWAYS__ adhere to the [Dart Style Guide]. _Please take the time to read it if you have never done so._

 


### General formatting guidelines

+ __AVOID__ lines longer than 120 characters.
+ __AVOID__ using `dartfmt` as an excuse to ignore good judgement about
whether your code is readable and approachable by others.

 
 



## Using the issue tracker

The issue tracker is the preferred channel for [bug reports](#bug-reports) and [feature requests](#feature-requests),
but __please follow the guidelines:__

+ __Fill out the template we've provided.__

+ __Be Professional__
+ Please __do not__ derail or troll issues. Keep the discussion on topic and respect the opinions of others.

+ __Not that Professional__
+ Feel free to include _relevant_ animated gifs to drive home your message / request.

 


### Bug reports

A bug is a _demonstrable problem_ that is caused by the code in the repository.

_Good bug reports are extremely helpful - thank you!__

__Guidelines for bug reports:__

1. __Search for existing issues.__ Duplicate issues can become cumbersome, and you'd help us out a lot by first
checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a
fix available.

2. __Record a screencast of yourself reproducing the issue__.
1. Be sure the problem exists in json_schema's code by building a
reduced test case that one of the reviewers can pull locally
and test out.

3. __Share as much information as possible.__ Include operating system and version, browser and version, etc. where appropriate.

Always include steps to reproduce the bug.

__Example Bug Report:__

> Short and descriptive example bug report title
>
> A summary of the issue and the browser/OS environment in which it occurs. If
> suitable, include the steps required to reproduce the bug.
>
> 1. This is the first step
> 2. This is the second step
> 3. Further steps, etc.
>
> `<url>` - a link to branch with the reduced test case
>
> Any other information you want to share that is relevant to the issue being
> reported. This might include the lines of code that you have identified as
> causing the bug, and potential solutions (and your opinions on their
> merits).

&nbsp;


### Feature requests

Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the
project. It's up to *you* to make a strong case to convince the `json_schema` team of the merits of this feature.
Please provide as much detail and context as possible.

&nbsp;


### Pull requests

Good pull requests - patches, improvements, new features - are a fantastic help. They should remain focused in scope
and avoid containing unrelated commits.

__Please ask first__ before embarking on any significant pull request (e.g. implementing features, refactoring code,
porting to a different language), otherwise you risk spending a lot of time working on something that the project's
lead developers might not want to merge into the project.

Please adhere to the [Dart Style Guide] for all changes contained in your pull requests.

Adhering to the following process is the best way to get your work included in the project:

1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
and configure the remotes:

```bash
# Navigate to the directory where you store repos locally
cd ~/your-local-git-repo-spot
# Clone your fork of the repo into the current directory
git clone [email protected]:<your-username>/json_schema
# Navigate to the newly cloned directory
cd ~/your-local-git-repo-spot/json_schema
# Assign the repo you forked from to a remote called "upstream"
git remote add upstream [email protected]:Workiva/json_schema
```

2. If you cloned a while ago, get the latest changes from upstream:

```bash
git checkout master
git pull upstream master
```

3. Create a new topic branch that will contain your feature, change, or fix:

```bash
git checkout -b <topic-branch-name>
```

4. Commit your changes in logical chunks. Please adhere to these
[git commit message guidelines](#git-commit-message-standards) or your code is unlikely be merged into the master
branch. Optionally, you can use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase)
feature to tidy up your commits before making them public.

5. Write tests for your changes.
1. There are no exceptions.
2. If you're having trouble, reach out in your PR about how to best go about testing your changes.

6. If you have merge conflicts, locally merge the upstream master branch into your topic branch:

```bash
git pull upstream master
```

7. Push your topic branch up to your fork:

```bash
git push origin <topic-branch-name>
```

8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
with a clear title and description - following all the [issue guidelines](#using-the-issue-tracker) listed above.

&nbsp;
&nbsp;


## Developer Workflow

The `json_schema` developer workflow couldn't be any more simple!

When you're ready to run the tests... run:

```bash
pub run dart_dev test
```


[Dart Style Guide]: https://www.dartlang.org/guides/language/effective-dart/style
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!--- Provide a general summary of the issue in the title above -->

<!--- Provide the type of issue (Bug, Improvement, Feature Request) -->
## Type

## Details
<!--- If you're describing a bug, tell us what happens instead of the expected behavior -->
<!--- If you're suggesting a change/improvement, tell us how it should work -->

## Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
<!--- or ideas how to implement the addition or change -->

<!--- Delete the following sections if not submitting a bug -->

## Steps to Reproduce
<!--- Provide steps to reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.

## Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* Version:
* Browser name / VM and version:
* Operating System and version:

> __FYI:__ @michaelcarter-wf
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Ultimate problem:


## How it was fixed:


## Testing suggestions:


## Potential areas of regression:



---

> __FYA:__ @michaelcarter-wf
14 changes: 7 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
*.~*~
.idea/
.packages
packages
build/
.pub/
.project
.dart_tool/
.pub/
*.dart.js
*.iml
*.ipr
*.iws
.idea/
*.dart.js
*.js_
*.js.deps
*.js.map
# custom <additional>
build/
coverage
packages
pubspec.lock
# end <additional>

20 changes: 16 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
language: dart
sudo: false
dart:
- stable
- dev
script: ./tool/travis.sh
- 1.24.3
- 2.1.1
sudo: required
addons:
chrome: stable
cache:
directories:
- $HOME/.pub-cache
script:
- pub get
- pub run dependency_validator --ignore build_runner,build_test,build_web_compilers,dart_style,coverage
- pub run dart_dev dart2-only -- format --check
- pub run dart_dev analyze
- pub run dart_dev test
# TODO: re-enable coverage when a Dart 2 solution is available.
# - pub run dart_dev dart1-only -- coverage --no-html && bash <(curl -s https://codecov.io/bash) -f coverage/coverage.lcov
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
## 2.0.0

* json_schema is no longer bound to dart:io and works in the browser!
* Full JSON Schema draft6 compatibility
* Much better $ref resolution, including deep nesting of $refs
* More typed keyword getters for draft6 like `examples`
* Syncronous schema evaluation by default
* Optional async evaluation and fetching with `createSchemaAsync`
* Automatic parsing of JSON strings passed to `createSchema` and `createSchemaAsync`
* Ability to do custom resolution of $refs with `RefProvider` and `RefProviderAsync`
* Optional parsing of JSON strings passed to `validate` with `parseJson = true`
* Dart 2.0 compatibility
* Many small changes to make things more in line with modern dart.
* Please see the [migration guide](./MIGRATION.md) for additional info.

## 1.0.8

* Code cleanup
* Strong mode
* Switch build tools to dart_dev

## 1.0.7

* Update dependency constraint on the `args` package.
Expand Down
36 changes: 36 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
FROM google/dart:2.1.0
WORKDIR /build/

# Build Environment Vars
ARG BUILD_ID
ARG BUILD_NUMBER
ARG BUILD_URL
ARG GIT_COMMIT
ARG GIT_BRANCH
ARG GIT_TAG
ARG GIT_COMMIT_RANGE
ARG GIT_HEAD_URL
ARG GIT_MERGE_HEAD
ARG GIT_MERGE_BRANCH
# Expose env vars for git ssh access
ARG GIT_SSH_KEY
ARG KNOWN_HOSTS_CONTENT

# Install SSH keys for git ssh access
RUN mkdir /root/.ssh
RUN echo "$KNOWN_HOSTS_CONTENT" > "/root/.ssh/known_hosts"
RUN echo "$GIT_SSH_KEY" > "/root/.ssh/id_rsa"
RUN chmod 700 /root/.ssh/
RUN chmod 600 /root/.ssh/id_rsa

RUN pub global activate -sgit [email protected]:Workiva/semver-audit-dart.git

COPY pubspec.yaml ./
RUN pub get

ADD ./ ./

RUN pub global run semver_audit report --repo Workiva/json_schema

ARG BUILD_ARTIFACTS_BUILD=/build/pubspec.lock
FROM scratch
38 changes: 37 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1 +1,37 @@
License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
Copyright 2013-2018 Workiva Inc.

Licensed under the Boost Software License (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.boost.org/LICENSE_1_0.txt

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

This software or document includes material copied from or derived
from JSON-Schema-Test-Suite (https://github.com/json-schema-org/JSON-Schema-Test-Suite),
Copyright (c) 2012 Julian Berman, which is licensed under the following terms:

Copyright (c) 2012 Julian Berman

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Loading