Skip to content

Commit 2a9563f

Browse files
committedApr 20, 2020
Clean up implementation schema, etc
Drop github.com and twitter.com/ prefix from user profiles.
1 parent b3b860a commit 2a9563f

File tree

3 files changed

+127
-108
lines changed

3 files changed

+127
-108
lines changed
 

‎implementation.schema.json

+33-14
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,93 @@
11
{
22
"$schema": "http://json-schema.org/draft-07/schema#",
33
"$id": "https://raft.github.io/implementation.schema.json",
4-
"title": "Implementation",
5-
"description": "...",
4+
"title": "Raft Implementation",
5+
"description": "This file contains the schema describing a single Raft implementation.",
66
"type": "object",
77
"properties": {
88
"repoURL": {
9+
"description": "URL pointing to base GitHub repo.",
910
"type": "string",
1011
"pattern": "^https://github.com/([^/]+)/([^/]+)(?<!.git)$",
1112
"format": "uri"
1213
},
1314
"directory": {
15+
"description": "Optional path within Git repo where the Raft implementation is located.",
1416
"type": "string",
1517
"pattern": "^[^/].*/$"
1618
},
1719
"name": {
20+
"description": "Implementation project name. If the project is referred to as 'Raft', disambiguate it.",
1821
"type": "string",
1922
"pattern": "^.+(?<!^[Rr][Aa][Ff][Tt])$"
2023
},
2124
"authors": {
25+
"description": "List of primary authors (people). Try to keep this short.",
2226
"type": "array",
2327
"items": {
2428
"type": "object",
2529
"properties": {
2630
"name": {
31+
"description": "Person's name (or alias).",
2732
"type": "string"
2833
},
2934
"twitter": {
35+
"description": "Author's public Twitter username (without the @).",
3036
"type": "string",
31-
"pattern": "^https://twitter.com/([^/]+)$",
32-
"format": "uri"
37+
"pattern": "^[A-Za-z0-9_]{1,15}$"
3338
},
3439
"github": {
40+
"description": "Author's GitHub username.",
3541
"type": "string",
36-
"pattern": "^https://github.com/([^/]+)$",
37-
"format": "uri"
42+
"pattern": "^[A-Za-z0-9]([A-Za-z0-9-]{0,37}[A-Za-z0-9]?)$"
3843
},
3944
"homepage": {
45+
"description": "Author's public home page.",
4046
"type": "string",
4147
"format": "uri"
48+
},
49+
"organization": {
50+
"description": "The author's affiliation for the project, such as an employer.",
51+
"type": "string"
4252
}
43-
}
53+
},
54+
"required": [
55+
"name"
56+
],
57+
"additionalProperties": false
4458
},
4559
"maxItems": 7
4660
},
4761
"language": {
48-
"type": "string",
49-
"description": "SPDX license expression. See https://spdx.org/licenses/"
62+
"description": "Primary programming language for the implementation.",
63+
"type": "string"
5064
},
5165
"license": {
66+
"description": "SPDX license expression describing how the implementation may be used. See https://choosealicense.com/ or https://spdx.org/licenses/.",
5267
"type": "string"
5368
},
5469
"features": {
70+
"description": "Describe how complete the implementation is.",
5571
"type": "object",
5672
"properties": {
5773
"basic": {
58-
"type": "boolean",
59-
"description": "Leader election and log replication"
74+
"description": "The implementation handles leader election and log replication.",
75+
"type": "boolean"
6076
},
6177
"persistence": {
62-
"type": "boolean",
63-
"description": "Term and log are persisted to disk"
78+
"description": "The implementation safely persists the term and log to disk.",
79+
"type": "boolean"
6480
},
6581
"logCompaction": {
82+
"description": "The implementation does some form of log compaction, such as snapshotting.",
6683
"type": "boolean"
6784
},
6885
"membershipChanges": {
86+
"description": "The implementation can dynamically change the set of servers safely.",
6987
"type": "boolean"
7088
}
71-
}
89+
},
90+
"additionalProperties": false
7291
}
7392
},
7493
"required": [

0 commit comments

Comments
 (0)