Skip to content
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

feat(compliance): Compliance suite #2607

Merged
merged 50 commits into from
Mar 3, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
10604b8
mid work
iliapolo Feb 24, 2021
e509847
warn about missing reports
iliapolo Feb 24, 2021
382e5b2
logging and test violation
iliapolo Feb 24, 2021
a9e0c7d
added golang test and report refatoring
iliapolo Feb 25, 2021
45ed9ff
Merge branch 'main' into epolon/compliance-sot
iliapolo Feb 25, 2021
87d2c50
some fixes
iliapolo Feb 25, 2021
346cfc0
fix coverage
iliapolo Feb 25, 2021
e595be9
fix build
iliapolo Feb 28, 2021
618c06f
Merge branch 'main' into epolon/compliance-sot
iliapolo Feb 28, 2021
0fb9a31
more fixes
iliapolo Feb 28, 2021
0a15762
Merge branch 'main' into epolon/compliance-sot
iliapolo Feb 28, 2021
d446cb0
some touchups
iliapolo Feb 28, 2021
bfe1e2a
install gcc to use testify
iliapolo Feb 28, 2021
f3eb74d
debugging
iliapolo Feb 28, 2021
f09a867
install gcc in superchain
iliapolo Feb 28, 2021
bef304f
run script
iliapolo Feb 28, 2021
9bb9fc6
mod tidy
iliapolo Feb 28, 2021
992ca59
no build
iliapolo Feb 28, 2021
78e80b5
test violation
iliapolo Feb 28, 2021
ead1064
another violation
iliapolo Feb 28, 2021
2749570
remove violations
iliapolo Mar 1, 2021
77d0ef7
Merge branch 'main' into epolon/compliance-sot
iliapolo Mar 1, 2021
c802060
cleanup
iliapolo Mar 1, 2021
28421ad
casing
iliapolo Mar 1, 2021
5ff7a36
regen report
iliapolo Mar 1, 2021
ccdc338
remove extra spaces
iliapolo Mar 1, 2021
2e86003
comment
iliapolo Mar 1, 2021
57b32a7
comment
iliapolo Mar 1, 2021
ab104da
move suite to ts
iliapolo Mar 1, 2021
e843a00
added suite json to ignore
iliapolo Mar 1, 2021
0649318
use ts as source of schema instead of json
iliapolo Mar 1, 2021
ea06cef
fix README
iliapolo Mar 1, 2021
7d2bae5
remove shabang - not a script
iliapolo Mar 1, 2021
76abcd5
review comments
iliapolo Mar 1, 2021
21ee912
Merge branch 'main' into epolon/compliance-sot
iliapolo Mar 1, 2021
b124e6c
fix go.sum by running go mod download
iliapolo Mar 1, 2021
a6b36bb
added comment
iliapolo Mar 1, 2021
da7b030
Merge branch 'main' into epolon/compliance-sot
iliapolo Mar 1, 2021
714b489
Merge branch 'main' into epolon/compliance-sot
iliapolo Mar 2, 2021
cc13561
note that report is auto generated
iliapolo Mar 2, 2021
45ada0b
Merge branch 'epolon/compliance-sot' of github.com:aws/jsii into epol…
iliapolo Mar 2, 2021
1af1d45
Update tools/jsii-compliance/README.md
iliapolo Mar 2, 2021
1e4fcac
review comments
iliapolo Mar 2, 2021
06f5615
Merge branch 'epolon/compliance-sot' of github.com:aws/jsii into epol…
iliapolo Mar 2, 2021
e865f13
Merge branch 'main' into epolon/compliance-sot
iliapolo Mar 3, 2021
45897be
Merge branch 'main' into epolon/compliance-sot
RomainMuller Mar 3, 2021
e053f47
no need for go:all
iliapolo Mar 3, 2021
1700410
fix package name
iliapolo Mar 3, 2021
483673a
Merge branch 'epolon/compliance-sot' of github.com:aws/jsii into epol…
iliapolo Mar 3, 2021
6c4d83a
remove all-go
iliapolo Mar 3, 2021
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
1 change: 1 addition & 0 deletions gh-pages/content/specification/.pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ nav:
- The jsii kernel API: 3-kernel-api.md
- 4-standard-compliance-suite.md
- 5-new-language-intake.md
- 6-compliance-report.md
123 changes: 123 additions & 0 deletions gh-pages/content/specification/6-compliance-report.md

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@
"bump": "bash scripts/bump.sh",
"dist-clean": "lerna run dist-clean --stream && rm -rf dist",
"package": "bash scripts/package.sh",
"test": "lerna run test --concurrency=1 --stream",
"test": "lerna run test --concurrency=1 --stream && yarn compliance",
"test:integ": "lerna run test:integ --stream",
"test:update": "lerna run test:update --concurrency=1 --stream"
"test:update": "lerna run test:update --concurrency=1 --stream",
"compliance": "tools/jsii-compliance/report.js"
},
"devDependencies": {
"@jest/types": "^26.6.2",
Expand All @@ -27,6 +28,7 @@
"jest-circus": "^26.6.3",
"jest-config": "^26.6.3",
"jest-expect-message": "^1.0.2",
"tablemark": "^2.0.0",
"lerna": "^3.22.1",
"prettier": "^2.2.1",
"standard-version": "^9.1.0",
Expand Down
2,734 changes: 2,734 additions & 0 deletions packages/@jsii/java-runtime-test/compliance-report.json

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions tools/jsii-compliance/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# JSII Compliance

This directory contains scripts and resources to create and validate the JSII compliance suite.
iliapolo marked this conversation as resolved.
Show resolved Hide resolved

### Compliance Suite

The compliance suite is defined as a collection of abstract test cases, that each language binding must implement individualy.
Language specific exclusions may be added to each test separately, or to the entire suite.

> See [compliance-suite.json](./compliance-suite.json).

### Compliance Report

Each language binding is responsible for creating a language specific report during the `test` phase of our build.

These reports are then aggregated into a single multi-language compliance report. It is generated during build time,
and should be checked into [source control](../../gh-pages/content/specification/6-compliance-report.md).

> To directly generate the report, run `yarn compliance` from the top level direcotry.

Note that if you add a test and don't re-generate the report, the build will fail:

```console
```

The report contains the state of each test with respect to each language binding.
Every test will have one of the following statuses:

- ✅ - Test passes.
- ❌ - Test is either missing or is not reporting success.
- N/A - The test was excluded.

Eventually, this report lands on our [docs site](https://aws.github.io/jsii/specification/6-compliance-report/).
Loading