From bda79acdd6fa8ddb50192d2b1fda9ca36f35410a Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 18 Oct 2023 10:29:46 +0200
Subject: [PATCH 001/309] Adding Manfred as JSON Schema Adopter
Adding Manfred as JSON Schema Adopter
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index dd20e313..cc3374a8 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -50,3 +50,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Microsoft](https://www.microsoft.com/) | [Mads Kristensen](https://www.linkedin.com/in/madskvistkristensen/) | [Microsoft - JSON Schema in production episode](https://youtu.be/-yYTxLZZk58) |
| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
+| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format to define and share CVs](https://github.com/getmanfred/mac) |
\ No newline at end of file
From c534813a991d9d2dd4094403c1c46af9d0ecc30f Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 18 Oct 2023 15:24:37 +0200
Subject: [PATCH 002/309] Better folder structure for community programs
---
programs/adopters/template.txt | 0
{gsoc => programs/mentoring/gsoc}/gsoc-2023.md | 0
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 programs/adopters/template.txt
rename {gsoc => programs/mentoring/gsoc}/gsoc-2023.md (100%)
diff --git a/programs/adopters/template.txt b/programs/adopters/template.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/gsoc/gsoc-2023.md b/programs/mentoring/gsoc/gsoc-2023.md
similarity index 100%
rename from gsoc/gsoc-2023.md
rename to programs/mentoring/gsoc/gsoc-2023.md
From 117a1fcb7b366d46234b044b40863433026d8560 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 20 Oct 2023 18:09:09 +0200
Subject: [PATCH 003/309] Add slack template for the wiki
---
programs/newsletter/slack-weekly/weekly-blockit-template.json | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 programs/newsletter/slack-weekly/weekly-blockit-template.json
diff --git a/programs/newsletter/slack-weekly/weekly-blockit-template.json b/programs/newsletter/slack-weekly/weekly-blockit-template.json
new file mode 100644
index 00000000..e69de29b
From a1445921529a6c803529affa92b37089edc4a427 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 24 Oct 2023 17:18:16 +0200
Subject: [PATCH 004/309] Add folder for adopters and newsletter
Add folder for adopters and newsletter
---
.../socialmedia-promotion-template.txt | 5 +
programs/adopters/template.txt | 0
.../slack-weekly/weekly-blockit-template.json | 111 ++++++++++++++++++
3 files changed, 116 insertions(+)
create mode 100644 programs/adopters/socialmedia-promotion-template.txt
delete mode 100644 programs/adopters/template.txt
diff --git a/programs/adopters/socialmedia-promotion-template.txt b/programs/adopters/socialmedia-promotion-template.txt
new file mode 100644
index 00000000..7a234c19
--- /dev/null
+++ b/programs/adopters/socialmedia-promotion-template.txt
@@ -0,0 +1,5 @@
+📣 🎉 We are pleased to welcome @xxxxxxx to the official list of JSON Schema adopters!
+
+ Man@xxxxxxxfred is a ....
+
+Know more ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
\ No newline at end of file
diff --git a/programs/adopters/template.txt b/programs/adopters/template.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/programs/newsletter/slack-weekly/weekly-blockit-template.json b/programs/newsletter/slack-weekly/weekly-blockit-template.json
index e69de29b..cc66f5fc 100644
--- a/programs/newsletter/slack-weekly/weekly-blockit-template.json
+++ b/programs/newsletter/slack-weekly/weekly-blockit-template.json
@@ -0,0 +1,111 @@
+{
+ "blocks": [
+ {
+ "type": "header",
+ "text": {
+ "type": "plain_text",
+ "text": "The JSON Schema Weekly! #43",
+ "emoji": true
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": ":wave: Hi *JSON Schema* Community! This is a quick recap of the best stuff of the week:"
+ }
+ },
+ {
+ "type": "divider"
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "📰 *Community News*"
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": ""
+ }
+ },
+ {
+ "type": "divider"
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "🌱 *Contributors Spotlight*"
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "Thanks @micshar1992 for tutorial for unnevaluatedItems to improve the JSON Schema docs!"
+ }
+ },
+ {
+ "type": "divider"
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "💬 *Community Discussions*"
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": ""
+ }
+ },
+ {
+ "type": "divider"
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "🗓 *Events*"
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "*Past events: * Watch on Youtube the recording of the last Community Meeting `2023-10-16` "
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "*Upcoming events:* Join us next Monday `2023-10-23` for the next Open Community Working Meeting. | "
+ }
+ },
+ {
+ "type": "divider"
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "We are actively looking for contributors! Please join #contribute to get involved."
+ }
+ },
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "Have a lovely weekend everyone! 🫶🫶🏽🫶🏾"
+ }
+ }
+ ]
+}
\ No newline at end of file
From 4edfa09dc954944d706c44003c80a7c24aa22775 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 24 Oct 2023 18:39:45 +0200
Subject: [PATCH 005/309] Update other channels
Add the new adopters channel
---
slack/other channels | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/slack/other channels b/slack/other channels
index e9b1ec7f..70da685f 100644
--- a/slack/other channels
+++ b/slack/other channels
@@ -7,8 +7,10 @@ Here are some of our other channels and why you might want to join them:
* #announcements - Announcements from the JSON Schema organisation
* #community-announcements - To share updates about any JSON Schema related Project, Tool or Event
-* #community-mgmt - Discussing the community itself, how it operates, and how we would like it to operate.
-* #tsc-discussion - A public place for the Technical Steering Committee to discuss current activities.
+* #community-mgmt - Discussing the community itself, how it operates, and how we would like it to operate
+* #tsc-discussion - A public place for the Technical Steering Committee to discuss current activities
+
+* #adopters - For discussions and queries related the JSON Schema Adopters and Case Studies
* #in-the-wild - Share references to observed uses of JSON Schemas in other applications or projects, and any JSON Schema related content
* #stack-overflow - Automated feed of StackOverflow questions tagged with JSON Schema
From 38e54ade93affdfe0e79e05da39b50bbd0c37dd5 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Mon, 30 Oct 2023 15:03:22 +0100
Subject: [PATCH 006/309] Initial version of deprecation process
Initial version of deprecation process
---
docs/deprecation-plan.md | 49 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 docs/deprecation-plan.md
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
new file mode 100644
index 00000000..5afe5976
--- /dev/null
+++ b/docs/deprecation-plan.md
@@ -0,0 +1,49 @@
+# The process of deprecating a feature
+
+Once the decision to deprecate a feature has been made through an ADR , below is a recommend set of actions:
+
+1. **Determine if you need an exception process**. Some features may require extended migration periods to allow customers extended time to fully adopt a new solution.
+
+2. **Craft the message & build the internal enablement document**. This document should include frequently asked questions, timelines, and any other relevant information.
+
+3. **Share the message internally**. The best Slack channel for this announcement is #announcements. The announcement should communicate the timeline and the related ADR.
+
+4. **Share with users at minimum 30-days in advance**. It is recommended to start with a broad social media announcement including a blog post. The blog post should contain:
+ - Why we’re deprecating the feature.
+ - What is changing.
+ - What do you need to do?.
+ - When is this change comming into effect? The deprecation timeline.
+
+
+5. **Remind users twice**. 7 days and 1 day before. This is good practice to ensure that users hear the message and are following any migration steps required. The announcement will be shared in social media and Slack #announcements.
+
+6. **Execute the deprecation**.
+
+## Example Content
+
+### Deprecation Blog
+Below are some examples of deprecation blog-posts:
+ - https://learn.microsoft.com/en-us/power-platform/important-changes-coming
+
+### Announcement Message
+
+ 🚨 JSON Schema Announcement 🚨
+
+ We will be deprecating XXXXXXXXXX on 1 April 2021 to XXXXXXXXXX.
+
+ Read more about the change here 👉 http-blog
+ Have questions? Join us on slack!
+
+
+Below are some examples of deprecation announcements:
+ - https://twitter.com/SetProtocol/status/1652034604855967746
+ - https://x.com/ShopwareDevs/status/1267813259689639938?s=20
+
+
+### 7- and 1-day Reminder Message
+
+ Hi JSON Schema Community!
+ This is a reminder that XXXX will be deprecated in 1 week, on Monday, August 1. You can read more about the change on our blog 👉 http-blog
+
+ Have questions? Join us on slack!
+
From 96bbc43d7550bbe9962bc05753fad6c6a0c7a7cf Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 31 Oct 2023 10:53:29 +0100
Subject: [PATCH 007/309] More details in timelines and examples.
---
docs/deprecation-plan.md | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
index 5afe5976..eff5b58b 100644
--- a/docs/deprecation-plan.md
+++ b/docs/deprecation-plan.md
@@ -4,16 +4,18 @@ Once the decision to deprecate a feature has been made through an ADR , below is
1. **Determine if you need an exception process**. Some features may require extended migration periods to allow customers extended time to fully adopt a new solution.
-2. **Craft the message & build the internal enablement document**. This document should include frequently asked questions, timelines, and any other relevant information.
+2. **Craft the message & build the internal enablement document**. This document should include frequently asked questions, timelines, and any other relevant information. The best approach here is to publish a blog post.
-3. **Share the message internally**. The best Slack channel for this announcement is #announcements. The announcement should communicate the timeline and the related ADR.
-
-4. **Share with users at minimum 30-days in advance**. It is recommended to start with a broad social media announcement including a blog post. The blog post should contain:
+3. **Share the message internally**. The best Slack channel for this announcement is #announcements. We will link a github announcement containing:
- Why we’re deprecating the feature.
- What is changing.
- What do you need to do?.
- When is this change comming into effect? The deprecation timeline.
+The announcement should communicate the timeline and the related ADR. This will be shared before sharing it publicly with users (This can be done in the same day).
+
+4. **Share with users at minimum 30-days in advance**. It is recommended to start with a broad social media announcement including a reference to a blog post with the same content than the Github announcement.
+
5. **Remind users twice**. 7 days and 1 day before. This is good practice to ensure that users hear the message and are following any migration steps required. The announcement will be shared in social media and Slack #announcements.
From 1abaae619d838a9ab8a9cfae06ec8e3e5ec18930 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 31 Oct 2023 11:59:43 +0100
Subject: [PATCH 008/309] Initial proposal of Sponsorship layers
Initial proposal of Sponsorship layers
---
programs/sponsors/sponsors.md | 58 +++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 programs/sponsors/sponsors.md
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
new file mode 100644
index 00000000..9a3388c4
--- /dev/null
+++ b/programs/sponsors/sponsors.md
@@ -0,0 +1,58 @@
+# Sponsors
+
+JSON Schema uses [OpenCollective](https://opencollective.com/json-schema) to gather money. This money is used to cover project expenses in a transparent way ([See the OpenCollective documentation](https://opencollective.com/how-it-works)), and your donation will help to sustain and grow the Project.
+
+Please go to our [OpenCollective page](https://opencollective.com/json-schema) to become a backer or a sponsor.
+
+## Benefits of being a backer
+
+Backers donate $5 per month to the project, and get the following benefits:
+
+- Visibility on the GitHub main project page in the "sponsors" section.
+
+## Benefits of being a bronze sponsor
+
+Bronze sponsors donate $100 per month to the project, and get the following benefits:
+
+- Visibility on the front page of [https://json-schema.org](https://json-schema.org) in the "sponsors" section (about 110,000 views/month on November, 2023).
+- Visibility on the GitHub main project page in the "sponsors" section.
+
+## Benefits of being a silver sponsor
+
+There is a limit to 10 silver sponsors.
+
+Silver sponsors donate $500 per month to the project, and get the following benefits:
+
+- Same benefits as bronze sponsors (visibility on main page).
+- "Thank you" tweet from [@jsonschema](https://twitter.com/jsonschema).
+- "Thank you" post in Linkedin from [@jsonschema](https://www.linkedin.com/company/jsonschema).
+
+## Benefits of being a gold sponsor
+
+There is a limit to 3 gold sponsors.
+
+Gold sponsors donate $1,000 per month to the project, and get the following benefits:
+
+- Same benefits as silver sponsors (visibility on main page, and thank you posts).
+- Company logos on all [https://json-schema.org](https://json-schema.org) page footers.
+
+## What will the project do with the money?
+
+As you can read in [the OpenCollective documentation](https://docs.opencollective.com), the way your money will be used will be public and totally transparent.
+
+Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
+
+Money will first be used to cover direct project costs:
+
+- Infrastructure and hosting
+- New features development
+- Legal protection
+
+Then, money will be used to:
+
+- Pay for project goodies
+- Mentoring programs
+
+References:
+- [JHipster - Sponsors](https://json-schema.org/sponsors/)
+- [MUI Code - Sponsors and Backers](https://mui.com/material-ui/discover-more/backers/)
\ No newline at end of file
From c3be30cbb0b5cd8e1556b63a5b85bf5ee560dbd8 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 2 Nov 2023 11:33:47 +0100
Subject: [PATCH 009/309] Changes to update the new website structure and other
minor changes.
Changes to update the new website structure and other minor changes.
---
INFRASTRUCTURE.md | 22 ++++------------------
1 file changed, 4 insertions(+), 18 deletions(-)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index 4cd790a3..976cad0e 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -40,32 +40,16 @@ The DNS mostly points to GitHub.
The website is split into several applications for historical reasons.
-The main website is run through GitHub Pages. The source code is located at https://github.com/json-schema-org/json-schema-org.github.io.
+The main website is run through Cloudflare Pages. The source code is located at https://github.com/json-schema-org/website.
A key set of resources hosted by the site are the JSON Schema meta-schemas, which are used to indicate which schemas are themselves valid for each version of the specification.
These resources are potentially heavily used or referred to by consumers of JSON Schema.
Links to these resources can be found at https://json-schema.org/specification.html for the latest version of JSON Schema, and at https://json-schema.org/specification-links.html for older versions.
The working location for these resources is in the specification repository at https://github.com/json-schema-org/json-schema-spec/, and they are then included into the aforementioned website repository for publishing using `git submodule`.
-The human friendly documentation for the specification, dubbed "Understanding JSON Schema", is located at https://json-schema.org/understanding-json-schema.
-The source for this project is located at https://github.com/json-schema-org/understanding-json-schema.
-
-Both of these sites are deployed by GitHub onto GitHub Pages.
-
-The JSON Schema blog is located at https://json-schema.org/blog.
-The source code is located at https://github.com/json-schema-org/blog.
-The blog is deployed on CloudFlare Pages.
-The CloudFlare pages name is `json-schema-blog`.
-The blog URL is redirected using CloudFlare workers.
-The redirection worker is called `blogredirect`.
-(It may now be possible to do the redirect using URL rewriting, but it was broken at the time, and their community support suggested using Workers.)
-
-The main site and the understanding site get deploy previews via Netlify.
-Unfortunately, CloudFlare pages does not offer deployment previews on Pull Requests where the Pull Request comes from a fork of the project (while netlify does, and for free).
-
The Slack server has a number of bots which feed data into specific channels.
-The bot which feeds tweets containing JSON Schema from Twitter to the #twitter-mentions channel was created by [Mike Ralphson](https://twitter.com/PermittedSoc). We have no access to it, and it currently (as of 2022-05-26) needs to be replaced as it's acting up.
+The bot which feeds tweets containing JSON Schema from Twitter to the #twitter-mentions is now inactive after the changes in the Twitter API. The bot was created by [Mike Ralphson](https://twitter.com/PermittedSoc). We have no access to it.
The bot for #stack-overflow runs from If This Then That under @relequestual 's account. It should probably be migrated to Zapier.
@@ -77,5 +61,7 @@ The #ghd-community channel bot uses Zapier to process webhooks for our Community
The Zapier account is owned and paid for by Postman. If this ever might become a problem, we should move to our own licence.
At the time, there was no official app integration.
+The Community metrics previously available in Google Analytics are now in Plausible.
+
If you believe something is missing from this documentation, [please file an issue](https://github.com/json-schema-org/community/issues/new?assignees=&labels=&template=action_item.md).
From 1fcdee066cf4e9e84d0ea08cdbd500917fa9ce8d Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 7 Nov 2023 14:55:01 +0100
Subject: [PATCH 010/309] Update docs/deprecation-plan.md
Co-authored-by: Jason Desrosiers
---
docs/deprecation-plan.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
index eff5b58b..bfca0ce8 100644
--- a/docs/deprecation-plan.md
+++ b/docs/deprecation-plan.md
@@ -1,6 +1,6 @@
# The process of deprecating a feature
-Once the decision to deprecate a feature has been made through an ADR , below is a recommend set of actions:
+Once the decision to deprecate a feature has been made through an ADR, below is a recommend set of actions:
1. **Determine if you need an exception process**. Some features may require extended migration periods to allow customers extended time to fully adopt a new solution.
From 9742472996a1bcd884d6c99fcd313931d3a113bb Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 7 Nov 2023 14:55:27 +0100
Subject: [PATCH 011/309] Update docs/deprecation-plan.md
Co-authored-by: Jason Desrosiers
---
docs/deprecation-plan.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
index bfca0ce8..97ca4efc 100644
--- a/docs/deprecation-plan.md
+++ b/docs/deprecation-plan.md
@@ -4,7 +4,7 @@ Once the decision to deprecate a feature has been made through an ADR, below is
1. **Determine if you need an exception process**. Some features may require extended migration periods to allow customers extended time to fully adopt a new solution.
-2. **Craft the message & build the internal enablement document**. This document should include frequently asked questions, timelines, and any other relevant information. The best approach here is to publish a blog post.
+2. **Craft the message and build the internal enablement document**. This document should include frequently asked questions, timelines, and any other relevant information. The best approach here is to publish a blog post.
3. **Share the message internally**. The best Slack channel for this announcement is #announcements. We will link a github announcement containing:
- Why we’re deprecating the feature.
From ecaf11bc3b5e78cb7563bf24f8e00f47ad555216 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 7 Nov 2023 15:19:06 +0100
Subject: [PATCH 012/309] Add clarification of the Scope and recommendation for
non-breaking changes.
---
docs/deprecation-plan.md | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
index 97ca4efc..59fe7a5d 100644
--- a/docs/deprecation-plan.md
+++ b/docs/deprecation-plan.md
@@ -1,3 +1,7 @@
+# Scope of this document
+
+This document is intenteded to describe the process to deprecate features other than changes in the Specification. Changes in the Specification are handled by the Specification development process.
+
# The process of deprecating a feature
Once the decision to deprecate a feature has been made through an ADR, below is a recommend set of actions:
@@ -49,3 +53,19 @@ Below are some examples of deprecation announcements:
Have questions? Join us on slack!
+# Recommendations to communicate other non-breaking changes
+
+The process described before will cover breaking changes, however we can use some of the practices described to better handle other non-breaking changes. For those cases this is the recommended process:
+
+1. **Share the message internally**. The best Slack channel for this announcement is #announcements. We will link a github announcement containing:
+ - What is changing.
+ - What do you need to do?.
+ - When is this change comming into effect? The deprecation timeline.
+
+The announcement should communicate the timeline.
+
+2. **Share with users at minimum 30-days in advance**. We'll use again Slack #announcements and a GitHub announcement.
+
+3. **Remind users twice**. 7 days and 1 day before. This is good practice to ensure that users hear the message. We'll use again Slack #announcements and a GitHub announcement.
+
+4. **Execute the change**.
\ No newline at end of file
From 2d55ab385bdc523c0a68e6437f94e949c6c6687e Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 10 Nov 2023 10:52:55 +0100
Subject: [PATCH 013/309] Update ADOPTERS.md
---
ADOPTERS.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index cc3374a8..dffdd7f2 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -50,4 +50,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Microsoft](https://www.microsoft.com/) | [Mads Kristensen](https://www.linkedin.com/in/madskvistkristensen/) | [Microsoft - JSON Schema in production episode](https://youtu.be/-yYTxLZZk58) |
| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
-| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format to define and share CVs](https://github.com/getmanfred/mac) |
\ No newline at end of file
+| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
\ No newline at end of file
From 6ee7770fd8893d34020b602210898ac0be83e1c4 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Sat, 11 Nov 2023 14:12:23 +0100
Subject: [PATCH 014/309] Add anchor link for champions
---
docs/blog-guidelines.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/blog-guidelines.md b/docs/blog-guidelines.md
index 7e2265dd..9349e2f5 100644
--- a/docs/blog-guidelines.md
+++ b/docs/blog-guidelines.md
@@ -2,7 +2,7 @@
## JSON Schema Blog Overview ##
-The JSON Schema blog serves as a channel for project maintainers and contributors, implementation maintainers, and JSON Schema Champions to share content with the JSON Schema Community.
+The JSON Schema blog serves as a channel for JSON Schema maintainers and contributors, implementation maintainers, and [Community Champions](#note-on-json-champions) to share content with the JSON Schema Community.
The content on our blog consists of:
* Use cases and success stories
From fb69944c6b6e105309ef780273269af503e04e55 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 14 Nov 2023 19:04:51 +0100
Subject: [PATCH 015/309] Adding Cyclops as Adopter
---
ADOPTERS.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 052531b1..444b5c7d 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -51,4 +51,5 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
-| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
\ No newline at end of file
+| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
+| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
\ No newline at end of file
From f142761ef342174c7f9030bf7480cb7d6a061e1e Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 15 Nov 2023 15:31:59 +0100
Subject: [PATCH 016/309] Changes requested in 13-11-23 Community Meeting
Refer to the plan as breaking changes plan instead of deprecation plan.
---
docs/deprecation-plan.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
index 59fe7a5d..ff0c9587 100644
--- a/docs/deprecation-plan.md
+++ b/docs/deprecation-plan.md
@@ -1,10 +1,10 @@
# Scope of this document
-This document is intenteded to describe the process to deprecate features other than changes in the Specification. Changes in the Specification are handled by the Specification development process.
+This document is intenteded to describe the process to follow in case of breaking changes other than changes in the Specification. Changes in the Specification are handled by the Specification development process.
-# The process of deprecating a feature
+# The process for breaking changes
-Once the decision to deprecate a feature has been made through an ADR, below is a recommend set of actions:
+Once the decision to proceed with the breaking change has been made through an ADR, below is a recommend set of actions:
1. **Determine if you need an exception process**. Some features may require extended migration periods to allow customers extended time to fully adopt a new solution.
@@ -53,9 +53,9 @@ Below are some examples of deprecation announcements:
Have questions? Join us on slack!
-# Recommendations to communicate other non-breaking changes
+# Recommendations to communicate other critical changes
-The process described before will cover breaking changes, however we can use some of the practices described to better handle other non-breaking changes. For those cases this is the recommended process:
+The process described before will cover breaking changes, however we can use some of the practices described before to better handle other critical changes. For those cases this is the recommended process:
1. **Share the message internally**. The best Slack channel for this announcement is #announcements. We will link a github announcement containing:
- What is changing.
From c29733ed9f17158d11fe3034829595d57b709638 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Thu, 16 Nov 2023 11:12:06 +0100
Subject: [PATCH 017/309] Update docs/deprecation-plan.md
Co-authored-by: Jason Desrosiers
---
docs/deprecation-plan.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/deprecation-plan.md b/docs/deprecation-plan.md
index ff0c9587..f182eddd 100644
--- a/docs/deprecation-plan.md
+++ b/docs/deprecation-plan.md
@@ -23,7 +23,7 @@ The announcement should communicate the timeline and the related ADR. This will
5. **Remind users twice**. 7 days and 1 day before. This is good practice to ensure that users hear the message and are following any migration steps required. The announcement will be shared in social media and Slack #announcements.
-6. **Execute the deprecation**.
+6. **Execute the change**.
## Example Content
From dbfcaf2a09dfda5d802d2679927b962e0dc6203f Mon Sep 17 00:00:00 2001
From: Jeremy Faden
Date: Thu, 16 Nov 2023 08:51:34 -0600
Subject: [PATCH 018/309] Update ADOPTERS.md
---
ADOPTERS.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 052531b1..9f197c57 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -51,4 +51,5 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
-| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
\ No newline at end of file
+| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
+| [HAPI Server](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
From 9e90994825070b982ab349f57370289a68d33e29 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Mon, 20 Nov 2023 12:32:36 +0100
Subject: [PATCH 019/309] Added more benefits
---
programs/sponsors/sponsors.md | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 9a3388c4..18237b90 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -16,6 +16,8 @@ Bronze sponsors donate $100 per month to the project, and get the following bene
- Visibility on the front page of [https://json-schema.org](https://json-schema.org) in the "sponsors" section (about 110,000 views/month on November, 2023).
- Visibility on the GitHub main project page in the "sponsors" section.
+- "Thank you" tweet from [@jsonschema](https://twitter.com/jsonschema).
+- "Thank you" post in Linkedin from [@jsonschema](https://www.linkedin.com/company/jsonschema).
## Benefits of being a silver sponsor
@@ -23,9 +25,10 @@ There is a limit to 10 silver sponsors.
Silver sponsors donate $500 per month to the project, and get the following benefits:
-- Same benefits as bronze sponsors (visibility on main page).
-- "Thank you" tweet from [@jsonschema](https://twitter.com/jsonschema).
-- "Thank you" post in Linkedin from [@jsonschema](https://www.linkedin.com/company/jsonschema).
+- Same benefits as bronze sponsors.
+- Visibility on the Newsletter footer.
+- Visibility on release notes.
+- Get a Swag Kit.
## Benefits of being a gold sponsor
@@ -33,7 +36,7 @@ There is a limit to 3 gold sponsors.
Gold sponsors donate $1,000 per month to the project, and get the following benefits:
-- Same benefits as silver sponsors (visibility on main page, and thank you posts).
+- Same benefits as silver sponsors.
- Company logos on all [https://json-schema.org](https://json-schema.org) page footers.
## What will the project do with the money?
@@ -50,9 +53,9 @@ Money will first be used to cover direct project costs:
Then, money will be used to:
-- Pay for project goodies
-- Mentoring programs
+- Merchandising
+- Mentoring and Contributing programs
References:
-- [JHipster - Sponsors](https://json-schema.org/sponsors/)
+- [JHipster - Sponsors](https://www.jhipster.tech/sponsors/)
- [MUI Code - Sponsors and Backers](https://mui.com/material-ui/discover-more/backers/)
\ No newline at end of file
From 1888b8f46efd19493bb78415a3c0c5051d5ee125 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Mon, 20 Nov 2023 12:39:39 +0100
Subject: [PATCH 020/309] Add GitHub Sponsors.
---
programs/sponsors/sponsors.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 18237b90..7ec7200e 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -1,8 +1,8 @@
# Sponsors
-JSON Schema uses [OpenCollective](https://opencollective.com/json-schema) to gather money. This money is used to cover project expenses in a transparent way ([See the OpenCollective documentation](https://opencollective.com/how-it-works)), and your donation will help to sustain and grow the Project.
+JSON Schema uses [OpenCollective](https://opencollective.com/json-schema) and [GitHub Sponsors](https://github.com/sponsors) to gather money. This money is used to cover project expenses in a transparent way ([See the OpenCollective documentation](https://opencollective.com/how-it-works)), and your donation will help to sustain and grow the Project.
-Please go to our [OpenCollective page](https://opencollective.com/json-schema) to become a backer or a sponsor.
+Please go to our [OpenCollective page](https://opencollective.com/json-schema) or [GitHub Sponsors page](https://github.com/sponsors/json-schema-org) to become a backer or a sponsor.
## Benefits of being a backer
From cc237d59b309720da77c753612b758587c0bc5e7 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 20 Nov 2023 21:44:34 +0100
Subject: [PATCH 021/309] Update programs/sponsors/sponsors.md
Co-authored-by: Greg Dennis
---
programs/sponsors/sponsors.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 7ec7200e..094f9d53 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -51,7 +51,7 @@ Money will first be used to cover direct project costs:
- New features development
- Legal protection
-Then, money will be used to:
+Then, money will be used for:
- Merchandising
- Mentoring and Contributing programs
From 21e06df9f802545f6c04979a2a1efa081e7766d6 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 21 Nov 2023 13:10:43 +0100
Subject: [PATCH 022/309] Update programs/sponsors/sponsors.md
Co-authored-by: Julian Berman
---
programs/sponsors/sponsors.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 094f9d53..95d6c73b 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -48,7 +48,7 @@ Anyone can file an expense. If the expense makes sense for the development of th
Money will first be used to cover direct project costs:
- Infrastructure and hosting
-- New features development
+- New feature development
- Legal protection
Then, money will be used for:
From e74d988c77ddad8e210931d3403f1adcdc4af8d1 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 21 Nov 2023 13:19:33 +0100
Subject: [PATCH 023/309] Added changes suggested in reviews.
---
programs/sponsors/sponsors.md | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 95d6c73b..a4ff1a3f 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -2,11 +2,13 @@
JSON Schema uses [OpenCollective](https://opencollective.com/json-schema) and [GitHub Sponsors](https://github.com/sponsors) to gather money. This money is used to cover project expenses in a transparent way ([See the OpenCollective documentation](https://opencollective.com/how-it-works)), and your donation will help to sustain and grow the Project.
+While donations can be done to both OpenCollective and GitHub Sponsors, the JSON Schema funds are fully managed in OpenCollective, therefore the donations received in GitHub Sponsors will be transferred to OpenCollective.
+
Please go to our [OpenCollective page](https://opencollective.com/json-schema) or [GitHub Sponsors page](https://github.com/sponsors/json-schema-org) to become a backer or a sponsor.
-## Benefits of being a backer
+## Benefits of being an individual backer
-Backers donate $5 per month to the project, and get the following benefits:
+Individual backers donate $5 per month to the project, and get the following benefits:
- Visibility on the GitHub main project page in the "sponsors" section.
@@ -26,8 +28,8 @@ There is a limit to 10 silver sponsors.
Silver sponsors donate $500 per month to the project, and get the following benefits:
- Same benefits as bronze sponsors.
-- Visibility on the Newsletter footer.
-- Visibility on release notes.
+- A mention on the Newsletter.
+- A mention on release notes.
- Get a Swag Kit.
## Benefits of being a gold sponsor
@@ -37,19 +39,18 @@ There is a limit to 3 gold sponsors.
Gold sponsors donate $1,000 per month to the project, and get the following benefits:
- Same benefits as silver sponsors.
-- Company logos on all [https://json-schema.org](https://json-schema.org) page footers.
+- Company logo in the footer of the Newsletter.
+- Company logo on all [https://json-schema.org](https://json-schema.org) page footers.
## What will the project do with the money?
As you can read in [the OpenCollective documentation](https://docs.opencollective.com), the way your money will be used will be public and totally transparent.
-Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
-
Money will first be used to cover direct project costs:
-- Infrastructure and hosting
+- [Infrastructure](https://github.com/json-schema-org/community/blob/main/INFRASTRUCTURE.md) and hosting
- New feature development
-- Legal protection
+- Any administrative or legal costs
Then, money will be used for:
From 64e34b048d672fa9a70a5c0dff2a225801e91c27 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 21 Nov 2023 14:59:30 +0100
Subject: [PATCH 024/309] Add title metadata to reuse in the website.
---
programs/sponsors/sponsors.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index a4ff1a3f..9b517757 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -1,5 +1,7 @@
-# Sponsors
-
+---
+section: docs
+title: Sponsors
+---
JSON Schema uses [OpenCollective](https://opencollective.com/json-schema) and [GitHub Sponsors](https://github.com/sponsors) to gather money. This money is used to cover project expenses in a transparent way ([See the OpenCollective documentation](https://opencollective.com/how-it-works)), and your donation will help to sustain and grow the Project.
While donations can be done to both OpenCollective and GitHub Sponsors, the JSON Schema funds are fully managed in OpenCollective, therefore the donations received in GitHub Sponsors will be transferred to OpenCollective.
From 075bae71a817c4b39a570f8538ae9b6c7f60a97b Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 21 Nov 2023 17:00:43 +0100
Subject: [PATCH 025/309] Fix typo
---
programs/sponsors/sponsors.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 9b517757..94eb9eb6 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -4,7 +4,7 @@ title: Sponsors
---
JSON Schema uses [OpenCollective](https://opencollective.com/json-schema) and [GitHub Sponsors](https://github.com/sponsors) to gather money. This money is used to cover project expenses in a transparent way ([See the OpenCollective documentation](https://opencollective.com/how-it-works)), and your donation will help to sustain and grow the Project.
-While donations can be done to both OpenCollective and GitHub Sponsors, the JSON Schema funds are fully managed in OpenCollective, therefore the donations received in GitHub Sponsors will be transferred to OpenCollective.
+While donations can be made to both OpenCollective and GitHub Sponsors, the JSON Schema funds are fully managed in OpenCollective, therefore the donations received in GitHub Sponsors will be transferred to OpenCollective.
Please go to our [OpenCollective page](https://opencollective.com/json-schema) or [GitHub Sponsors page](https://github.com/sponsors/json-schema-org) to become a backer or a sponsor.
From ea109bc8c98fd022bf43efdd9554241db7af3da1 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 22 Nov 2023 12:01:19 +0100
Subject: [PATCH 026/309] Issue to review the contributing document and add a
triage process proposal
As per issue #508 this PR is intended to review the org wide contributing document and provide a standard approach for issues triage.
---
CONTRIBUTING.md | 12 ++++++---
TRIAGE.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 4 deletions(-)
create mode 100644 TRIAGE.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a583438a..5648b7db 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,16 +1,16 @@
# Guidelines for contributing to the JSON Schema project GitHub organisation
-🚨 Work in progress! (2021/07 - @relequestual)
-
We invite you to join us working on JSON Schema.
-The fastest way to get involved and become active in the community is to join our Slack server at https://json-schema.org/slack.
+The fastest way to get involved and become active in the community is to join the `#contribute` channel in our Slack server at https://json-schema.org/slack.
If you have suggestions on how to improve our community, please do check out our [Community Discussions](https://github.com/json-schema-org/community/discussions), and start a new discussion.
# General
-While each repository may have its own guidance for contributing, the following sections apply organisation wide.
+The JSON Schema organization hosts different projects, and while most have similar contributing guidelines as described in this document, the JSON Schema Specification development process follows different contributing guidelines. Please, check-out the [Spec repository](https://github.com/json-schema-org/json-schema-spec/blob/main/CONTRIBUTING.md) to know more.
+
+The following sections apply organisation wide to all repositories.
## Key "Architectural" decisions
@@ -45,6 +45,10 @@ Once an ADR is part of a pull request which is labelled with `adr-required`, the
The process is designed to be lightweight, and a template is provided for ease of use.
+### Triage
+
+Please check the [triage process](TRIAGE.md) to learn how we review and label incoming issues .
+
### Feedback
Feedback on this process can be made informally through our [Slack server](https://json-schema.org/slack) and formally using our [Community Discussions](https://github.com/json-schema-org/community/discussions).
diff --git a/TRIAGE.md b/TRIAGE.md
new file mode 100644
index 00000000..8064a2c5
--- /dev/null
+++ b/TRIAGE.md
@@ -0,0 +1,65 @@
+## Introduction
+
+This document will outline the process of triaging GitHub issues. **Triage** is the process of reviewing and labeling incoming issues, identifying any which are critical, and escalating the critical ones.
+
+The core maintainers of each project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
+
+Triage helps ensure issues resolve quickly by:
+
+- Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took.
+- Giving a contributor the information they need before they commit to resolving an issue.
+- Lowering the issue count by preventing duplicate issues.
+- Streamlining the development process by preventing duplicate discussions.
+
+If you don't have the knowledge or time to code, consider helping with triage. The community will thank you for saving them time by spending some of yours.
+
+## GitHub Labels
+
+Area labels help categorize issues based on their scope:
+| Label | Description |
+| ------------------------ | ------------------------------------------------------------------------- |
+| `bug` | Indicates that the issue is a bug or a software defect. |
+| `enhancement` | Indicates that the issue suggests an improvement or new feature. |
+| `documentation` | Indicates improvements or additions to documentation. |
+| `roadmap` | Indicates epics and tasks related to roadmap items. |
+| `programs` | Indicates epics and tasks related to Community programs. |
+| `team` | Indicates issues for team collaboration. |
+| `adr-required` | Indicates issues requiring Architectural Decision Record |
+
+Severity labels:
+| Label | Description |
+| ------------------------ | ------------------------------------------------------------------------- |
+| `High priority` | High priority flow or feature is broken/non-functional, crash. |
+| `Critical priority` | Indicates Critical impact on data or site: data loss (posts, pages, comments), unexpected publishing, security issue.|
+
+
+
+Other labels:
+| Label | Description |
+| ------------------------ | ------------------------------------------------------------------------- |
+| `good first issue` | Indicates that the issue is suitable for newcomers to contribute to the project.|
+| `question` | Indicates that the issue lacks sufficient information to be able to act on it right now and requires additional details from the reporter. The maintainer for the area must remove the tag when more info is provided, or close it if it is too old.|
+| `duplicate` | Indicates that is duplicated. |
+
+## Triage process
+
+At the end of reading an issue, you should do one of the following:
+
+1. Make sure to search in previous issue to ensure this is not a duplicated issue. If that is the case, mark it as `duplicate` and close it referencing the original issue. If the issue is clear, ensure it has the correct `area` assigned. Also consider if it is a `good first issue`.
+
+2. Asses the issue severity to determine what functionality is affected and how broken it is and use the severity labels just for High and Critical cases.
+
+3. If the submitter or the reviewer believe the resolution of the Issue is likely to result in a significant or noteworthy change it will be labeled as `adr-required`.
+
+4. Move the issue to the correct repo if required.
+
+5. If it's not clear what the problem or issue is, add a note for the requestor (or occasionally some other user on the thread), and mark it as `question`. If a `question` issue persists for longer than a week or so (past a second followup), it's reasonable to `close` the issue and encourage the requester to reopen if they have more details.
+
+6. If the request is infeasable, or complete, follow up directly in the issue with the information, and `close` the issue.
+
+### References
+
+This process has been inspired by some great processes defined by Open Source projects like:
+- [Knative triage process](https://github.com/knative/serving/blob/main/support/TRIAGE.md).
+- [Grafana triage process](https://github.com/grafana/faro-web-sdk/blob/main/ISSUE_TRIAGE.md).
+- [Wordpress triage process](https://github.com/wordpress-mobile/WordPress-iOS/blob/trunk/docs/issue-triage.md).
\ No newline at end of file
From e04514ad8adfd300a766fea846612713d2fb1676 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 22 Nov 2023 17:21:09 +0100
Subject: [PATCH 027/309] Adds a call to slack to promote the new OCWM
Adds a call to slack to promote the new OCWM in contribute channel
---
.github/workflows/ocwm-creator.yml | 31 ++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 653ad844..63c29d6d 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -12,13 +12,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
- uses: actions/checkout@v2
- - name: Set up Node 18
- uses: actions/setup-node@v2
+ uses: actions/checkout@v4
+ - name: Set up Node 20
+ uses: actions/setup-node@v4
with:
- node-version: '18'
+ node-version: '20'
- name: Set up Python
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Generate Issue Title
@@ -40,9 +40,10 @@ jobs:
run: npm install @octokit/core
- name: Update Issue Body
- uses: actions/github-script@v6
+ uses: actions/github-script@v7
env:
MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK }}
with:
script: |
@@ -67,3 +68,21 @@ jobs:
milestone: null,
state: 'open',
})
+
+ const newTitle = ocwmissue.title;
+ const issueDate = newTitle.replace(/Open Community Working Meeting /g, "");
+
+ // Notify Slack
+ const SLACK_WEBHOOK_URL = process.env.SLACK_WEBHOOK;
+ const SLACK_MESSAGE = `{
+ "issue": "https://github.com/${context.repo.owner}/${context.repo.repo}/issues/${ocwmnumber}",
+ "date": "${issueDate}"
+ }`;
+
+ await fetch(SLACK_WEBHOOK_URL, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: SLACK_MESSAGE,
+ });
From b950117e0af9e906ea334637405cffa79cf089d9 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 23 Nov 2023 15:30:54 +0100
Subject: [PATCH 028/309] Added acceptance policy and contact details.
---
programs/sponsors/sponsors.md | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 94eb9eb6..62159307 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -31,7 +31,6 @@ Silver sponsors donate $500 per month to the project, and get the following bene
- Same benefits as bronze sponsors.
- A mention on the Newsletter.
-- A mention on release notes.
- Get a Swag Kit.
## Benefits of being a gold sponsor
@@ -59,6 +58,12 @@ Then, money will be used for:
- Merchandising
- Mentoring and Contributing programs
+## Acceptance policy
+
+We don't accept sponsorship from the following types of companies: Adult websites, affiliate and review websites, Casinos and gambling, Insurance & financial products (credit), Pharmacy products (weight loss, anti-aging), and Essay writing services.
+
+Please, [contact us](mailto:info@json-schema.org) if you have further questions.
+
References:
- [JHipster - Sponsors](https://www.jhipster.tech/sponsors/)
- [MUI Code - Sponsors and Backers](https://mui.com/material-ui/discover-more/backers/)
\ No newline at end of file
From 7d868c49ce43eb92a249a4d2f6905618eb04ec0b Mon Sep 17 00:00:00 2001
From: Albert Lombarte
Date: Fri, 24 Nov 2023 15:36:40 +0100
Subject: [PATCH 029/309] Add KrakenD use case
---
ADOPTERS.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 444b5c7d..b9c0ed51 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -52,4 +52,5 @@ By supporting JSON Schema with a case study, you are documenting its success and
| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
-| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
\ No newline at end of file
+| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
+| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
\ No newline at end of file
From 87a3bc778f6fa346bfae0a54aee3960f5f88689d Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Mon, 27 Nov 2023 10:45:15 +0100
Subject: [PATCH 030/309] Update sponsors.md
---
programs/sponsors/sponsors.md | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 62159307..ccd745d4 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -8,6 +8,12 @@ While donations can be made to both OpenCollective and GitHub Sponsors, the JSON
Please go to our [OpenCollective page](https://opencollective.com/json-schema) or [GitHub Sponsors page](https://github.com/sponsors/json-schema-org) to become a backer or a sponsor.
+
+
## Benefits of being an individual backer
Individual backers donate $5 per month to the project, and get the following benefits:
@@ -64,6 +70,12 @@ We don't accept sponsorship from the following types of companies: Adult website
Please, [contact us](mailto:info@json-schema.org) if you have further questions.
-References:
+
+
+### References:
- [JHipster - Sponsors](https://www.jhipster.tech/sponsors/)
- [MUI Code - Sponsors and Backers](https://mui.com/material-ui/discover-more/backers/)
\ No newline at end of file
From 134d83a9c5c03e9be5d2bf05153ec1bbe0c3c679 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Mon, 27 Nov 2023 12:09:02 +0100
Subject: [PATCH 031/309] New action to send slack reminders the same day of
the OCWM
New action to send slack reminders the same day of the OCWM
---
.github/workflows/ocwm-reminders.yml | 63 ++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 .github/workflows/ocwm-reminders.yml
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
new file mode 100644
index 00000000..a3e703d2
--- /dev/null
+++ b/.github/workflows/ocwm-reminders.yml
@@ -0,0 +1,63 @@
+name: Send reminders to join the OCWM the same day
+
+on:
+ schedule:
+ - cron: '0 20 * * 1' # Runs every Monday at 15:00
+
+ repository_dispatch:
+ types: ocwm-reminders
+
+jobs:
+ ocwm-reminders:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+ - name: Set up Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Install dependencies
+ run: npm install @octokit/core
+
+ - name: Send reminders
+ uses: actions/github-script@v7
+ env:
+ MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ OWNER: ${{ vars.ORGANISATION }}
+ REPO: 'community'
+ OCWM_LABEL: ${{ vars.OCWM_LABEL }}
+ SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK_REMINDER }}
+ with:
+ script: |
+
+ const octokit = require('@octokit/core').Octokit;
+ const mygithub = new octokit({
+ request: { fetch: fetch,},
+ auth: process.env.MY_TOKEN
+ });
+
+ let targetLabel = encodeURIComponent(process.env.OCWM_LABEL);
+
+ const { data: workMeetings } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`, {
+ })
+
+ const issueNumber = workMeetings[0].number
+ const newTitle = workMeetings[0].title;
+ const issueDate = newTitle.replace(/Open Community Working Meeting /g, "");
+
+ // Notify Slack
+ const SLACK_WEBHOOK_URL = process.env.SLACK_WEBHOOK;
+ const SLACK_MESSAGE = `{
+ "issue": "https://github.com/${process.env.OWNER}/${process.env.REPO}/issues/${issueNumber}",
+ "date": "${issueDate}"
+ }`;
+
+ await fetch(SLACK_WEBHOOK_URL, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: SLACK_MESSAGE,
+ });
\ No newline at end of file
From 1fc3c04bd2e61b4754f2139d1e4bc18adf6d50df Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 27 Nov 2023 17:03:41 +0100
Subject: [PATCH 032/309] Update INFRASTRUCTURE.md to add mailfence (#539)
Related: #537
---
INFRASTRUCTURE.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index 976cad0e..265a9b79 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -63,5 +63,7 @@ At the time, there was no official app integration.
The Community metrics previously available in Google Analytics are now in Plausible.
+We are using mailfence to manage the email accounts associated to json-schema.org.
+
If you believe something is missing from this documentation, [please file an issue](https://github.com/json-schema-org/community/issues/new?assignees=&labels=&template=action_item.md).
From 1eab0af1337b5b5455580c0db110153512adf95c Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 28 Nov 2023 15:26:19 +0100
Subject: [PATCH 033/309] Sponsor message templates.
---
programs/sponsors/templates/email_template.md | 7 +++++++
programs/sponsors/templates/tweet_template.md | 5 +++++
2 files changed, 12 insertions(+)
create mode 100644 programs/sponsors/templates/email_template.md
create mode 100644 programs/sponsors/templates/tweet_template.md
diff --git a/programs/sponsors/templates/email_template.md b/programs/sponsors/templates/email_template.md
new file mode 100644
index 00000000..4f4ff8df
--- /dev/null
+++ b/programs/sponsors/templates/email_template.md
@@ -0,0 +1,7 @@
+Dear Sponsor,
+
+Thank you sincerely for your generous contribution to JSON Schema. Your contribution enables us to continue working towards our mission of strengthen the JSON Schema ecosystem.
+
+We're excited about the journey ahead and look forward to keeping you updated on our progress.
+
+Best regards,
\ No newline at end of file
diff --git a/programs/sponsors/templates/tweet_template.md b/programs/sponsors/templates/tweet_template.md
new file mode 100644
index 00000000..c6b9d97a
--- /dev/null
+++ b/programs/sponsors/templates/tweet_template.md
@@ -0,0 +1,5 @@
+📣 New Sponsor Announcement 📣
+
+We’re thrilled to welcome onboard ---------- as new Gold Sponsor.
+
+---------- is a ....
\ No newline at end of file
From 49269a1f62ea22b9e2ead363bbde6974e0346aa8 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 28 Nov 2023 15:32:11 +0100
Subject: [PATCH 034/309] Adopters template
---
.../tweet_template.md} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename programs/adopters/{socialmedia-promotion-template.txt => templates/tweet_template.md} (100%)
diff --git a/programs/adopters/socialmedia-promotion-template.txt b/programs/adopters/templates/tweet_template.md
similarity index 100%
rename from programs/adopters/socialmedia-promotion-template.txt
rename to programs/adopters/templates/tweet_template.md
From bf7c9f6a92c4d0c1c6e766724f7e311fa20ac084 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 09:37:59 +0000
Subject: [PATCH 035/309] Initial commit of charter template Copy from OpenJS
Foundation CPC repo
---
CHARTER.md | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
create mode 100644 CHARTER.md
diff --git a/CHARTER.md b/CHARTER.md
new file mode 100644
index 00000000..4969015b
--- /dev/null
+++ b/CHARTER.md
@@ -0,0 +1,112 @@
+# ${PROJECT} Charter
+
+_note: the purpose of a project charter is to provide a brief introduction_
+_to the project from a technical, community, or business perspective. The_
+_document also connects a project's community leadership and governance with the_
+_OpenJS Foundation's governance._
+
+
+## Section 0: Guiding Principles (optional)
+
+_directions: provide a concise, high-level statement about_
+_the project's long-term principles, values, or mission._
+
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-1-guiding-principle)
+
+## Section 1: Scope
+
+_directions: Include a 3-4 sentence summary of what the project does,_
+_and/or what problems it solves. Imagine trying to explain your work_
+_to a colleague who is familiar with related technical concepts but unfamiliar_
+_with the project. You may also want to describe the project's value to community_
+_and/or business stakeholders._
+
+ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#scope)
+
+### 1.1: In-scope (optional)
+
+_directions: list or bullet out problem spaces, use cases, repositories_
+_or other projects which are included with the work but may not be readily_
+_apparent. This may help differentiate the project from other solutions in the_
+_space. If you are not using this section, please indicate your intent with the_
+_phrase, 'Section Intentionally Left Blank'._
+
+ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#in-scope)
+
+### 1.2: Out-of-Scope (optional)
+
+_directions: list or bullet out areas that may be seen to be related but are_
+_not included in the scope of this project. This may help clarify the kind of_
+_features, contributions, issues or problems the project is looking for._
+_If you are not using this section, please indicate your intent with the_
+_phrase, 'Section Intentionally Left Blank'._
+
+ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#out-of-scope)
+
+## Section 2: Relationship with OpenJS Foundation CPC.
+
+_directions: describe how the project intersects with the Cross Project_
+_Council._
+
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-2-evolution-of-openjs-foundation-governance)
+
+### 2.1 Other Formal Project Relationships (optional)
+
+_directions: describe any additional affiliations or groups that liaise with_
+_the project in a formal way (such as a W3C Community Group, for example)._
+_If you are not using this section, please indicate your intent with the_
+_phrase, 'Section Intentionally Left Blank'._
+
+## Section 3: ${PROJECT TSC} Governing Body
+
+_directions: describe the structure of the group responsible for managing_
+_the project and its respective organization and repositories. If there are_
+_specific rules for membership or participation in the group, list them here or_
+_by reference to a governance.md document._
+
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-3-establishment-of-the-tsc)
+
+## Section 4: Roles & Responsibilities
+
+_directions: describe the roles and responsibilities of the ${PROJECT} Governing Body._
+
+ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#roles-and-organization-management)
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-4-responsibilities-of-the-tsc)
+
+### Section 4.1 Project Operations & Management (optional)
+
+_directions: use this section to describe any other specific tasks the_
+_${PROJECT} Governing Body may be responsible for regarding process or project_
+_operations and management. If you are not using this section, please indicate_
+_your intent with the phrase, 'Section Intentionally Left Blank'._
+
+ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#roles-and-organization-management)
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-5-nodejs-project-operations)
+
+### Section 4.2: Decision-making, Voting, and/or Elections (optional)
+
+_directions: describe any provisions the project makes for decision-making_
+_or include the information by reference your governance.md document._
+_If you are not using this section, please indicate your intent with the_
+_phrase, 'Section Intentionally Left Blank'._
+
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-6-elections)
+
+### Section 4.3: Other Project Roles (optional)
+
+_directions: describe other roles within the project, such as chairperson,_
+_tech lead, collaborator, contributor, maintainer, etc. and any responsibilities or_
+_rights such role confers. You can also include this information by_
+_reference to your governance.md document._
+_If you are not using this section, please indicate your intent with the_
+_phrase, 'Section Intentionally Left Blank'._
+
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-8-project-roles)
+
+## Section 5: Definitions (optional)
+
+_directions: include any definitions that may help clarify terms or ideas found_
+_in this charter document. If you are not using this section, please indicate_
+_your intent with the phrase, 'Section Intentionally Left Blank'._
+
+ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-9-definitions)
From 9c71208bbb8d725ceb4fc976dc2137db0d2f7643 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 09:39:17 +0000
Subject: [PATCH 036/309] Add comments to heading for people who might edit the
file, and a link to discussion while the document is being drafted
---
CHARTER.md | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 4969015b..db103f62 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -1,10 +1,7 @@
-# ${PROJECT} Charter
-
-_note: the purpose of a project charter is to provide a brief introduction_
-_to the project from a technical, community, or business perspective. The_
-_document also connects a project's community leadership and governance with the_
-_OpenJS Foundation's governance._
+# JSON Schema Org Charter
+
+
## Section 0: Guiding Principles (optional)
From c628613fef48c1401bd2e04f426ccc52ffea3c8b Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 09:41:27 +0000
Subject: [PATCH 037/309] Add content for Guiding Principles
---
CHARTER.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index db103f62..41c615df 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -3,12 +3,12 @@
-## Section 0: Guiding Principles (optional)
+## Section 0: Guiding Principles
+
-_directions: provide a concise, high-level statement about_
-_the project's long-term principles, values, or mission._
+The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-1-guiding-principle)
+Having no structure in place usually leads to one that is informal and undocumeted, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
## Section 1: Scope
From 4e9a359b08001ddc8f5ee20d530bb2069a58f032 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 09:42:28 +0000
Subject: [PATCH 038/309] Add content for Scope section
---
CHARTER.md | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 41c615df..63d26157 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -11,14 +11,10 @@ The JSON Schema project is part of the OpenJS Foundation which operates transpar
Having no structure in place usually leads to one that is informal and undocumeted, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
## Section 1: Scope
+
-_directions: Include a 3-4 sentence summary of what the project does,_
-_and/or what problems it solves. Imagine trying to explain your work_
-_to a colleague who is familiar with related technical concepts but unfamiliar_
-_with the project. You may also want to describe the project's value to community_
-_and/or business stakeholders._
-
-ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#scope)
+JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows you to annotate and validate JSON documents.
+While JSON Schema's primary target is constraint based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond which it was designed for. We aim to enable these additional and emergent use cases.
### 1.1: In-scope (optional)
From ba6d081b3185e2499d67434ca69b86ff5cc1aad2 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 09:49:39 +0000
Subject: [PATCH 039/309] Modified version of Scope
---
CHARTER.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 63d26157..87ab2251 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -13,8 +13,8 @@ Having no structure in place usually leads to one that is informal and undocumet
## Section 1: Scope
-JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows you to annotate and validate JSON documents.
-While JSON Schema's primary target is constraint based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond which it was designed for. We aim to enable these additional and emergent use cases.
+JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
+While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
### 1.1: In-scope (optional)
From e3efc699db5461b12e33a4520db0ac0f05382617 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 10:58:59 +0000
Subject: [PATCH 040/309] Add sections 1.1 and 1.2 re scope In-scope does not
yet have any suggestions. Out-of-scope only has a suggestion to be left
blank.
---
CHARTER.md | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 87ab2251..14e35fc2 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -18,6 +18,8 @@ While JSON Schema's primary target is constraint-based data validation, it conti
### 1.1: In-scope (optional)
+https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391253
+
_directions: list or bullet out problem spaces, use cases, repositories_
_or other projects which are included with the work but may not be readily_
_apparent. This may help differentiate the project from other solutions in the_
@@ -27,14 +29,9 @@ _phrase, 'Section Intentionally Left Blank'._
ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#in-scope)
### 1.2: Out-of-Scope (optional)
+
-_directions: list or bullet out areas that may be seen to be related but are_
-_not included in the scope of this project. This may help clarify the kind of_
-_features, contributions, issues or problems the project is looking for._
-_If you are not using this section, please indicate your intent with the_
-_phrase, 'Section Intentionally Left Blank'._
-
-ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#out-of-scope)
+Section Intentionally Left Blank
## Section 2: Relationship with OpenJS Foundation CPC.
From e0f3f1ecdd3b843780f0728f95274bb037b4f285 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 11:02:50 +0000
Subject: [PATCH 041/309] Add Relationship with OpenJS Foundation CPC section
---
CHARTER.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 14e35fc2..e154487c 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -34,11 +34,9 @@ ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/
Section Intentionally Left Blank
## Section 2: Relationship with OpenJS Foundation CPC.
+
-_directions: describe how the project intersects with the Cross Project_
-_Council._
-
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-2-evolution-of-openjs-foundation-governance)
+Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
### 2.1 Other Formal Project Relationships (optional)
From 8222a37a59f8fc6610c115e24954ab72379c4a25 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 11:15:37 +0000
Subject: [PATCH 042/309] Add Other Formal Project Relationships section Left
blank
---
CHARTER.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index e154487c..cba8eb7e 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -39,11 +39,9 @@ Section Intentionally Left Blank
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
### 2.1 Other Formal Project Relationships (optional)
+
-_directions: describe any additional affiliations or groups that liaise with_
-_the project in a formal way (such as a W3C Community Group, for example)._
-_If you are not using this section, please indicate your intent with the_
-_phrase, 'Section Intentionally Left Blank'._
+Section Intentionally Left Blank
## Section 3: ${PROJECT TSC} Governing Body
From c2219d1dc560215263978f8b1843e2b74159eb39 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 7 Feb 2023 11:18:09 +0000
Subject: [PATCH 043/309] Add Governing Body (TSC) section
---
CHARTER.md | 28 ++++++++++++++++++++++------
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index cba8eb7e..ae0af908 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -43,14 +43,30 @@ Most large, complex open source communities have both a business and a technical
Section Intentionally Left Blank
-## Section 3: ${PROJECT TSC} Governing Body
+## Section 3: JSON Schema Org Governing Body (TSC)
+
-_directions: describe the structure of the group responsible for managing_
-_the project and its respective organization and repositories. If there are_
-_specific rules for membership or participation in the group, list them here or_
-_by reference to a governance.md document._
+The TSC is initially established from the observed major contributors who are currently active and in good standing.
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-3-establishment-of-the-tsc)
+There is no maximum TSC membership size. The TSC must have a minimum of four members.
+
+Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item.
+
+TSC memberships are not time-limited.
+
+While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusivly on the open source project). While at this time there is no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
+
+TSC members are expected to regularly participate in TSC activities.
+
+The TSC will meet regularly using virtual conferencing tools. The meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
+
+The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
+
+A TSC member may be removed by vote from the TSC if, during a 3-month period, all of the following are true:
+
+- They attend fewer than 25% of the regularly scheduled meetings
+- They do not participate in any TSC votes
+- They do not provide any form of excuse or no excuse is known for their absence
## Section 4: Roles & Responsibilities
From 84783431236a79adf1f5b91c6e3f6510f9ba4fab Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 9 Feb 2023 15:55:05 +0000
Subject: [PATCH 044/309] Add Roles and Responsibilities section
---
CHARTER.md | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index ae0af908..069be5ec 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -69,11 +69,18 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
- They do not provide any form of excuse or no excuse is known for their absence
## Section 4: Roles & Responsibilities
+
-_directions: describe the roles and responsibilities of the ${PROJECT} Governing Body._
+The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
-ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#roles-and-organization-management)
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-4-responsibilities-of-the-tsc)
+The TSC has final authority over this project including:
+
+- Technical direction
+- Project governance and process (including this policy)
+- Contribution policy
+- GitHub repository hosting and administration
+- Establishment of and delegation to working groups or teams
+- Mediating technical conflicts
### Section 4.1 Project Operations & Management (optional)
From ce3aa9879ed7912b81352e28dd1f3bab477efabf Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 9 Feb 2023 17:53:21 +0000
Subject: [PATCH 045/309] Add Project Operations and Management section
---
CHARTER.md | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 069be5ec..9ae0c30d 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -83,14 +83,9 @@ The TSC has final authority over this project including:
- Mediating technical conflicts
### Section 4.1 Project Operations & Management (optional)
+
-_directions: use this section to describe any other specific tasks the_
-_${PROJECT} Governing Body may be responsible for regarding process or project_
-_operations and management. If you are not using this section, please indicate_
-_your intent with the phrase, 'Section Intentionally Left Blank'._
-
-ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#roles-and-organization-management)
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-5-nodejs-project-operations)
+The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
### Section 4.2: Decision-making, Voting, and/or Elections (optional)
From 94f55e5d2b8029be50a4c39247b8b1ed00b9d517 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 10 Feb 2023 14:11:25 +0000
Subject: [PATCH 046/309] Add Decision-making and Voting section
---
CHARTER.md | 51 +++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 45 insertions(+), 6 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 9ae0c30d..7f595ae3 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -87,14 +87,53 @@ The TSC has final authority over this project including:
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
-### Section 4.2: Decision-making, Voting, and/or Elections (optional)
+### Section 4.2: Decision-making and Voting
+
+Note: See comments found in raw view...
+
-_directions: describe any provisions the project makes for decision-making_
-_or include the information by reference your governance.md document._
-_If you are not using this section, please indicate your intent with the_
-_phrase, 'Section Intentionally Left Blank'._
+The TSC follows a formal consensus seeking decision making model.
+
+When a TSC member looks for a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discression of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
+
+A decision discussion may be raised by creating an Issue in the community repo.
+--? OK with this being in the community repo or should we have a new TSC repo?--
+The Issue should include introductory information about the decision that needs to be made. It should follow the provided template, and must have the label tsc-decision.
+
+The TSC member who raised the call for a decision should indicate if they request the short consensus process. If they do, a vote is called to see if the other members agree. If the vote is unanimous, the short concensus model is started, otherwise, the standard consensus process is started.
+
+The short consensus process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the agenda item has at least one clear resolution to present. The agenda item owner should present the possible solution they are advocating for, and ask for a test for agreement. If consensus is not clearly reached, the short consensus process is ended and the standard consensus process is started.
+
+The standard consensus process is desgined for all non-trivial decisions.
+The standard consensus process should progress through the following seven stages.
+
+1. Introduction and clarify the issue
+2. Open the discussion - Share needs and perspecitves on the issue
+3. Explore ideas in a broad discussion
+4. Form a proposal
+5. Amend the proposal
+6. Test for agreement
+7. Determine resolution
+
+All decisions that go through the standard consensus process must also have an associated GitHub Issue, which allows those unable to attend meetings to participate.
+The Issue may spread into a GitHub Discussion for considering and discussing multiple proposals, allowing for threadded replies. The Discussion and Issue must be clearly linked.
+The opening comment of the Issue should be kept up to date as to the status of a decision.
+
+Any call for public TSC votes will be made by creating an Issue in the community repo with the tsc-vote label assigned. The Issue should use the provided template.
+--? Should public votes go in the community repo or a new TSC repo?--
+
+Once an Issue gains the label tsc-vote, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
+Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additioanl extensions, approved at the discretion of any TSC chair.
+
+If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
+At the discression of the TSC Chairs, a vote may made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+
+Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (Previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-6-elections)
+(The short consensus process does not require a Decision Record, but the decision should be minuted.)
### Section 4.3: Other Project Roles (optional)
From f2af5496dc86a6e5efbfaad9a69f60d1c25aff97 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 10 Feb 2023 15:01:20 +0000
Subject: [PATCH 047/309] Add Definitions section
---
CHARTER.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 7f595ae3..9ba62425 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -147,9 +147,9 @@ _phrase, 'Section Intentionally Left Blank'._
ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-8-project-roles)
## Section 5: Definitions (optional)
+
-_directions: include any definitions that may help clarify terms or ideas found_
-_in this charter document. If you are not using this section, please indicate_
-_your intent with the phrase, 'Section Intentionally Left Blank'._
+The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.
+
+The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-9-definitions)
From 4182cf2edf9ef811841078462f37aec72e8fc492 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 10 Feb 2023 15:33:04 +0000
Subject: [PATCH 048/309] Add footer with links to resources
---
CHARTER.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/CHARTER.md b/CHARTER.md
index 9ba62425..c4c700dc 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -153,3 +153,10 @@ The JSON Schema project: The project which is housed by the OpenJS Foundation wh
The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
+---
+
+This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
+
+Inspired by https://seedsforchange.org.uk/consensus
+
+This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
From 20cb2639676dd9f6f4116380650f389fe8bc5250 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 20 Feb 2023 10:32:11 +0000
Subject: [PATCH 049/309] Fix typos
---
CHARTER.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index c4c700dc..0bb073a9 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -8,7 +8,7 @@
The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
-Having no structure in place usually leads to one that is informal and undocumeted, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
+Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
## Section 1: Scope
@@ -54,7 +54,7 @@ Changes to TSC membership should be posted in the agenda, and may be suggested a
TSC memberships are not time-limited.
-While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusivly on the open source project). While at this time there is no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
+While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there is no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
TSC members are expected to regularly participate in TSC activities.
@@ -97,21 +97,21 @@ Note: See comments found in raw view...
The TSC follows a formal consensus seeking decision making model.
-When a TSC member looks for a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discression of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
+When a TSC member looks for a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
A decision discussion may be raised by creating an Issue in the community repo.
--? OK with this being in the community repo or should we have a new TSC repo?--
The Issue should include introductory information about the decision that needs to be made. It should follow the provided template, and must have the label tsc-decision.
-The TSC member who raised the call for a decision should indicate if they request the short consensus process. If they do, a vote is called to see if the other members agree. If the vote is unanimous, the short concensus model is started, otherwise, the standard consensus process is started.
+The TSC member who raised the call for a decision should indicate if they request the short consensus process. If they do, a vote is called to see if the other members agree. If the vote is unanimous, the short consensus model is started, otherwise, the standard consensus process is started.
The short consensus process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the agenda item has at least one clear resolution to present. The agenda item owner should present the possible solution they are advocating for, and ask for a test for agreement. If consensus is not clearly reached, the short consensus process is ended and the standard consensus process is started.
-The standard consensus process is desgined for all non-trivial decisions.
+The standard consensus process is designed for all non-trivial decisions.
The standard consensus process should progress through the following seven stages.
1. Introduction and clarify the issue
-2. Open the discussion - Share needs and perspecitves on the issue
+2. Open the discussion - Share needs and perspectives on the issue
3. Explore ideas in a broad discussion
4. Form a proposal
5. Amend the proposal
@@ -119,17 +119,17 @@ The standard consensus process should progress through the following seven stage
7. Determine resolution
All decisions that go through the standard consensus process must also have an associated GitHub Issue, which allows those unable to attend meetings to participate.
-The Issue may spread into a GitHub Discussion for considering and discussing multiple proposals, allowing for threadded replies. The Discussion and Issue must be clearly linked.
+The Issue may spread into a GitHub Discussion for considering and discussing multiple proposals, allowing for threaded replies. The Discussion and Issue must be clearly linked.
The opening comment of the Issue should be kept up to date as to the status of a decision.
Any call for public TSC votes will be made by creating an Issue in the community repo with the tsc-vote label assigned. The Issue should use the provided template.
--? Should public votes go in the community repo or a new TSC repo?--
Once an Issue gains the label tsc-vote, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
-Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additioanl extensions, approved at the discretion of any TSC chair.
+Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.
If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
-At the discression of the TSC Chairs, a vote may made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+At the discretion of the TSC Chairs, a vote may made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (Previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
From 44d2db02c1b4b0f657948896cccc7107bbc53ccb Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 21 Feb 2023 11:52:34 +0000
Subject: [PATCH 050/309] Add note about how testing for agreement is not the
same as voting. Add that quorum is required for a vote by default.
---
CHARTER.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/CHARTER.md b/CHARTER.md
index 0bb073a9..fe8209bf 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -122,12 +122,17 @@ All decisions that go through the standard consensus process must also have an a
The Issue may spread into a GitHub Discussion for considering and discussing multiple proposals, allowing for threaded replies. The Discussion and Issue must be clearly linked.
The opening comment of the Issue should be kept up to date as to the status of a decision.
+The "Test for agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
+Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
+
Any call for public TSC votes will be made by creating an Issue in the community repo with the tsc-vote label assigned. The Issue should use the provided template.
--? Should public votes go in the community repo or a new TSC repo?--
Once an Issue gains the label tsc-vote, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.
+For a vote to carry, a quorum of 75% is required by default.
+
If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
At the discretion of the TSC Chairs, a vote may made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
@@ -158,5 +163,6 @@ The JSON Schema Org: The people, policies, processes, activities, and artifacts,
This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
Inspired by https://seedsforchange.org.uk/consensus
+Informed by https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
From 9399fbf195d2d8d26fb87b4d1410c1290f6081a5 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 23 Feb 2023 11:30:12 +0000
Subject: [PATCH 051/309] Refine consensus model
---
CHARTER.md | 50 +++++++++++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 15 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index fe8209bf..05e5e1f4 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -90,22 +90,28 @@ The TSC and entire technical community will follow any processes as may be speci
### Section 4.2: Decision-making and Voting
Note: See comments found in raw view...
-
The TSC follows a formal consensus seeking decision making model.
+In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
+In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
-When a TSC member looks for a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
+#### Decision-making via consensus
-A decision discussion may be raised by creating an Issue in the community repo.
---? OK with this being in the community repo or should we have a new TSC repo?--
-The Issue should include introductory information about the decision that needs to be made. It should follow the provided template, and must have the label tsc-decision.
+When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
-The TSC member who raised the call for a decision should indicate if they request the short consensus process. If they do, a vote is called to see if the other members agree. If the vote is unanimous, the short consensus model is started, otherwise, the standard consensus process is started.
+A decision discussion may be started by creating a Discussion in the Community repository.
+--? Should we have a new repo and limit the Discussions to that repo? TSC? ?--
+The Discussion should include introductory information about the decision that needs to be made. It should follow the provided template, and must have the label `tsc-decision`.
-The short consensus process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the agenda item has at least one clear resolution to present. The agenda item owner should present the possible solution they are advocating for, and ask for a test for agreement. If consensus is not clearly reached, the short consensus process is ended and the standard consensus process is started.
+##### Quick consensus process
+
+In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process.
+
+A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
+
+The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for, and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started.
+
+##### Standard consensus process
The standard consensus process is designed for all non-trivial decisions.
The standard consensus process should progress through the following seven stages.
@@ -118,13 +124,27 @@ The standard consensus process should progress through the following seven stage
6. Test for agreement
7. Determine resolution
-All decisions that go through the standard consensus process must also have an associated GitHub Issue, which allows those unable to attend meetings to participate.
-The Issue may spread into a GitHub Discussion for considering and discussing multiple proposals, allowing for threaded replies. The Discussion and Issue must be clearly linked.
-The opening comment of the Issue should be kept up to date as to the status of a decision.
+(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while we test and firm up our specific requirements, and document them in our [Governance document](./GOVERNANCE.md))
+
+
+All decisions that go through the standard consensus process must also have an associated GitHub Discussion, which allows those unable to attend meetings to participate.
+The opening comment of the Discussion should be kept up to date as to the status of a decision.
+
+Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the discussion and using the appropriate label.
-The "Test for agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
+Most of the discussion should happen within the same Discussion. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in the same Discussion, and any other relevant locations.
+
+Moving to the 'Form a proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
+
+The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
+If someone calls for a Test of Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using reactions on the comment.
+
+The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md).
+
+#### Decision-making via vote
+
Any call for public TSC votes will be made by creating an Issue in the community repo with the tsc-vote label assigned. The Issue should use the provided template.
--? Should public votes go in the community repo or a new TSC repo?--
@@ -162,7 +182,7 @@ The JSON Schema Org: The people, policies, processes, activities, and artifacts,
This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
-Inspired by https://seedsforchange.org.uk/consensus
+Inspired by https://seedsforchange.org.uk/consensus, https://seedsforchange.org.uk/quickconsensus
Informed by https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
From 53d7cdea4efca85bca91c19a4be0d90b9bd890c4 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 23 Feb 2023 14:33:54 +0000
Subject: [PATCH 052/309] Tidy up and break out section for ADRs
---
CHARTER.md | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 05e5e1f4..109389a3 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -134,31 +134,35 @@ Transition between stages may be requested by anyone, but must be called by the
Most of the discussion should happen within the same Discussion. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in the same Discussion, and any other relevant locations.
-Moving to the 'Form a proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
+Moving to the 'Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
-If someone calls for a Test of Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using reactions on the comment.
+If someone calls for a Test of Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
-The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md).
+The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md). More details in following sections.
#### Decision-making via vote
-Any call for public TSC votes will be made by creating an Issue in the community repo with the tsc-vote label assigned. The Issue should use the provided template.
+Any call for public TSC votes will be made by creating an Issue in the community repo with the `tsc-vote` label assigned. The Issue should use the provided template.
--? Should public votes go in the community repo or a new TSC repo?--
-Once an Issue gains the label tsc-vote, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
+Once an Issue gains the label `tsc-vote`, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.
For a vote to carry, a quorum of 75% is required by default.
If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
-At the discretion of the TSC Chairs, a vote may made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+
+#### Documenting decisions
Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (Previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
-(The short consensus process does not require a Decision Record, but the decision should be minuted.)
+(The quick consensus process does not require a Decision Record, but the decision should be minuted.)
+
+Non-public decisions should be documented (as an ADR or otherwise) in the private `private-tsc` repo.
### Section 4.3: Other Project Roles (optional)
From cdf8b62ce0f27e95e77df6be1ca10de1468895b3 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 3 Mar 2023 11:59:38 +0000
Subject: [PATCH 053/309] Add definition of TSC
---
CHARTER.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CHARTER.md b/CHARTER.md
index 109389a3..96f31d75 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -182,6 +182,8 @@ The JSON Schema project: The project which is housed by the OpenJS Foundation wh
The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
+TSC: The Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.
+
---
This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
From 3f96117ee1975abef0e1f6c620879c40bb9fc8f4 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 3 Mar 2023 12:00:49 +0000
Subject: [PATCH 054/309] Recognize other project roles to be defined
---
CHARTER.md | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 96f31d75..1196231c 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -166,14 +166,16 @@ Non-public decisions should be documented (as an ADR or otherwise) in the privat
### Section 4.3: Other Project Roles (optional)
-_directions: describe other roles within the project, such as chairperson,_
-_tech lead, collaborator, contributor, maintainer, etc. and any responsibilities or_
-_rights such role confers. You can also include this information by_
-_reference to your governance.md document._
-_If you are not using this section, please indicate your intent with the_
-_phrase, 'Section Intentionally Left Blank'._
+The JSON Schema project recognises the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
+
+The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognise the additional roles.
-ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-8-project-roles)
+The following responsibilities are recognised as those requiring roles to be defined by the TSC:
+- Community and Industry connections
+- Brand awareness, recognition, and health
+- Strategic allocation of funds and budgeting for investment in JSON Schema and its ecosystem
+- Education and training
+- Financial allocation approval, tracking, and auditing
## Section 5: Definitions (optional)
From 827e4a315bd0ecdb1f5b34f2b61863a060392a2c Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Wed, 8 Mar 2023 12:08:56 +0000
Subject: [PATCH 055/309] Add detail about signal based voting at the Test for
Agreement stage of the consensus process
---
CHARTER.md | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 1196231c..8db27455 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -139,7 +139,24 @@ Moving to the 'Form a Proposal" stage should be approached when the group might
The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
-If someone calls for a Test of Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
+If someone calls for a Test for Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment. The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
+
+The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result.
+
+If someone feels a "Block" is being used for unfair reasons, such as targeting individuals or to gain some personal advantage, or any such reason that might be in breach of our Code of Conduct, they should immediately report it to the Code of Conduct committee. The Code of Conduct committee should report this to the TSC Chairs as soon as possible, and the decision is halted while the committee investigates the report.
+
+The Code of Conduct committee will report their findings and any remediation action to the TSC Chairs.
+Reports must remain anonymous, as per the Code of Conduct.
+
+The other signals that may be made when a Test For Agreement is called include "Reservations" and "Stand Aside". Both are signals which convey consent to let the proposal pass, however they may be conditional.
+
+Signalling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signalling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
+
+If "Reservations" is signalled three consecutive times by the same individual/s, anyone may call for no further attempts to remediate the reservations, and the proposal will pass.
+
+Signalling "Stand Aside" convey consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
+
+The TSC will make every reasonable effort to reach unanimity based consensus. If unanimity seems unlikely after several failed attempts to revise the proposal and Test for Agreement, if the proposal is clear, the decision may be moved to a vote, at the discretion of the TSC Chairs. This is a last resort.
The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md). More details in following sections.
From 87c20347e68dcdb00c9150b25e10699eb34feaa0 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Wed, 8 Mar 2023 12:14:04 +0000
Subject: [PATCH 056/309] Spacing
---
CHARTER.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 8db27455..8b5d9dfb 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -139,7 +139,9 @@ Moving to the 'Form a Proposal" stage should be approached when the group might
The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
-If someone calls for a Test for Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment. The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
+If someone calls for a Test for Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
+
+The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result.
From db43578dc3e0f4a7e1cbe98dfce278e70fc0f4d9 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 14 Mar 2023 10:26:34 +0000
Subject: [PATCH 057/309] Amend decision making process in charter
---
CHARTER.md | 44 +++++++++++++++++++++++++++++++-------------
1 file changed, 31 insertions(+), 13 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 8b5d9dfb..e4c3a005 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -99,21 +99,38 @@ In the unlikely case where it seems that consensus cannot be reached after multi
When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
-A decision discussion may be started by creating a Discussion in the Community repository.
---? Should we have a new repo and limit the Discussions to that repo? TSC? ?--
-The Discussion should include introductory information about the decision that needs to be made. It should follow the provided template, and must have the label `tsc-decision`.
+Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
+The Issue must:
+- Include brief introductory information about the decision that needs to be made
+- Be labelled with 'tsc-decision'
+- Use the provided template, unless there is a good reason not to do so
##### Quick consensus process
-In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process.
+In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process. This should be done by creating a new Issue in the TSC repository.
+In addition to the requirements above, the Issue must be labelled 'expedited'.
+
+While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labelled with 'tsc-decision'.
A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
-The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for, and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started.
+The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label 'expedited' should be removed and 'stage-1' added.)
##### Standard consensus process
The standard consensus process is designed for all non-trivial decisions.
+
+A decision discussion may be started by creating an Issue and Discussion in the TSC repository.
+
+In addition to the requirements above, the Issue must:
+- Be labelled with 'stage-1'
+- Link to the associated initial Discussion
+
+The Discussion must:
+- Link to the associated Issue
+- Include detailed introductory information about the decision that needs to be made
+- Be labelled with 'tsc-decision'
+
The standard consensus process should progress through the following seven stages.
1. Introduction and clarify the issue
@@ -127,19 +144,19 @@ The standard consensus process should progress through the following seven stage
(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while we test and firm up our specific requirements, and document them in our [Governance document](./GOVERNANCE.md))
-All decisions that go through the standard consensus process must also have an associated GitHub Discussion, which allows those unable to attend meetings to participate.
-The opening comment of the Discussion should be kept up to date as to the status of a decision.
+All decisions that go through the standard consensus process must have an associated GitHub Issue, which allows those unable to attend meetings to participate.
+The opening comment of the Issue should be kept up to date as to the status of the decision.
-Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the discussion and using the appropriate label.
+Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the Issue and using the appropriate label.
-Most of the discussion should happen within the same Discussion. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in the same Discussion, and any other relevant locations.
+Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to updated and report progress the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
Moving to the 'Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
-If someone calls for a Test for Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
+If someone calls for a Test for Agreement, the facilitator for the decision discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Issue (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
@@ -164,8 +181,7 @@ The "Determine resolution" step should result in the creation of an [Any Decisio
#### Decision-making via vote
-Any call for public TSC votes will be made by creating an Issue in the community repo with the `tsc-vote` label assigned. The Issue should use the provided template.
---? Should public votes go in the community repo or a new TSC repo?--
+Any call for public TSC votes will be made by creating an Issue in the TSC repository with the `tsc-vote` label assigned. The Issue should use the provided template.
Once an Issue gains the label `tsc-vote`, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.
@@ -173,7 +189,9 @@ Voting will by default close after 7 days. Any member of the TSC may request a 7
For a vote to carry, a quorum of 75% is required by default.
If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
-At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating an Issue in the 'TSC-private' repository.
+
+The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
#### Documenting decisions
From 6ae236357715618e951343ea33cd91db2267178e Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 14 Mar 2023 10:28:25 +0000
Subject: [PATCH 058/309] Fix inconsistent name for repos
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index e4c3a005..85c2e565 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -199,7 +199,7 @@ Either initially, or at any point during the process, any TSC member may suggest
(The quick consensus process does not require a Decision Record, but the decision should be minuted.)
-Non-public decisions should be documented (as an ADR or otherwise) in the private `private-tsc` repo.
+Non-public decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
### Section 4.3: Other Project Roles (optional)
From cea94df53a2f7b4a14e4ccd16a0524e2dcb72e79 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 14 Mar 2023 11:01:56 +0000
Subject: [PATCH 059/309] Add details for project scope in the charter
---
CHARTER.md | 43 +++++++++++++++++++++++++++++++++----------
1 file changed, 33 insertions(+), 10 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 85c2e565..48b525d9 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -17,16 +17,39 @@ JSON Schema aims to enable the confident and reliable use of the JSON data forma
While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
### 1.1: In-scope (optional)
-
-https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391253
-
-_directions: list or bullet out problem spaces, use cases, repositories_
-_or other projects which are included with the work but may not be readily_
-_apparent. This may help differentiate the project from other solutions in the_
-_space. If you are not using this section, please indicate your intent with the_
-_phrase, 'Section Intentionally Left Blank'._
-
-ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#in-scope)
+
+
+The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
+Primary concerns are areas we wish to give focus to, while secondary concerns are more likely to require the creation of a Special Interest Group.
+
+Primary Concerns
+- Publication of the JSON Schema standard
+ - Validation of JSON data
+ - Semantic annotation of JSON data
+ - Extensibility
+- Critical tooling
+ - Creation of new
+ - Ingestion of existing
+ - Long term support
+ - (Including linting)
+- Documentation
+- Test suite
+- Community
+ - Enabling schema authors
+ - Enabling implementers
+ - Engaging with industry
+ - Communicating value
+ - Ensuring the sustainability of the project
+
+Secondary Concerns
+- Hypermedia
+- Generating JSON Schema
+- Using JSON Schema to generate
+ - Code (including types or classes)
+ - UI (including forms)
+ - Databases
+- Relational validation
+- Vocabularies registry
### 1.2: Out-of-Scope (optional)
From 26f0c1808905d5507d9a7ce5c134f74226d0ec87 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 16 Mar 2023 10:06:16 +0000
Subject: [PATCH 060/309] Add line about non-technical conflicts to the charter
---
CHARTER.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHARTER.md b/CHARTER.md
index 48b525d9..4f18b48b 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -104,6 +104,7 @@ The TSC has final authority over this project including:
- GitHub repository hosting and administration
- Establishment of and delegation to working groups or teams
- Mediating technical conflicts
+- Mediating non-technical conflicts (until a formal Code of Conduct Committee is established)
### Section 4.1 Project Operations & Management (optional)
From 1d425a58e1d95d9170505831252c38b118ebaafd Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 20 Mar 2023 21:26:42 +0000
Subject: [PATCH 061/309] Update CHARTER.md
Use full "Any Decision Record" naming for ADR
Co-authored-by: Greg Dennis
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 4f18b48b..4b9d2cf7 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -221,7 +221,7 @@ The topic and nature of non-public votes may remain non-public, including the re
Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (Previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
-(The quick consensus process does not require a Decision Record, but the decision should be minuted.)
+(The quick consensus process does not require an Any Decision Record, but the decision should be minuted.)
Non-public decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
From 557f32392bcd94fa8a30b7fd66e46410a81871e1 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 24 Mar 2023 13:56:23 +0000
Subject: [PATCH 062/309] Fix using upper case inside bracket
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 4b9d2cf7..fb4aedb4 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -219,7 +219,7 @@ The topic and nature of non-public votes may remain non-public, including the re
#### Documenting decisions
-Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (Previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
+Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
(The quick consensus process does not require an Any Decision Record, but the decision should be minuted.)
From 55dc587388bb48e05f82cb41f90bb6fd281139d8 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 28 Mar 2023 14:02:08 +0100
Subject: [PATCH 063/309] Remove specific mention of linting tooling. No one
suggests linting isn't critical.
---
CHARTER.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index fb4aedb4..7a20749b 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -31,7 +31,6 @@ Primary Concerns
- Creation of new
- Ingestion of existing
- Long term support
- - (Including linting)
- Documentation
- Test suite
- Community
From 664af2fcaf66382342eaf3c557e1bd0e066dc7e2 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 30 Mar 2023 11:48:10 +0100
Subject: [PATCH 064/309] Add time limits to some stages of consensus process
---
CHARTER.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/CHARTER.md b/CHARTER.md
index 7a20749b..b7276c72 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -105,6 +105,8 @@ The TSC has final authority over this project including:
- Mediating technical conflicts
- Mediating non-technical conflicts (until a formal Code of Conduct Committee is established)
+In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
+
### Section 4.1 Project Operations & Management (optional)
@@ -128,6 +130,8 @@ The Issue must:
- Be labelled with 'tsc-decision'
- Use the provided template, unless there is a good reason not to do so
+At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signalling or voting. The TSC member must detail when they expect to return.
+
##### Quick consensus process
In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process. This should be done by creating a new Issue in the TSC repository.
@@ -172,6 +176,8 @@ The opening comment of the Issue should be kept up to date as to the status of t
Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the Issue and using the appropriate label.
+Stages 1 and 6 are required to be open for at least 7 days or until every TSC member has confirmed they wish to progress to the next stage (Progression will still be "called", as above). This includes signals of abstaining given automatically via a notification of period of leave from TSC activity. For stage 2, any TSC member may request a 7 day extension to allow for further consideration. Should there be no reasonable objection (determined by a TSC Chair), the minimum time will be extended by 7 days. A TSC member may request multiple extensions, however lack of justification may result in the TSC member being asked to consider abstaining in stead. There are no other explicit time limits placed on the other stages of the process.
+
Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to updated and report progress the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
Moving to the 'Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
From 5616b0c40b64272749335142f843da23681d1ca6 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 6 Apr 2023 15:23:54 +0100
Subject: [PATCH 065/309] Provide blocker fallback
This is a similar approach to the N Street consensus model
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index b7276c72..e3d83512 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -189,7 +189,7 @@ If someone calls for a Test for Agreement, the facilitator for the decision disc
The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
-The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result.
+The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result. If the blocker/s are unable or unwilling to participate in attempts to find a solution, after multiple attempts, the original proposal is moved to a vote, as defined in this document, but additionally requiring a 75% super majority to pass. This will be at the discression of the TSC Chairs.
If someone feels a "Block" is being used for unfair reasons, such as targeting individuals or to gain some personal advantage, or any such reason that might be in breach of our Code of Conduct, they should immediately report it to the Code of Conduct committee. The Code of Conduct committee should report this to the TSC Chairs as soon as possible, and the decision is halted while the committee investigates the report.
From 11a370a96520df70393441bd469928184e1e80d8 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 11 Apr 2023 16:22:50 +0100
Subject: [PATCH 066/309] Add details to ADR for consensus based TSC
---
...023-03-30-establish-consensus-based-tsc.md | 123 ++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 docs/adr/2023-03-30-establish-consensus-based-tsc.md
diff --git a/docs/adr/2023-03-30-establish-consensus-based-tsc.md b/docs/adr/2023-03-30-establish-consensus-based-tsc.md
new file mode 100644
index 00000000..81b9faab
--- /dev/null
+++ b/docs/adr/2023-03-30-establish-consensus-based-tsc.md
@@ -0,0 +1,123 @@
+# Project has formal governance through consensus based Technical Steering Committee
+
+* Status: proposed
+* Deciders: @relequestual, @awwright, @gregsdennis, @Julian, @jdesrosiers, @karenetheridge
+* Date: 2023-03-30
+
+Story: In order to fully onboard with the OpenJS Foundation, and in order to have proper governance, we should have a charter: https://github.com/json-schema-org/community/issues/274
+
+## Context and Problem Statement
+
+It's essential that both the maintainers and community can see a clear and coherent statement about the JSON Schema project and its intentions. Currently it is not clear, and may be hard to determine.
+
+Lack of clear and document governance makes it very difficult in some situations to move some issues forward. The current "process" is mostly undocumented and ad-hoc, with loose collective will.
+As the number of people who can work on this full or part time grows, the organizational needs will evolve, requiring governance for long term sustainability.
+Having a clear and documented governance model will allow us to make clear progress with an unambiguous process defined.
+
+When we joined the OpenJS Foundation, we committed to creating a charter. They provide a template for use, which several projects have used. We should use it as our basis, but we may also want to consider additional elements or sections.
+
+## Decision Drivers
+
+- JSON Schema committed to forming a governance model as part of a charter when we joined the OpenJS Foundation
+- It has sometimes been difficult to reach decisions on tricky topics, with no clear way to resolve divisive issues
+- Undocumented process can lead to an imbalance of power which is undesirable
+- Defining a process can help make sure everyone has space to be heard
+- Defining expectations up front can help everyone know what the next steps are and avoid decision stagnation
+- Gives internal and external confidence of long term viability
+
+## Considered Options
+
+- Voting
+- Unanimous Consensus
+- General/rough consensus
+- Lazy consensus / Do-ocracy
+- Benevolent Dictator (for life)
+
+## Decision Outcome
+
+We settled on Consensus and Voting, with a preference for consensus. Ideally we would like to have unanimous consensus, however reflecting on how requiring that might [not always be a good thing](https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/), we landed on a variation of what's known as the N Street Consensus Method. This wasn't originally one of the consensus models proposed, but was discovered during the process and found in favour over general or nondescript "consensus".
+
+In consensus based decision making, any individual can signal "block", which works like a veto when voting. It is a signal that the consensus process has failed, or the conditions for forming consensus are not as good as they could be. Given any member may signal a "block", this may give individual members disproportional power, and blocks may be used inappropriately, such as for personal reasons.
+
+Ideally, major or critical reservations should have been worked out as part of the consensus building process. However, it is possible that a presented solution may have had something untenable added in error. We also define using aspects of the N Street based consensus method for resolving blocks, requiring that a blocker commit to trying to find a new or amended solution. There is a fallback of voting should resolving a block not be possible.
+
+It's recognised that some decision making may not be suitable for using the consensus approach, or voting may be preferable, and voting is provided as a rare fall-back solution.
+
+### Positive Consequences
+
+- Everyone has the opportunity to be heard and understood
+- Shares power between all members fairly
+- More likely to find a solution that is acceptable to all involved in resolving a given issue
+- Make sure that decisions aren't made against the will of anyone involved
+- Members are likely to assist or help in enacting the resolution
+- Builds a stronger sense of trust
+- Voting as a fall-back helps avoid eternal blocking
+
+### Negative Consequences
+
+- Consensus can be slower than voting
+- Still provides some additional powers to the facilitating Chair/s
+- May make some types of decisions harder
+- Potential for "Groupthink"
+- Requires continual active engagement
+- May make bad decisions
+- Blocking can be abused against individuals
+
+## Pros and Cons of the Options
+
+### Voting
+
+Voting with a majority rule.
+
+- Good, because it enables decisions to be made clearly and quickly
+- Good, because it gives everyone equal power
+- Bad, because it may not allow individuals to be fully heard
+- Bad, because decisions can be divisive
+
+### Unanimous Consensus
+
+Consensus where everyone must be in agreement
+
+- Good, because everyone consents to the solution
+- Bad, because it can create a fear of proposing ideas
+
+See https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
+
+### General/rough consensus
+
+As used by the IETF
+
+- Good, because it allows progress without requiring all to agree
+- Good, because it can be faster than other consensus based methods
+- Good, because the chairperson can make judgement calls
+- Good, because it allows anonymity, encouraging people to vocalise concerns without fear of retribution or judgement
+- Bad, because it's hard to do not in-person / requires regular in-person meetings to be effective
+- Bad, because it can be subjective
+- Bad, because it puts a lot of power in the chairperson
+
+### Lazy consensus / Do-ocracy
+
+- Good, because it allows progress without requiring everyone to be involved
+- Good, because it enables faster progress
+- Good, because it can foster a sense of trust and community
+- Good, because it empowers do-ers
+- Bad, because it is possible for people to miss things
+- Bad, because it assumes silence is consent, which can result in people less likely to want to raise concerns
+- Bad, because it creates a power imbalance where people who have more time or who are more influential can push decisions through
+
+### Benevolent Dictator (for life)
+
+- Good, because it enables very fast progress
+- Good, because it can help to have a clear and consistent vision
+- Good, because there's clear accountability, which might encourage a BDFL to act in the best interests of the project
+- Bad, because it prevents diverse opinions or ideas
+- Bad, because concentrated power can be abused
+- Bad, because it discourages participation from the community
+
+## Links
+
+Useful resources in helping make this decision
+
+- https://seedsforchange.org.uk/consensus
+- https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities
+- https://copim.pubpub.org/towards-better-practices-for-the-community-governance-of-open-infrastructures
\ No newline at end of file
From 5acb2e3a25c4eff9d6dca4ea18aeb127d6b1d07a Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 15:32:24 +0100
Subject: [PATCH 067/309] Remove comments not intended for final document
---
CHARTER.md | 23 -----------------------
1 file changed, 23 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index e3d83512..40a9be4b 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -4,21 +4,15 @@
## Section 0: Guiding Principles
-
-
The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
## Section 1: Scope
-
-
JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
### 1.1: In-scope (optional)
-
-
The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
Primary concerns are areas we wish to give focus to, while secondary concerns are more likely to require the creation of a Special Interest Group.
@@ -51,23 +45,15 @@ Secondary Concerns
- Vocabularies registry
### 1.2: Out-of-Scope (optional)
-
-
Section Intentionally Left Blank
## Section 2: Relationship with OpenJS Foundation CPC.
-
-
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
### 2.1 Other Formal Project Relationships (optional)
-
-
Section Intentionally Left Blank
## Section 3: JSON Schema Org Governing Body (TSC)
-
-
The TSC is initially established from the observed major contributors who are currently active and in good standing.
There is no maximum TSC membership size. The TSC must have a minimum of four members.
@@ -91,8 +77,6 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
- They do not provide any form of excuse or no excuse is known for their absence
## Section 4: Roles & Responsibilities
-
-
The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
The TSC has final authority over this project including:
@@ -108,14 +92,9 @@ The TSC has final authority over this project including:
In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
### Section 4.1 Project Operations & Management (optional)
-
-
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
### Section 4.2: Decision-making and Voting
-
-Note: See comments found in raw view...
-
The TSC follows a formal consensus seeking decision making model.
In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
@@ -244,8 +223,6 @@ The following responsibilities are recognised as those requiring roles to be def
- Financial allocation approval, tracking, and auditing
## Section 5: Definitions (optional)
-
-
The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.
The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
From b234e76a595f2894ba2aa4faf781cb071d8463da Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 15:41:05 +0100
Subject: [PATCH 068/309] Fix typo
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 40a9be4b..d20afca1 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -168,7 +168,7 @@ If someone calls for a Test for Agreement, the facilitator for the decision disc
The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
-The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result. If the blocker/s are unable or unwilling to participate in attempts to find a solution, after multiple attempts, the original proposal is moved to a vote, as defined in this document, but additionally requiring a 75% super majority to pass. This will be at the discression of the TSC Chairs.
+The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result. If the blocker/s are unable or unwilling to participate in attempts to find a solution, after multiple attempts, the original proposal is moved to a vote, as defined in this document, but additionally requiring a 75% super majority to pass. This will be at the discretion of the TSC Chairs.
If someone feels a "Block" is being used for unfair reasons, such as targeting individuals or to gain some personal advantage, or any such reason that might be in breach of our Code of Conduct, they should immediately report it to the Code of Conduct committee. The Code of Conduct committee should report this to the TSC Chairs as soon as possible, and the decision is halted while the committee investigates the report.
From 62261da99b32825e1075969babc0e25b981688a4 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 15:41:59 +0100
Subject: [PATCH 069/309] Remove additional comment and mention governance
document is to be created
---
CHARTER.md | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index d20afca1..77a0c7cf 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -1,7 +1,5 @@
# JSON Schema Org Charter
-
-
-
+
## Section 0: Guiding Principles
The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
@@ -147,8 +145,7 @@ The standard consensus process should progress through the following seven stage
6. Test for agreement
7. Determine resolution
-(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while we test and firm up our specific requirements, and document them in our [Governance document](./GOVERNANCE.md))
-
+(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while we test and firm up our specific requirements, and document them in our yet to be created [Governance document](./GOVERNANCE.md))
All decisions that go through the standard consensus process must have an associated GitHub Issue, which allows those unable to attend meetings to participate.
The opening comment of the Issue should be kept up to date as to the status of the decision.
From de624f9cec0ec8ecc1e20801ed87c916e1318f41 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 15:43:03 +0100
Subject: [PATCH 070/309] Remove (optional) from headings in charter
---
CHARTER.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 77a0c7cf..d472fe0d 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -10,7 +10,7 @@ Having no structure in place usually leads to one that is informal and undocumen
JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
-### 1.1: In-scope (optional)
+### 1.1: In-scope
The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
Primary concerns are areas we wish to give focus to, while secondary concerns are more likely to require the creation of a Special Interest Group.
@@ -42,13 +42,13 @@ Secondary Concerns
- Relational validation
- Vocabularies registry
-### 1.2: Out-of-Scope (optional)
+### 1.2: Out-of-Scope
Section Intentionally Left Blank
## Section 2: Relationship with OpenJS Foundation CPC.
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
-### 2.1 Other Formal Project Relationships (optional)
+### 2.1 Other Formal Project Relationships
Section Intentionally Left Blank
## Section 3: JSON Schema Org Governing Body (TSC)
@@ -89,7 +89,7 @@ The TSC has final authority over this project including:
In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
-### Section 4.1 Project Operations & Management (optional)
+### Section 4.1 Project Operations & Management
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
### Section 4.2: Decision-making and Voting
@@ -206,7 +206,7 @@ Either initially, or at any point during the process, any TSC member may suggest
Non-public decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
-### Section 4.3: Other Project Roles (optional)
+### Section 4.3: Other Project Roles
The JSON Schema project recognises the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
@@ -219,7 +219,7 @@ The following responsibilities are recognised as those requiring roles to be def
- Education and training
- Financial allocation approval, tracking, and auditing
-## Section 5: Definitions (optional)
+## Section 5: Definitions
The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.
The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
From ceb3e63d7e856b2c116ca20b8160f3c77a4b2a9f Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 16:23:24 +0100
Subject: [PATCH 071/309] Add initial TSC members list
---
CHARTER.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CHARTER.md b/CHARTER.md
index d472fe0d..3458dc7b 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -74,6 +74,8 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
- They do not participate in any TSC votes
- They do not provide any form of excuse or no excuse is known for their absence
+The initial TSC members are @relequestual, @awwright, @gregsdennis, @Julian, @jdesrosiers, @karenetheridge, with @relequestual being the initial chair.
+
## Section 4: Roles & Responsibilities
The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
From 81e2c4493b0c4238e0c3ad4cf820191f24bc7798 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 16:25:20 +0100
Subject: [PATCH 072/309] Fix grammar
Co-authored-by: Jason Desrosiers
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 3458dc7b..d701eefa 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -60,7 +60,7 @@ Changes to TSC membership should be posted in the agenda, and may be suggested a
TSC memberships are not time-limited.
-While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there is no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
+While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
TSC members are expected to regularly participate in TSC activities.
From 4c56e0fd6c01b5bed155b6f72ba782785e40c2e5 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 16:25:49 +0100
Subject: [PATCH 073/309] Fix typo in charter
Co-authored-by: Jason Desrosiers
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index d701eefa..7727228c 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -154,7 +154,7 @@ The opening comment of the Issue should be kept up to date as to the status of t
Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the Issue and using the appropriate label.
-Stages 1 and 6 are required to be open for at least 7 days or until every TSC member has confirmed they wish to progress to the next stage (Progression will still be "called", as above). This includes signals of abstaining given automatically via a notification of period of leave from TSC activity. For stage 2, any TSC member may request a 7 day extension to allow for further consideration. Should there be no reasonable objection (determined by a TSC Chair), the minimum time will be extended by 7 days. A TSC member may request multiple extensions, however lack of justification may result in the TSC member being asked to consider abstaining in stead. There are no other explicit time limits placed on the other stages of the process.
+Stages 1 and 6 are required to be open for at least 7 days or until every TSC member has confirmed they wish to progress to the next stage (Progression will still be "called", as above). This includes signals of abstaining given automatically via a notification of period of leave from TSC activity. For stage 2, any TSC member may request a 7 day extension to allow for further consideration. Should there be no reasonable objection (determined by a TSC Chair), the minimum time will be extended by 7 days. A TSC member may request multiple extensions, however lack of justification may result in the TSC member being asked to consider abstaining instead. There are no other explicit time limits placed on the other stages of the process.
Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to updated and report progress the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
From a86c7430c8ab7cdef0979ab10337cd3653e57aa6 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Apr 2023 16:27:42 +0100
Subject: [PATCH 074/309] Apply grammar and typo fixes to charter from PR
review
Co-authored-by: Jason Desrosiers
---
CHARTER.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 7727228c..aaf75353 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -156,14 +156,14 @@ Transition between stages may be requested by anyone, but must be called by the
Stages 1 and 6 are required to be open for at least 7 days or until every TSC member has confirmed they wish to progress to the next stage (Progression will still be "called", as above). This includes signals of abstaining given automatically via a notification of period of leave from TSC activity. For stage 2, any TSC member may request a 7 day extension to allow for further consideration. Should there be no reasonable objection (determined by a TSC Chair), the minimum time will be extended by 7 days. A TSC member may request multiple extensions, however lack of justification may result in the TSC member being asked to consider abstaining instead. There are no other explicit time limits placed on the other stages of the process.
-Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to updated and report progress the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
+Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to update and report the progress of the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
-Moving to the 'Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
+Moving to the "Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
-The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
+The "Test for Agreement" step is not voting, and is instead asking for "signals", which enable the consensus process to continue.
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
-If someone calls for a Test for Agreement, the facilitator for the decision discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Issue (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
+If someone calls for a Test for Agreement, the facilitator for the decision discussion will review the current proposal and may call to Test for Agreement. The facilitator will post a comment on the Issue (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
@@ -198,7 +198,7 @@ For a vote to carry, a quorum of 75% is required by default.
If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating an Issue in the 'TSC-private' repository.
-The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+The topic and nature of non-public votes may remain non-public, including the results. (It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
#### Documenting decisions
@@ -210,9 +210,9 @@ Non-public decisions should be documented (as an ADR or otherwise) in the privat
### Section 4.3: Other Project Roles
-The JSON Schema project recognises the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
+The JSON Schema project recognizes the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
-The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognise the additional roles.
+The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognize the additional roles.
The following responsibilities are recognised as those requiring roles to be defined by the TSC:
- Community and Industry connections
From 93bc3316f14629f8246d14eceb33eef4c59ec3c4 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 17 Apr 2023 11:56:51 +0100
Subject: [PATCH 075/309] Remove specific TSC member requirement about meetings
---
CHARTER.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index aaf75353..bd223477 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -70,8 +70,7 @@ The TSC may, at its discretion, invite any number of non-voting observers to par
A TSC member may be removed by vote from the TSC if, during a 3-month period, all of the following are true:
-- They attend fewer than 25% of the regularly scheduled meetings
-- They do not participate in any TSC votes
+- They do not participate in any TSC related discussions or votes
- They do not provide any form of excuse or no excuse is known for their absence
The initial TSC members are @relequestual, @awwright, @gregsdennis, @Julian, @jdesrosiers, @karenetheridge, with @relequestual being the initial chair.
From c411c8659af4ab4bb6ecc38e17cad577385f730d Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 17 Apr 2023 16:44:08 +0100
Subject: [PATCH 076/309] Fix double typo with thanks to @mwadams
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index bd223477..f877b877 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -164,7 +164,7 @@ Voting should be considered a last resort if the consensus process has failed fo
If someone calls for a Test for Agreement, the facilitator for the decision discussion will review the current proposal and may call to Test for Agreement. The facilitator will post a comment on the Issue (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
-The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the projects core principals or something that would harm the project.
+The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the project's core principles or something that would harm the project.
The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result. If the blocker/s are unable or unwilling to participate in attempts to find a solution, after multiple attempts, the original proposal is moved to a vote, as defined in this document, but additionally requiring a 75% super majority to pass. This will be at the discretion of the TSC Chairs.
From 67089a794f48353d8939bd8501f1f112281e622d Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 09:02:27 +0100
Subject: [PATCH 077/309] List names and links for the TSC members
Co-authored-by: Greg Dennis
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index f877b877..f3c2f521 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -73,7 +73,7 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
- They do not participate in any TSC related discussions or votes
- They do not provide any form of excuse or no excuse is known for their absence
-The initial TSC members are @relequestual, @awwright, @gregsdennis, @Julian, @jdesrosiers, @karenetheridge, with @relequestual being the initial chair.
+The initial TSC members are [Ben Hutton](https://github.com/relequestual), [Austin Wright](https://github.com/awwright), [Greg Dennis](https://github.com/gregsdennis), [Julian Berman](https://github.com/Julian), [Jason Desrosiers](https://github.com/jdesrosiers), and [Karen Etheridge](https://github.com/karenetheridge), with Ben Hutton being the initial chair.
## Section 4: Roles & Responsibilities
The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
From ab7f0df23d86d4b5fc5530306572f9ab2c18d4d5 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 09:04:31 +0100
Subject: [PATCH 078/309] Fix typo and quotes in charter
Co-authored-by: Greg Dennis
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index f3c2f521..ff8e42ab 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -105,7 +105,7 @@ When a TSC member looks for an issue to be discussed and a decision to be made,
Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
The Issue must:
- Include brief introductory information about the decision that needs to be made
-- Be labelled with 'tsc-decision'
+- Be labeled with `tsc-decision`
- Use the provided template, unless there is a good reason not to do so
At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signalling or voting. The TSC member must detail when they expect to return.
From 59ed4e6bc89d2c37de7fe74bf48698e614f451d3 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 09:06:24 +0100
Subject: [PATCH 079/309] Fix typos and quotes in charter
Apply suggestions from review
Co-authored-by: Greg Dennis
---
CHARTER.md | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index ff8e42ab..cccc8125 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -108,18 +108,18 @@ The Issue must:
- Be labeled with `tsc-decision`
- Use the provided template, unless there is a good reason not to do so
-At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signalling or voting. The TSC member must detail when they expect to return.
+At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signaling or voting. The TSC member must detail when they expect to return.
##### Quick consensus process
In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process. This should be done by creating a new Issue in the TSC repository.
-In addition to the requirements above, the Issue must be labelled 'expedited'.
+In addition to the requirements above, the Issue must be labeled `expedited`.
-While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labelled with 'tsc-decision'.
+While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labeled with `tsc-decision`.
A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
-The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label 'expedited' should be removed and 'stage-1' added.)
+The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `stage-1` added.)
##### Standard consensus process
@@ -128,13 +128,13 @@ The standard consensus process is designed for all non-trivial decisions.
A decision discussion may be started by creating an Issue and Discussion in the TSC repository.
In addition to the requirements above, the Issue must:
-- Be labelled with 'stage-1'
+- Be labeled with `stage-1`
- Link to the associated initial Discussion
The Discussion must:
- Link to the associated Issue
- Include detailed introductory information about the decision that needs to be made
-- Be labelled with 'tsc-decision'
+- Be labeled with `tsc-decision`
The standard consensus process should progress through the following seven stages.
@@ -175,7 +175,7 @@ Reports must remain anonymous, as per the Code of Conduct.
The other signals that may be made when a Test For Agreement is called include "Reservations" and "Stand Aside". Both are signals which convey consent to let the proposal pass, however they may be conditional.
-Signalling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signalling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
+Signaling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signalling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
If "Reservations" is signalled three consecutive times by the same individual/s, anyone may call for no further attempts to remediate the reservations, and the proposal will pass.
@@ -195,7 +195,7 @@ Voting will by default close after 7 days. Any member of the TSC may request a 7
For a vote to carry, a quorum of 75% is required by default.
If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
-At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating an Issue in the 'TSC-private' repository.
+At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating an Issue in the `TSC-private` repository.
The topic and nature of non-public votes may remain non-public, including the results. (It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
@@ -221,6 +221,7 @@ The following responsibilities are recognised as those requiring roles to be def
- Financial allocation approval, tracking, and auditing
## Section 5: Definitions
+
The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.
The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
From d773d2176c9d7b317860ec7c0ca3d6b1aadd5a75 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 09:40:40 +0100
Subject: [PATCH 080/309] Fix grammar in charter
Co-authored-by: Greg Dennis
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index cccc8125..26dd0dcc 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -60,7 +60,7 @@ Changes to TSC membership should be posted in the agenda, and may be suggested a
TSC memberships are not time-limited.
-While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
+While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
TSC members are expected to regularly participate in TSC activities.
From c0c60895cd6853915b17e93be4ad4e6f56b6aa3e Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 10:04:59 +0100
Subject: [PATCH 081/309] Remove 'section' from titles
---
CHARTER.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 26dd0dcc..28bfe2dc 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -1,12 +1,12 @@
# JSON Schema Org Charter
-## Section 0: Guiding Principles
+## 0: Guiding Principles
The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
-## Section 1: Scope
+## 1: Scope
JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
@@ -45,13 +45,13 @@ Secondary Concerns
### 1.2: Out-of-Scope
Section Intentionally Left Blank
-## Section 2: Relationship with OpenJS Foundation CPC.
+## 2: Relationship with OpenJS Foundation CPC.
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
### 2.1 Other Formal Project Relationships
Section Intentionally Left Blank
-## Section 3: JSON Schema Org Governing Body (TSC)
+## 3: JSON Schema Org Governing Body (TSC)
The TSC is initially established from the observed major contributors who are currently active and in good standing.
There is no maximum TSC membership size. The TSC must have a minimum of four members.
@@ -75,7 +75,7 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
The initial TSC members are [Ben Hutton](https://github.com/relequestual), [Austin Wright](https://github.com/awwright), [Greg Dennis](https://github.com/gregsdennis), [Julian Berman](https://github.com/Julian), [Jason Desrosiers](https://github.com/jdesrosiers), and [Karen Etheridge](https://github.com/karenetheridge), with Ben Hutton being the initial chair.
-## Section 4: Roles & Responsibilities
+## 4: Roles & Responsibilities
The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
The TSC has final authority over this project including:
@@ -90,10 +90,10 @@ The TSC has final authority over this project including:
In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
-### Section 4.1 Project Operations & Management
+### 4.1 Project Operations & Management
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
-### Section 4.2: Decision-making and Voting
+### 4.2: Decision-making and Voting
The TSC follows a formal consensus seeking decision making model.
In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
@@ -207,7 +207,7 @@ Either initially, or at any point during the process, any TSC member may suggest
Non-public decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
-### Section 4.3: Other Project Roles
+### 4.3: Other Project Roles
The JSON Schema project recognizes the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
@@ -220,7 +220,7 @@ The following responsibilities are recognised as those requiring roles to be def
- Education and training
- Financial allocation approval, tracking, and auditing
-## Section 5: Definitions
+## 5: Definitions
The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.
From 6bf4e5e5bc334ea71c24ae374e5e51c2b558ed72 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 10:18:34 +0100
Subject: [PATCH 082/309] Fix language specific spellings in charter
---
CHARTER.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 28bfe2dc..e5c5a80c 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -175,11 +175,11 @@ Reports must remain anonymous, as per the Code of Conduct.
The other signals that may be made when a Test For Agreement is called include "Reservations" and "Stand Aside". Both are signals which convey consent to let the proposal pass, however they may be conditional.
-Signaling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signalling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
+Signaling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signaling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
If "Reservations" is signalled three consecutive times by the same individual/s, anyone may call for no further attempts to remediate the reservations, and the proposal will pass.
-Signalling "Stand Aside" convey consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
+Signaling "Stand Aside" convey consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
The TSC will make every reasonable effort to reach unanimity based consensus. If unanimity seems unlikely after several failed attempts to revise the proposal and Test for Agreement, if the proposal is clear, the decision may be moved to a vote, at the discretion of the TSC Chairs. This is a last resort.
@@ -213,7 +213,7 @@ The JSON Schema project recognizes the need for both technical and non-technical
The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognize the additional roles.
-The following responsibilities are recognised as those requiring roles to be defined by the TSC:
+The following responsibilities are recognized as those requiring roles to be defined by the TSC:
- Community and Industry connections
- Brand awareness, recognition, and health
- Strategic allocation of funds and budgeting for investment in JSON Schema and its ecosystem
From 3e73994e2e825adc2ca6c5b472bb6ddc7b455168 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 18 Apr 2023 10:32:03 +0100
Subject: [PATCH 083/309] Specifically mention specifications we use and that
use us as out of scope in the charter
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index e5c5a80c..876100fb 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -43,7 +43,7 @@ Secondary Concerns
- Vocabularies registry
### 1.2: Out-of-Scope
-Section Intentionally Left Blank
+While the JSON Schema project has no control over the specifications it uses (such as JSON and IRI), nor specifications that use JSON Schema (such as OpenAPI and AsyncAPI), the JSON Schema project has, and continues to, provide expert opinion, advice, and support, as time allows. We recognize the importance and value of the ecosystem surrounding JSON Schema, and we encourage those developing standards and tooling to reach out at any time.
## 2: Relationship with OpenJS Foundation CPC.
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
From eef2fc849462d7e02bd15f62868175283adc6e64 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 24 Apr 2023 14:12:28 +0100
Subject: [PATCH 084/309] Do not reference 'JSON Schema Org' Just JSON Schema
is fine, and we don't need to differenciate between the project and the org.
https://github.com/json-schema-org/community/pull/325\#discussion_r1174052120
---
CHARTER.md | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 876100fb..e5c68355 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -1,4 +1,4 @@
-# JSON Schema Org Charter
+# JSON Schema Charter
## 0: Guiding Principles
@@ -51,7 +51,7 @@ Most large, complex open source communities have both a business and a technical
### 2.1 Other Formal Project Relationships
Section Intentionally Left Blank
-## 3: JSON Schema Org Governing Body (TSC)
+## 3: JSON Schema Governing Body (TSC)
The TSC is initially established from the observed major contributors who are currently active and in good standing.
There is no maximum TSC membership size. The TSC must have a minimum of four members.
@@ -222,10 +222,6 @@ The following responsibilities are recognized as those requiring roles to be def
## 5: Definitions
-The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.
-
-The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
-
TSC: The Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.
---
From ec0b7eb67a678268f3c2e54a03e24d107c89adf9 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Apr 2023 14:07:08 +0100
Subject: [PATCH 085/309] Do not define what the OpenJS Foundation does, per
feedback from the foundation
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index e5c68355..4619fe48 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -2,7 +2,7 @@
## 0: Guiding Principles
-The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
+The JSON Schema project is part of the OpenJS Foundation. The JSON Schema project strives to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
From 0c0b555ed1a33e96551317968812996807cf8533 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Apr 2023 14:15:49 +0100
Subject: [PATCH 086/309] Remove mention of fund and budgeting, as the charter
is about the foundation passing technical leadership, and funds are business
related
---
CHARTER.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 4619fe48..58ebc810 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -216,7 +216,6 @@ The TSC will look to create other roles as appropriate, and may update this docu
The following responsibilities are recognized as those requiring roles to be defined by the TSC:
- Community and Industry connections
- Brand awareness, recognition, and health
-- Strategic allocation of funds and budgeting for investment in JSON Schema and its ecosystem
- Education and training
- Financial allocation approval, tracking, and auditing
From 7020288af3230e642cba45aa85eac1747ba5c4a9 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Apr 2023 14:16:29 +0100
Subject: [PATCH 087/309] Remove mention of finances as per last commit
---
CHARTER.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 58ebc810..07dbe515 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -217,7 +217,6 @@ The following responsibilities are recognized as those requiring roles to be def
- Community and Industry connections
- Brand awareness, recognition, and health
- Education and training
-- Financial allocation approval, tracking, and auditing
## 5: Definitions
From a93b28c5e2d8dbaec2f44ddc39a574070ae7dd13 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Apr 2023 14:19:14 +0100
Subject: [PATCH 088/309] Remove mention of special interest groups in favour
of noting the community would need to drive the work
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 07dbe515..8aef94ad 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -12,7 +12,7 @@ While JSON Schema's primary target is constraint-based data validation, it conti
### 1.1: In-scope
The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
-Primary concerns are areas we wish to give focus to, while secondary concerns are more likely to require the creation of a Special Interest Group.
+Primary concerns are areas we wish to give focus to, while secondary concerns are more likely to require the desire of the community to drive the work.
Primary Concerns
- Publication of the JSON Schema standard
From bbb700395aaba0ad0cb02ab20578c4d739b99c9f Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Wed, 26 Apr 2023 11:30:57 +0100
Subject: [PATCH 089/309] Loosen TSC meeting expectations
Co-authored-by: Matteo Collina
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 8aef94ad..e07a2c0a 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -64,7 +64,7 @@ While the project is not looking to obtain "Impact" project status within the Op
TSC members are expected to regularly participate in TSC activities.
-The TSC will meet regularly using virtual conferencing tools. The meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
+When the TSC meets using virtual conferencing tools, the meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
From 0430284b591c122c5e938075e9b2b72f0d57d2fb Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Apr 2023 14:32:00 +0100
Subject: [PATCH 090/309] Intro section better reflects the JSON Schema
projects relationship with the OpenJS Foundation CPC and Board.
---
CHARTER.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index e07a2c0a..f5ab1436 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -4,7 +4,9 @@
## 0: Guiding Principles
The JSON Schema project is part of the OpenJS Foundation. The JSON Schema project strives to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
-Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
+Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC"). OpenJS Foundation's business leadership is the Board of Directors (the "Board").
+
+Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how the TSC wish to operate. As such, the JSON Schema project define the following charter which includes aspects of the governance model to which the TSC subscribe and by which the TSC operate.
## 1: Scope
JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
@@ -43,7 +45,7 @@ Secondary Concerns
- Vocabularies registry
### 1.2: Out-of-Scope
-While the JSON Schema project has no control over the specifications it uses (such as JSON and IRI), nor specifications that use JSON Schema (such as OpenAPI and AsyncAPI), the JSON Schema project has, and continues to, provide expert opinion, advice, and support, as time allows. We recognize the importance and value of the ecosystem surrounding JSON Schema, and we encourage those developing standards and tooling to reach out at any time.
+While the JSON Schema project has no control over the specifications it uses (such as JSON and IRI), nor specifications that use JSON Schema (such as OpenAPI and AsyncAPI), the JSON Schema project has, and continues to, provide expert opinion, advice, and support, as time allows. JSON Schema recognizes the importance and value of the ecosystem surrounding JSON Schema, and JSON Schema encourage those developing standards and tooling to reach out at any time.
## 2: Relationship with OpenJS Foundation CPC.
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
From ad1110f2e553a00c41c42fa76e32004891644580 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Wed, 3 May 2023 21:21:50 +0100
Subject: [PATCH 091/309] Don't use 'we' and use proper pronouns
---
CHARTER.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index f5ab1436..ca013c09 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -10,11 +10,11 @@ Having no structure in place usually leads to one that is informal and undocumen
## 1: Scope
JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
-While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
+While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. The JSON Schema project aims to enable these additional and emergent use cases.
### 1.1: In-scope
The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
-Primary concerns are areas we wish to give focus to, while secondary concerns are more likely to require the desire of the community to drive the work.
+Primary concerns are areas the JSON Schema project wish to give focus to, while secondary concerns are more likely to require the desire of the community to drive the work.
Primary Concerns
- Publication of the JSON Schema standard
@@ -148,7 +148,7 @@ The standard consensus process should progress through the following seven stage
6. Test for agreement
7. Determine resolution
-(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while we test and firm up our specific requirements, and document them in our yet to be created [Governance document](./GOVERNANCE.md))
+(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while the JSON Schema project tests and firms up our specific requirements, and document them in our yet to be created [Governance document](./GOVERNANCE.md))
All decisions that go through the standard consensus process must have an associated GitHub Issue, which allows those unable to attend meetings to participate.
The opening comment of the Issue should be kept up to date as to the status of the decision.
From c73c85245c12de95b0576c628203fa92bf97ed1a Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Wed, 3 May 2023 22:13:10 +0100
Subject: [PATCH 092/309] Move the list of initial TSC members outside of the
charter document
---
CHARTER.md | 2 --
TSC.md | 3 +++
2 files changed, 3 insertions(+), 2 deletions(-)
create mode 100644 TSC.md
diff --git a/CHARTER.md b/CHARTER.md
index ca013c09..8727ede5 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -75,8 +75,6 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
- They do not participate in any TSC related discussions or votes
- They do not provide any form of excuse or no excuse is known for their absence
-The initial TSC members are [Ben Hutton](https://github.com/relequestual), [Austin Wright](https://github.com/awwright), [Greg Dennis](https://github.com/gregsdennis), [Julian Berman](https://github.com/Julian), [Jason Desrosiers](https://github.com/jdesrosiers), and [Karen Etheridge](https://github.com/karenetheridge), with Ben Hutton being the initial chair.
-
## 4: Roles & Responsibilities
The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
diff --git a/TSC.md b/TSC.md
new file mode 100644
index 00000000..13165f70
--- /dev/null
+++ b/TSC.md
@@ -0,0 +1,3 @@
+This file lists the members of the JSON Schema Technical Steering Committee (TSC).
+
+The initial TSC members are [Ben Hutton](https://github.com/relequestual), [Austin Wright](https://github.com/awwright), [Greg Dennis](https://github.com/gregsdennis), [Julian Berman](https://github.com/Julian), [Jason Desrosiers](https://github.com/jdesrosiers), and [Karen Etheridge](https://github.com/karenetheridge), with Ben Hutton being the initial chair.
\ No newline at end of file
From 2e65fd34271d8557807c888f8cbfdd9ec75efff1 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Wed, 3 May 2023 22:35:18 +0100
Subject: [PATCH 093/309] Use 'private' as opposed to 'non-public'
---
CHARTER.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 8727ede5..69343eb4 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -100,7 +100,7 @@ In the unlikely case where it seems that consensus cannot be reached after multi
#### Decision-making via consensus
-When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
+When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a private discussion and decision. The TSC member must reach out to the TSC chairs to request a private discussion and decision. A discussion and decision will be private at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be private in rare circumstances.
Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
The Issue must:
@@ -194,10 +194,10 @@ Voting will by default close after 7 days. Any member of the TSC may request a 7
For a vote to carry, a quorum of 75% is required by default.
-If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
-At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating an Issue in the `TSC-private` repository.
+If a TSC member wants to call for a vote that they wish to be private, they must do so by contacting the TSC Chairs directly.
+At the discretion of the TSC Chairs, a vote may be made private, and will then be handled by creating an Issue in the `TSC-private` repository.
-The topic and nature of non-public votes may remain non-public, including the results. (It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)
+The topic and nature of private votes may remain private, including the results. (It is expected that vast majority of votes will be public. Private voting should only be used in exceptional circumstances.)
#### Documenting decisions
@@ -205,7 +205,7 @@ Either initially, or at any point during the process, any TSC member may suggest
(The quick consensus process does not require an Any Decision Record, but the decision should be minuted.)
-Non-public decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
+Private decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
### 4.3: Other Project Roles
From 59d8982168dc81578b153d7f1424c73ad6137e54 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 15 Jun 2023 15:29:20 +0100
Subject: [PATCH 094/309] Remove the explicit mention of ingesting tooling into
the project
---
CHARTER.md | 3 ---
1 file changed, 3 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 69343eb4..588d0b90 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -22,9 +22,6 @@ Primary Concerns
- Semantic annotation of JSON data
- Extensibility
- Critical tooling
- - Creation of new
- - Ingestion of existing
- - Long term support
- Documentation
- Test suite
- Community
From ccbfd89ff355b0e7a3e10a036a1890a8e92565df Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 16 Jun 2023 16:41:28 +0100
Subject: [PATCH 095/309] Note what kinds of discussions and votes can and
should be made private
---
CHARTER.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/CHARTER.md b/CHARTER.md
index 588d0b90..21cae887 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -99,6 +99,8 @@ In the unlikely case where it seems that consensus cannot be reached after multi
When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a private discussion and decision. The TSC member must reach out to the TSC chairs to request a private discussion and decision. A discussion and decision will be private at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be private in rare circumstances.
+The kinds of discussions which should be private include security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
+
Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
The Issue must:
- Include brief introductory information about the decision that needs to be made
@@ -196,6 +198,8 @@ At the discretion of the TSC Chairs, a vote may be made private, and will then b
The topic and nature of private votes may remain private, including the results. (It is expected that vast majority of votes will be public. Private voting should only be used in exceptional circumstances.)
+The kinds of votes which should be private include things related to security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
+
#### Documenting decisions
Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
From 54cfd22a83781590eb0f9462604a288db27549d3 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 16 Jun 2023 16:43:12 +0100
Subject: [PATCH 096/309] Move the paragraph about TSC period of leave to
membership section
---
CHARTER.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 21cae887..d57fc216 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -65,6 +65,8 @@ TSC members are expected to regularly participate in TSC activities.
When the TSC meets using virtual conferencing tools, the meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
+At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signaling or voting. The TSC member must detail when they expect to return.
+
The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
A TSC member may be removed by vote from the TSC if, during a 3-month period, all of the following are true:
@@ -107,8 +109,6 @@ The Issue must:
- Be labeled with `tsc-decision`
- Use the provided template, unless there is a good reason not to do so
-At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signaling or voting. The TSC member must detail when they expect to return.
-
##### Quick consensus process
In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process. This should be done by creating a new Issue in the TSC repository.
From bb187f4246a66db1ef9ecc2a16347e170dedaee1 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 23 Jun 2023 11:55:37 +0100
Subject: [PATCH 097/309] Create governance document and move governance and
process related content out of the charter and into the governance document.
View this diff locally using --color-moved to see content is moved but
unedited
---
CHARTER.md | 151 ++------------------------------------------
GOVERNANCE.md | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 175 insertions(+), 147 deletions(-)
create mode 100644 GOVERNANCE.md
diff --git a/CHARTER.md b/CHARTER.md
index d57fc216..57558d5a 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -51,43 +51,12 @@ Most large, complex open source communities have both a business and a technical
Section Intentionally Left Blank
## 3: JSON Schema Governing Body (TSC)
-The TSC is initially established from the observed major contributors who are currently active and in good standing.
-There is no maximum TSC membership size. The TSC must have a minimum of four members.
-
-Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item.
-
-TSC memberships are not time-limited.
-
-While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
-
-TSC members are expected to regularly participate in TSC activities.
-
-When the TSC meets using virtual conferencing tools, the meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
-
-At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signaling or voting. The TSC member must detail when they expect to return.
-
-The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
-
-A TSC member may be removed by vote from the TSC if, during a 3-month period, all of the following are true:
-
-- They do not participate in any TSC related discussions or votes
-- They do not provide any form of excuse or no excuse is known for their absence
+See GOVERNANCE.md
## 4: Roles & Responsibilities
-The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
-
-The TSC has final authority over this project including:
-
-- Technical direction
-- Project governance and process (including this policy)
-- Contribution policy
-- GitHub repository hosting and administration
-- Establishment of and delegation to working groups or teams
-- Mediating technical conflicts
-- Mediating non-technical conflicts (until a formal Code of Conduct Committee is established)
-In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
+See GOVERNANCE.md
### 4.1 Project Operations & Management
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
@@ -97,116 +66,9 @@ The TSC follows a formal consensus seeking decision making model.
In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
-#### Decision-making via consensus
-
-When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a private discussion and decision. The TSC member must reach out to the TSC chairs to request a private discussion and decision. A discussion and decision will be private at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be private in rare circumstances.
-
-The kinds of discussions which should be private include security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
-
-Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
-The Issue must:
-- Include brief introductory information about the decision that needs to be made
-- Be labeled with `tsc-decision`
-- Use the provided template, unless there is a good reason not to do so
-
-##### Quick consensus process
-
-In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process. This should be done by creating a new Issue in the TSC repository.
-In addition to the requirements above, the Issue must be labeled `expedited`.
-
-While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labeled with `tsc-decision`.
-
-A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
-
-The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `stage-1` added.)
-
-##### Standard consensus process
-
-The standard consensus process is designed for all non-trivial decisions.
-
-A decision discussion may be started by creating an Issue and Discussion in the TSC repository.
-
-In addition to the requirements above, the Issue must:
-- Be labeled with `stage-1`
-- Link to the associated initial Discussion
-
-The Discussion must:
-- Link to the associated Issue
-- Include detailed introductory information about the decision that needs to be made
-- Be labeled with `tsc-decision`
-
-The standard consensus process should progress through the following seven stages.
-
-1. Introduction and clarify the issue
-2. Open the discussion - Share needs and perspectives on the issue
-3. Explore ideas in a broad discussion
-4. Form a proposal
-5. Amend the proposal
-6. Test for agreement
-7. Determine resolution
-
-(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while the JSON Schema project tests and firms up our specific requirements, and document them in our yet to be created [Governance document](./GOVERNANCE.md))
-
-All decisions that go through the standard consensus process must have an associated GitHub Issue, which allows those unable to attend meetings to participate.
-The opening comment of the Issue should be kept up to date as to the status of the decision.
+#### Decision-making via consensus and voting, and documenting decisions
-Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the Issue and using the appropriate label.
-
-Stages 1 and 6 are required to be open for at least 7 days or until every TSC member has confirmed they wish to progress to the next stage (Progression will still be "called", as above). This includes signals of abstaining given automatically via a notification of period of leave from TSC activity. For stage 2, any TSC member may request a 7 day extension to allow for further consideration. Should there be no reasonable objection (determined by a TSC Chair), the minimum time will be extended by 7 days. A TSC member may request multiple extensions, however lack of justification may result in the TSC member being asked to consider abstaining instead. There are no other explicit time limits placed on the other stages of the process.
-
-Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to update and report the progress of the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
-
-Moving to the "Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
-
-The "Test for Agreement" step is not voting, and is instead asking for "signals", which enable the consensus process to continue.
-Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
-
-If someone calls for a Test for Agreement, the facilitator for the decision discussion will review the current proposal and may call to Test for Agreement. The facilitator will post a comment on the Issue (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
-
-The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the project's core principles or something that would harm the project.
-
-The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result. If the blocker/s are unable or unwilling to participate in attempts to find a solution, after multiple attempts, the original proposal is moved to a vote, as defined in this document, but additionally requiring a 75% super majority to pass. This will be at the discretion of the TSC Chairs.
-
-If someone feels a "Block" is being used for unfair reasons, such as targeting individuals or to gain some personal advantage, or any such reason that might be in breach of our Code of Conduct, they should immediately report it to the Code of Conduct committee. The Code of Conduct committee should report this to the TSC Chairs as soon as possible, and the decision is halted while the committee investigates the report.
-
-The Code of Conduct committee will report their findings and any remediation action to the TSC Chairs.
-Reports must remain anonymous, as per the Code of Conduct.
-
-The other signals that may be made when a Test For Agreement is called include "Reservations" and "Stand Aside". Both are signals which convey consent to let the proposal pass, however they may be conditional.
-
-Signaling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signaling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
-
-If "Reservations" is signalled three consecutive times by the same individual/s, anyone may call for no further attempts to remediate the reservations, and the proposal will pass.
-
-Signaling "Stand Aside" convey consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
-
-The TSC will make every reasonable effort to reach unanimity based consensus. If unanimity seems unlikely after several failed attempts to revise the proposal and Test for Agreement, if the proposal is clear, the decision may be moved to a vote, at the discretion of the TSC Chairs. This is a last resort.
-
-The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md). More details in following sections.
-
-#### Decision-making via vote
-
-Any call for public TSC votes will be made by creating an Issue in the TSC repository with the `tsc-vote` label assigned. The Issue should use the provided template.
-
-Once an Issue gains the label `tsc-vote`, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
-Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.
-
-For a vote to carry, a quorum of 75% is required by default.
-
-If a TSC member wants to call for a vote that they wish to be private, they must do so by contacting the TSC Chairs directly.
-At the discretion of the TSC Chairs, a vote may be made private, and will then be handled by creating an Issue in the `TSC-private` repository.
-
-The topic and nature of private votes may remain private, including the results. (It is expected that vast majority of votes will be public. Private voting should only be used in exceptional circumstances.)
-
-The kinds of votes which should be private include things related to security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
-
-#### Documenting decisions
-
-Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
-
-(The quick consensus process does not require an Any Decision Record, but the decision should be minuted.)
-
-Private decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
+See GOVERNANCE.md
### 4.3: Other Project Roles
@@ -225,9 +87,4 @@ TSC: The Technical Steering Committee, delegated technical leadership for the JS
---
-This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
-
-Inspired by https://seedsforchange.org.uk/consensus, https://seedsforchange.org.uk/quickconsensus
-Informed by https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
-
This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
new file mode 100644
index 00000000..b2bf53ec
--- /dev/null
+++ b/GOVERNANCE.md
@@ -0,0 +1,171 @@
+🚨 This document is not ratified 🚨
+In the process of creating a charter, many "process" and governance related things were included in the draft of the charter. Feedback was that the charter should not include such content, and that it should be moved to a separate file. This is that file.
+The initial commit includes content already approved by the group, however some additional content will be added at a later point, and this comment removed.
+For context, see https://github.com/json-schema-org/community/pull/325
+
+---
+
+# Governance
+
+
+## JSON Schema Governing Body (TSC)
+The JSON Schema Technical Steering Committee (TSC) is initially established from the observed major contributors who are currently active and in good standing.
+
+There is no maximum TSC membership size. The TSC must have a minimum of four members.
+
+Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item.
+
+TSC memberships are not time-limited.
+
+While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
+
+TSC members are expected to regularly participate in TSC activities.
+
+When the TSC meets using virtual conferencing tools, the meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
+
+At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signaling or voting. The TSC member must detail when they expect to return.
+
+The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
+
+A TSC member may be removed by vote from the TSC if, during a 3-month period, all of the following are true:
+
+- They do not participate in any TSC related discussions or votes
+- They do not provide any form of excuse or no excuse is known for their absence
+
+## Roles & Responsibilities
+The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
+
+The TSC has final authority over this project including:
+
+- Technical direction
+- Project governance and process (including this policy)
+- Contribution policy
+- GitHub repository hosting and administration
+- Establishment of and delegation to working groups or teams
+- Mediating technical conflicts
+- Mediating non-technical conflicts (until a formal Code of Conduct Committee is established)
+
+In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
+
+## Decision Making
+
+### Decision-making via consensus
+
+When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a private discussion and decision. The TSC member must reach out to the TSC chairs to request a private discussion and decision. A discussion and decision will be private at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be private in rare circumstances.
+
+The kinds of discussions which should be private include security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
+
+Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
+The Issue must:
+- Include brief introductory information about the decision that needs to be made
+- Be labeled with `tsc-decision`
+- Use the provided template, unless there is a good reason not to do so
+
+#### Quick consensus process
+
+In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process. This should be done by creating a new Issue in the TSC repository.
+In addition to the requirements above, the Issue must be labeled `expedited`.
+
+While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labeled with `tsc-decision`.
+
+A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
+
+The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `stage-1` added.)
+
+#### Standard consensus process
+
+The standard consensus process is designed for all non-trivial decisions.
+
+A decision discussion may be started by creating an Issue and Discussion in the TSC repository.
+
+In addition to the requirements above, the Issue must:
+- Be labeled with `stage-1`
+- Link to the associated initial Discussion
+
+The Discussion must:
+- Link to the associated Issue
+- Include detailed introductory information about the decision that needs to be made
+- Be labeled with `tsc-decision`
+
+The standard consensus process should progress through the following seven stages.
+
+1. Introduction and clarify the issue
+2. Open the discussion - Share needs and perspectives on the issue
+3. Explore ideas in a broad discussion
+4. Form a proposal
+5. Amend the proposal
+6. Test for agreement
+7. Determine resolution
+
+(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while the JSON Schema project tests and firms up our specific requirements, and document them in our yet to be created [Governance document](./GOVERNANCE.md))
+
+All decisions that go through the standard consensus process must have an associated GitHub Issue, which allows those unable to attend meetings to participate.
+The opening comment of the Issue should be kept up to date as to the status of the decision.
+
+Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the Issue and using the appropriate label.
+
+Stages 1 and 6 are required to be open for at least 7 days or until every TSC member has confirmed they wish to progress to the next stage (Progression will still be "called", as above). This includes signals of abstaining given automatically via a notification of period of leave from TSC activity. For stage 2, any TSC member may request a 7 day extension to allow for further consideration. Should there be no reasonable objection (determined by a TSC Chair), the minimum time will be extended by 7 days. A TSC member may request multiple extensions, however lack of justification may result in the TSC member being asked to consider abstaining instead. There are no other explicit time limits placed on the other stages of the process.
+
+Most of the discussion should happen within the associated Discussion. The Issue should mostly be used to update and report the progress of the consensus process. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in associated Discussion, and any other relevant locations.
+
+Moving to the "Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
+
+The "Test for Agreement" step is not voting, and is instead asking for "signals", which enable the consensus process to continue.
+Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.
+
+If someone calls for a Test for Agreement, the facilitator for the decision discussion will review the current proposal and may call to Test for Agreement. The facilitator will post a comment on the Issue (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.
+
+The signals include "Block". Any use of the "Block" signal will require a new or amended proposal to be worked on. A "Block" should be used to indicate a strong objection, such as something against the project's core principles or something that would harm the project.
+
+The blocker/s should be prepared to commit to trying to find a solution, but not necessarily form and present a solution by themselves. The TSC will look to facilitate a number of workshops to help understand the blocking objections, and form a new or amended proposal as a result. If the blocker/s are unable or unwilling to participate in attempts to find a solution, after multiple attempts, the original proposal is moved to a vote, as defined in this document, but additionally requiring a 75% super majority to pass. This will be at the discretion of the TSC Chairs.
+
+If someone feels a "Block" is being used for unfair reasons, such as targeting individuals or to gain some personal advantage, or any such reason that might be in breach of our Code of Conduct, they should immediately report it to the Code of Conduct committee. The Code of Conduct committee should report this to the TSC Chairs as soon as possible, and the decision is halted while the committee investigates the report.
+
+The Code of Conduct committee will report their findings and any remediation action to the TSC Chairs.
+Reports must remain anonymous, as per the Code of Conduct.
+
+The other signals that may be made when a Test For Agreement is called include "Reservations" and "Stand Aside". Both are signals which convey consent to let the proposal pass, however they may be conditional.
+
+Signaling "Reservations" means an agreement on the overall direction, however there is some desire to revise or amend the proposal somewhat. It is expected that the individuals signaling "Reservations" want to engage in reworking the proposal. The facilitator will check with each individual regarding the strength of the reservation, and later facilitate or direct discussion as required to amend and represent the proposal. If the individual/s do not wish to participate in reworking the proposal, their reservations should be logged as part of the decision record as unresolved.
+
+If "Reservations" is signalled three consecutive times by the same individual/s, anyone may call for no further attempts to remediate the reservations, and the proposal will pass.
+
+Signaling "Stand Aside" convey consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
+
+The TSC will make every reasonable effort to reach unanimity based consensus. If unanimity seems unlikely after several failed attempts to revise the proposal and Test for Agreement, if the proposal is clear, the decision may be moved to a vote, at the discretion of the TSC Chairs. This is a last resort.
+
+The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md). More details in following sections.
+
+### Decision-making via vote
+
+Any call for public TSC votes will be made by creating an Issue in the TSC repository with the `tsc-vote` label assigned. The Issue should use the provided template.
+
+Once an Issue gains the label `tsc-vote`, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
+Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.
+
+For a vote to carry, a quorum of 75% is required by default.
+
+If a TSC member wants to call for a vote that they wish to be private, they must do so by contacting the TSC Chairs directly.
+At the discretion of the TSC Chairs, a vote may be made private, and will then be handled by creating an Issue in the `TSC-private` repository.
+
+The topic and nature of private votes may remain private, including the results. (It is expected that vast majority of votes will be public. Private voting should only be used in exceptional circumstances.)
+
+The kinds of votes which should be private include things related to security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
+
+### Documenting decisions
+
+Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
+
+(The quick consensus process does not require an Any Decision Record, but the decision should be minuted.)
+
+Private decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
+
+
+---
+
+This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
+
+Inspired by https://seedsforchange.org.uk/consensus, https://seedsforchange.org.uk/quickconsensus
+Informed by https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
+
+This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
From 0f7863e142954c09ec09f6f83218bb0c5b257b1f Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 23 Jun 2023 15:37:17 +0100
Subject: [PATCH 098/309] Refined definition of TSC in context
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 57558d5a..81b88812 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -83,7 +83,7 @@ The following responsibilities are recognized as those requiring roles to be def
## 5: Definitions
-TSC: The Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.
+TSC: The JSON Schema Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.
---
From ae6e91357b7bb01d63d83cea2bfd4f01d0bdf5cd Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 26 Jun 2023 09:19:46 +0100
Subject: [PATCH 099/309] Move content about voting and additional project
roles from charter to governance document
---
CHARTER.md | 16 ----------------
GOVERNANCE.md | 16 ++++++++++++++++
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 81b88812..d7c1d947 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -61,26 +61,10 @@ See GOVERNANCE.md
### 4.1 Project Operations & Management
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
-### 4.2: Decision-making and Voting
-The TSC follows a formal consensus seeking decision making model.
-In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
-In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
-
#### Decision-making via consensus and voting, and documenting decisions
See GOVERNANCE.md
-### 4.3: Other Project Roles
-
-The JSON Schema project recognizes the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
-
-The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognize the additional roles.
-
-The following responsibilities are recognized as those requiring roles to be defined by the TSC:
-- Community and Industry connections
-- Brand awareness, recognition, and health
-- Education and training
-
## 5: Definitions
TSC: The JSON Schema Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index b2bf53ec..7ba05621 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -49,6 +49,11 @@ In joining the TSC, members commit to communicate on a regular basis and respond
## Decision Making
+### Decision-making and Voting
+The TSC follows a formal consensus seeking decision making model.
+In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
+In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
+
### Decision-making via consensus
When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a private discussion and decision. The TSC member must reach out to the TSC chairs to request a private discussion and decision. A discussion and decision will be private at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be private in rare circumstances.
@@ -161,6 +166,17 @@ Either initially, or at any point during the process, any TSC member may suggest
Private decisions should be documented (as an ADR or otherwise) in the private `TSC-private` repository.
+## Other Project Roles
+
+The JSON Schema project recognizes the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
+
+The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognize the additional roles.
+
+The following responsibilities are recognized as those requiring roles to be defined by the TSC:
+- Community and Industry connections
+- Brand awareness, recognition, and health
+- Education and training
+
---
This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).
From 434ec369761730402b5d2ef2af174bc560b2dc6b Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 26 Jun 2023 11:32:50 +0100
Subject: [PATCH 100/309] Add interoperability to list of in scope concerns
---
CHARTER.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHARTER.md b/CHARTER.md
index d7c1d947..d1f7b125 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -20,6 +20,7 @@ Primary Concerns
- Publication of the JSON Schema standard
- Validation of JSON data
- Semantic annotation of JSON data
+ - Interoperability
- Extensibility
- Critical tooling
- Documentation
From 7c227b0db4e9c372e0534a451483f445cc42c77c Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 27 Jun 2023 11:04:40 +0100
Subject: [PATCH 101/309] Change 'JSON data' to 'JSON-compatible data' in
charter
---
CHARTER.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index d1f7b125..5cb1acf6 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -18,8 +18,8 @@ Primary concerns are areas the JSON Schema project wish to give focus to, while
Primary Concerns
- Publication of the JSON Schema standard
- - Validation of JSON data
- - Semantic annotation of JSON data
+ - Validation of JSON-compatible data
+ - Semantic annotation of JSON-compatible data
- Interoperability
- Extensibility
- Critical tooling
From 88f6ccef49d11bd5b36eb827afd4801806159bf2 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 10 Jul 2023 14:42:20 +0100
Subject: [PATCH 102/309] Use more inclusive phrasing
Co-authored-by: Tobie Langel
---
CHARTER.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 5cb1acf6..d83099f9 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -14,7 +14,7 @@ While JSON Schema's primary target is constraint-based data validation, it conti
### 1.1: In-scope
The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
-Primary concerns are areas the JSON Schema project wish to give focus to, while secondary concerns are more likely to require the desire of the community to drive the work.
+Primary concerns are areas the JSON Schema project wish to give focus to. Secondary concerns, while remaining in scope, aren't areas of focus, and would require dedicated championing by community members to come to fruition.
Primary Concerns
- Publication of the JSON Schema standard
From 9c00262d04164cece05376ac578ac7611924f6da Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Mon, 10 Jul 2023 14:58:21 +0100
Subject: [PATCH 103/309] Remove content which is mostly a duplication of
section 2
---
CHARTER.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index d83099f9..9cc0a4f9 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -4,8 +4,6 @@
## 0: Guiding Principles
The JSON Schema project is part of the OpenJS Foundation. The JSON Schema project strives to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
-Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC"). OpenJS Foundation's business leadership is the Board of Directors (the "Board").
-
Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how the TSC wish to operate. As such, the JSON Schema project define the following charter which includes aspects of the governance model to which the TSC subscribe and by which the TSC operate.
## 1: Scope
From c86b3d6f295cb9d91fb738782f1e22ddc9a1d1ab Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 11 Jul 2023 13:54:38 +0100
Subject: [PATCH 104/309] Simplify out of scope sction. Add engaging with
upstream and downstream specs and projects
---
CHARTER.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/CHARTER.md b/CHARTER.md
index 9cc0a4f9..b9bd86f3 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -27,6 +27,7 @@ Primary Concerns
- Enabling schema authors
- Enabling implementers
- Engaging with industry
+ - Engaging with upstream and downstream standards and projects
- Communicating value
- Ensuring the sustainability of the project
@@ -41,7 +42,7 @@ Secondary Concerns
- Vocabularies registry
### 1.2: Out-of-Scope
-While the JSON Schema project has no control over the specifications it uses (such as JSON and IRI), nor specifications that use JSON Schema (such as OpenAPI and AsyncAPI), the JSON Schema project has, and continues to, provide expert opinion, advice, and support, as time allows. JSON Schema recognizes the importance and value of the ecosystem surrounding JSON Schema, and JSON Schema encourage those developing standards and tooling to reach out at any time.
+Standards that the JSON Schema project uses (such as JSON and IRI), nor standards and projects that use JSON Schema (such as OpenAPI and AsyncAPI), are not things which the JSON Schema project has any control over.
## 2: Relationship with OpenJS Foundation CPC.
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
From af1023ba1a2ab89c1c5cdd12162d376b42503d03 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Jul 2023 12:32:30 +0100
Subject: [PATCH 105/309] Move TSC policy elements to charter from governance
document
---
CHARTER.md | 9 ++++++++-
GOVERNANCE.md | 10 +++-------
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index b9bd86f3..b5d5d22c 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -51,8 +51,15 @@ Most large, complex open source communities have both a business and a technical
Section Intentionally Left Blank
## 3: JSON Schema Governing Body (TSC)
+The JSON Schema Technical Steering Committee (TSC) is initially established from the observed major contributors who are currently active and in good standing.
-See GOVERNANCE.md
+The TSC must have a minimum of four members. There is no maximum TSC membership size.
+
+TSC memberships are not time-limited.
+
+The TSC follows the decision-making process defined in this charter unless otherwise documented.
+
+The TSC aims to work asynchronously. TSC meetings are pre-announced, public, and recorded. Minutes are taken and the recordings made available. If there is a reasonable reason (such as security or privacy), any portion of a meeting, its minutes, and recording, may be kept private.
## 4: Roles & Responsibilities
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 7ba05621..5709499a 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -9,13 +9,7 @@ For context, see https://github.com/json-schema-org/community/pull/325
## JSON Schema Governing Body (TSC)
-The JSON Schema Technical Steering Committee (TSC) is initially established from the observed major contributors who are currently active and in good standing.
-
-There is no maximum TSC membership size. The TSC must have a minimum of four members.
-
-Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item.
-
-TSC memberships are not time-limited.
+--- content migrated to Charter.md
While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
@@ -32,6 +26,8 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
- They do not participate in any TSC related discussions or votes
- They do not provide any form of excuse or no excuse is known for their absence
+There may be other grounds for removal from the TSC, such as seriously violating the Code of Conduct.
+
## Roles & Responsibilities
The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
From 562e0d3f494c0a01c2b48ba3a2a9c6607f8f772e Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Thu, 13 Jul 2023 12:32:53 +0100
Subject: [PATCH 106/309] Add that TSC meetings should have an agenda
---
GOVERNANCE.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 5709499a..f5ae13a8 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -9,7 +9,6 @@ For context, see https://github.com/json-schema-org/community/pull/325
## JSON Schema Governing Body (TSC)
---- content migrated to Charter.md
While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
@@ -17,6 +16,8 @@ TSC members are expected to regularly participate in TSC activities.
When the TSC meets using virtual conferencing tools, the meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
+TSC meetings should have a clearly defined agenda.
+
At any point, any TSC member may notify the TSC that they are taking a period of leave and should be considered to abstain from any signaling or voting. The TSC member must detail when they expect to return.
The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
From 585cabee6d64182806aafc4c29242152c29abe0a Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Jul 2023 11:23:38 +0100
Subject: [PATCH 107/309] Move roles and responsibilities section back to
charter document with small modification. With thanks for guidance from
Julian
---
CHARTER.md | 16 +++++++++++++++-
GOVERNANCE.md | 15 ---------------
2 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index b5d5d22c..55dbdcb2 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -63,7 +63,21 @@ The TSC aims to work asynchronously. TSC meetings are pre-announced, public, and
## 4: Roles & Responsibilities
-See GOVERNANCE.md
+The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
+
+The TSC has final authority over this project including:
+
+- Technical direction
+- Project governance and process (including this policy)
+- Contribution policy
+- GitHub repository hosting and administration
+- Establishment of and delegation to working groups or teams
+- Mediating technical conflicts
+
+It is also responsible for establishing a Code of Conduct Committee suitable for mediating non-technical conflicts.
+In any period where such a committee is not yet formed, the TSC must assume temporary responsibility of mediating such conflicts in addition to responsibilities enumerated above.
+
+In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
### 4.1 Project Operations & Management
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index f5ae13a8..36545aa9 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -29,21 +29,6 @@ A TSC member may be removed by vote from the TSC if, during a 3-month period, al
There may be other grounds for removal from the TSC, such as seriously violating the Code of Conduct.
-## Roles & Responsibilities
-The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
-
-The TSC has final authority over this project including:
-
-- Technical direction
-- Project governance and process (including this policy)
-- Contribution policy
-- GitHub repository hosting and administration
-- Establishment of and delegation to working groups or teams
-- Mediating technical conflicts
-- Mediating non-technical conflicts (until a formal Code of Conduct Committee is established)
-
-In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
-
## Decision Making
### Decision-making and Voting
From 7834ee4a63596e4b794e430dc2c88b7c896a9931 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Jul 2023 12:02:10 +0100
Subject: [PATCH 108/309] Migrate some content regarding process out of the
governance document back into charter document. Specifically around decision
making and voting. With thanks to Julian for assisting in this revision.
---
CHARTER.md | 17 +++++++++++++++--
GOVERNANCE.md | 11 ++---------
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/CHARTER.md b/CHARTER.md
index 55dbdcb2..28acac41 100644
--- a/CHARTER.md
+++ b/CHARTER.md
@@ -82,9 +82,22 @@ In joining the TSC, members commit to communicate on a regular basis and respond
### 4.1 Project Operations & Management
The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
-#### Decision-making via consensus and voting, and documenting decisions
+#### Decision-making
-See GOVERNANCE.md
+The TSC follows a consensus-seeking decision making model in which joint decisions are agreed upon by all members whenever possible.
+In some situations, a vote may be preferable, however a formal vote is expected to be an infrequent occurrence invoked only when consensus cannot be reached after multiple attempts to reach TSC consensus.
+TSC discussions and decisions are to be assumed public by default, unless otherwise decided upon on a case-by-case basis by the TSC.
+Precise criteria for which decisions are to be left private are left to the TSC's discretion and assumed to include security-related reports or discussions with a third-party who wishes their interactions to remain private, such as when they concern yet unpublished case studies or partnerships which are not yet ready for announcement.
+
+The TSC is expected to agree upon and maintain specific process and procedure which facilitate labelling or communicating which decisions have been formally decided upon by the TSC.
+This process should include a mechanism for identifying ongoing TSC discussions and decision-making.
+When concluded, decisions should include reasoning and/or justification of the TSC, as well as indication of the consensus of the committee, or lack thereof in the case of a voted decision as indicated above.
+Private decisions should also be documented in a private location accessible to parties expected to have access to them.
+
+## Code of Conduct Findings & Violations
+
+Code of Conduct incidents must be reported to the TSC by the Code of Conduct committee.
+Reports must remain anonymous, as per the Code of Conduct, but should be documented in a manner similar to private TSC decisions as mentioned.
## 5: Definitions
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 36545aa9..50eb31ba 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -31,17 +31,8 @@ There may be other grounds for removal from the TSC, such as seriously violating
## Decision Making
-### Decision-making and Voting
-The TSC follows a formal consensus seeking decision making model.
-In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
-In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.
-
### Decision-making via consensus
-When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a private discussion and decision. The TSC member must reach out to the TSC chairs to request a private discussion and decision. A discussion and decision will be private at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be private in rare circumstances.
-
-The kinds of discussions which should be private include security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
-
Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
The Issue must:
- Include brief introductory information about the decision that needs to be made
@@ -55,6 +46,8 @@ In addition to the requirements above, the Issue must be labeled `expedited`.
While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labeled with `tsc-decision`.
+#### Quick consensus process
+
A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `stage-1` added.)
From 7f04034cc7c0b618f2f17f23afd3d8fb23ba1ddf Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 25 Jul 2023 13:21:59 +0100
Subject: [PATCH 109/309] Remove files not related to governance for this PR
---
CHARTER.md | 108 ---------------
TSC.md | 3 -
...023-03-30-establish-consensus-based-tsc.md | 123 ------------------
3 files changed, 234 deletions(-)
delete mode 100644 CHARTER.md
delete mode 100644 TSC.md
delete mode 100644 docs/adr/2023-03-30-establish-consensus-based-tsc.md
diff --git a/CHARTER.md b/CHARTER.md
deleted file mode 100644
index 28acac41..00000000
--- a/CHARTER.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# JSON Schema Charter
-
-
-## 0: Guiding Principles
-The JSON Schema project is part of the OpenJS Foundation. The JSON Schema project strives to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
-
-Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how the TSC wish to operate. As such, the JSON Schema project define the following charter which includes aspects of the governance model to which the TSC subscribe and by which the TSC operate.
-
-## 1: Scope
-JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
-While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. The JSON Schema project aims to enable these additional and emergent use cases.
-
-### 1.1: In-scope
-The scope of the JSON Schema project is split into two sections: primary and secondary concerns.
-Primary concerns are areas the JSON Schema project wish to give focus to. Secondary concerns, while remaining in scope, aren't areas of focus, and would require dedicated championing by community members to come to fruition.
-
-Primary Concerns
-- Publication of the JSON Schema standard
- - Validation of JSON-compatible data
- - Semantic annotation of JSON-compatible data
- - Interoperability
- - Extensibility
-- Critical tooling
-- Documentation
-- Test suite
-- Community
- - Enabling schema authors
- - Enabling implementers
- - Engaging with industry
- - Engaging with upstream and downstream standards and projects
- - Communicating value
- - Ensuring the sustainability of the project
-
-Secondary Concerns
-- Hypermedia
-- Generating JSON Schema
-- Using JSON Schema to generate
- - Code (including types or classes)
- - UI (including forms)
- - Databases
-- Relational validation
-- Vocabularies registry
-
-### 1.2: Out-of-Scope
-Standards that the JSON Schema project uses (such as JSON and IRI), nor standards and projects that use JSON Schema (such as OpenAPI and AsyncAPI), are not things which the JSON Schema project has any control over.
-
-## 2: Relationship with OpenJS Foundation CPC.
-Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").
-
-### 2.1 Other Formal Project Relationships
-Section Intentionally Left Blank
-
-## 3: JSON Schema Governing Body (TSC)
-The JSON Schema Technical Steering Committee (TSC) is initially established from the observed major contributors who are currently active and in good standing.
-
-The TSC must have a minimum of four members. There is no maximum TSC membership size.
-
-TSC memberships are not time-limited.
-
-The TSC follows the decision-making process defined in this charter unless otherwise documented.
-
-The TSC aims to work asynchronously. TSC meetings are pre-announced, public, and recorded. Minutes are taken and the recordings made available. If there is a reasonable reason (such as security or privacy), any portion of a meeting, its minutes, and recording, may be kept private.
-
-## 4: Roles & Responsibilities
-
-The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
-
-The TSC has final authority over this project including:
-
-- Technical direction
-- Project governance and process (including this policy)
-- Contribution policy
-- GitHub repository hosting and administration
-- Establishment of and delegation to working groups or teams
-- Mediating technical conflicts
-
-It is also responsible for establishing a Code of Conduct Committee suitable for mediating non-technical conflicts.
-In any period where such a committee is not yet formed, the TSC must assume temporary responsibility of mediating such conflicts in addition to responsibilities enumerated above.
-
-In joining the TSC, members commit to communicate on a regular basis and respond to issues raised by the TSC in a timely manner. If they are no longer able or willing to make such a commitment, they should discuss this with the TSC or a TSC Chair.
-
-### 4.1 Project Operations & Management
-The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
-
-#### Decision-making
-
-The TSC follows a consensus-seeking decision making model in which joint decisions are agreed upon by all members whenever possible.
-In some situations, a vote may be preferable, however a formal vote is expected to be an infrequent occurrence invoked only when consensus cannot be reached after multiple attempts to reach TSC consensus.
-TSC discussions and decisions are to be assumed public by default, unless otherwise decided upon on a case-by-case basis by the TSC.
-Precise criteria for which decisions are to be left private are left to the TSC's discretion and assumed to include security-related reports or discussions with a third-party who wishes their interactions to remain private, such as when they concern yet unpublished case studies or partnerships which are not yet ready for announcement.
-
-The TSC is expected to agree upon and maintain specific process and procedure which facilitate labelling or communicating which decisions have been formally decided upon by the TSC.
-This process should include a mechanism for identifying ongoing TSC discussions and decision-making.
-When concluded, decisions should include reasoning and/or justification of the TSC, as well as indication of the consensus of the committee, or lack thereof in the case of a voted decision as indicated above.
-Private decisions should also be documented in a private location accessible to parties expected to have access to them.
-
-## Code of Conduct Findings & Violations
-
-Code of Conduct incidents must be reported to the TSC by the Code of Conduct committee.
-Reports must remain anonymous, as per the Code of Conduct, but should be documented in a manner similar to private TSC decisions as mentioned.
-
-## 5: Definitions
-
-TSC: The JSON Schema Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.
-
----
-
-This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
diff --git a/TSC.md b/TSC.md
deleted file mode 100644
index 13165f70..00000000
--- a/TSC.md
+++ /dev/null
@@ -1,3 +0,0 @@
-This file lists the members of the JSON Schema Technical Steering Committee (TSC).
-
-The initial TSC members are [Ben Hutton](https://github.com/relequestual), [Austin Wright](https://github.com/awwright), [Greg Dennis](https://github.com/gregsdennis), [Julian Berman](https://github.com/Julian), [Jason Desrosiers](https://github.com/jdesrosiers), and [Karen Etheridge](https://github.com/karenetheridge), with Ben Hutton being the initial chair.
\ No newline at end of file
diff --git a/docs/adr/2023-03-30-establish-consensus-based-tsc.md b/docs/adr/2023-03-30-establish-consensus-based-tsc.md
deleted file mode 100644
index 81b9faab..00000000
--- a/docs/adr/2023-03-30-establish-consensus-based-tsc.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# Project has formal governance through consensus based Technical Steering Committee
-
-* Status: proposed
-* Deciders: @relequestual, @awwright, @gregsdennis, @Julian, @jdesrosiers, @karenetheridge
-* Date: 2023-03-30
-
-Story: In order to fully onboard with the OpenJS Foundation, and in order to have proper governance, we should have a charter: https://github.com/json-schema-org/community/issues/274
-
-## Context and Problem Statement
-
-It's essential that both the maintainers and community can see a clear and coherent statement about the JSON Schema project and its intentions. Currently it is not clear, and may be hard to determine.
-
-Lack of clear and document governance makes it very difficult in some situations to move some issues forward. The current "process" is mostly undocumented and ad-hoc, with loose collective will.
-As the number of people who can work on this full or part time grows, the organizational needs will evolve, requiring governance for long term sustainability.
-Having a clear and documented governance model will allow us to make clear progress with an unambiguous process defined.
-
-When we joined the OpenJS Foundation, we committed to creating a charter. They provide a template for use, which several projects have used. We should use it as our basis, but we may also want to consider additional elements or sections.
-
-## Decision Drivers
-
-- JSON Schema committed to forming a governance model as part of a charter when we joined the OpenJS Foundation
-- It has sometimes been difficult to reach decisions on tricky topics, with no clear way to resolve divisive issues
-- Undocumented process can lead to an imbalance of power which is undesirable
-- Defining a process can help make sure everyone has space to be heard
-- Defining expectations up front can help everyone know what the next steps are and avoid decision stagnation
-- Gives internal and external confidence of long term viability
-
-## Considered Options
-
-- Voting
-- Unanimous Consensus
-- General/rough consensus
-- Lazy consensus / Do-ocracy
-- Benevolent Dictator (for life)
-
-## Decision Outcome
-
-We settled on Consensus and Voting, with a preference for consensus. Ideally we would like to have unanimous consensus, however reflecting on how requiring that might [not always be a good thing](https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/), we landed on a variation of what's known as the N Street Consensus Method. This wasn't originally one of the consensus models proposed, but was discovered during the process and found in favour over general or nondescript "consensus".
-
-In consensus based decision making, any individual can signal "block", which works like a veto when voting. It is a signal that the consensus process has failed, or the conditions for forming consensus are not as good as they could be. Given any member may signal a "block", this may give individual members disproportional power, and blocks may be used inappropriately, such as for personal reasons.
-
-Ideally, major or critical reservations should have been worked out as part of the consensus building process. However, it is possible that a presented solution may have had something untenable added in error. We also define using aspects of the N Street based consensus method for resolving blocks, requiring that a blocker commit to trying to find a new or amended solution. There is a fallback of voting should resolving a block not be possible.
-
-It's recognised that some decision making may not be suitable for using the consensus approach, or voting may be preferable, and voting is provided as a rare fall-back solution.
-
-### Positive Consequences
-
-- Everyone has the opportunity to be heard and understood
-- Shares power between all members fairly
-- More likely to find a solution that is acceptable to all involved in resolving a given issue
-- Make sure that decisions aren't made against the will of anyone involved
-- Members are likely to assist or help in enacting the resolution
-- Builds a stronger sense of trust
-- Voting as a fall-back helps avoid eternal blocking
-
-### Negative Consequences
-
-- Consensus can be slower than voting
-- Still provides some additional powers to the facilitating Chair/s
-- May make some types of decisions harder
-- Potential for "Groupthink"
-- Requires continual active engagement
-- May make bad decisions
-- Blocking can be abused against individuals
-
-## Pros and Cons of the Options
-
-### Voting
-
-Voting with a majority rule.
-
-- Good, because it enables decisions to be made clearly and quickly
-- Good, because it gives everyone equal power
-- Bad, because it may not allow individuals to be fully heard
-- Bad, because decisions can be divisive
-
-### Unanimous Consensus
-
-Consensus where everyone must be in agreement
-
-- Good, because everyone consents to the solution
-- Bad, because it can create a fear of proposing ideas
-
-See https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
-
-### General/rough consensus
-
-As used by the IETF
-
-- Good, because it allows progress without requiring all to agree
-- Good, because it can be faster than other consensus based methods
-- Good, because the chairperson can make judgement calls
-- Good, because it allows anonymity, encouraging people to vocalise concerns without fear of retribution or judgement
-- Bad, because it's hard to do not in-person / requires regular in-person meetings to be effective
-- Bad, because it can be subjective
-- Bad, because it puts a lot of power in the chairperson
-
-### Lazy consensus / Do-ocracy
-
-- Good, because it allows progress without requiring everyone to be involved
-- Good, because it enables faster progress
-- Good, because it can foster a sense of trust and community
-- Good, because it empowers do-ers
-- Bad, because it is possible for people to miss things
-- Bad, because it assumes silence is consent, which can result in people less likely to want to raise concerns
-- Bad, because it creates a power imbalance where people who have more time or who are more influential can push decisions through
-
-### Benevolent Dictator (for life)
-
-- Good, because it enables very fast progress
-- Good, because it can help to have a clear and consistent vision
-- Good, because there's clear accountability, which might encourage a BDFL to act in the best interests of the project
-- Bad, because it prevents diverse opinions or ideas
-- Bad, because concentrated power can be abused
-- Bad, because it discourages participation from the community
-
-## Links
-
-Useful resources in helping make this decision
-
-- https://seedsforchange.org.uk/consensus
-- https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities
-- https://copim.pubpub.org/towards-better-practices-for-the-community-governance-of-open-infrastructures
\ No newline at end of file
From 31f03e4b07f9f58fe9901fd10c203b5b95b59991 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 18 Aug 2023 15:54:26 +0100
Subject: [PATCH 110/309] Fix typo
Co-authored-by: Jason Desrosiers
---
GOVERNANCE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 50eb31ba..e706c133 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -110,7 +110,7 @@ Signaling "Reservations" means an agreement on the overall direction, however th
If "Reservations" is signalled three consecutive times by the same individual/s, anyone may call for no further attempts to remediate the reservations, and the proposal will pass.
-Signaling "Stand Aside" convey consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
+Signaling "Stand Aside" conveys consent, but an unwillingness for whatever reason to be further involved. It could be for example that the individual does not have time to participate, or that they have limited opinions on the specific decision. The individual may provide a reason for standing aside. If the individual believes the reason can be remedied by the group, the group should seek to remedy the reason where possible, with help from the facilitator.
The TSC will make every reasonable effort to reach unanimity based consensus. If unanimity seems unlikely after several failed attempts to revise the proposal and Test for Agreement, if the proposal is clear, the decision may be moved to a vote, at the discretion of the TSC Chairs. This is a last resort.
From 979c71961a83c04683db61977713e18a95c1deea Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 17 Oct 2023 13:20:53 +0100
Subject: [PATCH 111/309] Make labels prefixed with `tsc`
---
GOVERNANCE.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index e706c133..4be090d0 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -50,7 +50,7 @@ While an associated Discussion is not required, if one is used, it must be clear
A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
-The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `stage-1` added.)
+The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `tsc-stage-1` added.)
#### Standard consensus process
@@ -59,7 +59,7 @@ The standard consensus process is designed for all non-trivial decisions.
A decision discussion may be started by creating an Issue and Discussion in the TSC repository.
In addition to the requirements above, the Issue must:
-- Be labeled with `stage-1`
+- Be labeled with `tsc-stage-1`
- Link to the associated initial Discussion
The Discussion must:
@@ -159,4 +159,4 @@ This work is a derivative of the [WebdriverIO Project Governance Model](https://
Inspired by https://seedsforchange.org.uk/consensus, https://seedsforchange.org.uk/quickconsensus
Informed by https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/
-This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
\ No newline at end of file
+This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
From 6e4aba4c7e53bdd7663a82eede38ac6126c7f0d5 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 17 Oct 2023 13:25:27 +0100
Subject: [PATCH 112/309] Modify TSC membership by employer conditions
As suggested by @benjagm
---
GOVERNANCE.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 4be090d0..0120c0c4 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -9,8 +9,7 @@ For context, see https://github.com/json-schema-org/community/pull/325
## JSON Schema Governing Body (TSC)
-
-While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
+It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there are no limits on TSC membership by employer, as soon as the TSC reach 10 members a rule will be enabled to set the limit to at least less than 50%, ideally 33% (One third, one in three).
TSC members are expected to regularly participate in TSC activities.
From 48e6d9ce79f6de0a913e2904cfaf065e8d9999a2 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 17 Oct 2023 13:29:13 +0100
Subject: [PATCH 113/309] Update GOVERNANCE.md
Remove mention of OpenJS Foundation
---
GOVERNANCE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 0120c0c4..f9873c2b 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -142,7 +142,7 @@ Private decisions should be documented (as an ADR or otherwise) in the private `
## Other Project Roles
-The JSON Schema project recognizes the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
+The JSON Schema project recognizes the need for both technical and non-technical roles. While the JSON Schema project has no legal entity nor is housed within an entity which can take on business responsibilities, the TSC shall take on those responsibilities as much is as feasible. There are other non-technical responsibilities
The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognize the additional roles.
From b1b091f741ed469d417abc7518db14fbe50b2367 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 28 Nov 2023 15:53:10 +0100
Subject: [PATCH 114/309] Update blog-guidelines.md
---
docs/blog-guidelines.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/blog-guidelines.md b/docs/blog-guidelines.md
index 9349e2f5..16cbf572 100644
--- a/docs/blog-guidelines.md
+++ b/docs/blog-guidelines.md
@@ -46,7 +46,7 @@ The JSON Schema project will review the statement, as we do for the content for
Please feel free to share the blog on social media.
## How to submit for consideration ##
-Please submit your PR for consideration and we will start the PR process. If the article is not suitable for the JSON Schema blog, we will provide feedback and direction.
+Please submit your PR for consideration and we will start the PR process. If the article is not suitable for the JSON Schema blog, we will provide feedback and direction. Find here an example of [blog PR](https://github.com/json-schema-org/website/pull/177).
### Note on JSON Champions
Until we publish an official definition of JSON Schema Champion, we consider JSON Schema Champions to experts, educators, authors, and event organizers relevant to the JSON Schema ecosystem.
From 809489ae256e89f3442dd98f454f6a9eb250ffce Mon Sep 17 00:00:00 2001
From: Julian Berman
Date: Tue, 28 Nov 2023 10:39:19 -0500
Subject: [PATCH 115/309] Add a proposed mechanism for tracking known "quality"
implementations.
There is obvious slight overlap here with our existing list of
implementations on the web page -- note though that we have loose (or
no) criteria for listing implementations on the page.
Here instead we wish to specifically raise languages for which we know
no good implementation to exist, despite the language being popular or
widespread, if any.
What's here does *not* yet render this data anywhere, nor does it
implement the dynamic API calling mentioned in the body (for retrieving
statistics from any listed repository).
What it does do is identify a simple initial list of languages (from
TIOBE and GitHub's own lists), and propose a format for tracking data
points about implementations meeting the proposed criteria.
The initial goal is to get feedback on this template, and to solicit
help in filling it in for these languages.
Refs: json-schema-org/community#418
---
programs/cross-language-coverage/README.md | 74 ++++++++++++++++++++++
1 file changed, 74 insertions(+)
create mode 100644 programs/cross-language-coverage/README.md
diff --git a/programs/cross-language-coverage/README.md b/programs/cross-language-coverage/README.md
new file mode 100644
index 00000000..f7222e45
--- /dev/null
+++ b/programs/cross-language-coverage/README.md
@@ -0,0 +1,74 @@
+# Cross-language Implementation Quality
+
+This directory collects metrics to assist in confirming the presence of (at least one) "high quality" implementations across programming languages.
+
+Absence from this directory is not meant to be a slight against anyone or anyone's work certainly.
+
+The goals are to identify gaps in the ecosystem that might need assistance, and ultimately to help the JSON Schema ecosystem and its users in finding solid, compliant implementations.
+
+The intial collection of TODO programming languages which appears below is simply a starting point, based largely on:
+
+ * the [GitHub popularity list](https://octoverse.github.com/2022/top-programming-languages)
+ * the [TIOBE index](https://www.tiobe.com/tiobe-index/)
+
+where it combines languages at the top of the popularity list with those on the rising / fastest growing list.
+
+You can help this exercise!
+For each language, we wish to track whether one or more known implementations exist which:
+
+ * Fail less than 2% (around 30) tests from the official JSON Schema test suite
+ (This 2% number was chosen simply because it represents the dividing point between one cluster of implementations supported by Bowtie.
+ Above this number is a collection of implementations failing larger orders of magnitude of tests).
+ * Supports one of the most recent 2 releases of JSON Schema
+ * Has had a release of itself in the last 3 years (which is around the timeline on which JSON Schema itself has seen its last release)
+ * Has had some human-authored commit in the last year
+ * Does not have explicit indication, by its maintainer or documentation, that it is not production ready
+
+and then highlight any languages for which this is not the case.
+
+For languages that *do* have one or more such implementations, we then wish to include:
+
+ * the name and link to the implementation
+ * the date of its last commit
+ * the date of its last release
+ * the number of open security vulnerabilities it has, if known
+ * the number of open issues it has on its issue tracker
+ * the number of open pull requests it has
+ * whether it implements some or all of the interfaces specified on our Common Interfaces page (https://json-schema.org/implementers/interfaces),
+ and if so, which
+
+A number of the above data points are likely to change often.
+We therefore assume only some of the above should be tracked in this directory, and the remainder will be retrieved programmatically if or when this information is used.
+
+An example entry for this directory is:
+
+```yaml
+language: Blub
+implementations:
+ - name: jsonschema-ftw
+ url: https://example.com/someone/jsonschema-ftw
+ known_to_have:
+ many_failing_tests: false
+ recent_draft_support: true
+ recent_release: true
+ recent_commit: true
+ non_production_status: false
+ metrics:
+ # last_commit_date: fetched from GitHub
+ # last_release_date: fetched from GitHub
+ # open_security_vulnerabilities: fetched from GitHub
+ # open_issues: fetched from GitHub
+ # open_prs: fetched from GitHub
+ known_interfaces:
+ instance-validation: https://docs.jsonschema-ftw.com/validation/validate_function
+ version-detection: https://docs.jsonschema-ftw.com/validation/version_of_schema
+```
+
+Note that *not* all of the above must precisely match in order to be considered for inclusion!
+Specifically, an implementation with *no* recent commits is not disqualified from being considered "high quality".
+One with a high number of failing tests however, is indeed likely not to meet the definition.
+The above is simply meant to track these data points without necessarily imposing all of them as gospel -- users of these libraries should make their own judgements there.
+
+Please pick a language you're familiar with and feel free to fill in such an entry!
+
+Feedback on this format itself is also welcome in an issue!
From 9901d61b6e8d9544f12300591671715d7e23b0b5 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 28 Nov 2023 15:46:12 +0000
Subject: [PATCH 116/309] Remove duplicate header
---
GOVERNANCE.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index f9873c2b..b68f1c80 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -45,8 +45,6 @@ In addition to the requirements above, the Issue must be labeled `expedited`.
While an associated Discussion is not required, if one is used, it must be clearly linked in both directions, and be labeled with `tsc-decision`.
-#### Quick consensus process
-
A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.
The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for (in a follow up comment on the Issue. Not in the opening comment.), and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started. (Label `expedited` should be removed and `tsc-stage-1` added.)
From 05d87982342868293577f005c494c1838913216e Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 29 Nov 2023 10:16:44 +0100
Subject: [PATCH 117/309] Improved Adopters template.
---
programs/adopters/templates/tweet_template.md | 22 ++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/programs/adopters/templates/tweet_template.md b/programs/adopters/templates/tweet_template.md
index 7a234c19..012c1e03 100644
--- a/programs/adopters/templates/tweet_template.md
+++ b/programs/adopters/templates/tweet_template.md
@@ -1,5 +1,21 @@
-📣 🎉 We are pleased to welcome @xxxxxxx to the official list of JSON Schema adopters!
+### Twitter Template
- Man@xxxxxxxfred is a ....
+📣 🎉 We are pleased to welcome ____ to the official list of JSON Schema adopters!
-Know more ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
\ No newline at end of file
+_______ is a
+
+More about JSON Schema Adopters list ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
+
+🧐🧵
+
+Know more about _______ use case :
+
+### Linkedin Template
+
+📣 🎉 We are pleased to welcome ______ to the official list of JSON Schema adopters!
+
+________ is a
+
+Know more about ______ use case 💡
+
+More about JSON Schema Adopters list ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
\ No newline at end of file
From 4aaa101cbf9b3ae00a1e73f332597a19c654ca24 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 29 Nov 2023 10:20:27 +0100
Subject: [PATCH 118/309] Update tweet_template.md
---
programs/adopters/templates/tweet_template.md | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/programs/adopters/templates/tweet_template.md b/programs/adopters/templates/tweet_template.md
index 012c1e03..4da486d2 100644
--- a/programs/adopters/templates/tweet_template.md
+++ b/programs/adopters/templates/tweet_template.md
@@ -18,4 +18,14 @@ ________ is a
Know more about ______ use case 💡
-More about JSON Schema Adopters list ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
\ No newline at end of file
+More about JSON Schema Adopters list ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
+
+### Slack
+
+:mega: :tada: We are pleased to welcome ______ to the official list of :star: JSON Schema adopters :star:!
+______ is a ....
+
+Know more about JSON Schema Adopters :arrow_right: https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
+Know more about _____ use case :bulb:
+
+Is your Organization using JSON Schema? Please join the [Adopters list](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md) and help us to grow the JSON Schema Ecosystem by sharing your use case.
\ No newline at end of file
From 85959b565cb0a07ffcef958b441644cb9040ba7f Mon Sep 17 00:00:00 2001
From: Julian Berman
Date: Wed, 29 Nov 2023 16:01:26 -0500
Subject: [PATCH 119/309] Remove comparing the implementation last-release
period to JSON Schema's own.
---
programs/cross-language-coverage/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/cross-language-coverage/README.md b/programs/cross-language-coverage/README.md
index f7222e45..99b78a12 100644
--- a/programs/cross-language-coverage/README.md
+++ b/programs/cross-language-coverage/README.md
@@ -20,7 +20,7 @@ For each language, we wish to track whether one or more known implementations ex
(This 2% number was chosen simply because it represents the dividing point between one cluster of implementations supported by Bowtie.
Above this number is a collection of implementations failing larger orders of magnitude of tests).
* Supports one of the most recent 2 releases of JSON Schema
- * Has had a release of itself in the last 3 years (which is around the timeline on which JSON Schema itself has seen its last release)
+ * Has had a release of itself in the last 3 years
* Has had some human-authored commit in the last year
* Does not have explicit indication, by its maintainer or documentation, that it is not production ready
From a6122f64d0bab19cc7e865a46b3a4ba39cece9c3 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 28 Nov 2023 14:54:10 +0000
Subject: [PATCH 120/309] Make the "not ratified" notice more prominent
---
GOVERNANCE.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index f9873c2b..b388255f 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -1,4 +1,5 @@
-🚨 This document is not ratified 🚨
+# 🚨 This document is not ratified 🚨
+
In the process of creating a charter, many "process" and governance related things were included in the draft of the charter. Feedback was that the charter should not include such content, and that it should be moved to a separate file. This is that file.
The initial commit includes content already approved by the group, however some additional content will be added at a later point, and this comment removed.
For context, see https://github.com/json-schema-org/community/pull/325
From 02ebc86d3b72f6a258994c5f18b6236548fecc47 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 2 Jan 2024 11:39:11 +0100
Subject: [PATCH 121/309] Improve references section
---
programs/sponsors/sponsors.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index ccd745d4..f6e29e95 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -76,6 +76,7 @@ Please, [contact us](mailto:info@json-schema.org) if you have further questions.
-### References:
+
+**References:**
- [JHipster - Sponsors](https://www.jhipster.tech/sponsors/)
- [MUI Code - Sponsors and Backers](https://mui.com/material-ui/discover-more/backers/)
\ No newline at end of file
From 9a79aa5605b0da5c989240a931902fc9eabbc3d9 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 2 Jan 2024 11:41:19 +0100
Subject: [PATCH 122/309] Add new lines.
---
programs/sponsors/sponsors.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index f6e29e95..3ac52182 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -74,7 +74,7 @@ Please, [contact us](mailto:info@json-schema.org) if you have further questions.
-
+
**References:**
From 356aac9540addfd133359f6a2a273e5b7e67b8ab Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 5 Jan 2024 16:14:55 +0100
Subject: [PATCH 123/309] Template to announce implementations
---
.../implementers/templates/tweet_template.md | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
create mode 100644 programs/implementers/templates/tweet_template.md
diff --git a/programs/implementers/templates/tweet_template.md b/programs/implementers/templates/tweet_template.md
new file mode 100644
index 00000000..835527d3
--- /dev/null
+++ b/programs/implementers/templates/tweet_template.md
@@ -0,0 +1,29 @@
+### Twitter Template
+
+🎉🎉 We are so excited to announce the last addition to the JSON Schema Implementations page!
+
+------- is a ------- by ------
+
+Check it out! 🔗 https://github.com/JulianCataldo/remark-lint-frontmatter-schema
+
+For more tooling visit: https://json-schema.org/implementations
+
+### Linkedin Template
+
+🎉🎉 We are so excited to announce the last addition to the JSON Schema Implementations page!
+
+⭐️ ------- ⭐️ is a ------- by ------
+
+Check it out! 🔗 Link
+
+Please, visit the JSON Schema Implementations page to explore all the implementations available in the Ecosystem 🔗 https://json-schema.org/implementations
+
+### Slack
+
+🎉🎉 We are so excited to announce the last addition to the JSON Schema Implementations page!
+
+⭐️ ------- ⭐️ is a ------- by ------
+
+Check it out! 🔗 Link
+
+Please, visit the JSON Schema Implementations page to explore all the implementations available in the Ecosystem 🔗 https://json-schema.org/implementations
\ No newline at end of file
From 8bf940951805fba90f694e24bf9ba38d7448d529 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 10 Jan 2024 11:10:56 +0100
Subject: [PATCH 124/309] Improve format and add community platform tools
---
INFRASTRUCTURE.md | 43 ++++++++++++++++++++++++-------------------
1 file changed, 24 insertions(+), 19 deletions(-)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index 265a9b79..c56a1fc5 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -2,35 +2,31 @@
First, let's address some details of this document.
-
- What, why, who...
+## What?
- ## What?
+This document outlines the various systems that JSON Schema the organisation uses and maintains.
+This does not include social media profiles.
- This document outlines the various systems that JSON Schema the organisation uses and maintains.
- This does not include social media profiles.
+## Why?
- ## Why?
+It's part of the required tasks to be completed by the OpenJS Foundation, forming an item of the [onboarding checklist](https://github.com/openjs-foundation/cross-project-council/blob/main/PROJECT_PROGRESSION.md#onboarding-checklist).
+It's also probably good practice.
- It's part of the required tasks to be completed by the OpenJS Foundation, forming an item of the [onboarding checklist](https://github.com/openjs-foundation/cross-project-council/blob/main/PROJECT_PROGRESSION.md#onboarding-checklist).
- It's also probably good practice.
+This enables members of the JSON Schema team, and the OpenJS Foundation, to have oversight and management of such infrastructure should it be required.
- This enables members of the JSON Schema team, and the OpenJS Foundation, to have oversight and management of such infrastructure should it be required.
+## Who?
- ## Who?
-
- This was mainly a list created by Ben Hutton (@relequestual).
- Others are free to amend and update this (via Pull Requests) as is required.
-
-
+This was mainly a list created by Ben Hutton (@relequestual).
+Others are free to amend and update this (via Pull Requests) as is required.
+## Code and Communication
JSON Schema mostly operates on GitHub and Slack.
-Our GitHub organisation is located at https://github.com/orgs/json-schema-org.
-
-Our Slack server is located at https://json-schema.slack.com.
+* Our GitHub organisation is located at https://github.com/orgs/json-schema-org.
+* Our Slack server is located at https://json-schema.slack.com.
(Anyone can join using https://json-schema.org/slack.)
+## Domain and hosting
The JSON Schema organisation maintains ONE domain name: json-schema.org.
The domain name is registered and paid for by the OpenJS Foundation.
@@ -38,15 +34,18 @@ The domain name is registered and paid for by the OpenJS Foundation.
The domain name defers its name servers to CloudFlare.
The DNS mostly points to GitHub.
+## Website
The website is split into several applications for historical reasons.
The main website is run through Cloudflare Pages. The source code is located at https://github.com/json-schema-org/website.
+
A key set of resources hosted by the site are the JSON Schema meta-schemas, which are used to indicate which schemas are themselves valid for each version of the specification.
These resources are potentially heavily used or referred to by consumers of JSON Schema.
Links to these resources can be found at https://json-schema.org/specification.html for the latest version of JSON Schema, and at https://json-schema.org/specification-links.html for older versions.
The working location for these resources is in the specification repository at https://github.com/json-schema-org/json-schema-spec/, and they are then included into the aforementioned website repository for publishing using `git submodule`.
+## Bots
The Slack server has a number of bots which feed data into specific channels.
The bot which feeds tweets containing JSON Schema from Twitter to the #twitter-mentions is now inactive after the changes in the Twitter API. The bot was created by [Mike Ralphson](https://twitter.com/PermittedSoc). We have no access to it.
@@ -61,7 +60,13 @@ The #ghd-community channel bot uses Zapier to process webhooks for our Community
The Zapier account is owned and paid for by Postman. If this ever might become a problem, we should move to our own licence.
At the time, there was no official app integration.
-The Community metrics previously available in Google Analytics are now in Plausible.
+## Metrics
+
+The website metrics previously available in Google Analytics are now in Plausible.
+
+For the Community metrics we are using Common Room and Orbit.
+
+## Email
We are using mailfence to manage the email accounts associated to json-schema.org.
From 8ccc536255258961824c1850d20e7447d361da7f Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 12 Jan 2024 10:44:44 +0100
Subject: [PATCH 125/309] Rename templates for clarity
---
.DS_Store | Bin 6148 -> 6148 bytes
...t_template.md => socialmedia-promotion.md} | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename programs/implementers/templates/{tweet_template.md => socialmedia-promotion.md} (100%)
diff --git a/.DS_Store b/.DS_Store
index ae3e8d09e296886cda1ca0212c2748ab1a10dae9..4cd1e457a9138f7ebabd63586cf578cd3e171951 100644
GIT binary patch
delta 67
zcmZoMXfc=|#>B)qu~2NHo+2a5#(>?7j4YdZSne@y7U2+Pnb^R!nVo~51E^%PAjfy+
V$^0UY91K9f$iTp|IYML&GXOIw4*UQB
delta 89
zcmZoMXfc=|#>B!ku~2NHo+2aL#(>?7i&&T#**5bq-DBirVMu2vX2@qqp3K91f*s1<
me4E*oaWgvyKL=3b=8w$ZnJ4p$IC3yDFfcIy!R82&HOv6)xD_z~
diff --git a/programs/implementers/templates/tweet_template.md b/programs/implementers/templates/socialmedia-promotion.md
similarity index 100%
rename from programs/implementers/templates/tweet_template.md
rename to programs/implementers/templates/socialmedia-promotion.md
From 72d7d32c16ae1dce7fe7f3f71e60572626bfa43f Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 12 Jan 2024 10:47:45 +0100
Subject: [PATCH 126/309] Rename templates for clarity
---
.../templates/{tweet_template.md => socialmedia-promotion.md} | 0
.../templates/{tweet_template.md => socialmedia-promotion.md} | 0
.../sponsors/templates/{email_template.md => welcome-email.md} | 0
3 files changed, 0 insertions(+), 0 deletions(-)
rename programs/adopters/templates/{tweet_template.md => socialmedia-promotion.md} (100%)
rename programs/sponsors/templates/{tweet_template.md => socialmedia-promotion.md} (100%)
rename programs/sponsors/templates/{email_template.md => welcome-email.md} (100%)
diff --git a/programs/adopters/templates/tweet_template.md b/programs/adopters/templates/socialmedia-promotion.md
similarity index 100%
rename from programs/adopters/templates/tweet_template.md
rename to programs/adopters/templates/socialmedia-promotion.md
diff --git a/programs/sponsors/templates/tweet_template.md b/programs/sponsors/templates/socialmedia-promotion.md
similarity index 100%
rename from programs/sponsors/templates/tweet_template.md
rename to programs/sponsors/templates/socialmedia-promotion.md
diff --git a/programs/sponsors/templates/email_template.md b/programs/sponsors/templates/welcome-email.md
similarity index 100%
rename from programs/sponsors/templates/email_template.md
rename to programs/sponsors/templates/welcome-email.md
From 66746b4534d92fe6af858e86b0f28b359899777b Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 16 Jan 2024 11:26:03 +0100
Subject: [PATCH 127/309] Change cron instruction to run at 15:00 instead of
20:00
---
.github/workflows/ocwm-reminders.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
index a3e703d2..548f0050 100644
--- a/.github/workflows/ocwm-reminders.yml
+++ b/.github/workflows/ocwm-reminders.yml
@@ -2,7 +2,7 @@ name: Send reminders to join the OCWM the same day
on:
schedule:
- - cron: '0 20 * * 1' # Runs every Monday at 15:00
+ - cron: '0 15 * * 1' # Runs every Monday at 15:00
repository_dispatch:
types: ocwm-reminders
From f5c7d0080d57e6c357d3a8abd2f4dac6df1ce080 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 18 Jan 2024 07:04:26 +0100
Subject: [PATCH 128/309] Updated to adhere to Sensible Github Labels
---
TRIAGE.md | 54 ++++++++++++++++++++++++++++++++++++------------------
1 file changed, 36 insertions(+), 18 deletions(-)
diff --git a/TRIAGE.md b/TRIAGE.md
index 8064a2c5..8b85e90b 100644
--- a/TRIAGE.md
+++ b/TRIAGE.md
@@ -15,39 +15,56 @@ If you don't have the knowledge or time to code, consider helping with triage. T
## GitHub Labels
-Area labels help categorize issues based on their scope:
+Labels are assigned based on [Sensible Github Labels](https://github.com/Relequestual/sensible-github-labels).
+
+Type labels help categorize issues based on their scope:
| Label | Description |
| ------------------------ | ------------------------------------------------------------------------- |
-| `bug` | Indicates that the issue is a bug or a software defect. |
-| `enhancement` | Indicates that the issue suggests an improvement or new feature. |
-| `documentation` | Indicates improvements or additions to documentation. |
-| `roadmap` | Indicates epics and tasks related to roadmap items. |
-| `programs` | Indicates epics and tasks related to Community programs. |
-| `team` | Indicates issues for team collaboration. |
-| `adr-required` | Indicates issues requiring Architectural Decision Record |
-
-Severity labels:
+| `🐛 Bug` | Indicates that the issue is a bug or a software defect. |
+| `✨ Enhancement` | Indicates that the issue suggests an improvement or new feature. |
+| `📝 Documentation` | Indicates improvements or additions to documentation. |
+| `🎯 Roadmap` | Indicates epics and tasks related to roadmap items. |
+| `🏗️ Programs` | Indicates epics and tasks related to Community programs. |
+| `👥 Team` | Indicates issues for team collaboration. |
+| `🗃️ Adr-required` | Indicates issues requiring Architectural Decision Record |
+| `💬 Question` | A query or seeking clarification. Probably doesn't need the attention of everyone, just a few to help bring clarification or explain intent.|
+| `🤝 Vote` | Indicates issues for voting on an specific topic. |
+
+Priority labels:
| Label | Description |
| ------------------------ | ------------------------------------------------------------------------- |
-| `High priority` | High priority flow or feature is broken/non-functional, crash. |
-| `Critical priority` | Indicates Critical impact on data or site: data loss (posts, pages, comments), unexpected publishing, security issue.|
-
+| `Priority: Critical` | This should be dealt with ASAP. Not fixing this issue would be a serious error.|
+| `Priority: High` | After critical issues are fixed, these should be dealt with before any further issues.|
+| `Priority: Medium` | This issue may be useful, and needs some attention.|
+| `Priority: Low` | This issue can probably be picked up by anyone looking to contribute to the project, as an entry fix.|
+Status labels:
+| Label | Description |
+| ------------------------ | ------------------------------------------------------------------------- |
+| `Status: Available` | No one has claimed responsibility for resolving this issue. Generally this will be applied to bugs and enhancement issues, but may be applied to others.|
+| `Status: Accepted` | It's clear what the subject of the issue is about, and what the resolution should be.|
+| `Status: Blocked` | There is another issue that needs to be resolved first, or a specific person is required to comment or reply to progress. There may also be some external blocker.|
+| `Status: Completed` | Nothing further to be done with this issue. Awaiting to be closed by the requestor out of politeness, or can be closed by a project member.|
+| `Status: In Progress` | This issue is being worked on, and has someone assigned.|
+| `Status: On Hold` | Similar to blocked, but is assigned to someone. May also be assigned to someone because of their experience, but it's recognised they are unable to process the issue at this time.|
+| `Status: Review Needed` | The issue has a PR attached to it which needs to be reviewed. Should receive review by others in the community, and at least one member / comitter. Specifics on when merging PRs is allowed is still up for debate.|
+| `Status: Revision Needed`| At least two people have seen issues in the PR that makes them uneasy. Submitter of PR needs to revise the PR related to the issue.|
+| `Status: Abandoned` | It's believed that this issue is no longer important to the requestor and no one else has shown an interest in it.|
Other labels:
| Label | Description |
| ------------------------ | ------------------------------------------------------------------------- |
| `good first issue` | Indicates that the issue is suitable for newcomers to contribute to the project.|
-| `question` | Indicates that the issue lacks sufficient information to be able to act on it right now and requires additional details from the reporter. The maintainer for the area must remove the tag when more info is provided, or close it if it is too old.|
| `duplicate` | Indicates that is duplicated. |
+| `inf-required` | Indicates that the issue lacks sufficient information to be able to act on it right now and requires additional details from the reporter. The maintainer for the area must remove the tag when more info is provided, or close it if it is too old.|
## Triage process
At the end of reading an issue, you should do one of the following:
-1. Make sure to search in previous issue to ensure this is not a duplicated issue. If that is the case, mark it as `duplicate` and close it referencing the original issue. If the issue is clear, ensure it has the correct `area` assigned. Also consider if it is a `good first issue`.
+1. Make sure to search in previous issue to ensure this is not a duplicated issue. If that is the case, mark it as `duplicate` and close it referencing the original issue. If the issue is clear, ensure it has the correct `type` assigned and the status `status: Available`. Also consider if it is a `good first issue`.
-2. Asses the issue severity to determine what functionality is affected and how broken it is and use the severity labels just for High and Critical cases.
+2. Asses the issue priority to determine what functionality is affected and how broken it is and use the priority labels.
3. If the submitter or the reviewer believe the resolution of the Issue is likely to result in a significant or noteworthy change it will be labeled as `adr-required`.
@@ -55,11 +72,12 @@ At the end of reading an issue, you should do one of the following:
5. If it's not clear what the problem or issue is, add a note for the requestor (or occasionally some other user on the thread), and mark it as `question`. If a `question` issue persists for longer than a week or so (past a second followup), it's reasonable to `close` the issue and encourage the requester to reopen if they have more details.
-6. If the request is infeasable, or complete, follow up directly in the issue with the information, and `close` the issue.
+6. If the request is infeasable, or complete,use `status: Completed`` follow up directly in the issue with the information, and `close` the issue.
### References
This process has been inspired by some great processes defined by Open Source projects like:
- [Knative triage process](https://github.com/knative/serving/blob/main/support/TRIAGE.md).
- [Grafana triage process](https://github.com/grafana/faro-web-sdk/blob/main/ISSUE_TRIAGE.md).
-- [Wordpress triage process](https://github.com/wordpress-mobile/WordPress-iOS/blob/trunk/docs/issue-triage.md).
\ No newline at end of file
+- [Wordpress triage process](https://github.com/wordpress-mobile/WordPress-iOS/blob/trunk/docs/issue-triage.md).
+- [Sensible Github Labels](https://github.com/Relequestual/sensible-github-labels).
\ No newline at end of file
From 3a3c07d2e186c8e1fad997eeb848a4c359e2650b Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 18 Jan 2024 07:08:44 +0100
Subject: [PATCH 129/309] Update 'info-required' wording
---
TRIAGE.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/TRIAGE.md b/TRIAGE.md
index 8b85e90b..4fdc85d6 100644
--- a/TRIAGE.md
+++ b/TRIAGE.md
@@ -56,7 +56,7 @@ Other labels:
| ------------------------ | ------------------------------------------------------------------------- |
| `good first issue` | Indicates that the issue is suitable for newcomers to contribute to the project.|
| `duplicate` | Indicates that is duplicated. |
-| `inf-required` | Indicates that the issue lacks sufficient information to be able to act on it right now and requires additional details from the reporter. The maintainer for the area must remove the tag when more info is provided, or close it if it is too old.|
+| `info-required` | Indicates that the issue lacks sufficient information to be able to act on it right now and requires additional details from the reporter. The maintainer for the area must remove the tag when more info is provided, or close it if it is too old.|
## Triage process
@@ -70,9 +70,9 @@ At the end of reading an issue, you should do one of the following:
4. Move the issue to the correct repo if required.
-5. If it's not clear what the problem or issue is, add a note for the requestor (or occasionally some other user on the thread), and mark it as `question`. If a `question` issue persists for longer than a week or so (past a second followup), it's reasonable to `close` the issue and encourage the requester to reopen if they have more details.
+5. If it's not clear what the problem or issue is, add a note for the requestor (or occasionally some other user on the thread), and mark it as `info-required`. If a `info-required` issue persists for longer than 2 weeks or so (past a second followup), it's reasonable to `close` the issue using `Status: Abandoned` and encourage the requester to reopen if they have more details.
-6. If the request is infeasable, or complete,use `status: Completed`` follow up directly in the issue with the information, and `close` the issue.
+6. If the request is infeasable, or complete,use `status: Completed` follow up directly in the issue with the information, and `close` the issue.
### References
From c39cacd86d64ec424923cccffbe65e01d9ac18f2 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 18 Jan 2024 07:54:33 +0100
Subject: [PATCH 130/309] Remove vote as type of issue. This will be made
through discussions.
---
TRIAGE.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/TRIAGE.md b/TRIAGE.md
index 4fdc85d6..5bbde05f 100644
--- a/TRIAGE.md
+++ b/TRIAGE.md
@@ -28,7 +28,6 @@ Type labels help categorize issues based on their scope:
| `👥 Team` | Indicates issues for team collaboration. |
| `🗃️ Adr-required` | Indicates issues requiring Architectural Decision Record |
| `💬 Question` | A query or seeking clarification. Probably doesn't need the attention of everyone, just a few to help bring clarification or explain intent.|
-| `🤝 Vote` | Indicates issues for voting on an specific topic. |
Priority labels:
| Label | Description |
From e26e41fac7629688cc8103601c5d29b4709a69f4 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 19 Jan 2024 11:56:31 +0100
Subject: [PATCH 131/309] Add clear paths to contributions
---
CONTRIBUTING.md | 21 +++++++++++++++++++++
docs/blog-guidelines.md | 2 +-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5648b7db..6129de41 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -12,6 +12,27 @@ The JSON Schema organization hosts different projects, and while most have simil
The following sections apply organisation wide to all repositories.
+### Types of contributions
+
+JSON Schema is a community that lives on its contributors. As we grow, we need more people to help others. You can contribute in many ways, either in the specification development or in the wider ecosystem.
+
+Here are some areas where you can contribute:
+ * 🌱 [Specification development](https://github.com/json-schema-org/json-schema-spec)
+ * 🐞 Reporting Bugs
+ * 💡 Issues and feature requests
+ * 🧐 Reviewing PRs
+ * ❓ Answer questions
+ * 🙏 Join discussions and provide feedback
+ * 🛠️ [Add new JSON Schema tooling](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-add-a-new-implementation)
+ * ✍️ [Publish a blog post](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-publish-a-blog-post)
+ * 📈 [Publish a case study](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-publish-a-case-study)
+ * 📋 [Improving The Documentation](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-documentation)
+ * 🏗 [Website development](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.mdhttps://github.com/orgs/json-schema-org/projects/11/views/1)
+ * 🎨 [Improving The Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
+ * 😍 [Collaborating with Community Management tasks](https://github.com/json-schema-org/community)
+ * 🚀 [Adding a new Adopter](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md)
+
+
## Key "Architectural" decisions
In most repositories, we would like to utilise [Architectural Decision Records (ADRs)](https://adr.github.io/) to help us work effectively.
diff --git a/docs/blog-guidelines.md b/docs/blog-guidelines.md
index 7e2265dd..3289dd96 100644
--- a/docs/blog-guidelines.md
+++ b/docs/blog-guidelines.md
@@ -2,7 +2,7 @@
## JSON Schema Blog Overview ##
-The JSON Schema blog serves as a channel for project maintainers and contributors, implementation maintainers, and JSON Schema Champions to share content with the JSON Schema Community.
+[The JSON Schema blog](https://json-schema.org/blog) serves as a channel for project maintainers and contributors, implementation maintainers, and JSON Schema Champions to share content with the JSON Schema Community.
The content on our blog consists of:
* Use cases and success stories
From 07afeba0a8618ba9f51f473c324ffac0e0cad00f Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 23 Jan 2024 14:31:49 +0100
Subject: [PATCH 132/309] Improve clarity in the decision making process
Adding a quick introduction to the decision making process to improve clarity
---
GOVERNANCE.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index e568752a..d2502aab 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -31,6 +31,12 @@ There may be other grounds for removal from the TSC, such as seriously violating
## Decision Making
+The JSON Schema Project uses 2 different mechanism for decision making:
+
+1. **Consensus**: The JSON Schema Project tries by default to find consensus in all the strategic decision by using the consensus mechanism described below.
+
+2. **Voting**: It is ok use the voting process for those cases when the discussion has already occurred so we can use this simple yet powerful mechanism.
+
### Decision-making via consensus
Both the Quick and Standard consensus process require the creation of an Issue in the TSC GitHub repository.
From c16b30eaf13958956788d8db2289220f43264f05 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 24 Jan 2024 06:53:27 +0100
Subject: [PATCH 133/309] Update GOVERNANCE.md
Co-authored-by: Ben Hutton
---
GOVERNANCE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index d2502aab..e00258f1 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -35,7 +35,7 @@ The JSON Schema Project uses 2 different mechanism for decision making:
1. **Consensus**: The JSON Schema Project tries by default to find consensus in all the strategic decision by using the consensus mechanism described below.
-2. **Voting**: It is ok use the voting process for those cases when the discussion has already occurred so we can use this simple yet powerful mechanism.
+2. **Voting**: It is OK use the voting process for those cases when the discussion has already occurred or discussion and discovery is not required. Voting is a simple yet powerful mechanism.
### Decision-making via consensus
From c31ff6443885b16d1f05de6611081a98460a7579 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 24 Jan 2024 07:45:29 +0100
Subject: [PATCH 134/309] Add more rejection criteria for sponsors
---
programs/sponsors/sponsors.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 3ac52182..d06cb97b 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -66,7 +66,7 @@ Then, money will be used for:
## Acceptance policy
-We don't accept sponsorship from the following types of companies: Adult websites, affiliate and review websites, Casinos and gambling, Insurance & financial products (credit), Pharmacy products (weight loss, anti-aging), and Essay writing services.
+We don't accept sponsorship from the following types of companies: Adult websites, affiliate and review websites, fake news services, fake social media engagement services, casinos and gambling, insurance & financial products (credit), pharmacy products (weight loss, anti-aging), and essay writing services.
Please, [contact us](mailto:info@json-schema.org) if you have further questions.
From 397815f9e9f90ef564bd9024616b37b19a4765b9 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 1 Feb 2024 10:57:27 +0100
Subject: [PATCH 135/309] Add Waylit as adopter
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 38286924..0e94d40b 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -55,3 +55,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
+| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit help customers and their employees to make immigration a bit easier. Waylit uses JSON Schema to generate nice looking adaptive forms and to validate all the data collected](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
From af9b4ff3b91afaab1e0b79c963f7f8f7e2406f8f Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 1 Feb 2024 16:56:23 +0100
Subject: [PATCH 136/309] fix grammar
---
ADOPTERS.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 0e94d40b..79fd0507 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -55,4 +55,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
-| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit help customers and their employees to make immigration a bit easier. Waylit uses JSON Schema to generate nice looking adaptive forms and to validate all the data collected](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
+| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and to validate all the data collected](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
From 64248e78416e5e43a47a1b45dc4116f63ee38a48 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 1 Feb 2024 16:58:12 +0100
Subject: [PATCH 137/309] Better grammar.
---
ADOPTERS.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 79fd0507..c76bf77b 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -55,4 +55,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
-| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and to validate all the data collected](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
+| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
From 05c462962077b3c6111116be74281a12af64730e Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Fri, 2 Feb 2024 08:42:59 +0000
Subject: [PATCH 138/309] Fix slack greeting docs link
---
slack/greeting | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/slack/greeting b/slack/greeting
index 33b55393..d9505660 100644
--- a/slack/greeting
+++ b/slack/greeting
@@ -10,7 +10,7 @@ This server includes the specification authors, many implementers, and a large n
:mag: If you're looking for an implementation of JSON Schema, you should check out the [implementations page](https://json-schema.org/implementations).
-:book: If you're looking to learn the basics of JSON Schema, do check out our [learning resources](https://json-schema.org/learn).
+:book: If you're looking to learn the basics of JSON Schema, do check out our [docs and learning resources](https://json-schema.org/overview/what-is-jsonschema).
:question: If you want to ask questions or discuss JSON Schema, the #general channel is the right place.
From 85e82200b0cca5528b38cfdbad8f9d7155a2d24e Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 13:02:34 +0100
Subject: [PATCH 139/309] GSoC readmw
---
programs/mentoring/gsoc/README.md | 48 +++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 programs/mentoring/gsoc/README.md
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
new file mode 100644
index 00000000..4a7ed4ec
--- /dev/null
+++ b/programs/mentoring/gsoc/README.md
@@ -0,0 +1,48 @@
+## 👋 What is JSON Schema ?
+
+JSON Schema is a declarative language that provides a standardized way to describe and validate JSON data.
+
+We are a community JSON Schema entusiast dedicated to maintain, evolve and promote the JSON Schema specification. The Community consists of individuals, community members, tooling builders, schema designers, researchers, and representatives from companies and organizations who use or are considering using JSON Schema.
+
+### Current GSoC edition ((2024)) project ideas
+
+You can find the project ideas for this year's program [here](gsoc-2024.md).
+
+### Past GSoC editions project ideas
+
+- 2023 [ideas](gsoc-2023.md)
+
+## 🎯 Why choosing a JSON Schema project?
+
+The JSON Schema Community is welcoming and supportive. Some of the most active members today joined because of their participation in past GSoC edditions, which a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
+
+JSON Schema is massively adopted in the industry. By contributing to one of our projects you would have the opportunity to have an impact in the global developer Community.
+
+Other benefits of choosing a JSON Schema project:
+* Gain practical experience working on real-world projects utilizing JSON Schema.
+* Enhance your technical and interpersonal skills, including software development and contributions to open source.
+* Collaborate with a mentor who will provide ongoing support and guidance throughout the program.
+* Expand your professional network by connecting with fellow students, community members, and industry experts.
+* Upon successful completion of your project, you may be invited to speak at our community events and we will be here to help and provide feedback and assistance with your future projects.
+* Receive a stipend from Google for your participation in the program.
+
+## 🤙 Getting in Contact
+
+* **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+* **Slack:** Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+
+Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
+
+## 🤝 Getting Help
+Got a problem? Reach out to mentors or the community for assistance. Remember, mentors are listed, but other community members can also lend a hand. When talking to non-mentors:
+
+* Introduce yourself.
+* Discuss tasks based on personal interest, not just the contest.
+* Explain technical decisions independently.
+* Consult mentors for guidance on task evaluation.
+
+
+## 🏗 Contributing Guidelines
+
+Please, check-out our [Contribution guidelines](https://github.com/json-schema-org/community/blob/main/CONTRIBUTING.md)
+
From 2b4658aebd99a80e7b8aef88d4e8c6c0f2961212 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 13:03:26 +0100
Subject: [PATCH 140/309] Update README.md
---
programs/mentoring/gsoc/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 4a7ed4ec..5c9bc7e8 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -4,7 +4,7 @@ JSON Schema is a declarative language that provides a standardized way to descri
We are a community JSON Schema entusiast dedicated to maintain, evolve and promote the JSON Schema specification. The Community consists of individuals, community members, tooling builders, schema designers, researchers, and representatives from companies and organizations who use or are considering using JSON Schema.
-### Current GSoC edition ((2024)) project ideas
+### Current GSoC edition (2024) project ideas
You can find the project ideas for this year's program [here](gsoc-2024.md).
From 1c9d71adf7f20b72e61c21324e9a7ef765ee17c1 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 13:07:55 +0100
Subject: [PATCH 141/309] Update README.md
---
programs/mentoring/gsoc/README.md | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 5c9bc7e8..4b2e1769 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -1,3 +1,7 @@
+
+
+
+
## 👋 What is JSON Schema ?
JSON Schema is a declarative language that provides a standardized way to describe and validate JSON data.
@@ -14,32 +18,32 @@ You can find the project ideas for this year's program [here](gsoc-2024.md).
## 🎯 Why choosing a JSON Schema project?
-The JSON Schema Community is welcoming and supportive. Some of the most active members today joined because of their participation in past GSoC edditions, which a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
+The JSON Schema Community is welcoming and supportive. Some of the most active members today joined because of their participation in past GSoC editions, which a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
JSON Schema is massively adopted in the industry. By contributing to one of our projects you would have the opportunity to have an impact in the global developer Community.
Other benefits of choosing a JSON Schema project:
-* Gain practical experience working on real-world projects utilizing JSON Schema.
-* Enhance your technical and interpersonal skills, including software development and contributions to open source.
-* Collaborate with a mentor who will provide ongoing support and guidance throughout the program.
-* Expand your professional network by connecting with fellow students, community members, and industry experts.
-* Upon successful completion of your project, you may be invited to speak at our community events and we will be here to help and provide feedback and assistance with your future projects.
-* Receive a stipend from Google for your participation in the program.
+- Gain practical experience working on real-world projects utilizing JSON Schema.
+- Enhance your technical and interpersonal skills, including software development and contributions to open source.
+- Collaborate with a mentor who will provide ongoing support and guidance throughout the program.
+- Expand your professional network by connecting with fellow students, community members, and industry experts.
+- Upon successful completion of your project, you may be invited to speak at our community events and we will be here to help and provide feedback and assistance with your future projects.
+- Receive a stipend from Google for your participation in the program.
## 🤙 Getting in Contact
-* **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
-* **Slack:** Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+- **GitHub:*- Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+- **Slack:*- Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
## 🤝 Getting Help
Got a problem? Reach out to mentors or the community for assistance. Remember, mentors are listed, but other community members can also lend a hand. When talking to non-mentors:
-* Introduce yourself.
-* Discuss tasks based on personal interest, not just the contest.
-* Explain technical decisions independently.
-* Consult mentors for guidance on task evaluation.
+- Introduce yourself.
+- Discuss tasks based on personal interest, not just the contest.
+- Explain technical decisions independently.
+- Consult mentors for guidance on task evaluation.
## 🏗 Contributing Guidelines
From d7939b9e78813ba819dfeba91a8cba790460645a Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 2 Feb 2024 13:10:41 +0100
Subject: [PATCH 142/309] Update README.md
---
programs/mentoring/gsoc/README.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 4b2e1769..94ac71e9 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -1,6 +1,5 @@
-
-
-
+
+
## 👋 What is JSON Schema ?
From 16fda77c1f4ff84750578917887e24602dfedb01 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 2 Feb 2024 13:15:11 +0100
Subject: [PATCH 143/309] Update README.md
---
programs/mentoring/gsoc/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 94ac71e9..a8614a89 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -31,8 +31,8 @@ Other benefits of choosing a JSON Schema project:
## 🤙 Getting in Contact
-- **GitHub:*- Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
-- **Slack:*- Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+- **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+- **Slack:** Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
From 58f1a772c46930bbc5828966dbc77da3cae128e4 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 2 Feb 2024 13:16:54 +0100
Subject: [PATCH 144/309] Update README.md
---
programs/mentoring/gsoc/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index a8614a89..aa1b3f80 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -7,6 +7,8 @@ JSON Schema is a declarative language that provides a standardized way to descri
We are a community JSON Schema entusiast dedicated to maintain, evolve and promote the JSON Schema specification. The Community consists of individuals, community members, tooling builders, schema designers, researchers, and representatives from companies and organizations who use or are considering using JSON Schema.
+## 💡 GSoC Project Ideas
+
### Current GSoC edition (2024) project ideas
You can find the project ideas for this year's program [here](gsoc-2024.md).
From 4e69efc376228f77c8abdc188ec8ea3af588469f Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 14:14:35 +0100
Subject: [PATCH 145/309] 2024 project ideas
---
programs/mentoring/gsoc/README.md | 2 +
programs/mentoring/gsoc/gsoc-2024.md | 65 ++++++++++++++++++++++++++++
2 files changed, 67 insertions(+)
create mode 100644 programs/mentoring/gsoc/gsoc-2024.md
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 4b2e1769..6c4b8758 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -2,6 +2,8 @@
+# Welcome to Google Summer of Code with JSON Schema!
+
## 👋 What is JSON Schema ?
JSON Schema is a declarative language that provides a standardized way to describe and validate JSON data.
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
new file mode 100644
index 00000000..4341f82c
--- /dev/null
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -0,0 +1,65 @@
+# Welcome to Google Summer of Code with JSON Schema!
+
+JSON Schema will be applying to 2024's Google Summer of Code Program as a mentoring organization. In case of being accepted, we will receive applications within the timeframe allocated by GSoC. Please, visit the Program timeline [here](https://developers.google.com/open-source/gsoc/timeline) for more details.
+
+## Timeline for GSoC 2024?
+[Full timeline](https://developers.google.com/open-source/gsoc/timeline)
+
+|Important dates | Deadline|
+| ----- | ----- |
+| Organization Applications Open | January 22, 2024|
+| Organization Application Deadline | February 6, 2024 |
+| Organizations Announced | February 21, 2024 |
+| Potential GSoC contributors discuss application ideas with mentoring organizations | February 22 - March 18, 2024 |
+| GSoC contributor application period | March 18 - April 2, 2024 |
+| Accepted GSoC Contributor projects announced | May 1, 2024 |
+| Contributors work on their Google Summer of Code projects | May 27, 2024 - August 26, 2024|
+| Mentors submit final GSoC contributor evaluations (standard coding period) | August 26, 2024 - September 2, 2024|
+| Initial results of Google Summer of Code 2024 announced | September 3, 2024 |
+
+## [Project Ideas](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc)
+Here is a list of our 2024 project ideas:
+- [#609](https://github.com/json-schema-org/community/issues/609): **New Bowtie Test Case Widgets**
+- [#607](https://github.com/json-schema-org/community/issues/607): **`bowtie-trend`: Long-Term Reporting With Bowtie**
+- [#606](https://github.com/json-schema-org/community/issues/606): **jsonschema.lean -- an implementation of JSON Schema in Lean**
+- [#605](https://github.com/json-schema-org/community/issues/605): **`bowtie-perf`: a Performance Tester for JSON Schema implementations**
+- [#603](https://github.com/json-schema-org/community/issues/603): **Setting up the CI/CD Pipeline for the JSON Schema website**
+- [#602](https://github.com/json-schema-org/community/issues/602): **Build a new version of the JSON Schema tooling page**
+- [#601](https://github.com/json-schema-org/community/issues/601): **JSON Schema Language Server Contributions**
+- [#599](https://github.com/json-schema-org/community/issues/599): **Define upgrade/downgrade language agnostic declarative transformation rules for all JSON Schema dialects**
+
+## How to apply
+
+1. **Choose one** of the projects available in the list.
+2. **Talk with the mentor** in Slack about what they expect of GSoC applicants and get help from them to prepare your application.
+3. **Write your application**. All applications must go through Google's official application form. You can read an application template [here](#application-template).
+4. **Submit your application to Google before the deadline.** We actually recommend you submit a few days early to avoid last minute issues.
+
+## Application Template
+
+An ideal application will contain the following:
+1. A descriptive Title.
+2. Information about you, including full contact information. Which time zone you're in. Describe your academic studies, any previous work, internships, relevant work experience and list your skills that will help you to achieve the goal.
+3. Link to open source projects you have contributed to. Links to your pull requests or code samples goes here.
+4. Information about your view on the chosen project.
+5. Information about other commitments that might affect your ability to work during the GSoC period. (e.g. classes, exams, job, holidays etc.)
+
+## 🤙 Getting in Contact
+
+- **GitHub:*- Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+- **Slack:*- Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+
+Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
+
+## 🤝 Getting Help
+Got a problem? Reach out to mentors or the community for assistance. Remember, mentors are listed, but other community members can also lend a hand. When talking to non-mentors:
+
+- Introduce yourself.
+- Discuss tasks based on personal interest, not just the contest.
+- Explain technical decisions independently.
+- Consult mentors for guidance on task evaluation.
+
+
+## 🏗 Contributing Guidelines
+
+Please, check-out our [Contribution guidelines](https://github.com/json-schema-org/community/blob/main/CONTRIBUTING.md)
From 09d51765735afba0eb527050d7a5c363ca7e8dae Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 14:16:07 +0100
Subject: [PATCH 146/309] Update gsoc-2024.md
---
programs/mentoring/gsoc/gsoc-2024.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 4341f82c..74151207 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -1,8 +1,8 @@
# Welcome to Google Summer of Code with JSON Schema!
-JSON Schema will be applying to 2024's Google Summer of Code Program as a mentoring organization. In case of being accepted, we will receive applications within the timeframe allocated by GSoC. Please, visit the Program timeline [here](https://developers.google.com/open-source/gsoc/timeline) for more details.
+JSON Schema will be applying to 2024's Google Summer of Code Program as a mentoring organization. In case of being accepted, we will receive applications within the timeframe allocated by GSoC.
-## Timeline for GSoC 2024?
+## Timeline for GSoC 2024
[Full timeline](https://developers.google.com/open-source/gsoc/timeline)
|Important dates | Deadline|
From 5b21eb2a2df62fe56c395df723542b02c13eb924 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 14:20:36 +0100
Subject: [PATCH 147/309] Update gsoc-2024.md
---
programs/mentoring/gsoc/gsoc-2024.md | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 74151207..25d99fb8 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -32,8 +32,9 @@ Here is a list of our 2024 project ideas:
1. **Choose one** of the projects available in the list.
2. **Talk with the mentor** in Slack about what they expect of GSoC applicants and get help from them to prepare your application.
-3. **Write your application**. All applications must go through Google's official application form. You can read an application template [here](#application-template).
-4. **Submit your application to Google before the deadline.** We actually recommend you submit a few days early to avoid last minute issues.
+3. **Complete the qualification task** available as comment in the project issue.
+4. **Write your application**. All applications must go through Google's official application form. You can read an application template [here](#application-template).
+5. **Submit your application to Google before the deadline.** We actually recommend you submit a few days early to avoid last minute issues.
## Application Template
@@ -44,14 +45,14 @@ An ideal application will contain the following:
4. Information about your view on the chosen project.
5. Information about other commitments that might affect your ability to work during the GSoC period. (e.g. classes, exams, job, holidays etc.)
-## 🤙 Getting in Contact
+## Getting in Contact
- **GitHub:*- Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
- **Slack:*- Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
-## 🤝 Getting Help
+## Getting Help
Got a problem? Reach out to mentors or the community for assistance. Remember, mentors are listed, but other community members can also lend a hand. When talking to non-mentors:
- Introduce yourself.
@@ -60,6 +61,6 @@ Got a problem? Reach out to mentors or the community for assistance. Remember, m
- Consult mentors for guidance on task evaluation.
-## 🏗 Contributing Guidelines
+## Contributing Guidelines
Please, check-out our [Contribution guidelines](https://github.com/json-schema-org/community/blob/main/CONTRIBUTING.md)
From 7237afd6df2db0559169bf35f95c90e583a720b5 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 14:21:57 +0100
Subject: [PATCH 148/309] Update gsoc-2024.md
---
programs/mentoring/gsoc/gsoc-2024.md | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 25d99fb8..559a5037 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -1,3 +1,6 @@
+
+
+
# Welcome to Google Summer of Code with JSON Schema!
JSON Schema will be applying to 2024's Google Summer of Code Program as a mentoring organization. In case of being accepted, we will receive applications within the timeframe allocated by GSoC.
@@ -47,8 +50,8 @@ An ideal application will contain the following:
## Getting in Contact
-- **GitHub:*- Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
-- **Slack:*- Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+- **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+- **Slack:** Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
From 32289d9fe2070fae77aea2c13772d8050f2f9362 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 14:25:17 +0100
Subject: [PATCH 149/309] Update gsoc-2024.md
---
programs/mentoring/gsoc/gsoc-2024.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 559a5037..c3821b68 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -1,7 +1,7 @@

-# Welcome to Google Summer of Code with JSON Schema!
+# Welcome to Google Summer of Code 2024 with JSON Schema!
JSON Schema will be applying to 2024's Google Summer of Code Program as a mentoring organization. In case of being accepted, we will receive applications within the timeframe allocated by GSoC.
From 9fb757489e1bf213f6518691da324a5bb25c0aea Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 15:21:02 +0100
Subject: [PATCH 150/309] Update gsoc-2024.md
---
programs/mentoring/gsoc/gsoc-2024.md | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index c3821b68..f95a7213 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -6,6 +6,7 @@
JSON Schema will be applying to 2024's Google Summer of Code Program as a mentoring organization. In case of being accepted, we will receive applications within the timeframe allocated by GSoC.
## Timeline for GSoC 2024
+
[Full timeline](https://developers.google.com/open-source/gsoc/timeline)
|Important dates | Deadline|
@@ -31,6 +32,20 @@ Here is a list of our 2024 project ideas:
- [#601](https://github.com/json-schema-org/community/issues/601): **JSON Schema Language Server Contributions**
- [#599](https://github.com/json-schema-org/community/issues/599): **Define upgrade/downgrade language agnostic declarative transformation rules for all JSON Schema dialects**
+## Why choosing a JSON Schema project?
+
+The JSON Schema Community is welcoming and supportive. Some of the most active members today joined because of their participation in past GSoC editions, which a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
+
+JSON Schema is massively adopted in the industry. By contributing to one of our projects you would have the opportunity to have an impact in the global developer Community.
+
+Other benefits of choosing a JSON Schema project:
+- Gain practical experience working on real-world projects utilizing JSON Schema.
+- Enhance your technical and interpersonal skills, including software development and contributions to open source.
+- Collaborate with a mentor who will provide ongoing support and guidance throughout the program.
+- Expand your professional network by connecting with fellow students, community members, and industry experts.
+- Upon successful completion of your project, you may be invited to speak at our community events and we will be here to help and provide feedback and assistance with your future projects.
+- Receive a stipend from Google for your participation in the program.
+
## How to apply
1. **Choose one** of the projects available in the list.
@@ -56,6 +71,7 @@ An ideal application will contain the following:
Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
## Getting Help
+
Got a problem? Reach out to mentors or the community for assistance. Remember, mentors are listed, but other community members can also lend a hand. When talking to non-mentors:
- Introduce yourself.
@@ -63,7 +79,6 @@ Got a problem? Reach out to mentors or the community for assistance. Remember, m
- Explain technical decisions independently.
- Consult mentors for guidance on task evaluation.
-
## Contributing Guidelines
Please, check-out our [Contribution guidelines](https://github.com/json-schema-org/community/blob/main/CONTRIBUTING.md)
From afd200a9211ad30d9d7ec836324ea1cc6ce179ea Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 15:29:50 +0100
Subject: [PATCH 151/309] Update gsoc-2024.md
---
programs/mentoring/gsoc/gsoc-2024.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index f95a7213..dd6ef30f 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -22,7 +22,7 @@ JSON Schema will be applying to 2024's Google Summer of Code Program as a mentor
| Initial results of Google Summer of Code 2024 announced | September 3, 2024 |
## [Project Ideas](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc)
-Here is a list of our 2024 project ideas:
+Here is the list of our 2024 project ideas:
- [#609](https://github.com/json-schema-org/community/issues/609): **New Bowtie Test Case Widgets**
- [#607](https://github.com/json-schema-org/community/issues/607): **`bowtie-trend`: Long-Term Reporting With Bowtie**
- [#606](https://github.com/json-schema-org/community/issues/606): **jsonschema.lean -- an implementation of JSON Schema in Lean**
From 1822dc09ba095def3ac2ea80ae24c689f3b72f03 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 15:54:59 +0100
Subject: [PATCH 152/309] Added specific contributor-guidance
---
.../mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md | 26 +++++++++++++++++++
programs/mentoring/gsoc/README.md | 2 +-
programs/mentoring/gsoc/gsoc-2024.md | 2 +-
3 files changed, 28 insertions(+), 2 deletions(-)
create mode 100644 programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
diff --git a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
new file mode 100644
index 00000000..9ca97ef4
--- /dev/null
+++ b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
@@ -0,0 +1,26 @@
+# :wave: Hey there
+
+We're very happy that you are considering contributing to our projects during Google Summer of Code. Please **introduce yourself** on the available [project ideas](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc).
+
+You can introduce yourself to the project anytime before the contributor application period begins by answering the following questions on the selected [idea's thread](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-des).
+
+Make sure to answer these questions:
+
+- [ ] What interests you most about this project?
+- [ ] As mentors and project coordinators, how can we get the best out of you?
+- [ ] Is there anything that you’ll be studying or working on whilst working alongside us?
+- [ ] We'd love to hear a bit about your work preferences, e.g. how you keep yourself organized, what tools you use, etc?
+- [ ] Once you’ve selected a project from the ideas section, please suggest a weekly schedule with clear milestones and deliverables around it. Alternatively, if you want to propose your own idea then please include an outline, goals, and a well-defined weekly schedule with clear milestones and deliverables.
+
+MANDATORY QUALIFICATION TASK:
+Please engage on your selected project (link to each GitHub repo is in the issue description) by completing the mandatory qualification task available in the comments.
+
+Please complete the matching mandatory qualification task before you apply through the GSoC platform before the contributor application deadline.
+
+**Applications without completed mandatory qualification task will not be considered**.
+
+## Getting in Contact
+
+- **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+- **Slack:** Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 6b2c8027..e90efe70 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -51,5 +51,5 @@ Got a problem? Reach out to mentors or the community for assistance. Remember, m
## 🏗 Contributing Guidelines
-Please, check-out our [Contribution guidelines](https://github.com/json-schema-org/community/blob/main/CONTRIBUTING.md)
+Please, check-out the [GSoC Contributior guidelines](CONTRIBUTOR-GUIDANCE.md)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index dd6ef30f..37593360 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -81,4 +81,4 @@ Got a problem? Reach out to mentors or the community for assistance. Remember, m
## Contributing Guidelines
-Please, check-out our [Contribution guidelines](https://github.com/json-schema-org/community/blob/main/CONTRIBUTING.md)
+Please, check-out the [GSoC Contributior guidelines](CONTRIBUTOR-GUIDANCE.md)
From 4a8f22068a51fc0ff24800ee970b87663bb68de4 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 2 Feb 2024 16:00:44 +0100
Subject: [PATCH 153/309] Update README.md
---
programs/mentoring/gsoc/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index e90efe70..0dd45a5a 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -7,7 +7,7 @@
JSON Schema is a declarative language that provides a standardized way to describe and validate JSON data.
-We are a community JSON Schema entusiast dedicated to maintain, evolve and promote the JSON Schema specification. The Community consists of individuals, community members, tooling builders, schema designers, researchers, and representatives from companies and organizations who use or are considering using JSON Schema.
+We are a community JSON Schema enthusiast dedicated to maintain, evolve and promote the JSON Schema specification. The Community consists of individuals, community members, tooling builders, schema designers, researchers, and representatives from companies and organizations who use or are considering using JSON Schema.
## 💡 GSoC Project Ideas
From 0052a0c14e504e7f53ca19e19dd1ede9add4aeef Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Sun, 4 Feb 2024 15:35:04 +0100
Subject: [PATCH 154/309] Add new sections to contributor guidance doc
---
programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
index 9ca97ef4..9f3ac7c7 100644
--- a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
+++ b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
@@ -19,6 +19,23 @@ Please complete the matching mandatory qualification task before you apply throu
**Applications without completed mandatory qualification task will not be considered**.
+## How to apply
+
+1. **Choose one** of the projects available in the [list](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc).
+2. **Talk with the mentor** in Slack about what they expect of GSoC applicants and get help from them to prepare your application.
+3. **Complete the qualification task** available as comment in the project issue.
+4. **Write your application**. All applications must go through Google's official application form. You can read an application template [here](#application-template).
+5. **Submit your application to Google before the deadline.** We actually recommend you submit a few days early to avoid last minute issues.
+
+## Application Template
+
+An ideal application will contain the following:
+1. A descriptive Title.
+2. Information about you, including full contact information. Which time zone you're in. Describe your academic studies, any previous work, internships, relevant work experience and list your skills that will help you to achieve the goal.
+3. Link to open source projects you have contributed to. Links to your pull requests or code samples goes here.
+4. Information about your view on the chosen project.
+5. Information about other commitments that might affect your ability to work during the GSoC period. (e.g. classes, exams, job, holidays etc.)
+
## Getting in Contact
- **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
From ba776079edd20cc0aa75681e6c8788de88704535 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 6 Feb 2024 00:35:19 +0100
Subject: [PATCH 155/309] Update gsoc-2024.md to add a .net idea
Update gsoc-2024.md to add a .net idea
---
programs/mentoring/gsoc/gsoc-2024.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 37593360..1ccfe7df 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -31,6 +31,7 @@ Here is the list of our 2024 project ideas:
- [#602](https://github.com/json-schema-org/community/issues/602): **Build a new version of the JSON Schema tooling page**
- [#601](https://github.com/json-schema-org/community/issues/601): **JSON Schema Language Server Contributions**
- [#599](https://github.com/json-schema-org/community/issues/599): **Define upgrade/downgrade language agnostic declarative transformation rules for all JSON Schema dialects**
+- [#614](https://github.com/json-schema-org/community/issues/614): **Source Generation Analyzer Powered by Corvus.JsonSchema (.Net)**
## Why choosing a JSON Schema project?
From 0b291dc8f8e2bdf7de7a30dfc03fd4c707574653 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 7 Feb 2024 12:06:13 +0100
Subject: [PATCH 156/309] Changes in the sponsors template
---
programs/sponsors/templates/socialmedia-promotion.md | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/programs/sponsors/templates/socialmedia-promotion.md b/programs/sponsors/templates/socialmedia-promotion.md
index c6b9d97a..3b43f4f8 100644
--- a/programs/sponsors/templates/socialmedia-promotion.md
+++ b/programs/sponsors/templates/socialmedia-promotion.md
@@ -1,5 +1,9 @@
-📣 New Sponsor Announcement 📣
+📣 New Sponsor Announcement 📣
-We’re thrilled to welcome onboard ---------- as new Gold Sponsor.
+We’re thrilled to welcome onboard ....... as new bronze Sponsor!!
----------- is a ....
\ No newline at end of file
+LLC.org is a .........
+
+Thanks so much for supporting us!
+
+Check-out our Open Collective to know more about our sponsorship opportunities 👉 https://opencollective.com/json-schema
\ No newline at end of file
From f4d4fbb5516e76eebe2c875aee59da20b0349e4b Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 7 Feb 2024 17:28:46 +0100
Subject: [PATCH 157/309] Adding Invopop to the Adopters list
Adding Invopop to the Adopters list
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index c76bf77b..cac54bd4 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -56,3 +56,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
+| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
From 434b04ee6ec893b9fcdbeb6211f5034ad83c9334 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Mon, 12 Feb 2024 14:19:15 +0100
Subject: [PATCH 158/309] Add feature to silver sponsors
---
programs/sponsors/sponsors.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index d06cb97b..857b40d1 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -37,6 +37,7 @@ Silver sponsors donate $500 per month to the project, and get the following bene
- Same benefits as bronze sponsors.
- A mention on the Newsletter.
+- Possibility of getting expert advice from the team.
- Get a Swag Kit.
## Benefits of being a gold sponsor
From 21f8a2953c2c65123fc144c583c939bd9a8179ea Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 13 Feb 2024 11:32:01 +0000
Subject: [PATCH 159/309] Remove double space
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6129de41..c557c4cf 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -8,7 +8,7 @@ If you have suggestions on how to improve our community, please do check out our
# General
-The JSON Schema organization hosts different projects, and while most have similar contributing guidelines as described in this document, the JSON Schema Specification development process follows different contributing guidelines. Please, check-out the [Spec repository](https://github.com/json-schema-org/json-schema-spec/blob/main/CONTRIBUTING.md) to know more.
+The JSON Schema organization hosts different projects, and while most have similar contributing guidelines as described in this document, the JSON Schema Specification development process follows different contributing guidelines. Please, check-out the [Spec repository](https://github.com/json-schema-org/json-schema-spec/blob/main/CONTRIBUTING.md) to know more.
The following sections apply organisation wide to all repositories.
From a3499f728975342ddda892439ec7900447b5a182 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 14 Feb 2024 11:11:40 +0100
Subject: [PATCH 160/309] Fix contributing to focus on community repo and add
community manager role.
---
COMMUNITY-MANAGER.md | 38 ++++++++++++++++++++++++++++++++++++++
CONTRIBUTING.md | 12 +++---------
2 files changed, 41 insertions(+), 9 deletions(-)
create mode 100644 COMMUNITY-MANAGER.md
diff --git a/COMMUNITY-MANAGER.md b/COMMUNITY-MANAGER.md
new file mode 100644
index 00000000..4cde33d4
--- /dev/null
+++ b/COMMUNITY-MANAGER.md
@@ -0,0 +1,38 @@
+# Community Manager Role
+
+Community managers are responsible for managing many aspects of the JSON Schema community. The goal is to achieve and maintain a healthy and growing JSON Schema community where everyone feels welcome and is encouraged to share knowledge and learn from each other. This document outlines the responsibilities of a community manager and the process involved in becoming one.
+
+### Responsibilities
+
+A community manager has the following responsibilities:
+
+* Manage the JSON Schema Open Community Working Meetings:
+ * Host the call.
+ * Publish the community call recording to the YouTube channel.
+* Manage the Slack community:
+ * Organize and monitor Slack channels.
+ * Ensure community rules are being followed.
+ * Help new Slack users find the right channels & answers.
+ * Announce JSON Schema updates and events.
+* Review issues & pull requests in the community repository.
+* Review and publish JSON Schema blog posts submitted by the community.
+* Report on community health, growth trends, and top issues to maintainers and STC.
+* Propose new partnerships with other adjacent communities to STC and manage them.
+* Manage community analytics tools, including Plausible and CommonRoom.io.
+* Manage the social media accounts: [@jsonschema](https://twitter.com/jsonschema) Twitter and [@jsonschema](https://twitter.com/jsonschema) and [@jsonschema](https://www.linkedin.com/company/jsonschema) Linkedin:
+ * Asking the community for community call topics.
+ * Announcing community calls (one day before and one hour before the call).
+ * Announcing that the recording of the community call is available on YouTube.
+ * Announcing JSON Schema updates like tooling or adopters.
+ * Announcing new JSON Schema blog posts.
+ * Reposting relevant tweets from the community.
+* Manage the [@JSONSchemaOrgOfficial](https://www.youtube.com/@JSONSchemaOrgOfficial) YouTube account.
+* Launch and manage Community programs.
+
+### Duties that require STC approval
+
+* Add new analytics tools
+
+### Atribution
+
+This document has been inspared by the [DAPR Community Manager document](https://github.com/dapr/community/blob/master/COMMUNITY-MANAGER.md).
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c557c4cf..4c489f85 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,4 @@
-# Guidelines for contributing to the JSON Schema project GitHub organisation
+# Guidelines for contributing to the JSON Schema Community
We invite you to join us working on JSON Schema.
@@ -6,12 +6,6 @@ The fastest way to get involved and become active in the community is to join th
If you have suggestions on how to improve our community, please do check out our [Community Discussions](https://github.com/json-schema-org/community/discussions), and start a new discussion.
-# General
-
-The JSON Schema organization hosts different projects, and while most have similar contributing guidelines as described in this document, the JSON Schema Specification development process follows different contributing guidelines. Please, check-out the [Spec repository](https://github.com/json-schema-org/json-schema-spec/blob/main/CONTRIBUTING.md) to know more.
-
-The following sections apply organisation wide to all repositories.
-
### Types of contributions
JSON Schema is a community that lives on its contributors. As we grow, we need more people to help others. You can contribute in many ways, either in the specification development or in the wider ecosystem.
@@ -26,8 +20,8 @@ Here are some areas where you can contribute:
* 🛠️ [Add new JSON Schema tooling](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-add-a-new-implementation)
* ✍️ [Publish a blog post](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-publish-a-blog-post)
* 📈 [Publish a case study](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-publish-a-case-study)
- * 📋 [Improving The Documentation](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-documentation)
- * 🏗 [Website development](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.mdhttps://github.com/orgs/json-schema-org/projects/11/views/1)
+ * 📋 [Improving The Documentation](https://github.com/orgs/json-schema-org/projects/16)
+ * 🏗 [Website development](https://github.com/orgs/json-schema-org/projects/11/views/1)
* 🎨 [Improving The Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
* 😍 [Collaborating with Community Management tasks](https://github.com/json-schema-org/community)
* 🚀 [Adding a new Adopter](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md)
From 68f58425ab8160022134de58d43eaa6a6eaf42db Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:30:41 +0100
Subject: [PATCH 161/309] Refactoring of the Community README
---
README.md | 87 ++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 60 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
index 7e7d9196..ddb0dce3 100644
--- a/README.md
+++ b/README.md
@@ -1,48 +1,81 @@
-# JSON Schema Community
+[](https://json-schema.org)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-[](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
-[](https://www.repostatus.org/#active)
-[](https://opencollective.com/json-schema)
+# JSON Schema Community
-[](https://adr.github.io)
-
+Welcome to the JSON Schema community! You've arrived at the perfect place to begin your journey as a contributor. Whether it's assisting with documentation, writing a blog post, enhancing the website, delivering presentations, or any other form of contribution, there's plenty of opportunities to get involved in the project. We are a friendly, collaborative group and look forward to working together.
-# What is this repo?
+- [Introduction](#introduction)
+- [Discussions and slack](#discussions-and-slack)
+- [Community meetings](#community-meetings)
+- [Getting involved](#getting-involved)
+## Introduction
This repo is a place to discuss and debate various aspects of running the JSON Schema organisation, how we work as a community, and our expectations.
-The discussions will primarily take place using [Github Discussions](https://github.com/json-schema-org/community/discussions) for this repo.
-
-Initially Github issues will be disabled as we evaluate how we should use them in this repo (through Discussions).
-
-Once we have some links for the community, this readme will link to various locations, resources, and documents that are useful for the community.
+### Discussions and Slack
-# Who can use this repo?
+Reach out with any questions you may have and we'll make sure to answer them as soon as possible and as a community member feel free to jump in and answer questions. JSON Schema utilizes Slack and GitHub Discussions to facilitate our communications, each serving unique purposes to support our community effectively.
-Anyone who wants to learn about, be part of, or help improve the JSON Schema community is welcome here.
+Slack is the go-to for lively conversations, channel announcements, one-on-one support, and immediate assistance, making real-time communication seamless and efficient. However, Slack isn't ideal for housing detailed discussions, long-term planning, or tracking the evolution of ideas and decisions.
-Anyone can start a discussion in any category. You can even start a discussion to suggest adding a new category!
+For more in-depth discussions, planning, and documenting significant decisions, we use GitHub Discussions. It allows us to work together on significant decisions more effectively and provides long standing point of reference for our discussions.
-# Why do we need this repo to have discussions?
+| Platform | Link |
+|:----------|:------------|
+| 💬 Slack (preferred) | https://json-schema.org/slack
-Slack is really great for chatting, working through tricky problems, having one-to-one support sessions.
+### Community meetings
+We hold monthly Office Hours and weekly Open Community Working Meetings. Office Hours are every first Tuesday of the month at 15:00 BST, and by appointment. Open Community Working Meetings are every Monday at 14:00 PT.
-Slack is not so great for long running ideas, plans, or discussions, a point of reference for decisions, keeping a log of progress.
+**Office Hours (Monthly):**
-Using Github Discussions, we can collaborate on important decisions over a longer period of time and have a long standing point of reference
+"Office Hours" provide time for the community for any questions, discussions, comments, or just to chat about JSON Schema. More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
-# Why not just use Github Issues?
+**Open Community Working Meeting (Weekly):**
-Github Issues are great for getting work done, but not so great at having threaded debates and discussions.
+Open Community Working Meetings are a 1 hour, agenda'd only, with a focus on furthering the JSON Schema specification and organization. More details [here](https://github.com/orgs/json-schema-org/discussions/35).
-Picking to use Github Discussions before creating an issue allows us to seek consensus in discussion and keep Issues as the space for tracking work product and its progress.
+You can always catch up offline by watching the recordings on the JSON Schema YouTube channel.
-# Who decided all this? Is it up for debate?
+| Asset | Link |
+|:-----------|:------------|
+| 🔗 Office Hours Meeting Link | **Zoom Call:** https://postman.zoom.us/j/85358817067?pwd=NmFXTG5oL1paK0VyTEdrNU9TR2RMUT09
+| 🔗 Open Community Working Meeting Link | **Zoom Call:** https://www.google.com/url?q=https://postman.zoom.us/j/89562933116?pwd%3DOWlsQ0RrcDY4S1JQU2d2Q2M0aFFlZz09&sa=D&source=calendar&ust=1708431911262691&usg=AOvVaw14JoRXk9cLLBT-_wngWROA
+| 🎥 Meeting Recordings | https://www.youtube.com/@JSONSchemaOrgOfficial
-Ben Hutton (@relequestual) created this repo and initial readme on April 2021, based on the expectations of community and organisational needs having grown, supported, and observed the community over the past 5 years.
+## Getting involved
-**None of this is set in stone. Humans are fallible. Everything is up for debate.**
+JSON Schema is a community that lives on its contributors. As we grow, we need more people to help others. Do you like to get involved? You can contribute in many ways!
-While Ben has become the self-appointed core team lead at some point during those 5 years, we strive to work on a model of general consensus, which works well for specification development, and is something we rely on to move us forward.
+Please check out our [Contribution guidelines](CONTRIBUTING.md) to know more.
-Ben acts in several ways as an executive for the organisation, and feels trusted enough to make organisational decisions like this with the expectation of change and with as much transparency as possible.
+## Code of Conduct
+To get involved with our Community, please make sure you are familiar with our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md).
\ No newline at end of file
From f5f5e1f49b6c001b786f686781162cd2ef558f53 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:33:15 +0100
Subject: [PATCH 162/309] Update README.md
---
README.md | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index ddb0dce3..0a8786ac 100644
--- a/README.md
+++ b/README.md
@@ -42,15 +42,18 @@ This repo is a place to discuss and debate various aspects of running the JSON S
### Discussions and Slack
-Reach out with any questions you may have and we'll make sure to answer them as soon as possible and as a community member feel free to jump in and answer questions. JSON Schema utilizes Slack and GitHub Discussions to facilitate our communications, each serving unique purposes to support our community effectively.
+Reach out with any questions you may have and we'll make sure to answer them as soon as possible and as a community member feel free to jump in and answer questions.
+
+JSON Schema utilizes Slack and GitHub Discussions to facilitate our communications, each serving unique purposes to support our community effectively.
Slack is the go-to for lively conversations, channel announcements, one-on-one support, and immediate assistance, making real-time communication seamless and efficient. However, Slack isn't ideal for housing detailed discussions, long-term planning, or tracking the evolution of ideas and decisions.
For more in-depth discussions, planning, and documenting significant decisions, we use GitHub Discussions. It allows us to work together on significant decisions more effectively and provides long standing point of reference for our discussions.
-| Platform | Link |
-|:----------|:------------|
+| Platforms | Link |
+|:----------|:-------------|
| 💬 Slack (preferred) | https://json-schema.org/slack
+| 💬 Discussions | https://github.com/orgs/json-schema-org/discussions
### Community meetings
We hold monthly Office Hours and weekly Open Community Working Meetings. Office Hours are every first Tuesday of the month at 15:00 BST, and by appointment. Open Community Working Meetings are every Monday at 14:00 PT.
From f03f4339a38cafcc4f549c126a431f60595ba71c Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:35:05 +0100
Subject: [PATCH 163/309] Style of links
---
README.md | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 0a8786ac..cb6c5ad9 100644
--- a/README.md
+++ b/README.md
@@ -60,18 +60,22 @@ We hold monthly Office Hours and weekly Open Community Working Meetings. Office
**Office Hours (Monthly):**
-"Office Hours" provide time for the community for any questions, discussions, comments, or just to chat about JSON Schema. More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
+"Office Hours" provide time for the community for any questions, discussions, comments, or just to chat about JSON Schema.
+
+More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
**Open Community Working Meeting (Weekly):**
-Open Community Working Meetings are a 1 hour, agenda'd only, with a focus on furthering the JSON Schema specification and organization. More details [here](https://github.com/orgs/json-schema-org/discussions/35).
+Open Community Working Meetings are a 1 hour, agenda'd only, with a focus on furthering the JSON Schema specification and organization.
+
+More details [here](https://github.com/orgs/json-schema-org/discussions/35).
You can always catch up offline by watching the recordings on the JSON Schema YouTube channel.
| Asset | Link |
|:-----------|:------------|
-| 🔗 Office Hours Meeting Link | **Zoom Call:** https://postman.zoom.us/j/85358817067?pwd=NmFXTG5oL1paK0VyTEdrNU9TR2RMUT09
-| 🔗 Open Community Working Meeting Link | **Zoom Call:** https://www.google.com/url?q=https://postman.zoom.us/j/89562933116?pwd%3DOWlsQ0RrcDY4S1JQU2d2Q2M0aFFlZz09&sa=D&source=calendar&ust=1708431911262691&usg=AOvVaw14JoRXk9cLLBT-_wngWROA
+| 🔗 Office Hours Meeting Link | [**Zoom Link**](https://postman.zoom.us/j/85358817067?pwd=NmFXTG5oL1paK0VyTEdrNU9TR2RMUT09)
+| 🔗 Open Community Working Meeting Link | [**Zoom Link**](https://www.google.com/url?q=https://postman.zoom.us/j/89562933116?pwd%3DOWlsQ0RrcDY4S1JQU2d2Q2M0aFFlZz09&sa=D&source=calendar&ust=1708431911262691&usg=AOvVaw14JoRXk9cLLBT-_wngWROA)
| 🎥 Meeting Recordings | https://www.youtube.com/@JSONSchemaOrgOfficial
## Getting involved
From a3d1e9e5e9c2310c306ec85716620d716fb7a36c Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:37:51 +0100
Subject: [PATCH 164/309] added emojis to index
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index cb6c5ad9..2bcc28ae 100644
--- a/README.md
+++ b/README.md
@@ -32,10 +32,10 @@
Welcome to the JSON Schema community! You've arrived at the perfect place to begin your journey as a contributor. Whether it's assisting with documentation, writing a blog post, enhancing the website, delivering presentations, or any other form of contribution, there's plenty of opportunities to get involved in the project. We are a friendly, collaborative group and look forward to working together.
-- [Introduction](#introduction)
-- [Discussions and slack](#discussions-and-slack)
-- [Community meetings](#community-meetings)
-- [Getting involved](#getting-involved)
+- [👋 Introduction](#introduction)
+- [💬 Discussions and slack](#discussions-and-slack)
+- [🗓 Community meetings](#community-meetings)
+- [🌱 Getting involved](#getting-involved)
## Introduction
This repo is a place to discuss and debate various aspects of running the JSON Schema organisation, how we work as a community, and our expectations.
From fe7383aea24de5b968cc04d3c6d1c03c4e171c62 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:38:51 +0100
Subject: [PATCH 165/309] Update README.md
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 2bcc28ae..fe158b22 100644
--- a/README.md
+++ b/README.md
@@ -32,10 +32,10 @@
Welcome to the JSON Schema community! You've arrived at the perfect place to begin your journey as a contributor. Whether it's assisting with documentation, writing a blog post, enhancing the website, delivering presentations, or any other form of contribution, there's plenty of opportunities to get involved in the project. We are a friendly, collaborative group and look forward to working together.
-- [👋 Introduction](#introduction)
-- [💬 Discussions and slack](#discussions-and-slack)
-- [🗓 Community meetings](#community-meetings)
-- [🌱 Getting involved](#getting-involved)
+- 👋 [Introduction](#introduction)
+- 💬 [Discussions and slack](#discussions-and-slack)
+- 🗓 [Community meetings](#community-meetings)
+- 🌱 [Getting involved](#getting-involved)
## Introduction
This repo is a place to discuss and debate various aspects of running the JSON Schema organisation, how we work as a community, and our expectations.
From f874488ff6686097e6e1586a55fe06e28d0832f9 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:40:10 +0100
Subject: [PATCH 166/309] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index fe158b22..6d649ae2 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ We hold monthly Office Hours and weekly Open Community Working Meetings. Office
**Office Hours (Monthly):**
-"Office Hours" provide time for the community for any questions, discussions, comments, or just to chat about JSON Schema.
+"Office Hours" provide time for the community for questions, discussions, comments, or just to chat about JSON Schema.
More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
From a631d884d4724a8cb89f792df21f1884ef750328 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:40:40 +0100
Subject: [PATCH 167/309] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 6d649ae2..47cf4eb7 100644
--- a/README.md
+++ b/README.md
@@ -60,13 +60,13 @@ We hold monthly Office Hours and weekly Open Community Working Meetings. Office
**Office Hours (Monthly):**
-"Office Hours" provide time for the community for questions, discussions, comments, or just to chat about JSON Schema.
+**Office Hours** provide time for the community for questions, discussions, comments, or just to chat about JSON Schema.
More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
**Open Community Working Meeting (Weekly):**
-Open Community Working Meetings are a 1 hour, agenda'd only, with a focus on furthering the JSON Schema specification and organization.
+**Open Community Working Meetings** are a 1 hour, agenda'd only, with a focus on furthering the JSON Schema specification and organization.
More details [here](https://github.com/orgs/json-schema-org/discussions/35).
From 32214a9140e0bbc3e4c35b51e77183a3ccaf7453 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Thu, 15 Feb 2024 13:47:25 +0100
Subject: [PATCH 168/309] Added contributors
---
README.md | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/README.md b/README.md
index 47cf4eb7..28632e61 100644
--- a/README.md
+++ b/README.md
@@ -84,5 +84,14 @@ JSON Schema is a community that lives on its contributors. As we grow, we need m
Please check out our [Contribution guidelines](CONTRIBUTING.md) to know more.
+### Contributors
+
+Thanks goes to these wonderful people who contributed to this website:
+
+
+
+
+Made with [contributors-img](https://contrib.rocks).
+
## Code of Conduct
To get involved with our Community, please make sure you are familiar with our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md).
\ No newline at end of file
From f4c62678754f0f099631ca7cd99bf62c8280b32a Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 16 Feb 2024 11:55:19 +0100
Subject: [PATCH 169/309] Changes to clarify slack channel for discussion
---
COMMUNITY-MANAGER.md | 4 ++++
CONTRIBUTING.md | 5 ++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/COMMUNITY-MANAGER.md b/COMMUNITY-MANAGER.md
index 4cde33d4..cbba0830 100644
--- a/COMMUNITY-MANAGER.md
+++ b/COMMUNITY-MANAGER.md
@@ -33,6 +33,10 @@ A community manager has the following responsibilities:
* Add new analytics tools
+### Know more
+
+Please join the `#community-mgmt` slack channel using this [link](#community-mgmt) if you like to know more.
+
### Atribution
This document has been inspared by the [DAPR Community Manager document](https://github.com/dapr/community/blob/master/COMMUNITY-MANAGER.md).
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4c489f85..374991ee 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -23,9 +23,12 @@ Here are some areas where you can contribute:
* 📋 [Improving The Documentation](https://github.com/orgs/json-schema-org/projects/16)
* 🏗 [Website development](https://github.com/orgs/json-schema-org/projects/11/views/1)
* 🎨 [Improving The Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
- * 😍 [Collaborating with Community Management tasks](https://github.com/json-schema-org/community)
+ * 😍 [Collaborating with Community Management tasks](#community-management-tasks)
* 🚀 [Adding a new Adopter](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md)
+#### Community management tasks
+
+To get involved in the Community management tasks, please join the `#community-mgmt` slack channel using this [link](#community-mgmt).
## Key "Architectural" decisions
From b0b47fe29ad2929d35d62789b6d41793be4d530b Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 16 Feb 2024 12:47:45 +0100
Subject: [PATCH 170/309] Moved the triage back to org level
---
CONTRIBUTING.md | 2 +-
TRIAGE.md | 82 -------------------------------------------------
2 files changed, 1 insertion(+), 83 deletions(-)
delete mode 100644 TRIAGE.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 374991ee..725f33ed 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -65,7 +65,7 @@ The process is designed to be lightweight, and a template is provided for ease o
### Triage
-Please check the [triage process](TRIAGE.md) to learn how we review and label incoming issues .
+Please check the [triage process](https://github.com/json-schema-org/.github/blob/main/TRIAGE.md) to learn how we review and label incoming issues .
### Feedback
diff --git a/TRIAGE.md b/TRIAGE.md
deleted file mode 100644
index 5bbde05f..00000000
--- a/TRIAGE.md
+++ /dev/null
@@ -1,82 +0,0 @@
-## Introduction
-
-This document will outline the process of triaging GitHub issues. **Triage** is the process of reviewing and labeling incoming issues, identifying any which are critical, and escalating the critical ones.
-
-The core maintainers of each project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
-
-Triage helps ensure issues resolve quickly by:
-
-- Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took.
-- Giving a contributor the information they need before they commit to resolving an issue.
-- Lowering the issue count by preventing duplicate issues.
-- Streamlining the development process by preventing duplicate discussions.
-
-If you don't have the knowledge or time to code, consider helping with triage. The community will thank you for saving them time by spending some of yours.
-
-## GitHub Labels
-
-Labels are assigned based on [Sensible Github Labels](https://github.com/Relequestual/sensible-github-labels).
-
-Type labels help categorize issues based on their scope:
-| Label | Description |
-| ------------------------ | ------------------------------------------------------------------------- |
-| `🐛 Bug` | Indicates that the issue is a bug or a software defect. |
-| `✨ Enhancement` | Indicates that the issue suggests an improvement or new feature. |
-| `📝 Documentation` | Indicates improvements or additions to documentation. |
-| `🎯 Roadmap` | Indicates epics and tasks related to roadmap items. |
-| `🏗️ Programs` | Indicates epics and tasks related to Community programs. |
-| `👥 Team` | Indicates issues for team collaboration. |
-| `🗃️ Adr-required` | Indicates issues requiring Architectural Decision Record |
-| `💬 Question` | A query or seeking clarification. Probably doesn't need the attention of everyone, just a few to help bring clarification or explain intent.|
-
-Priority labels:
-| Label | Description |
-| ------------------------ | ------------------------------------------------------------------------- |
-| `Priority: Critical` | This should be dealt with ASAP. Not fixing this issue would be a serious error.|
-| `Priority: High` | After critical issues are fixed, these should be dealt with before any further issues.|
-| `Priority: Medium` | This issue may be useful, and needs some attention.|
-| `Priority: Low` | This issue can probably be picked up by anyone looking to contribute to the project, as an entry fix.|
-
-Status labels:
-| Label | Description |
-| ------------------------ | ------------------------------------------------------------------------- |
-| `Status: Available` | No one has claimed responsibility for resolving this issue. Generally this will be applied to bugs and enhancement issues, but may be applied to others.|
-| `Status: Accepted` | It's clear what the subject of the issue is about, and what the resolution should be.|
-| `Status: Blocked` | There is another issue that needs to be resolved first, or a specific person is required to comment or reply to progress. There may also be some external blocker.|
-| `Status: Completed` | Nothing further to be done with this issue. Awaiting to be closed by the requestor out of politeness, or can be closed by a project member.|
-| `Status: In Progress` | This issue is being worked on, and has someone assigned.|
-| `Status: On Hold` | Similar to blocked, but is assigned to someone. May also be assigned to someone because of their experience, but it's recognised they are unable to process the issue at this time.|
-| `Status: Review Needed` | The issue has a PR attached to it which needs to be reviewed. Should receive review by others in the community, and at least one member / comitter. Specifics on when merging PRs is allowed is still up for debate.|
-| `Status: Revision Needed`| At least two people have seen issues in the PR that makes them uneasy. Submitter of PR needs to revise the PR related to the issue.|
-| `Status: Abandoned` | It's believed that this issue is no longer important to the requestor and no one else has shown an interest in it.|
-
-Other labels:
-| Label | Description |
-| ------------------------ | ------------------------------------------------------------------------- |
-| `good first issue` | Indicates that the issue is suitable for newcomers to contribute to the project.|
-| `duplicate` | Indicates that is duplicated. |
-| `info-required` | Indicates that the issue lacks sufficient information to be able to act on it right now and requires additional details from the reporter. The maintainer for the area must remove the tag when more info is provided, or close it if it is too old.|
-
-## Triage process
-
-At the end of reading an issue, you should do one of the following:
-
-1. Make sure to search in previous issue to ensure this is not a duplicated issue. If that is the case, mark it as `duplicate` and close it referencing the original issue. If the issue is clear, ensure it has the correct `type` assigned and the status `status: Available`. Also consider if it is a `good first issue`.
-
-2. Asses the issue priority to determine what functionality is affected and how broken it is and use the priority labels.
-
-3. If the submitter or the reviewer believe the resolution of the Issue is likely to result in a significant or noteworthy change it will be labeled as `adr-required`.
-
-4. Move the issue to the correct repo if required.
-
-5. If it's not clear what the problem or issue is, add a note for the requestor (or occasionally some other user on the thread), and mark it as `info-required`. If a `info-required` issue persists for longer than 2 weeks or so (past a second followup), it's reasonable to `close` the issue using `Status: Abandoned` and encourage the requester to reopen if they have more details.
-
-6. If the request is infeasable, or complete,use `status: Completed` follow up directly in the issue with the information, and `close` the issue.
-
-### References
-
-This process has been inspired by some great processes defined by Open Source projects like:
-- [Knative triage process](https://github.com/knative/serving/blob/main/support/TRIAGE.md).
-- [Grafana triage process](https://github.com/grafana/faro-web-sdk/blob/main/ISSUE_TRIAGE.md).
-- [Wordpress triage process](https://github.com/wordpress-mobile/WordPress-iOS/blob/trunk/docs/issue-triage.md).
-- [Sensible Github Labels](https://github.com/Relequestual/sensible-github-labels).
\ No newline at end of file
From 57d821604275606247a9ab67e6a59fecb051fb38 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 16 Feb 2024 17:45:33 +0100
Subject: [PATCH 171/309] Apply suggestions from code review
Co-authored-by: Ben Hutton
---
CONTRIBUTING.md | 2 +-
README.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 725f33ed..5dbea1b8 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -28,7 +28,7 @@ Here are some areas where you can contribute:
#### Community management tasks
-To get involved in the Community management tasks, please join the `#community-mgmt` slack channel using this [link](#community-mgmt).
+To get involved in the Community management tasks, please join the [`#community-mgmt` slack channel](https://json-schema.slack.com/archives/C0209BTU2UQ).
## Key "Architectural" decisions
diff --git a/README.md b/README.md
index 28632e61..55b6ed08 100644
--- a/README.md
+++ b/README.md
@@ -86,7 +86,7 @@ Please check out our [Contribution guidelines](CONTRIBUTING.md) to know more.
### Contributors
-Thanks goes to these wonderful people who contributed to this website:
+Thanks goes to these wonderful people who contributed to this communtiy space:
From 454b31b579c4972a12db8180306dd588a6beec25 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Fri, 16 Feb 2024 18:12:22 +0100
Subject: [PATCH 172/309] Typo
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 28632e61..8e1d2e53 100644
--- a/README.md
+++ b/README.md
@@ -86,7 +86,7 @@ Please check out our [Contribution guidelines](CONTRIBUTING.md) to know more.
### Contributors
-Thanks goes to these wonderful people who contributed to this website:
+Thanks goes to these wonderful people who contributed to this community:
From 9cb762281c5284a0f87d7a31cf9bb53c14932ae6 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Sat, 17 Feb 2024 10:26:20 +0100
Subject: [PATCH 173/309] Fix links to website development contribution paths
---
CONTRIBUTING.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 725f33ed..21d26628 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -20,9 +20,9 @@ Here are some areas where you can contribute:
* 🛠️ [Add new JSON Schema tooling](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-add-a-new-implementation)
* ✍️ [Publish a blog post](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-publish-a-blog-post)
* 📈 [Publish a case study](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-publish-a-case-study)
- * 📋 [Improving The Documentation](https://github.com/orgs/json-schema-org/projects/16)
- * 🏗 [Website development](https://github.com/orgs/json-schema-org/projects/11/views/1)
- * 🎨 [Improving The Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
+ * 📋 [Improving the Documentation](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-documentation)
+ * 🏗 [Website development](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-website)
+ * 🎨 [Improving the Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
* 😍 [Collaborating with Community Management tasks](#community-management-tasks)
* 🚀 [Adding a new Adopter](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md)
@@ -30,7 +30,7 @@ Here are some areas where you can contribute:
To get involved in the Community management tasks, please join the `#community-mgmt` slack channel using this [link](#community-mgmt).
-## Key "Architectural" decisions
+### Key "Architectural" decisions
In most repositories, we would like to utilise [Architectural Decision Records (ADRs)](https://adr.github.io/) to help us work effectively.
From 677f3aa2b4f5d0f500eef01687a69337999151ea Mon Sep 17 00:00:00 2001
From: Mintu
Date: Sat, 24 Feb 2024 15:27:33 +0530
Subject: [PATCH 174/309] addded notification in slack for failed action
---
.github/workflows/failed-actions-notify.yml | 43 +++++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644 .github/workflows/failed-actions-notify.yml
diff --git a/.github/workflows/failed-actions-notify.yml b/.github/workflows/failed-actions-notify.yml
new file mode 100644
index 00000000..881fafcc
--- /dev/null
+++ b/.github/workflows/failed-actions-notify.yml
@@ -0,0 +1,43 @@
+name: Slack Notifications for Failed GitHub Actions
+
+on:
+ workflow_run:
+ workflows: ["*"]
+ types:
+ - completed
+ branches:
+ - main
+
+jobs:
+ notify-slack:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'failure' }}
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v6
+
+ - name: Send Slack notification
+ if: failure()
+ run: |
+ const fetch = require('node-fetch');
+
+ const SLACK_WEBHOOK_URL = process.env.SLACK_WEBHOOK_URL;
+ const context = JSON.parse(process.env.GITHUB_CONTEXT);
+
+ const slackMessage = {
+ issue: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`,
+ status: context.jobStatus,
+ workflow: context.workflow,
+ actor: context.actor
+ };
+
+ await fetch(SLACK_WEBHOOK_URL, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify(slackMessage),
+ });
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+ GITHUB_CONTEXT: ${{ toJson(github) }}
From 91dedd69a44e17548b2142e5ae99fbadc9229de4 Mon Sep 17 00:00:00 2001
From: Mintu
Date: Sat, 24 Feb 2024 15:37:17 +0530
Subject: [PATCH 175/309] cleanup
---
.github/workflows/failed-actions-notify.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/failed-actions-notify.yml b/.github/workflows/failed-actions-notify.yml
index 881fafcc..d57fc6b6 100644
--- a/.github/workflows/failed-actions-notify.yml
+++ b/.github/workflows/failed-actions-notify.yml
@@ -14,7 +14,7 @@ jobs:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Check out repository
- uses: actions/checkout@v6
+ uses: actions/checkout@v4
- name: Send Slack notification
if: failure()
@@ -25,10 +25,10 @@ jobs:
const context = JSON.parse(process.env.GITHUB_CONTEXT);
const slackMessage = {
+ channel: '#github',
issue: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`,
status: context.jobStatus,
- workflow: context.workflow,
- actor: context.actor
+ text: `GitHub Actions workflow failed: ${context.workflow}`
};
await fetch(SLACK_WEBHOOK_URL, {
From 7ccf9398e49f9567fad39b77f656bbbdf94d4c8f Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 27 Feb 2024 15:31:45 +0100
Subject: [PATCH 176/309] Update gsoc-2024.md add new idea
Add new idea to GSoC 2024
---
programs/mentoring/gsoc/gsoc-2024.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 1ccfe7df..20fc4e5d 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -32,6 +32,7 @@ Here is the list of our 2024 project ideas:
- [#601](https://github.com/json-schema-org/community/issues/601): **JSON Schema Language Server Contributions**
- [#599](https://github.com/json-schema-org/community/issues/599): **Define upgrade/downgrade language agnostic declarative transformation rules for all JSON Schema dialects**
- [#614](https://github.com/json-schema-org/community/issues/614): **Source Generation Analyzer Powered by Corvus.JsonSchema (.Net)**
+- [#645](https://github.com/json-schema-org/community/issues/645): **A tour of JSON Schema**
## Why choosing a JSON Schema project?
From a84df7fc7d3010d15c50c2691240a3f9481b37ae Mon Sep 17 00:00:00 2001
From: Prince Rajpoot
Date: Thu, 29 Feb 2024 01:47:27 +0530
Subject: [PATCH 177/309] switch to a specific version
---
.github/workflows/ocwm-issue-collector.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 4b5c3b42..402a22cc 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -17,7 +17,7 @@ jobs:
with:
node-version: '18'
- name: Install dependencies
- run: npm install @octokit/core
+ run: npm install @octokit/core@5.1.0
- name: Adding Issues
uses: actions/github-script@v6
env:
From a5e796b506b27fb1a41ddba1646ca5a0e7ea0933 Mon Sep 17 00:00:00 2001
From: aialok
Date: Fri, 1 Mar 2024 15:09:32 +0530
Subject: [PATCH 178/309] updated version of octokit/core
---
.github/workflows/ocwm-reminders.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
index 548f0050..60c8f1ff 100644
--- a/.github/workflows/ocwm-reminders.yml
+++ b/.github/workflows/ocwm-reminders.yml
@@ -19,7 +19,7 @@ jobs:
node-version: '20'
- name: Install dependencies
- run: npm install @octokit/core
+ run: npm install @octokit/core@5.1.0
- name: Send reminders
uses: actions/github-script@v7
From 6474a217dc87f5a2d7b587018a40c3dabaef344f Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sun, 3 Mar 2024 21:55:38 +0100
Subject: [PATCH 179/309] Update failed-actions-notify.yml
---
.github/workflows/failed-actions-notify.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/failed-actions-notify.yml b/.github/workflows/failed-actions-notify.yml
index d57fc6b6..36751a1f 100644
--- a/.github/workflows/failed-actions-notify.yml
+++ b/.github/workflows/failed-actions-notify.yml
@@ -39,5 +39,5 @@ jobs:
body: JSON.stringify(slackMessage),
});
env:
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+ SLACK_WEBHOOK_URL: ${{ vars.SLACK_WEBHOOK_FAIL_ACTIONS }}
GITHUB_CONTEXT: ${{ toJson(github) }}
From ad48eccb8e0da9f9860d8db884594bae192e4265 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:32:54 +0530
Subject: [PATCH 180/309] yml
---
.github/workflows/close-completed-ocwm.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 4bb8f148..6b2fa1bc 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -19,7 +19,7 @@ jobs:
node-version: '18'
- name: Install dependencies
- run: npm install @octokit/core
+ run: npm install @octokit/core@5.1.0
- name: Close issues
env:
From d047119b7bc9614654ee7b301a6149ba71874504 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:36:08 +0530
Subject: [PATCH 181/309] yml
---
.github/workflows/close-completed-ocwm.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 6b2fa1bc..79205900 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -1,11 +1,9 @@
name: Close issues with no tasks and a specific label
on:
- schedule:
- - cron: '0 0 * * 0' # Runs every Sunday at midnight
-
- repository_dispatch:
- types: close-issues-ocwm
+ push:
+ branches:
+ - '*'
jobs:
close-issues:
From e91c4e85a1e6cfd3d6f3f3319248dea5c8266c18 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:38:59 +0530
Subject: [PATCH 182/309] yml
---
.github/workflows/close-completed-ocwm.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 79205900..65a8f86b 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -1,7 +1,7 @@
name: Close issues with no tasks and a specific label
on:
- push:
+ pull_request:
branches:
- '*'
From 47ef93de1637696c369c5629510d867661434dab Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:48:22 +0530
Subject: [PATCH 183/309] yml
---
.github/workflows/close-completed-ocwm.yml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 65a8f86b..1df92c57 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -1,10 +1,14 @@
name: Close issues with no tasks and a specific label
on:
+ schedule:
+ - cron: '0 0 * * 0' # Runs every Sunday at midnight
+
+ repository_dispatch:
+ types: close-issues-ocwm
pull_request:
branches:
- '*'
-
jobs:
close-issues:
runs-on: ubuntu-latest
From 5444d60ff66dd2ded0e295d23f2c33df98e19a35 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:50:10 +0530
Subject: [PATCH 184/309] yml
---
.github/workflows/close-completed-ocwm.yml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 1df92c57..7b7543ba 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -6,9 +6,7 @@ on:
repository_dispatch:
types: close-issues-ocwm
- pull_request:
- branches:
- - '*'
+
jobs:
close-issues:
runs-on: ubuntu-latest
From 963466a282b0e192c1c341efbe14916ef17a68f4 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:53:32 +0530
Subject: [PATCH 185/309] yml
---
.github/workflows/close-completed-ocwm.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 7b7543ba..affadbca 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -1,12 +1,10 @@
name: Close issues with no tasks and a specific label
on:
- schedule:
- - cron: '0 0 * * 0' # Runs every Sunday at midnight
+ push:
+ branches:
+ - main
- repository_dispatch:
- types: close-issues-ocwm
-
jobs:
close-issues:
runs-on: ubuntu-latest
From 440101c9a1dd8485b44dc35451cea2b969296561 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 15:54:23 +0530
Subject: [PATCH 186/309] yml
---
.github/workflows/close-completed-ocwm.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index affadbca..79205900 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -3,7 +3,7 @@ name: Close issues with no tasks and a specific label
on:
push:
branches:
- - main
+ - '*'
jobs:
close-issues:
From 40d085b79c25ceabaaa9613385fc724802aefd37 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 16:10:59 +0530
Subject: [PATCH 187/309] yml
---
.github/workflows/close-completed-ocwm.yml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 79205900..6b2fa1bc 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -1,9 +1,11 @@
name: Close issues with no tasks and a specific label
on:
- push:
- branches:
- - '*'
+ schedule:
+ - cron: '0 0 * * 0' # Runs every Sunday at midnight
+
+ repository_dispatch:
+ types: close-issues-ocwm
jobs:
close-issues:
From 55da321bdc5fc01d3e6283d8d6437f4a672ff5f7 Mon Sep 17 00:00:00 2001
From: SATYAM KUMAR
Date: Mon, 4 Mar 2024 21:48:00 +0530
Subject: [PATCH 188/309] ocwm-creator downgrade octokit
---
.github/workflows/ocwm-creator.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 63c29d6d..61580dae 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -37,7 +37,7 @@ jobs:
token: ${{ secrets.AUTH_TOKEN }}
- name: Install dependencies
- run: npm install @octokit/core
+ run: npm install @octokit/core@5.1.0
- name: Update Issue Body
uses: actions/github-script@v7
From 5f35c0d840295f498ca17853c5db5b9777677b1f Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 6 Mar 2024 12:07:23 +0100
Subject: [PATCH 189/309] Update INFRASTRUCTURE to add new automations
We implemented a set of new automations that required this document to be updated:
* Youtube notifications.
* Feedback component storing data in Airtable using a cloudflare worker.
---
INFRASTRUCTURE.md | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index c56a1fc5..2df2e7b0 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -45,21 +45,27 @@ These resources are potentially heavily used or referred to by consumers of JSON
Links to these resources can be found at https://json-schema.org/specification.html for the latest version of JSON Schema, and at https://json-schema.org/specification-links.html for older versions.
The working location for these resources is in the specification repository at https://github.com/json-schema-org/json-schema-spec/, and they are then included into the aforementioned website repository for publishing using `git submodule`.
+We are capturing feedback in the website using a cloudflare worker to receive the data and send it to an Airtable database. The Airtable account is owned and paid for by Postman.
+
## Bots
The Slack server has a number of bots which feed data into specific channels.
-The bot which feeds tweets containing JSON Schema from Twitter to the #twitter-mentions is now inactive after the changes in the Twitter API. The bot was created by [Mike Ralphson](https://twitter.com/PermittedSoc). We have no access to it.
+* The bot which feeds tweets containing JSON Schema from Twitter to the #twitter-mentions is now inactive after the changes in the Twitter API. The bot was created by [Mike Ralphson](https://twitter.com/PermittedSoc). We have no access to it.
-The bot for #stack-overflow runs from If This Then That under @relequestual 's account. It should probably be migrated to Zapier.
+* The bot for #stack-overflow runs from If This Then That under @relequestual 's account. It should probably be migrated to Zapier.
-The bot for #reddit-mentions runs from Zapier under @benjagm 's account.
+* The bot for #reddit-mentions runs from Zapier under @benjagm 's account.
-The #github channel bot uses the official Github Slack app, and runs all Github events from all of our repositories, apart from GitHub Discussions.
+* The #github channel bot uses the official Github Slack app, and runs all Github events from all of our repositories, apart from GitHub Discussions.
-The #ghd-community channel bot uses Zapier to process webhooks for our Community repo's GitHub Discussions, and relay to Slack.
+* The #ghd-community channel bot uses Zapier to process webhooks for our Community repo's GitHub Discussions, and relay to Slack.
The Zapier account is owned and paid for by Postman. If this ever might become a problem, we should move to our own licence.
At the time, there was no official app integration.
+* The bot for notifying new youtube videos in the #announcements channel in Slack uses Zapier.
+
+* The notifications with website users feedback uses Airtable automations.
+
## Metrics
The website metrics previously available in Google Analytics are now in Plausible.
From a92d035573b5ca98805ebbcce6b3afaf8090ec3b Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 6 Mar 2024 12:18:22 +0100
Subject: [PATCH 190/309] Update CONTRIBUTOR-GUIDANCE.md
---
programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
index 9f3ac7c7..8690930b 100644
--- a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
+++ b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
@@ -36,6 +36,16 @@ An ideal application will contain the following:
4. Information about your view on the chosen project.
5. Information about other commitments that might affect your ability to work during the GSoC period. (e.g. classes, exams, job, holidays etc.)
+## Selection Criteria
+
+We will select the best proposals based on the following criteria:
+(The quantity of students depends on the number of JSON Schema projects accepted in GSoC)
+
+- The quality of the proposal and its priority for JSON Schema Project.
+- Engagement of the student with the community and potential mentors.
+- Contributions by the student to the JSON Schema Project & Community.
+- Contributing to other Open Source Projects is a plus.
+
## Getting in Contact
- **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
From c01e40a485f83fec7f2e62a372ee01a112645245 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 6 Mar 2024 12:22:36 +0100
Subject: [PATCH 191/309] Update CONTRIBUTOR-GUIDANCE.md
---
programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
index 8690930b..d3c3f3ee 100644
--- a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
+++ b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
@@ -41,7 +41,7 @@ An ideal application will contain the following:
We will select the best proposals based on the following criteria:
(The quantity of students depends on the number of JSON Schema projects accepted in GSoC)
-- The quality of the proposal and its priority for JSON Schema Project.
+- The quality of the proposal and its priority for JSON Schema Project. This include the qualification task/tasks.
- Engagement of the student with the community and potential mentors.
- Contributions by the student to the JSON Schema Project & Community.
- Contributing to other Open Source Projects is a plus.
From b2d32ebb61c4bf0619ec61b5c6e7d9d4a34474b3 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 6 Mar 2024 12:22:55 +0100
Subject: [PATCH 192/309] Update CONTRIBUTOR-GUIDANCE.md
---
programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
index d3c3f3ee..b2cf19d7 100644
--- a/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
+++ b/programs/mentoring/gsoc/CONTRIBUTOR-GUIDANCE.md
@@ -41,7 +41,7 @@ An ideal application will contain the following:
We will select the best proposals based on the following criteria:
(The quantity of students depends on the number of JSON Schema projects accepted in GSoC)
-- The quality of the proposal and its priority for JSON Schema Project. This include the qualification task/tasks.
+- The quality of the proposal and its priority for JSON Schema Project. This includes the qualification task/tasks.
- Engagement of the student with the community and potential mentors.
- Contributions by the student to the JSON Schema Project & Community.
- Contributing to other Open Source Projects is a plus.
From 8716fc929cbecd55319371fc4b9ed1e6a846d965 Mon Sep 17 00:00:00 2001
From: Jonas Ulrich
Date: Fri, 8 Mar 2024 12:37:41 +0100
Subject: [PATCH 193/309] Adding kickstartDS to the Adopters list
This adds kickstartDS to the Adopters list.
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index cac54bd4..38d93f3b 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -57,3 +57,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
+| [kickstartDS](https://www.kickstartDS.com/) | [Jonas Ulrich](https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/) | [kickstartDS uses JSON Schema to document component APIs in Design Systems. Those get rewritten to headless CMS-specific configuration files through converters](https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77) |
From 533b5f6cca7fd1aa700b29dd52d64d234d7e3f0d Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 19 Mar 2024 16:47:15 +0100
Subject: [PATCH 194/309] New Community Sponsor tier
---
programs/sponsors/sponsors.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index 857b40d1..ab6f84b5 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -20,6 +20,14 @@ Individual backers donate $5 per month to the project, and get the following ben
- Visibility on the GitHub main project page in the "sponsors" section.
+## Benefits of being a community sponsor
+
+Community sponsors is a special tier for companies under 20 employees. Community sponsors donate $20 per month to the project, and get the following benefits:
+
+- Visibility on the GitHub main project page in the "sponsors" section.
+- "Thank you" tweet from [@jsonschema](https://twitter.com/jsonschema).
+- "Thank you" post in Linkedin from [@jsonschema](https://www.linkedin.com/company/jsonschema).
+
## Benefits of being a bronze sponsor
Bronze sponsors donate $100 per month to the project, and get the following benefits:
From 80c8f262af6e2b18e614ee90bab1a04aac1c7e89 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 19 Mar 2024 18:42:49 +0100
Subject: [PATCH 195/309] add slack channel benefit
---
programs/sponsors/sponsors.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/programs/sponsors/sponsors.md b/programs/sponsors/sponsors.md
index ab6f84b5..5ec8cbe0 100644
--- a/programs/sponsors/sponsors.md
+++ b/programs/sponsors/sponsors.md
@@ -27,6 +27,7 @@ Community sponsors is a special tier for companies under 20 employees. Community
- Visibility on the GitHub main project page in the "sponsors" section.
- "Thank you" tweet from [@jsonschema](https://twitter.com/jsonschema).
- "Thank you" post in Linkedin from [@jsonschema](https://www.linkedin.com/company/jsonschema).
+- A dedicated slack channel in our organization.
## Benefits of being a bronze sponsor
From 6adc89fb35047ede7f887ffcb40c962035d2ba31 Mon Sep 17 00:00:00 2001
From: Ayush Tiwari
Date: Sat, 23 Mar 2024 02:21:45 +0530
Subject: [PATCH 196/309] maintenance/workflow: update deprecated actions
---
.github/workflows/close-completed-ocwm.yml | 6 +++---
.github/workflows/ocwm-creator.yml | 4 ++--
.github/workflows/ocwm-issue-collector.yml | 6 +++---
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 6b2fa1bc..7144de61 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -11,10 +11,10 @@ jobs:
close-issues:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up Node 18
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v4
with:
node-version: '18'
@@ -27,7 +27,7 @@ jobs:
MY_LABEL: ${{ vars.OCWM_LABEL }}
OWNER: ${{ vars.ORGANISATION }}
REPO_NAMES: ${{ vars.REPOSITORIES }}
- uses: actions/github-script@v6
+ uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 61580dae..c862e735 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -18,7 +18,7 @@ jobs:
with:
node-version: '20'
- name: Set up Python
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Generate Issue Title
@@ -29,7 +29,7 @@ jobs:
- name: Create Issue using Template
id: create-issue
- uses: peter-evans/create-issue-from-file@v4
+ uses: peter-evans/create-issue-from-file@v5
with:
title: ${{ steps.create-title.outputs.title }}
content-filepath: .github/ISSUE_TEMPLATE/open_community_working_meeting.md
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 402a22cc..da499651 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -11,15 +11,15 @@ jobs:
search_and_add:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up Node 18
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Adding Issues
- uses: actions/github-script@v6
+ uses: actions/github-script@v7
env:
PLACEHOLDER: ''
OWNER: ${{ vars.ORGANISATION }}
From 908d18246d5084506c9f7818e4a8515489023c80 Mon Sep 17 00:00:00 2001
From: Ayush Tiwari
Date: Sat, 23 Mar 2024 16:05:00 +0530
Subject: [PATCH 197/309] maintenance/workflow: update Node version
---
.github/workflows/close-completed-ocwm.yml | 4 ++--
.github/workflows/ocwm-issue-collector.yml | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 7144de61..2d7d5f2c 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -13,10 +13,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- - name: Set up Node 18
+ - name: Set up Node 20
uses: actions/setup-node@v4
with:
- node-version: '18'
+ node-version: '20'
- name: Install dependencies
run: npm install @octokit/core@5.1.0
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index da499651..3ce6a8ad 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -12,10 +12,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - name: Set up Node 18
+ - name: Set up Node 20
uses: actions/setup-node@v4
with:
- node-version: '18'
+ node-version: '20'
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Adding Issues
From 72a07d8f70acb39e77a92d2c1d7e36bfeaa00d26 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 13 Feb 2024 14:04:37 +0000
Subject: [PATCH 198/309] Add FSM for governance defined voting
---
docs/governance/supporting-info.md | 46 ++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 docs/governance/supporting-info.md
diff --git a/docs/governance/supporting-info.md b/docs/governance/supporting-info.md
new file mode 100644
index 00000000..6e9e783f
--- /dev/null
+++ b/docs/governance/supporting-info.md
@@ -0,0 +1,46 @@
+# Supporting information for the governance process
+
+For the governance process of the JSON Schema Project, see the primary [GOVERNANCE.MD](https://github.com/json-schema-org/community/blob/main/GOVERNANCE.md) document.
+
+This document provides supporting resources.
+
+## Workflow for voting
+
+The governance document specifies two ways to make decisions, decision making via consensus and decision making via voting.
+
+This section details the workflow of the voting process.
+(The voting process may be different to the voting process found as part of the quick consensus process.)
+
+The following is a diagram generated from a Finite State Machine created in Stately.ai.
+One output is Mermaid, which is a diagram format rendered by GitHub!
+It is not as good as viewing the Finite State Machine on Stately, which I would recommend, but it does give you an idea of what to expect.
+
+When you [view this FSM on Stately](https://stately.ai/registry/editor/embed/c53f8d7e-78fa-420e-bec7-59b8ce2471dd?machineId=140d0a50-b21c-462e-99d5-f13231127cb2), you can "run the simulation" (bottom right button) and step through the process, selecting the next action at each state.
+
+While this isn't a traditional flowchart, I feel the ability to interact with and step through the process outweighs any potential familiarity with flowchart diagrammatic representation.
+
+```mermaid
+%% Generated with Stately Studio
+stateDiagram-v2
+ state "votingMachine" as votingMachine {
+ [*] --> votingMachine.Idle
+ votingMachine.Idle --> votingMachine.Awaiting_public_vote_setup : Call TSC Vote Public \ndo / Call for TSC vote
+ votingMachine.Idle --> votingMachine.Awaiting_approval_for_private_vote : Request private vote \ndo / Contact TSC Chairs
+ votingMachine.Awaiting_approval_for_private_vote --> votingMachine.Awaiting_additional_comment_for_counting_votes : Create Issue in private repo\nif [TSC Chair approved]
+ votingMachine.Voting_open --> votingMachine.Awaiting_extension_approval : request_extension \ndo / requestExtension
+ votingMachine.Voting_open --> votingMachine.VotingClosed : xstate.after(604800000)#votingMachine.Voting open \ndo / calculateQuorum
+ votingMachine.Awaiting_extension_approval --> votingMachine.Voting_open : approve_extension \ndo / extendVotingPeriod
+ votingMachine.Awaiting_approval_for_private_vote --> votingMachine.Idle : Not approved by chairs
+ votingMachine.Awaiting_extension_approval --> votingMachine.Voting_open : Extension not approved
+ votingMachine.Awaiting_public_vote_setup --> votingMachine.Awaiting_additional_comment_for_counting_votes : Create Issue in public TSC repo
+ votingMachine.Voting_open --> votingMachine.Voting_open : Cast Vote
+ votingMachine.Awaiting_additional_comment_for_counting_votes --> votingMachine.Voting_open : Create specific comment for voting on
+ state "Idle\n\nThe system is idle, awaiting a call for a public TSC vote or a request for a private vote." as votingMachine.Idle
+ state "Awaiting public vote setup" as votingMachine.Awaiting_public_vote_setup
+ state "Awaiting approval for private vote\n\nA TSC member requests a private vote by contacting the TSC Chairs. The issue is created in the TSC-private repository." as votingMachine.Awaiting_approval_for_private_vote
+ state "Voting open\n\nVoting is open and members can cast their votes using GitHub Reactions on the specified comment." as votingMachine.Voting_open
+ state "Awaiting extension approval\n\nA TSC member has requested a 7-day extension to the voting period.\n\nThis will not be unreasonably withheld." as votingMachine.Awaiting_extension_approval
+ state "VotingClosed\n\nVoting has closed. The votes are tallied, and the result is determined based on whether quorum was reached." as votingMachine.VotingClosed
+ state "Awaiting additional comment for counting votes" as votingMachine.Awaiting_additional_comment_for_counting_votes
+ }
+```
From 36acbf0d0534f606cdca08f2f433926d47855089 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 13 Feb 2024 14:08:54 +0000
Subject: [PATCH 199/309] Further explain why the supporting governance info is
helpful
---
docs/governance/supporting-info.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/governance/supporting-info.md b/docs/governance/supporting-info.md
index 6e9e783f..1ce610c5 100644
--- a/docs/governance/supporting-info.md
+++ b/docs/governance/supporting-info.md
@@ -2,7 +2,7 @@
For the governance process of the JSON Schema Project, see the primary [GOVERNANCE.MD](https://github.com/json-schema-org/community/blob/main/GOVERNANCE.md) document.
-This document provides supporting resources.
+This document provides supporting resources in acknowledgement that parsing legalistic governance process documents can sometimes take considerable effort, and humans are error prone.
## Workflow for voting
From a85b4c8f947f737515821a73b0cb69027b1b921e Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 13 Feb 2024 14:13:12 +0000
Subject: [PATCH 200/309] Link to supporting governance information document
from the primary governance document
---
GOVERNANCE.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index e00258f1..f2160b0f 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -33,9 +33,9 @@ There may be other grounds for removal from the TSC, such as seriously violating
The JSON Schema Project uses 2 different mechanism for decision making:
-1. **Consensus**: The JSON Schema Project tries by default to find consensus in all the strategic decision by using the consensus mechanism described below.
+1. **Consensus**: The JSON Schema Project tries by default to find consensus in all the strategic decision by using the consensus mechanism described below.
-2. **Voting**: It is OK use the voting process for those cases when the discussion has already occurred or discussion and discovery is not required. Voting is a simple yet powerful mechanism.
+2. **Voting**: It is OK use the voting process for those cases when the discussion has already occurred or discussion and discovery is not required. Voting is a simple yet powerful mechanism.
### Decision-making via consensus
@@ -136,6 +136,8 @@ The topic and nature of private votes may remain private, including the results.
The kinds of votes which should be private include things related to security reports or discussions with an entity where it might not be desireable to be made public knowledge to either party. This could include details of case studies or partnerships which are not yet concluded or published, where either party may need a final approval for publication or wishes for coordinated or scheduled public publication.
+(You can view the "Decision-making via vote" process as a runnable interactive Finite State Machine in the [governance supporting information document](./docs/governance/supporting-info.md).)
+
### Documenting decisions
Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
From b8c6a9ef4511bbf70de9ef0666987c9cad449b54 Mon Sep 17 00:00:00 2001
From: Ben Hutton
Date: Tue, 13 Feb 2024 14:15:46 +0000
Subject: [PATCH 201/309] Correctly introduce FSM acronym
---
docs/governance/supporting-info.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/governance/supporting-info.md b/docs/governance/supporting-info.md
index 1ce610c5..91c2b669 100644
--- a/docs/governance/supporting-info.md
+++ b/docs/governance/supporting-info.md
@@ -11,7 +11,7 @@ The governance document specifies two ways to make decisions, decision making vi
This section details the workflow of the voting process.
(The voting process may be different to the voting process found as part of the quick consensus process.)
-The following is a diagram generated from a Finite State Machine created in Stately.ai.
+The following is a diagram generated from a Finite State Machine (FSM) created in Stately.ai.
One output is Mermaid, which is a diagram format rendered by GitHub!
It is not as good as viewing the Finite State Machine on Stately, which I would recommend, but it does give you an idea of what to expect.
From 4c5b386122f563d4203aba849d50bc4d857096ef Mon Sep 17 00:00:00 2001
From: Zack Kanter
Date: Mon, 8 Apr 2024 12:15:06 -0400
Subject: [PATCH 202/309] Add Stedi to list of adopters
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 38d93f3b..171cde61 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -58,3 +58,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
| [kickstartDS](https://www.kickstartDS.com/) | [Jonas Ulrich](https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/) | [kickstartDS uses JSON Schema to document component APIs in Design Systems. Those get rewritten to headless CMS-specific configuration files through converters](https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77) |
+| [Stedi](https://www.stedi.com/) | [Brian Quinn](https://www.linkedin.com/in/bdquinn/) | [Stedi Guides – powered by JSON Schema](https://www.stedi.com/docs/edi-platform/operate/transform-json/guide-json#find-a-guides-json-schema) |
From d8528b7cf2ba5c0b766852b65a4f08573cf436c4 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Sat, 13 Apr 2024 10:11:21 +0530
Subject: [PATCH 203/309] Added the bug_report template
---
.github/ISSUE_TEMPLATE/bug_report.yml | 62 +++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 00000000..d4b217d0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,62 @@
+name: 🐛 Bug Report
+about: Create a report to help us improve our workflows
+title: "🐛 Bug: "
+labels: ["🐛 Bug", "Status: Triage"]
+---
+
+body:
+- type: textarea
+ attributes:
+ label: Describe the bug
+ description: A clear and concise description of what the bug is
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: Steps To Reproduce
+ description: Steps to reproduce the behavior
+ placeholder: |
+ 1. Go to'...'
+ 2. Click on'...'
+ 3. Scroll down to'...'
+ 4. See error
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: Expected Behavior
+ description: A clear and concise description of what you expected to happen
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: Screenshots
+ description: |
+ If applicable, add screenshots to help explain your problem
+
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in
+ validations:
+ required: false
+- type: textarea
+ attributes:
+ label: Device Information [optional]
+ description: |
+ examples:
+ - **OS**: Ubuntu 20.04
+ - **Browser**: chrome
+ - **version**: 22
+ value: |
+ - OS:
+ - Browser:
+ - version:
+ render: markdown
+ validations:
+ required: false
+- type: dropdown
+ attributes:
+ label: Are you working on this issue?
+ options:
+ - 'Yes'
+ - 'No'
+ validations:
+ required: true
\ No newline at end of file
From 191c040b1c761a8b89de07f97ca17de2b6e95c1c Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Sat, 13 Apr 2024 10:12:31 +0530
Subject: [PATCH 204/309] some changes
---
.github/ISSUE_TEMPLATE/bug_report.yml | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index d4b217d0..83646192 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,20 +1,19 @@
-name: 🐛 Bug Report
-about: Create a report to help us improve our workflows
+name: "🐛 Bug Report"
+about: "Create a report to help us improve our workflows"
title: "🐛 Bug: "
labels: ["🐛 Bug", "Status: Triage"]
----
body:
- type: textarea
attributes:
- label: Describe the bug
- description: A clear and concise description of what the bug is
+ label: "Describe the bug"
+ description: "A clear and concise description of what the bug is"
validations:
required: true
- type: textarea
attributes:
- label: Steps To Reproduce
- description: Steps to reproduce the behavior
+ label: "Steps To Reproduce"
+ description: "Steps to reproduce the behavior"
placeholder: |
1. Go to'...'
2. Click on'...'
@@ -24,13 +23,13 @@ body:
required: true
- type: textarea
attributes:
- label: Expected Behavior
- description: A clear and concise description of what you expected to happen
+ label: "Expected Behavior"
+ description: "A clear and concise description of what you expected to happen"
validations:
required: true
- type: textarea
attributes:
- label: Screenshots
+ label: "Screenshots"
description: |
If applicable, add screenshots to help explain your problem
@@ -39,7 +38,7 @@ body:
required: false
- type: textarea
attributes:
- label: Device Information [optional]
+ label: "Device Information [optional]"
description: |
examples:
- **OS**: Ubuntu 20.04
@@ -54,9 +53,9 @@ body:
required: false
- type: dropdown
attributes:
- label: Are you working on this issue?
+ label: "Are you working on this issue?"
options:
- 'Yes'
- 'No'
validations:
- required: true
\ No newline at end of file
+ required: true
From 76d206b1081d834f0a874e5268d264923dd2a0ae Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Sat, 13 Apr 2024 10:13:12 +0530
Subject: [PATCH 205/309] removed about keyword and added description
---
.github/ISSUE_TEMPLATE/bug_report.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 83646192..527876b9 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,5 +1,5 @@
name: "🐛 Bug Report"
-about: "Create a report to help us improve our workflows"
+description: "Create a report to help us improve our workflows"
title: "🐛 Bug: "
labels: ["🐛 Bug", "Status: Triage"]
From 9b1d738332c9bbe7f09bc123a688ea9795e82f3c Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Sat, 13 Apr 2024 10:15:24 +0530
Subject: [PATCH 206/309] workflow_suggestion template added
---
.../ISSUE_TEMPLATE/workflow_suggestion.yml | 40 +++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 .github/ISSUE_TEMPLATE/workflow_suggestion.yml
diff --git a/.github/ISSUE_TEMPLATE/workflow_suggestion.yml b/.github/ISSUE_TEMPLATE/workflow_suggestion.yml
new file mode 100644
index 00000000..8404313f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/workflow_suggestion.yml
@@ -0,0 +1,40 @@
+name: "💡 Workflow Suggestion"
+description: "Suggest a new community workflow"
+title: "💡 Workflow Suggestion: "
+labels: ["💡 Workflow Suggestion", "Status: Review"]
+
+body:
+- type: textarea
+ attributes:
+ label: "Description"
+ description: "A clear and concise description of the suggested workflow"
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: "Objective"
+ description: "What is the main goal or purpose of this workflow?"
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: "Steps"
+ description: "List the steps of the suggested workflow"
+ placeholder: |
+ 1. Step 1
+ 2. Step 2
+ 3. Step 3
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: "Expected Outcome"
+ description: "A clear and concise description of what you expect to achieve with this workflow"
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: "Additional Context [optional]"
+ description: "Add any other context or information about the suggested workflow here"
+ validations:
+ required: false
From db37d6336c0710d52e2bd351cd821207f9ac6ff7 Mon Sep 17 00:00:00 2001
From: Aditya Sharma <119804372+Adity20@users.noreply.github.com>
Date: Mon, 15 Apr 2024 15:38:30 +0530
Subject: [PATCH 207/309] Update .github/ISSUE_TEMPLATE/bug_report.yml
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
.github/ISSUE_TEMPLATE/bug_report.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 527876b9..b557e85a 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,5 +1,5 @@
name: "🐛 Bug Report"
-description: "Create a report to help us improve our workflows"
+description: "Create a report to help us improve our community workflows"
title: "🐛 Bug: "
labels: ["🐛 Bug", "Status: Triage"]
From 496d173ad0fb05a1bda81b26a1fe6b67c6caf9b5 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 16 Apr 2024 00:15:42 +0200
Subject: [PATCH 208/309] Update blog-guidelines to clarify the first step to
submit an blog idea
This change will require the creation of an issue as first step before submitting the PR with the article.
---
docs/blog-guidelines.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/blog-guidelines.md b/docs/blog-guidelines.md
index ea8b97be..d0b46b00 100644
--- a/docs/blog-guidelines.md
+++ b/docs/blog-guidelines.md
@@ -45,8 +45,8 @@ The JSON Schema project will review the statement, as we do for the content for
## Promotion ##
Please feel free to share the blog on social media.
-## How to submit for consideration ##
-Please submit your PR for consideration and we will start the PR process. If the article is not suitable for the JSON Schema blog, we will provide feedback and direction. Find here an example of [blog PR](https://github.com/json-schema-org/website/pull/177).
+## How to submit an article for consideration ##
+Please create an issue to introduce your blog idea as first step. If the article is not suitable for the JSON Schema blog, we will provide feedback and direction. Once the issue has been accepted you can proceed with the PR. Find here an example of [blog PR](https://github.com/json-schema-org/website/pull/177).
### Note on JSON Champions
Until we publish an official definition of JSON Schema Champion, we consider JSON Schema Champions to experts, educators, authors, and event organizers relevant to the JSON Schema ecosystem.
From 5b646ef5868fc3b1603fd9eb7875f32affe923b9 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 11:06:44 +0530
Subject: [PATCH 209/309] added the code for removing agenda label from
discussions
---
.github/workflows/ocwm-issue-collector.yml | 65 +++++++++++++++-------
1 file changed, 45 insertions(+), 20 deletions(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 3ce6a8ad..4cf8419d 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -19,14 +19,15 @@ jobs:
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Adding Issues
+ id: add-issues
uses: actions/github-script@v7
env:
PLACEHOLDER: ''
- OWNER: ${{ vars.ORGANISATION }}
+ OWNER: ${{ secrets.ORGANIZATION }}
REPO: 'community'
- REPO_NAMES: ${{ vars.REPOSITORIES }}
- AGENDA_LABEL: ${{ vars.AGENDA_LABEL }}
- OCWM_LABEL: ${{ vars.OCWM_LABEL }}
+ REPO_NAMES: ${{ secrets.REPOSITORIES }}
+ AGENDA_LABEL: ${{ secrets.AGENDA_LABEL }}
+ OCWM_LABEL: ${{ secrets.OCWM_LABEL }}
MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
with:
script: |
@@ -38,27 +39,17 @@ jobs:
const repoNames = process.env.REPO_NAMES;
const placeholder = process.env.PLACEHOLDER;
- console.log("Placeholder:" + placeholder);
let repositories = repoNames.split(",")
let targetLabel = encodeURIComponent(process.env.OCWM_LABEL);
let appendLabel = encodeURIComponent(process.env.AGENDA_LABEL);
- console.log("Repositories:" + repositories);
-
- console.log(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`);
-
const { data: workMeetings } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`, {
})
- console.log("workMeetings:" + JSON.stringify(workMeetings));
-
for (let r = 0; r < repositories.length; r++) {
-
-
const { data: items2add } = await mygithub.request(`GET /repos/${process.env.OWNER}/${repositories[r]}/issues?labels=${appendLabel}`);
- console.log("Issues to add:" + JSON.stringify(items2add));
-
+
const query = `
query {
search(query: "repo:${process.env.OWNER}/${repositories[r]} is:open label:${appendLabel}", type: DISCUSSION, first: 5) {
@@ -77,10 +68,7 @@ jobs:
}
}`;
const response = await mygithub.graphql(query, {});
- console.log("Response:" + JSON.stringify(response));
-
const discussions = response.search.edges;
- console.log("Discussions to add:" + JSON.stringify(discussions));
try {
let body = workMeetings[0].body;
@@ -118,13 +106,31 @@ jobs:
let template = JSON.stringify(JSON.stringify(body));
let parsed = JSON.parse(JSON.parse(template));
- console.log(`PATCH /repos/${process.env.OWNER}/${process.env.REPO}/issues/${workMeetings[0].number}`);
-
await mygithub.request(`PATCH /repos/${process.env.OWNER}/${process.env.REPO}/issues/${workMeetings[0].number}`, {
body: parsed,
milestone: null,
state: 'open',
})
+
+ // Remove 'agenda' label from added issues and discussions
+ for (let i = 0; i < items2add.length; i++) {
+ await mygithub.graphql(`
+ mutation {
+ removeLabelsFromLabelable(input: {labelIds: ["${process.env.AGENDA_LABEL_ID}"], labelableId: "${items2add[i].node_id}"}) {
+ clientMutationId
+ }
+ }
+ `);
+ }
+ for (let i = 0; i < discussions.length; i++) {
+ await mygithub.graphql(`
+ mutation {
+ removeLabelsFromLabelable(input: {labelIds: ["${process.env.AGENDA_LABEL_ID}"], labelableId: "${discussions[i].node.node_id}"}) {
+ clientMutationId
+ }
+ }
+ `);
+ }
}
}
catch (err) {
@@ -133,3 +139,22 @@ jobs:
}
}
+
+ - name: Get Label ID
+ id: get-label-id
+ uses: actions/github-script@v7
+ env:
+ OWNER: ${{ secrets.ORGANIZATION }}
+ REPO: 'community'
+ LABEL_NAME: 'agenda'
+ MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ with:
+ script: |
+ const octokit = require('@octokit/core').Octokit
+ const mygithub = new octokit({
+ auth: process.env.MY_TOKEN
+ });
+
+ const { data: label } = await mygithub.request('GET /repos/${process.env.OWNER}/${process.env.REPO}/labels/${process.env.LABEL_NAME}');
+ console.log(label.id);
+ console.log(`::set-env name=AGENDA_LABEL_ID::${label.id}`);
From 5b2f3005926775b8e7c62852e81f4b347a3e5674 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 11:07:46 +0530
Subject: [PATCH 210/309] some variable name changed
---
.github/workflows/ocwm-issue-collector.yml | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 4cf8419d..fb26a0c0 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -23,12 +23,12 @@ jobs:
uses: actions/github-script@v7
env:
PLACEHOLDER: ''
- OWNER: ${{ secrets.ORGANIZATION }}
+ OWNER: ${{ vars.ORGANISATION }}
REPO: 'community'
- REPO_NAMES: ${{ secrets.REPOSITORIES }}
- AGENDA_LABEL: ${{ secrets.AGENDA_LABEL }}
- OCWM_LABEL: ${{ secrets.OCWM_LABEL }}
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ REPO_NAMES: ${{ vars.REPOSITORIES }}
+ AGENDA_LABEL: ${{ vars.AGENDA_LABEL }}
+ OCWM_LABEL: ${{ vars.OCWM_LABEL }}
+ MY_TOKEN: ${{ vars.AUTH_TOKEN }}
with:
script: |
const octokit = require('@octokit/core').Octokit
@@ -144,10 +144,10 @@ jobs:
id: get-label-id
uses: actions/github-script@v7
env:
- OWNER: ${{ secrets.ORGANIZATION }}
+ OWNER: ${{ vars.ORGANIZATION }}
REPO: 'community'
LABEL_NAME: 'agenda'
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ MY_TOKEN: ${{ vars.AUTH_TOKEN }}
with:
script: |
const octokit = require('@octokit/core').Octokit
From a383bb895f0abf0ac4414ab19ccfbfecfaa49560 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 11:08:19 +0530
Subject: [PATCH 211/309] same as last commit
---
.github/workflows/ocwm-issue-collector.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index fb26a0c0..3ca69ce2 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -28,7 +28,7 @@ jobs:
REPO_NAMES: ${{ vars.REPOSITORIES }}
AGENDA_LABEL: ${{ vars.AGENDA_LABEL }}
OCWM_LABEL: ${{ vars.OCWM_LABEL }}
- MY_TOKEN: ${{ vars.AUTH_TOKEN }}
+ MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
with:
script: |
const octokit = require('@octokit/core').Octokit
From eac0ca31f99ac551e72534dc5a77c43f0f0250d4 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 11:10:56 +0530
Subject: [PATCH 212/309] some console.log statements added
---
.github/workflows/ocwm-issue-collector.yml | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 3ca69ce2..8c5b8c19 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -39,17 +39,23 @@ jobs:
const repoNames = process.env.REPO_NAMES;
const placeholder = process.env.PLACEHOLDER;
+ console.log("Placeholder:" + placeholder);
let repositories = repoNames.split(",")
let targetLabel = encodeURIComponent(process.env.OCWM_LABEL);
let appendLabel = encodeURIComponent(process.env.AGENDA_LABEL);
+ console.log("Repositories:" + repositories);
+
+ console.log(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`);
+
const { data: workMeetings } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`, {
})
+ console.log("workMeetings:" + JSON.stringify(workMeetings));
for (let r = 0; r < repositories.length; r++) {
const { data: items2add } = await mygithub.request(`GET /repos/${process.env.OWNER}/${repositories[r]}/issues?labels=${appendLabel}`);
-
+ console.log("Issues to add:" + JSON.stringify(items2add));
const query = `
query {
search(query: "repo:${process.env.OWNER}/${repositories[r]} is:open label:${appendLabel}", type: DISCUSSION, first: 5) {
@@ -68,7 +74,9 @@ jobs:
}
}`;
const response = await mygithub.graphql(query, {});
+ console.log("Response:" + JSON.stringify(response));
const discussions = response.search.edges;
+ console.log("Discussions to add:" + JSON.stringify(discussions));
try {
let body = workMeetings[0].body;
@@ -106,6 +114,8 @@ jobs:
let template = JSON.stringify(JSON.stringify(body));
let parsed = JSON.parse(JSON.parse(template));
+ console.log(`PATCH /repos/${process.env.OWNER}/${process.env.REPO}/issues/${workMeetings[0].number}`);
+
await mygithub.request(`PATCH /repos/${process.env.OWNER}/${process.env.REPO}/issues/${workMeetings[0].number}`, {
body: parsed,
milestone: null,
From a2baa77fe265296020ccfb6f74634be72c920233 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 11:15:06 +0530
Subject: [PATCH 213/309] variable name changed
---
.github/workflows/ocwm-issue-collector.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 8c5b8c19..ecf1bc9d 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -157,7 +157,7 @@ jobs:
OWNER: ${{ vars.ORGANIZATION }}
REPO: 'community'
LABEL_NAME: 'agenda'
- MY_TOKEN: ${{ vars.AUTH_TOKEN }}
+ MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
with:
script: |
const octokit = require('@octokit/core').Octokit
From ce3a22938304c6a1877f9e1ad8037dc9ca24f954 Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 11:25:08 +0530
Subject: [PATCH 214/309] using property name
---
.github/workflows/ocwm-issue-collector.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index ecf1bc9d..1acd32b5 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -126,7 +126,7 @@ jobs:
for (let i = 0; i < items2add.length; i++) {
await mygithub.graphql(`
mutation {
- removeLabelsFromLabelable(input: {labelIds: ["${process.env.AGENDA_LABEL_ID}"], labelableId: "${items2add[i].node_id}"}) {
+ removeLabelsFromLabelable(input: {labelIds: ["${process.env.AGENDA_LABEL_ID}"], labelableId: "${items2add[i].number}"}) {
clientMutationId
}
}
From 17134d791c649543f570e5c4cf7b26919daaecaa Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 12:12:48 +0530
Subject: [PATCH 215/309] removed the code for removing issues using graphql
because rest api is working fine for it
---
.github/workflows/ocwm-issue-collector.yml | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index 1acd32b5..fb0c9131 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -93,6 +93,7 @@ jobs:
let json_text = JSON.stringify(body.substring(0, startIndex - 1) + `\n| ${url} - ${title} | ${author} |\r\n` + body.substring(startIndex, body.length));
body = JSON.parse(json_text);
changesFlag = true;
+ await mygithub.request(`DELETE /repos/${process.env.OWNER}/${repositories[r]}/issues/${items2add[i].number}/labels/${appendLabel}`);
}
}
@@ -122,16 +123,6 @@ jobs:
state: 'open',
})
- // Remove 'agenda' label from added issues and discussions
- for (let i = 0; i < items2add.length; i++) {
- await mygithub.graphql(`
- mutation {
- removeLabelsFromLabelable(input: {labelIds: ["${process.env.AGENDA_LABEL_ID}"], labelableId: "${items2add[i].number}"}) {
- clientMutationId
- }
- }
- `);
- }
for (let i = 0; i < discussions.length; i++) {
await mygithub.graphql(`
mutation {
From 3fd9c031a04aa8dedd01b89ebd68fed4e9d9a09b Mon Sep 17 00:00:00 2001
From: Aditya Sharma
Date: Tue, 16 Apr 2024 18:02:08 +0530
Subject: [PATCH 216/309] adding the new workflow
---
.github/workflows/slack-ocwm-reminder.yml | 78 +++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 .github/workflows/slack-ocwm-reminder.yml
diff --git a/.github/workflows/slack-ocwm-reminder.yml b/.github/workflows/slack-ocwm-reminder.yml
new file mode 100644
index 00000000..ef4ed505
--- /dev/null
+++ b/.github/workflows/slack-ocwm-reminder.yml
@@ -0,0 +1,78 @@
+name: Send reminders to join the OCWM
+
+on:
+ schedule:
+ - cron: '0 15 1-7 * 5' #Runs at 15:00, between day 1 and 7 of the month on Friday
+ - cron: '0 15 1-7 * 2' #Runs at 15:00, between day 1 and 7 of the month on Tuesday
+
+jobs:
+ ocwm-reminders:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+ - name: Set up Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Install dependencies
+ run: npm install @octokit/core@5.1.0
+
+ - name: Send reminders
+ uses: actions/github-script@v7
+ env:
+ MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ OWNER: ${{ vars.ORGANISATION }}
+ REPO: 'community'
+ OCWM_LABEL: ${{ vars.OCWM_LABEL }}
+ SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK_REMINDER }}
+ with:
+ script: |
+
+ const octokit = require('@octokit/core').Octokit;
+ const mygithub = new octokit({
+ request: { fetch: fetch,},
+ auth: process.env.MY_TOKEN
+ });
+
+ let targetLabel = encodeURIComponent(process.env.OCWM_LABEL);
+
+ const { data: workMeetings } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`, {
+ })
+
+ const issueNumber = workMeetings[0].number
+ const newTitle = workMeetings[0].title;
+ const issueDate = newTitle.replace(/Open Community Working Meeting /g, "");
+
+ //Date of the next meeting
+ const nextMeetingDate = new Date();
+ nextMeetingDate.setDate(nextMeetingDate.getDate() + (2 + 7 - nextMeetingDate.getDay()) % 7);
+
+ const formattedDate = nextMeetingDate.toISOString().split('T')[0];
+
+ const reminderText = (new Date().getDay() === 2) ? "today" : formattedDate;
+
+ // Checking if the reminder should be sent
+ const today = new Date();
+ const firstTuesday = new Date(today.getFullYear(), today.getMonth(), 1);
+ firstTuesday.setDate(firstTuesday.getDate() + (2 + 7 - firstTuesday.getDay()) % 7);
+ const firstFriday = new Date(today.getFullYear(), today.getMonth(), 1);
+ firstFriday.setDate(firstFriday.getDate() + (5 + 7 - firstFriday.getDay()) % 7);
+
+ if ((today.getDay() === 2 && today.getDate() === firstTuesday.getDate()) || (today.getDay() === 5 && today.getDate() === firstFriday.getDate() && firstFriday < firstTuesday)) {
+ // Notify Slack
+ const SLACK_WEBHOOK_URL = process.env.SLACK_WEBHOOK;
+ const SLACK_MESSAGE = `{
+ "issue": "https://github.com/${process.env.OWNER}/${process.env.REPO}/issues/${issueNumber}",
+ "date": "${reminderText}"
+ }`;
+
+ await fetch(SLACK_WEBHOOK_URL, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: SLACK_MESSAGE,
+ });
+ }
\ No newline at end of file
From e56bc27f1d052d4d7237240dec0a7732f48d463e Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 17 Apr 2024 12:32:05 +0200
Subject: [PATCH 217/309] Sort adopters alphabetically
---
ADOPTERS.md | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 171cde61..44f97346 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -36,26 +36,28 @@ JSON Schema is an [OpenJS Foundation](https://openjsf.org/about) Project, under
By supporting JSON Schema with a case study, you are documenting its success and your smarts in picking it as a solution. JSON Schema case studies help justify the ongoing financial support required to mature, develop, and support the JSON Schema ecosystem. Case studies also demonstrate the strength of the JSON Schema ecosystem in production today. The next case study could be you.
+(ordered alphabetically)
+
| Organization | Contact | Description of Use / Reference |
| --- | --- | --- |
-| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) |
-| [Cookpad](https://cookpad.com/) | [Kenshi Shiode](https://www.linkedin.com/in/kenshi-shiode-b65922212/) | [Cookpad JSON Schema case study](https://json-schema.org/blog/posts/cookpad-case-study-en) |
-| [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
-| [W3C Web of Things](https://www.w3.org/WoT/) | [Ege Korkan](https://www.linkedin.com/in/ege-korkan/) | [W3C Web of Things JSON Schema case study](https://json-schema.org/blog/posts/w3c-wot-case-study) |
-| [Remote](https://remote.com/) | [Sandrina Pereira](https://www.linkedin.com/in/sandrina-p/) | [Remote JSON Schema case study](https://json-schema.org/blog/posts/remote-case-study) |
-| [Postman](https://www.postman.com/) | [Juan Cruz Viotti](https://www.linkedin.com/in/jviotti/) | [Postman JSON Schema case study](https://json-schema.org/blog/posts/postman-case-study) |
-| [OpenMetadata](https://open-metadata.org/) | [Suresh Srinivas](https://www.linkedin.com/in/sureshsri/) | [OpenMetadata - JSON Schema in production episode](https://youtu.be/ZrVTZwmTR3k) |
-| [Wundergraph](https://wundergraph.com/) | [Jens Neuse](https://www.linkedin.com/in/jens-neuse-706673195/) | [Wundergraph - JSON Schema in production episode](https://youtu.be/_TCU6da0GA8) |
-| [Zapier](https://zapier.com/) | [David Brownman](https://www.linkedin.com/in/xavdid/) | [Zapier - JSON Schema in production episode](https://youtu.be/yDL98sd4KVE) |
-| [Microsoft](https://www.microsoft.com/) | [Mads Kristensen](https://www.linkedin.com/in/madskvistkristensen/) | [Microsoft - JSON Schema in production episode](https://youtu.be/-yYTxLZZk58) |
-| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
-| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
-| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
+| [Cookpad](https://cookpad.com/) | [Kenshi Shiode](https://www.linkedin.com/in/kenshi-shiode-b65922212/) | [Cookpad JSON Schema case study](https://json-schema.org/blog/posts/cookpad-case-study-en) |
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
-| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
+| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
+| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) || [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
-| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
| [kickstartDS](https://www.kickstartDS.com/) | [Jonas Ulrich](https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/) | [kickstartDS uses JSON Schema to document component APIs in Design Systems. Those get rewritten to headless CMS-specific configuration files through converters](https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77) |
+| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
+| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
+| [Microsoft](https://www.microsoft.com/) | [Mads Kristensen](https://www.linkedin.com/in/madskvistkristensen/) | [Microsoft - JSON Schema in production episode](https://youtu.be/-yYTxLZZk58) |
+| [OpenMetadata](https://open-metadata.org/) | [Suresh Srinivas](https://www.linkedin.com/in/sureshsri/) | [OpenMetadata - JSON Schema in production episode](https://youtu.be/ZrVTZwmTR3k) |
+| [Postman](https://www.postman.com/) | [Juan Cruz Viotti](https://www.linkedin.com/in/jviotti/) | [Postman JSON Schema case study](https://json-schema.org/blog/posts/postman-case-study) |
+| [Remote](https://remote.com/) | [Sandrina Pereira](https://www.linkedin.com/in/sandrina-p/) | [Remote JSON Schema case study](https://json-schema.org/blog/posts/remote-case-study) |
| [Stedi](https://www.stedi.com/) | [Brian Quinn](https://www.linkedin.com/in/bdquinn/) | [Stedi Guides – powered by JSON Schema](https://www.stedi.com/docs/edi-platform/operate/transform-json/guide-json#find-a-guides-json-schema) |
+| [W3C Web of Things](https://www.w3.org/WoT/) | [Ege Korkan](https://www.linkedin.com/in/ege-korkan/) | [W3C Web of Things JSON Schema case study](https://json-schema.org/blog/posts/w3c-wot-case-study) |
+| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
+| [Wundergraph](https://wundergraph.com/) | [Jens Neuse](https://www.linkedin.com/in/jens-neuse-706673195/) | [Wundergraph - JSON Schema in production episode](https://youtu.be/_TCU6da0GA8) |
+| [Zapier](https://zapier.com/) | [David Brownman](https://www.linkedin.com/in/xavdid/) | [Zapier - JSON Schema in production episode](https://youtu.be/yDL98sd4KVE) |
+| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
+
From 427bbea57273680bb9eb983538d607b32f22b8e6 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Wed, 17 Apr 2024 12:47:47 +0200
Subject: [PATCH 218/309] Added organizations using JSON Schema
---
ADOPTERS.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 44f97346..7ef6e41e 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -61,3 +61,52 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Zapier](https://zapier.com/) | [David Brownman](https://www.linkedin.com/in/xavdid/) | [Zapier - JSON Schema in production episode](https://youtu.be/yDL98sd4KVE) |
| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
+The previouse list contains the organizations that have opted to join the adopters of JSON Schema, although there are many others that also use it. Below, you will find a list of organizations known to utilize JSON Schema. Feel free to edit this list by adding any organization that has publicly disclosed its use of JSON Schema.
+
+- [Adobe Experience Manager](https://experienceleague.adobe.com/docs/experience-manager-65/forms/adaptive-forms-advanced-authoring/adaptive-form-json-schema-form-model.html?lang=en?utm_source=awesome-jsonschema) - The Adobe Experience Manager content management solution for building websites, mobile apps and forms supports creating adaptative forms using JSON Schema.
+- [Amazon EventBridge Schema Registry](https://aws.amazon.com/about-aws/whats-new/2020/09/amazon-eventbridge-schema-registry-announces-support-for-json-schema/?utm_source=awesome-jsonschema) - Amazon EventBridge Schema Registry has support for JSON Schema, allowing customers to validate, annotate, and manipulate JSON documents conforming to JSON Schema Draft 4 specification.
+- [Apiary](https://help.apiary.io/api_101/json-schema/?utm_source=awesome-jsonschema) - Apiary's interactive documentation is able to render JSON Schema documents associated with payloads.
+- [Assertible](https://assertible.com/json-schema-validation?utm_source=awesome-jsonschema) - Assertible provides a free-to-use API to validate a JSON document against a JSON Schema and a service to test and monitor web services using JSON Schema.
+- [Axway API Gateway](https://docs.axway.com/bundle/APIGateway_762_PolicyDevFilterReference_allOS_en_HTML5/page/Content/PolicyDevTopics/content_schema_json.htm?utm_source=awesome-jsonschema) - The API Gateway can check that JavaScript Object Notation (JSON) messages conform to the format expected by a web service by validating requests against a specified JSON schema.
+- [Cloudflare](https://blog.cloudflare.com/cloudflares-json-powered-documentation-generator/?utm_source=awesome-jsonschema) - The Cloudflare makes use of JSON Schema and Hyper Schema to keep track of their API endpoints.
+- [Cloudflare Terraform](https://www.infoq.com/news/2021/04/cloudflare-terraform/?utm_source=awesome-jsonschema) - The Cloudflare Terraform provider comes with a tool to generate Terraform configuration from existing Cloudflare resources that uses JSON Schema to map data between both technologies.
+- [Confluent Schema Registry](https://docs.confluent.io/platform/current/schema-registry/serdes-develop/serdes-json.html?utm_source=awesome-jsonschema) - JSON Schema can be configured with the Apache Kafka Java client and console tools to fail if the payload is not valid for the given schema.
+- [Contentstack](https://www.contentstack.com/docs/developers/create-content-types/json-schema-for-creating-a-content-type/?utm_source=awesome-jsonschema) - The Contentstack CMS platform supports creating content types using JSON Schema.
+- [Decisions](https://documentation.decisions.com/docs/create-types-json-schema?utm_source=awesome-jsonschema) - The Decisions rules-driven business process automation platform support using JSON Schema to generate JSON deserializers.
+- [DocSpring](https://docspring.com/docs/api/get_template_schema.html?utm_source=awesome-jsonschema) - The DocSpring service to automatically fill out PDF forms supports generating JSON Schema definitions for user-created templates.
+- [Drupal Patternkit](https://www.drupal.org/project/patternkit?utm_source=awesome-jsonschema) - The Drupal Patternkit module uses JSON Schema to define pattern templates.
+- [Form.io](https://www.form.io/article/angular-json-schema-form-builder?utm_source=awesome-jsonschema) - The Form.io online web form generator supports generating Angular.js forms using JSON Schema.
+- [Genomic Data Commons](https://gdc.cancer.gov/developers/gdc-data-model?utm_source=awesome-jsonschema) - The Genomic Data Commons data model is defined using JSON Schema.
+- [Hackolade](https://hackolade.com/help/JSONSchema.html?utm_source=awesome-jsonschema) - The Hackolade data modelling service supports defining entities using JSON Schema.
+- [Heroku](https://blog.heroku.com/json_schema_for_heroku_platform_api?utm_source=awesome-jsonschema) - Heroku makes use of JSON Schema to publish machine-readable schema definitions for their public APIs.
+- [Human Cell Atlas](https://data.humancellatlas.org/metadata/structure?utm_source=awesome-jsonschema) - The open data generated by the Human Cell Atlas describes metadata structure using JSON Schema.
+- [IBM App Connect](https://www.ibm.com/docs/en/app-connect/11.0.0?topic=schema-json-requirements-message-maps?utm_source=awesome-jsonschema) - The Graphical Data Mapping editor can be used to create and transform JSON messages with the data model defined from a JSON schema.
+- [Informatica](https://docs.informatica.com/data-integration/b2b-data-transformation/10-2-2/user-guide/wizard-input-and-output-formats/json/sample-json-schema.html?utm_source=awesome-jsonschema) - The Informatica data management platform supports creating auto-generated data processor transformations using JSON Schema.
+- [JSON BinPack](https://www.jsonbinpack.org?utm_source=awesome-jsonschema) - JSON BinPack uses JSON Schema to perform space-efficient JSON binary serialization.
+- [JSON:API](https://github.com/json-api/json-api/blob/a0296352b6eb57a4ea3eb08a1332e311f78adafa/schema?utm_source=awesome-jsonschema) - The JSON:API 1.0 and later specifications for building APIs in JSON use JSON Schema to define JSON:API responses.
+- [JamF](https://docs.jamf.com/technical-papers/jamf-pro/json-schema/10.26.0/Understanding_the_Structure_of_a_JSON_Schema_Manifest.html?utm_source=awesome-jsonschema) - The JamF Apple enterprise management service supports creating app manifests using JSON Schema.
+- [JetBrains](https://www.jetbrains.com/help/objc/json.html?utm_source=awesome-jsonschema) - The suite of JetBrains programming editors supports JSON code-completion based on JSON Schema.
+- [Lightblue.io](https://docs.lightblue.io/standards/json_schema.html?utm_source=awesome-jsonschema) - The Lightblue document based data access layer framework uses JSON Schema to define certain file resources in the project.
+- [Linux](https://www.kernel.org/doc/html/latest/devicetree/bindings/writing-schema.html?utm_source=awesome-jsonschema) - The Linux kernel uses JSON Schema to define Devicetree bindings.
+- [MongoDB](https://docs.mongodb.com/manual/reference/operator/query/jsonSchema/?utm_source=awesome-jsonschema) - MongoDB 3.6 and later support JSON Schema for querying data and defining collection constraints.
+- [Mozilla Data Pipeline](https://docs.telemetry.mozilla.org/concepts/pipeline/schemas.html?utm_source=awesome-jsonschema) - Mozilla Data Pipeline uses JSON Schema to define telemetry data ingested from Mozilla products and logs from various services.
+- [MuleSoft](https://docs.mulesoft.com/json-module/2.1/json-schema-validation?utm_source=awesome-jsonschema) - The MuleSoft integration framework supports validating a JSON document against a JSON Schema.
+- [MySQL](https://dev.mysql.com/doc/refman/8.0/en/json-validation-functions.html?utm_source=awesome-jsonschema) - MySQL 8.0.17 and later support table constraints to validate a JSON document against a JSON Schema.
+- [Nakadi](https://nakadi.io?utm_source=awesome-jsonschema) - The Nakadi open-source distributed event bus supports defining event types with JSON Schema.
+- [National Cancer Institute](https://github.com/NCI-GDC/gdcdictionary/tree/develop/gdcdictionary/schemas?utm_source=awesome-jsonschema) - The National Cancer Institute uses JSON Schema to model entities for their Genomic Data Commons collection.
+- [NinJS](https://www.iptc.org/std/ninjs/userguide/?utm_source=awesome-jsonschema) - NinJS standardises the representation of news content in JSON and maintains a JSON Schema document to help validate NinJS implementations.
+- [Open Policy Agent (OPA)](https://blog.openpolicyagent.org/enhanced-type-checking-for-opa-with-json-schema-annotations-826acb0f575?utm_source=awesome-jsonschema) - The OPA policy-based control platform 0.27.0 and newer support statically type-checking Rego policy code using JSON Schema.
+- [Ory Kratos](https://www.ory.sh/kratos/docs/reference/json-schema-json-paths/?utm_source=awesome-jsonschema) - The Ory Kratos identity & user management product relies on JSON Schema from configuration validation, documentation generation for defining identity schemas.
+- [RDA DMP Common Standard for machine-actionable Data Management Plans](https://github.com/RDA-DMP-Common/RDA-DMP-Common-Standard?utm_source=awesome-jsonschema) - The RDA DMP Common Standards Working Group maintains JSON Schemas to validate maDMP JSON documents.
+- [RESTHeart](https://restheart.org/docs/json-schema-validation/?utm_source=awesome-jsonschema) - RESTHeart supports MongoDB schema validation to enforce a format to documents: rules-based validation from MongoDB 3.2 and Json Schema validation from MongoDB 3.6.
+- [Retool](https://docs.retool.com/docs/working-with-json-schema-form?utm_source=awesome-jsonschema) - The Retool no-code platform supports generating web forms using JSON Schema.
+- [Serverless](https://www.serverless.com/framework/docs/configuration-validation/?utm_source=awesome-jsonschema) - The Serverless framework validates service configuration files using JSON Schema.
+- [Smart Data Models](https://github.com/smart-data-models?utm_source=awesome-jsonschema) - The Smart Data Models GitHub organization makes use of JSON Schema to describe harmonized Data Models for different Smart Domains.
+- [Snowplow](https://docs.snowplowanalytics.com/docs/understanding-tracking-design/understanding-schemas-and-validation/?utm_source=awesome-jsonschema) - The Snowplow analytics platform support using JSON Schema to define the structure of the data to collect.
+- [SpreadJS](https://www.grapecity.com/spreadjs/docs/v13/online/jsonschema.html?utm_source=awesome-jsonschema) - The SpreadJS JavaScript spreadsheet library uses JSON Schema to describe the SpreadJS JSON data format.
+- [TILT (machine-readable privacy policies)](https://github.com/Transparency-Information-Language/schema?utm_source=awesome-jsonschema) - TILT is a transparency information language and toolkit powered by JSON Schema explicitly designed to represent and process transparency information in line with the requirements of the EU General Data Protection Regulation and allowing for a more automated and adaptive use of such information than established, legalese data protection policies do.
+- [U.S. Department of Commerce](https://github.com/usnistgov/OSCAL/tree/main/json?utm_source=awesome-jsonschema) - The National Institute of Standards and Technology uses JSON Schema Draft 7 to model Open Security Controls Assessment Language (OSCAL) JSON documents.
+- [Walmart eCommerce](https://developer.walmart.com/documentation/item-object-v4-0/?utm_source=awesome-jsonschema) - Walmart publishes JSON Schema documents for certain resources that developers can make use of when integratting with the Walmart eCommerce platform.
+- [Wordpress](https://make.wordpress.org/themes/2021/11/30/theme-json-schema/?utm_source=awesome-jsonschema) - Wordpress maintains official JSON Schema documents to help with building block based themes.
+- [Zuplo](https://zuplo.com/json-schema/lp-a?utm_source=awesome-jsonschema) - The Zuplo API gateway provides JSON Schema validation and supports generating API documentation out of OpenAPI specifications.
+- [nf-core](https://nf-co.re/tools/#pipeline-schema?utm_source=awesome-jsonschema) - The nf-core Nextflow analysis pipelines collection uses JSON Schema to define the parameters used by Nextflow workflows.
From a09134048979b66acedb2f0412cac9003c0470f1 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 23 Apr 2024 11:53:14 +0200
Subject: [PATCH 219/309] Update INFRASTRUCTURE to add The JSON Schema Calendar
Add details of the JSON Schema Calendar
---
INFRASTRUCTURE.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index 2df2e7b0..6243eaa9 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -47,6 +47,9 @@ The working location for these resources is in the specification repository at h
We are capturing feedback in the website using a cloudflare worker to receive the data and send it to an Airtable database. The Airtable account is owned and paid for by Postman.
+## The JSON Schema Calendar
+We are using a Google Calendar to share with the Community all the events. This Calendar has been created with a Google Account associated with the email info@json-schema.org.
+
## Bots
The Slack server has a number of bots which feed data into specific channels.
From 31f7af5f7cf77d81c09f6efd215b7dd095236861 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 23 Apr 2024 15:52:50 +0200
Subject: [PATCH 220/309] Add calendar to the OCWM issue template
---
.github/ISSUE_TEMPLATE/open_community_working_meeting.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
index fd9b6cbf..1dddf540 100644
--- a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
+++ b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
@@ -7,6 +7,11 @@ about: Regular Open Community Working Meetings Issue - This template is for thos
Zoom Meeting link: https://postman.zoom.us/j/89562933116?pwd=OWlsQ0RrcDY4S1JQU2d2Q2M0aFFlZz09
+You can find these events scheduled on our **[JSON Schema Community Calendar](https://calendar.google.com/calendar/u/0/embed?src=info@json-schema.org)**.
+
+To add the events to your Google Calendar, use the link found in the bottom right of the above calendar.
+To add the events to another calendar, use the provided [ics/ical file](https://calendar.google.com/calendar/ical/info%40json-schema.org/public/basic.ics).
+
**Meeting accessibility**:
- We would like to record the meeting for future reference and for those who are not able to attend in person.
- We encourage you to challenge any language or behaviour that is harmful or not inclusive during this meeting.
From 56f9027e05e0beca541a002dced2556a15cbbe64 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 30 Apr 2024 12:41:26 +0200
Subject: [PATCH 221/309] Update ADOPTERS.md
Co-authored-by: Ben Hutton
---
ADOPTERS.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 7ef6e41e..20e50108 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -44,7 +44,8 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Cookpad](https://cookpad.com/) | [Kenshi Shiode](https://www.linkedin.com/in/kenshi-shiode-b65922212/) | [Cookpad JSON Schema case study](https://json-schema.org/blog/posts/cookpad-case-study-en) |
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
-| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) || [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
+| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) |
+| [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
| [kickstartDS](https://www.kickstartDS.com/) | [Jonas Ulrich](https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/) | [kickstartDS uses JSON Schema to document component APIs in Design Systems. Those get rewritten to headless CMS-specific configuration files through converters](https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77) |
From 140871eadebaba22d7d61f5f322356f61de967e6 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 30 Apr 2024 12:47:16 +0200
Subject: [PATCH 222/309] Add Helm and alphabetic order message for the users
list
---
ADOPTERS.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 20e50108..3f7dcff1 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -64,6 +64,8 @@ By supporting JSON Schema with a case study, you are documenting its success and
The previouse list contains the organizations that have opted to join the adopters of JSON Schema, although there are many others that also use it. Below, you will find a list of organizations known to utilize JSON Schema. Feel free to edit this list by adding any organization that has publicly disclosed its use of JSON Schema.
+(ordered alphabetically)
+
- [Adobe Experience Manager](https://experienceleague.adobe.com/docs/experience-manager-65/forms/adaptive-forms-advanced-authoring/adaptive-form-json-schema-form-model.html?lang=en?utm_source=awesome-jsonschema) - The Adobe Experience Manager content management solution for building websites, mobile apps and forms supports creating adaptative forms using JSON Schema.
- [Amazon EventBridge Schema Registry](https://aws.amazon.com/about-aws/whats-new/2020/09/amazon-eventbridge-schema-registry-announces-support-for-json-schema/?utm_source=awesome-jsonschema) - Amazon EventBridge Schema Registry has support for JSON Schema, allowing customers to validate, annotate, and manipulate JSON documents conforming to JSON Schema Draft 4 specification.
- [Apiary](https://help.apiary.io/api_101/json-schema/?utm_source=awesome-jsonschema) - Apiary's interactive documentation is able to render JSON Schema documents associated with payloads.
@@ -79,6 +81,7 @@ The previouse list contains the organizations that have opted to join the adopte
- [Form.io](https://www.form.io/article/angular-json-schema-form-builder?utm_source=awesome-jsonschema) - The Form.io online web form generator supports generating Angular.js forms using JSON Schema.
- [Genomic Data Commons](https://gdc.cancer.gov/developers/gdc-data-model?utm_source=awesome-jsonschema) - The Genomic Data Commons data model is defined using JSON Schema.
- [Hackolade](https://hackolade.com/help/JSONSchema.html?utm_source=awesome-jsonschema) - The Hackolade data modelling service supports defining entities using JSON Schema.
+- [Helm](https://helm.sh/docs/topics/charts/#schema-files) - Helm uses JSON Schema to validate their values files.
- [Heroku](https://blog.heroku.com/json_schema_for_heroku_platform_api?utm_source=awesome-jsonschema) - Heroku makes use of JSON Schema to publish machine-readable schema definitions for their public APIs.
- [Human Cell Atlas](https://data.humancellatlas.org/metadata/structure?utm_source=awesome-jsonschema) - The open data generated by the Human Cell Atlas describes metadata structure using JSON Schema.
- [IBM App Connect](https://www.ibm.com/docs/en/app-connect/11.0.0?topic=schema-json-requirements-message-maps?utm_source=awesome-jsonschema) - The Graphical Data Mapping editor can be used to create and transform JSON messages with the data model defined from a JSON schema.
From b8eaeceefd7b148400f74bec14aa873d401a0239 Mon Sep 17 00:00:00 2001
From: Benjamin Granados
Date: Tue, 30 Apr 2024 13:21:03 +0200
Subject: [PATCH 223/309] Change title of the workflow
---
.github/ISSUE_TEMPLATE/workflow_suggestion.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/workflow_suggestion.yml b/.github/ISSUE_TEMPLATE/workflow_suggestion.yml
index 8404313f..179d2e41 100644
--- a/.github/ISSUE_TEMPLATE/workflow_suggestion.yml
+++ b/.github/ISSUE_TEMPLATE/workflow_suggestion.yml
@@ -1,7 +1,7 @@
-name: "💡 Workflow Suggestion"
+name: "💡 Community Workflow Suggestion"
description: "Suggest a new community workflow"
-title: "💡 Workflow Suggestion: "
-labels: ["💡 Workflow Suggestion", "Status: Review"]
+title: "💡 Community Workflow proposal: "
+labels: ["✨ Enhancement", "Status: Triage"]
body:
- type: textarea
From fa5942cf1952d8fa77ca0a104de8b76f006c5604 Mon Sep 17 00:00:00 2001
From: Greg Dennis
Date: Fri, 3 May 2024 10:27:33 +1200
Subject: [PATCH 224/309] add pr dependencies action
---
.github/workflows/pr-dependencies.yml | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 .github/workflows/pr-dependencies.yml
diff --git a/.github/workflows/pr-dependencies.yml b/.github/workflows/pr-dependencies.yml
new file mode 100644
index 00000000..34a231dc
--- /dev/null
+++ b/.github/workflows/pr-dependencies.yml
@@ -0,0 +1,12 @@
+name: Check PR Dependencies
+
+on: pull_request
+
+jobs:
+ check_dependencies:
+ runs-on: ubuntu-latest
+ name: Check Dependencies
+ steps:
+ - uses: gregsdennis/dependencies-action@main
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
From 5234774af069e78c1a6378e59b0f4515988fcb56 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 8 May 2024 09:39:43 +0200
Subject: [PATCH 225/309] Add dashjoin to the adopters list (#712)
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 3f7dcff1..0772e650 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -43,6 +43,7 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
| [Cookpad](https://cookpad.com/) | [Kenshi Shiode](https://www.linkedin.com/in/kenshi-shiode-b65922212/) | [Cookpad JSON Schema case study](https://json-schema.org/blog/posts/cookpad-case-study-en) |
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
+| [Dashjoin](https://dashjoin.com/) | [Andreas Eberhart](https://www.linkedin.com/in/andreas-eberhart-94264a44/) | [Dashjoin Is an Open Source & Cloud Native Low Code Development and Integration Platform That Helps Teams Deliver AI Empowered Applications Faster. The platform leverages popular JSON standards like JSON Schema and JSONata and for all aspects of the system. Specifically, Dashjoin Platform allows connecting to multiple databases (relational, graph and document) and all database structures are scanned and represented using JSON Schema.](https://dashjoin.github.io/platform/latest/) |
| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) |
| [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
From 797df9e859f2903c835c0a8ac48d59ff93ec50b2 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Thu, 9 May 2024 20:34:24 +0200
Subject: [PATCH 226/309] Improve wording of new implementation template (#714)
---
programs/implementers/templates/socialmedia-promotion.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/programs/implementers/templates/socialmedia-promotion.md b/programs/implementers/templates/socialmedia-promotion.md
index 835527d3..6a5a994e 100644
--- a/programs/implementers/templates/socialmedia-promotion.md
+++ b/programs/implementers/templates/socialmedia-promotion.md
@@ -1,6 +1,6 @@
### Twitter Template
-🎉🎉 We are so excited to announce the last addition to the JSON Schema Implementations page!
+🎉🎉 We are so excited to announce the latest addition to the JSON Schema Implementations page!
------- is a ------- by ------
@@ -10,7 +10,7 @@ For more tooling visit: https://json-schema.org/implementations
### Linkedin Template
-🎉🎉 We are so excited to announce the last addition to the JSON Schema Implementations page!
+🎉🎉 We are so excited to announce the latest addition to the JSON Schema Implementations page!
⭐️ ------- ⭐️ is a ------- by ------
@@ -20,7 +20,7 @@ Please, visit the JSON Schema Implementations page to explore all the implementa
### Slack
-🎉🎉 We are so excited to announce the last addition to the JSON Schema Implementations page!
+🎉🎉 We are so excited to announce the latest addition to the JSON Schema Implementations page!
⭐️ ------- ⭐️ is a ------- by ------
From 3c160efef18048be7c3473521f5d452aa0c4368d Mon Sep 17 00:00:00 2001
From: Alok Gupta
Date: Tue, 21 May 2024 01:01:32 +0530
Subject: [PATCH 227/309] Bug: Fixes failed ocwm-issue-collector.yml workflow
(#720)
* Remove GET LABEL ID
* Fixes : remove label from discussion
---
.github/workflows/ocwm-issue-collector.yml | 26 +++++-----------------
1 file changed, 5 insertions(+), 21 deletions(-)
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index fb0c9131..f7b491a8 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -62,6 +62,7 @@ jobs:
edges {
node {
... on Discussion {
+ id
title
body
resourcePath
@@ -117,6 +118,8 @@ jobs:
console.log(`PATCH /repos/${process.env.OWNER}/${process.env.REPO}/issues/${workMeetings[0].number}`);
+ const { data: label } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/labels/${process.env.AGENDA_LABEL}`);
+
await mygithub.request(`PATCH /repos/${process.env.OWNER}/${process.env.REPO}/issues/${workMeetings[0].number}`, {
body: parsed,
milestone: null,
@@ -126,7 +129,7 @@ jobs:
for (let i = 0; i < discussions.length; i++) {
await mygithub.graphql(`
mutation {
- removeLabelsFromLabelable(input: {labelIds: ["${process.env.AGENDA_LABEL_ID}"], labelableId: "${discussions[i].node.node_id}"}) {
+ removeLabelsFromLabelable(input: {labelIds: ["${label.node_id}"], labelableId: "${discussions[i].node.id}"}) {
clientMutationId
}
}
@@ -139,23 +142,4 @@ jobs:
console.log("There is no OCWM available");
}
- }
-
- - name: Get Label ID
- id: get-label-id
- uses: actions/github-script@v7
- env:
- OWNER: ${{ vars.ORGANIZATION }}
- REPO: 'community'
- LABEL_NAME: 'agenda'
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
- with:
- script: |
- const octokit = require('@octokit/core').Octokit
- const mygithub = new octokit({
- auth: process.env.MY_TOKEN
- });
-
- const { data: label } = await mygithub.request('GET /repos/${process.env.OWNER}/${process.env.REPO}/labels/${process.env.LABEL_NAME}');
- console.log(label.id);
- console.log(`::set-env name=AGENDA_LABEL_ID::${label.id}`);
+ }
\ No newline at end of file
From 95992cff5eecdeb64cb66d1393161a2ed302337a Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 21 May 2024 11:25:41 +0200
Subject: [PATCH 228/309] Add Helm to the adopters list (#726)
---
ADOPTERS.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 0772e650..46446a16 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -48,6 +48,7 @@ By supporting JSON Schema with a case study, you are documenting its success and
| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) |
| [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
+| [Helm](https://helm.sh/) | [The Helm Community](https://github.com/helm/community) | [Helm uses JSON Schema to validate their values files.](https://helm.sh/docs/topics/charts/#schema-files)|
| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
| [kickstartDS](https://www.kickstartDS.com/) | [Jonas Ulrich](https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/) | [kickstartDS uses JSON Schema to document component APIs in Design Systems. Those get rewritten to headless CMS-specific configuration files through converters](https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77) |
| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
@@ -82,7 +83,6 @@ The previouse list contains the organizations that have opted to join the adopte
- [Form.io](https://www.form.io/article/angular-json-schema-form-builder?utm_source=awesome-jsonschema) - The Form.io online web form generator supports generating Angular.js forms using JSON Schema.
- [Genomic Data Commons](https://gdc.cancer.gov/developers/gdc-data-model?utm_source=awesome-jsonschema) - The Genomic Data Commons data model is defined using JSON Schema.
- [Hackolade](https://hackolade.com/help/JSONSchema.html?utm_source=awesome-jsonschema) - The Hackolade data modelling service supports defining entities using JSON Schema.
-- [Helm](https://helm.sh/docs/topics/charts/#schema-files) - Helm uses JSON Schema to validate their values files.
- [Heroku](https://blog.heroku.com/json_schema_for_heroku_platform_api?utm_source=awesome-jsonschema) - Heroku makes use of JSON Schema to publish machine-readable schema definitions for their public APIs.
- [Human Cell Atlas](https://data.humancellatlas.org/metadata/structure?utm_source=awesome-jsonschema) - The open data generated by the Human Cell Atlas describes metadata structure using JSON Schema.
- [IBM App Connect](https://www.ibm.com/docs/en/app-connect/11.0.0?topic=schema-json-requirements-message-maps?utm_source=awesome-jsonschema) - The Graphical Data Mapping editor can be used to create and transform JSON messages with the data model defined from a JSON schema.
From 9d80e8742e2e0f59e47ff1a1f8c24b1a98860fb5 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 22 May 2024 17:27:24 +0200
Subject: [PATCH 229/309] v1 of the JSON Schema Ambassadors Program (#589)
* v1 of the JSON Schema Ambassadors Program
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update programs/ambassadors/ambassadors-program.md
Co-authored-by: Julian Berman
* Update ambassadors-program.md
* Small changes to add the required feedback.
* Apply suggestions from code review
Co-authored-by: Julian Berman
* Remove the option to join the github org.
* Update ambassadors-program.md
* Small changes before merging
* Rename document to improve accesibility
---------
Co-authored-by: Julian Berman
---
programs/ambassadors/README.md | 62 +++++++++++++++++++++++++++
programs/ambassadors/ambassadors.json | 24 +++++++++++
2 files changed, 86 insertions(+)
create mode 100644 programs/ambassadors/README.md
create mode 100644 programs/ambassadors/ambassadors.json
diff --git a/programs/ambassadors/README.md b/programs/ambassadors/README.md
new file mode 100644
index 00000000..9a9ba14b
--- /dev/null
+++ b/programs/ambassadors/README.md
@@ -0,0 +1,62 @@
+This document covers the organizational and operational aspects of the JSON Schema Ambassadors Program.
+
+### What is the JSON Schema Ambassador Program?
+
+The JSON Schema Ambassador Program aims to bring JSON Schema closer to both current users and potential new project users. It also aims to provide users and community members with the necessary tools and resources to:
+
+- Promote collaboration among the JSON Schema ecosystem.
+- Promote JSON Schema adoption in other ecosystems.
+- Engage with the project in some way, either as a contributor, blogger, speaker, etc.
+- Speak at community events or write technical content (e.g. blog posts) that solves community needs.
+- Nurture community growth and a welcoming environment to spread knowledge about the project.
+
+### How does the program work?
+
+- The ambassador selection process will be as transparent as possible.
+- The TSC and existing ambassadors will evaluate applications according to compliance requirements via a traditional PR flow.
+- All ambassadors information will be displayed on the JSON Schema website in a list after the PR is merged.
+
+### Ambassador requirements
+
+The participation will be determined and checked annually. The minimum requirement for being an ambassador is to make **4 contributions per year** in the form of articles, talks, videos, podcasts, presentations, driving initiatives, etc.
+
+Ambassadors can be invited to review content (i.e., articles, talks, videos) related to the community. These reviews are optional and will be counted as an additional contribution.
+
+Some clarifications on the type of contributions:
+
+- Articles, videos, and podcasts can be published on [json-schema.org/blog](https://json-schema.org/blog) or other domains.
+- Talks and presentations can be displayed at different events or workshops. Within them, JSON Schema should appear at the core of the presentation. The presentation should not be being used as a disguised marketing tool for other products/projects.
+- Special contributions should be driven to support the community or enhance its visibility (i.e., getting new sponsors or driving initiatives)
+- If we do not notice or accidentally miscount a contribution, just let us know.
+
+Examples:
+
+1. If contributors publish 3 articles and drive 1 initiative about JSON Schema in eight months, they become ambassadors for the whole year.
+2. If contributors make 1 presentation, write 2 articles, and drive 1 initiative, they become ambassadors for the whole year.
+3. If you were accepted as ambassador on the 5th of May 2024, you have already fulfilled the requirements. On the 5th of May 2025, we will check if you qualify again after the 5th of May 2025.
+
+### Ambassadors duties
+
+- Be in tune with JSON Schema's mission and values.
+- Always respect the [code of conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md).
+- Be active in your role as an ambassador.
+
+### Ambassador benefits
+
+- Visibility in the JSON Schema Ambassadors page of the JSON Schema website.
+- Receive a special swag pack for Ambassadors (The swag availability date to be confirmed).
+- Receive additional swag for conference or workshop participants (Swag availability date to be confirmed).
+- Community-wide recognition.
+- All our respect for your contributions!
+
+### Become an JSON Schema Ambassador
+
+The process of becoming an ambassador is very simple. Go to the **community** repository and open a PR to edit the `ambassadors.json` file. The TSC will then evaluate your candidacy!
+
+That PR doesn't have to be created by the ambassador candidate; any community member may open a PR to submit someone's application to the JSON Schema Ambassador Program. In these cases, the first step is to confirm the candidate's interest and once this as been clarified we'll proceed with the standard candidacy evaluation by the TSC.
+
+Get on board and become an ambassador!
+
+#### References and inspiration
+
+- [The AsynAPI Ambassadors Program](https://github.com/asyncapi/community/blob/master/AMBASSADOR_ORGANIZATION.md)
\ No newline at end of file
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
new file mode 100644
index 00000000..29f32766
--- /dev/null
+++ b/programs/ambassadors/ambassadors.json
@@ -0,0 +1,24 @@
+[
+ {
+ "name": "I am the first Ambassador",
+ "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
+ "bio": "I am the first JSON Schema Ambassador. I work as Schema Designer in ACME since 2002 and I am the implementer of the Turbo Implementation.",
+ "title": "Schema Designer at ACME",
+ "github": "iamthefirst",
+ "twitter": "iamthefirst",
+ "linkedin": "iamthefirst",
+ "company": "ACME",
+ "country": "🇺🇸",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "Title of my first contribution",
+ "date": {
+ "year": 2024,
+ "month": "May"
+ },
+ "link": "link-to-my-contribution"
+ }
+ ]
+ }
+]
\ No newline at end of file
From c82f8e0ed1d6ddab441db52d9c0c8f18e6999369 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 29 May 2024 08:52:16 +0200
Subject: [PATCH 230/309] Update gsoc-2024.md to strikethrough unaccepted
projects (#731)
* Update gsoc-2024.md to strikethrough unaccepted projects
* Update gsoc-2024.md
Move striked projects to the end of the list.
---------
Co-authored-by: Ben Hutton
---
programs/mentoring/gsoc/gsoc-2024.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2024.md b/programs/mentoring/gsoc/gsoc-2024.md
index 20fc4e5d..f662fb09 100644
--- a/programs/mentoring/gsoc/gsoc-2024.md
+++ b/programs/mentoring/gsoc/gsoc-2024.md
@@ -23,9 +23,7 @@ JSON Schema will be applying to 2024's Google Summer of Code Program as a mentor
## [Project Ideas](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc)
Here is the list of our 2024 project ideas:
-- [#609](https://github.com/json-schema-org/community/issues/609): **New Bowtie Test Case Widgets**
- [#607](https://github.com/json-schema-org/community/issues/607): **`bowtie-trend`: Long-Term Reporting With Bowtie**
-- [#606](https://github.com/json-schema-org/community/issues/606): **jsonschema.lean -- an implementation of JSON Schema in Lean**
- [#605](https://github.com/json-schema-org/community/issues/605): **`bowtie-perf`: a Performance Tester for JSON Schema implementations**
- [#603](https://github.com/json-schema-org/community/issues/603): **Setting up the CI/CD Pipeline for the JSON Schema website**
- [#602](https://github.com/json-schema-org/community/issues/602): **Build a new version of the JSON Schema tooling page**
@@ -33,6 +31,8 @@ Here is the list of our 2024 project ideas:
- [#599](https://github.com/json-schema-org/community/issues/599): **Define upgrade/downgrade language agnostic declarative transformation rules for all JSON Schema dialects**
- [#614](https://github.com/json-schema-org/community/issues/614): **Source Generation Analyzer Powered by Corvus.JsonSchema (.Net)**
- [#645](https://github.com/json-schema-org/community/issues/645): **A tour of JSON Schema**
+- ~~[#609](https://github.com/json-schema-org/community/issues/609): **New Bowtie Test Case Widgets**~~
+- ~~[#606](https://github.com/json-schema-org/community/issues/606): **jsonschema.lean -- an implementation of JSON Schema in Lean**~~
## Why choosing a JSON Schema project?
From 4e2cad1f34ac912c74ebe515bda6cad700834b06 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 29 May 2024 08:52:32 +0200
Subject: [PATCH 231/309] Add Authsignal to the adopters list (#729)
---
ADOPTERS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 46446a16..c520a48e 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -40,6 +40,7 @@ By supporting JSON Schema with a case study, you are documenting its success and
| Organization | Contact | Description of Use / Reference |
| --- | --- | --- |
+| [Authsignal](https://www.authsignal.com/) | Infer typescript types for HTTP request/response models (using the json-schema-to-ts library). |
| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
| [Cookpad](https://cookpad.com/) | [Kenshi Shiode](https://www.linkedin.com/in/kenshi-shiode-b65922212/) | [Cookpad JSON Schema case study](https://json-schema.org/blog/posts/cookpad-case-study-en) |
| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
From 32fd0f493a9d2bcf6d847201e4f8b0efa75df5da Mon Sep 17 00:00:00 2001
From: Alok Gupta
Date: Thu, 30 May 2024 11:29:25 +0530
Subject: [PATCH 232/309] Added stale issues and PR workflow (#738)
---
.github/workflows/stale.yml | 68 +++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 .github/workflows/stale.yml
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 00000000..c80330e5
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,68 @@
+name: Mark stale issues and pull requests
+
+on:
+ schedule:
+ - cron: '0 0 * * 0' # Runs every Sunday at midnight
+
+permissions:
+ issues: write
+ pull-requests: write
+
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v8
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+
+ # Message to comment on stale issues.
+ stale-issue-message: |
+ Hello! :wave:
+
+ This issue has been automatically marked as stale due to inactivity :sleeping:
+
+ It will be closed in 180 days if no further activity occurs. To keep it active, please add a comment with more details.
+
+ There can be many reasons why a specific issue has no activity. The most probable cause is a lack of time, not a lack of interest.
+
+ Let us figure out together how to push this issue forward. Connect with us through our slack channel : https://json-schema.org/slack
+
+ Thank you for your patience :heart:
+
+ # Message to comment on stale pull requests.
+ stale-pr-message: |
+ Hello! :wave:
+
+ This pull request has been automatically marked as stale due to inactivity :sleeping:
+
+ It will be closed in 180 days if no further activity occurs. To keep it active, please add a comment with more details.
+
+ There can be many reasons why a specific pull request has no activity. The most probable cause is a lack of time, not a lack of interest.
+
+ Let us figure out together how to push this pull request forward. Connect with us through our slack channel : https://json-schema.org/slack
+
+ Thank you for your patience :heart:
+
+ # Message to comment on issues that are about to be closed.
+ close-issue-message: 'This issue did not get any activity in the past 180 days and thus has been closed. Please check if the main branch has fixed it. Please, create a new issue if the issue is not fixed.'
+
+ # Message to comment on pull requests that are about to be closed.
+ close-pr-message: 'This pull request did not get any activity in the past 180 days and thus has been closed.'
+
+ # Labels to add to stale issues and pull requests.
+ stale-issue-label: 'Status: Stale'
+ stale-pr-label: 'Status: Stale'
+
+ # Number of days of inactivity before an issue/PR is marked as stale.
+ days-before-stale: 30
+
+ # Number of days of inactivity before an issue/PR is closed.
+ days-before-close: 180
+
+ # Remove the stale label when the issue/PR is updated.
+ remove-stale-when-updated: true
+
+ # Exempt labels to ignore when checking for stale issues/PRs.
+ exempt-pr-labels: 'Status: On Hold,Status: Blocked'
+ exempt-issue-labels: 'Status: On Hold,Status: Blocked'
\ No newline at end of file
From ef4eb9fabc0fa8581b913b75597c9bf4a487b6b1 Mon Sep 17 00:00:00 2001
From: Justin Black
Date: Tue, 4 Jun 2024 17:50:50 +0000
Subject: [PATCH 233/309] Update README.md
Fixes typo
---
programs/ambassadors/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/ambassadors/README.md b/programs/ambassadors/README.md
index 9a9ba14b..80567f45 100644
--- a/programs/ambassadors/README.md
+++ b/programs/ambassadors/README.md
@@ -59,4 +59,4 @@ Get on board and become an ambassador!
#### References and inspiration
-- [The AsynAPI Ambassadors Program](https://github.com/asyncapi/community/blob/master/AMBASSADOR_ORGANIZATION.md)
\ No newline at end of file
+- [The AsyncAPI Ambassadors Program](https://github.com/asyncapi/community/blob/master/AMBASSADOR_ORGANIZATION.md)
From d94df3c31f4636433a69016bec43212046384862 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 5 Jun 2024 17:13:28 +0200
Subject: [PATCH 234/309] Update ambassadors docs to better specify
requirements (#739)
---
programs/ambassadors/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/ambassadors/README.md b/programs/ambassadors/README.md
index 80567f45..84397699 100644
--- a/programs/ambassadors/README.md
+++ b/programs/ambassadors/README.md
@@ -7,8 +7,8 @@ The JSON Schema Ambassador Program aims to bring JSON Schema closer to both curr
- Promote collaboration among the JSON Schema ecosystem.
- Promote JSON Schema adoption in other ecosystems.
- Engage with the project in some way, either as a contributor, blogger, speaker, etc.
-- Speak at community events or write technical content (e.g. blog posts) that solves community needs.
-- Nurture community growth and a welcoming environment to spread knowledge about the project.
+- Speak at community events or write technical content (e.g. blog posts) that solves JSON Schema's community needs.
+- Nurture community growth and a welcoming environment to spread knowledge about JSON Schema.
### How does the program work?
From 07f2c72f81b97086ada315c78c924135a9b1177a Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sun, 9 Jun 2024 12:15:51 +0200
Subject: [PATCH 235/309] Update stale.yml to add another exempt label (#747)
---
.github/workflows/stale.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index c80330e5..01632bf3 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -64,5 +64,5 @@ jobs:
remove-stale-when-updated: true
# Exempt labels to ignore when checking for stale issues/PRs.
- exempt-pr-labels: 'Status: On Hold,Status: Blocked'
- exempt-issue-labels: 'Status: On Hold,Status: Blocked'
\ No newline at end of file
+ exempt-pr-labels: 'Status: On Hold,Status: Blocked,Status: Do not close'
+ exempt-issue-labels: 'Status: On Hold,Status: Blocked,Status: Do not close'
From 0b6f2ee7919965395662c64a41146f43c4a38534 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 10 Jun 2024 14:54:22 +0200
Subject: [PATCH 236/309] Update the new schedule for the office hours (#749)
---
README.md | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 55b6ed08..d3eff21e 100644
--- a/README.md
+++ b/README.md
@@ -56,12 +56,17 @@ For more in-depth discussions, planning, and documenting significant decisions,
| 💬 Discussions | https://github.com/orgs/json-schema-org/discussions
### Community meetings
-We hold monthly Office Hours and weekly Open Community Working Meetings. Office Hours are every first Tuesday of the month at 15:00 BST, and by appointment. Open Community Working Meetings are every Monday at 14:00 PT.
+We hold monthly Office Hours and weekly Open Community Working Meetings. Office Hours are every first Tuesday of the month, and by appointment. Open Community Working Meetings are every Monday at 14:00 PT.
**Office Hours (Monthly):**
**Office Hours** provide time for the community for questions, discussions, comments, or just to chat about JSON Schema.
+We host two different alternate sessions:
+
+APAC/Americas friendly every 2 months - First Tuesday at 15:00 PT
+Europe/Americas friendly every 2 months - First Tuesday at 15:00 BST
+
More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
**Open Community Working Meeting (Weekly):**
From 033528557c4ba7db6cc23e0d272b060f880876f9 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 10 Jun 2024 14:55:02 +0200
Subject: [PATCH 237/309] Update README.md to format office hours schedule
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index d3eff21e..8e2860b8 100644
--- a/README.md
+++ b/README.md
@@ -64,8 +64,8 @@ We hold monthly Office Hours and weekly Open Community Working Meetings. Office
We host two different alternate sessions:
-APAC/Americas friendly every 2 months - First Tuesday at 15:00 PT
-Europe/Americas friendly every 2 months - First Tuesday at 15:00 BST
+ - APAC/Americas friendly every 2 months - First Tuesday at 15:00 PT
+ - Europe/Americas friendly every 2 months - First Tuesday at 15:00 BST
More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
@@ -99,4 +99,4 @@ Thanks goes to these wonderful people who contributed to this communtiy space:
Made with [contributors-img](https://contrib.rocks).
## Code of Conduct
-To get involved with our Community, please make sure you are familiar with our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md).
\ No newline at end of file
+To get involved with our Community, please make sure you are familiar with our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md).
From e18b314489b58bfab30b9885d478e591b8e1d14a Mon Sep 17 00:00:00 2001
From: Alok Gupta
Date: Wed, 12 Jun 2024 18:43:27 +0530
Subject: [PATCH 238/309] chore(github-actions): updated workflows to use
github-app token (#748)
* updated slack-ocwm-reminder.yml
* updated ocwm-reminders.yml
* updated ocwm-issue-collector.yml
* updated ocwm-creator.yml
* updated close-completed-ocwm.yml
---
.github/workflows/close-completed-ocwm.yml | 9 ++++++++-
.github/workflows/ocwm-creator.yml | 12 ++++++++++--
.github/workflows/ocwm-issue-collector.yml | 10 +++++++++-
.github/workflows/ocwm-reminders.yml | 9 ++++++++-
.github/workflows/slack-ocwm-reminder.yml | 9 ++++++++-
5 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 2d7d5f2c..55ac388e 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -18,12 +18,19 @@ jobs:
with:
node-version: '20'
+ - name: Get Token
+ uses: actions/create-github-app-token@v1
+ id: get_workflow_token
+ with:
+ app-id: ${{ vars.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Close issues
env:
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
MY_LABEL: ${{ vars.OCWM_LABEL }}
OWNER: ${{ vars.ORGANISATION }}
REPO_NAMES: ${{ vars.REPOSITORIES }}
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index c862e735..dd990f76 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -17,6 +17,14 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '20'
+
+ - name: Get Token
+ uses: actions/create-github-app-token@v1
+ id: get_workflow_token
+ with:
+ app-id: ${{ vars.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
- name: Set up Python
uses: actions/setup-python@v5
with:
@@ -34,7 +42,7 @@ jobs:
title: ${{ steps.create-title.outputs.title }}
content-filepath: .github/ISSUE_TEMPLATE/open_community_working_meeting.md
labels: 'Working Meeting'
- token: ${{ secrets.AUTH_TOKEN }}
+ token: ${{ steps.get_workflow_token.outputs.token }}
- name: Install dependencies
run: npm install @octokit/core@5.1.0
@@ -42,7 +50,7 @@ jobs:
- name: Update Issue Body
uses: actions/github-script@v7
env:
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK }}
with:
script: |
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index f7b491a8..a915d2e0 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -16,6 +16,14 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '20'
+
+ - name: Get Token
+ uses: actions/create-github-app-token@v1
+ id: get_workflow_token
+ with:
+ app-id: ${{ vars.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Adding Issues
@@ -28,7 +36,7 @@ jobs:
REPO_NAMES: ${{ vars.REPOSITORIES }}
AGENDA_LABEL: ${{ vars.AGENDA_LABEL }}
OCWM_LABEL: ${{ vars.OCWM_LABEL }}
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
with:
script: |
const octokit = require('@octokit/core').Octokit
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
index 60c8f1ff..84f9726f 100644
--- a/.github/workflows/ocwm-reminders.yml
+++ b/.github/workflows/ocwm-reminders.yml
@@ -18,13 +18,20 @@ jobs:
with:
node-version: '20'
+ - name: Get Token
+ uses: actions/create-github-app-token@v1
+ id: get_workflow_token
+ with:
+ app-id: ${{ vars.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Send reminders
uses: actions/github-script@v7
env:
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
OWNER: ${{ vars.ORGANISATION }}
REPO: 'community'
OCWM_LABEL: ${{ vars.OCWM_LABEL }}
diff --git a/.github/workflows/slack-ocwm-reminder.yml b/.github/workflows/slack-ocwm-reminder.yml
index ef4ed505..8d7e924d 100644
--- a/.github/workflows/slack-ocwm-reminder.yml
+++ b/.github/workflows/slack-ocwm-reminder.yml
@@ -16,13 +16,20 @@ jobs:
with:
node-version: '20'
+ - name: Get Token
+ uses: actions/create-github-app-token@v1
+ id: get_workflow_token
+ with:
+ app-id: ${{ vars.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
- name: Install dependencies
run: npm install @octokit/core@5.1.0
- name: Send reminders
uses: actions/github-script@v7
env:
- MY_TOKEN: ${{ secrets.AUTH_TOKEN }}
+ MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
OWNER: ${{ vars.ORGANISATION }}
REPO: 'community'
OCWM_LABEL: ${{ vars.OCWM_LABEL }}
From 2c14f8cc85e6c5a1e721887997c2d2836e2a0bf9 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Thu, 20 Jun 2024 11:02:17 +0200
Subject: [PATCH 239/309] Manage adopters directly from the Landscape. (#757)
* Manage adopters directly from the Landscape.
* Add more details of the contributing guidelines.
---
ADOPTERS.md | 101 ++----------------
.../templates/socialmedia-promotion.md | 29 ++---
2 files changed, 26 insertions(+), 104 deletions(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index c520a48e..521e3a31 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -1,28 +1,28 @@
# Adopters
-**📢 If you're using JSON Schema in your organization, please add your company name to this list.**
+🚨 **Update - June 2024** 🚨
+---
+We are so excited to share that we launched the [JSON Schema Landscape](https://landscape.json-schema.org/) as the visual representation of the JSON Schema Ecosystem. With this new and exciting initiative we have a duplicity between this Adopters list and [the Adopters group in Landscape](https://landscape.json-schema.org/?group=adopters), therefore we have decided to manage the adopters list directly in the landscape (See the landscape guide [here](https://landscape.json-schema.org/guide#introduction--adopters)).
+
+**📢 If you're using JSON Schema in your organization, please add your company to the adopters list.**
**🙏 It really helps the project to gain momentum and credibility. It's a small contribution back to the project with a big impact.**
-## Why add your company name?
+## Why add your company?
- Demonstrates the real-world usage of JSON Schema.
- Provides visibility to organizations that have successfully adopted JSON Schema.
- Encourages other organizations to adopt JSON Schema.
- Builds trust in the JSON Schema ecosystem.
-This document also lists the organizations that use JSON Schema based on public information available in blog posts, events, and videos. If any organization would like to be added or get removed please make a Pull Request.
+If any organization would like to be added or get removed please make a Pull Request.
## How to add your company
-You can add your Company by using the [Adopter form](https://forms.gle/vyFskw1RshJ55LY46) or by editing this file after following the [CONTRIBUTING.md](./CONTRIBUTING.md).
-
-Guidelines:
-- Please don't include your organization's logo or other trademarked material
-- Add a reference (link to a public blog post, video, slides, etc) mentioning that JSON Schema is used
-- Please include a contact link for maintainers
+You can add your Company by using the [Adopter form](https://forms.gle/vyFskw1RshJ55LY46) or by submitting a PR editting the [landscape.yml](https://github.com/json-schema-org/landscape/blob/main/landscape.yml) file in the [landscape repository](https://github.com/json-schema-org/landscape/). For more information please check the [contributing guidelines](https://github.com/json-schema-org/landscape/blob/main/CONTRIBUTING.md#adding-a-new-organization-) of the Landscape project.
Looking for extra credit? We also do [case studies](https://github.com/orgs/json-schema-org/projects/8/views/2) and accept sponsorship via [Open Collective](https://opencollective.com/json-schema).
+
Find out more about case studies
If your company would like to share more about what you're doing in public, there's a good chance we'd love to collaborate on a case study.
@@ -31,88 +31,9 @@ Please reach out to us via [our Slack](https://json-schema.org/slack) or creatin
From exerience, these case studies can take some time to develop, write, get approved, and published. It's best if you can find out for sure if you can publish a case study with us as early as possible. If you're at a big organization, you'll likely have to get approval from people who have no idea what you're talking about. Here's some context you can share with them.
-JSON Schema is an [OpenJS Foundation](https://openjsf.org/about) Project, under [The Linux Foundation](https://www.linuxfoundation.org/). Both the OpenJS Foundation and The Linux Foundation are registered non-profit organizations (501(c)(6)).
-
By supporting JSON Schema with a case study, you are documenting its success and your smarts in picking it as a solution. JSON Schema case studies help justify the ongoing financial support required to mature, develop, and support the JSON Schema ecosystem. Case studies also demonstrate the strength of the JSON Schema ecosystem in production today. The next case study could be you.
-(ordered alphabetically)
-
-| Organization | Contact | Description of Use / Reference |
-| --- | --- | --- |
-| [Authsignal](https://www.authsignal.com/) | Infer typescript types for HTTP request/response models (using the json-schema-to-ts library). |
-| [Automatic Data Processing (ADP)](https://www.adp.com/) | [Jeremy Fiel](mailto:jeremy.fiel@adp.com?subject=I%20love%20JSON%20Schema%20too!) | [ADP Developer Resources](https://developers.adp.com/welcome) |
-| [Cookpad](https://cookpad.com/) | [Kenshi Shiode](https://www.linkedin.com/in/kenshi-shiode-b65922212/) | [Cookpad JSON Schema case study](https://json-schema.org/blog/posts/cookpad-case-study-en) |
-| [Cyclops](https://cyclops-ui.com/) | [Petar Cvitanović](https://www.linkedin.com/in/petar-cvit/) | [Cyclops is a powerful user interface for managing and interacting with Kubernetes clusters](https://cyclops-ui.com/blog/2023/11/13/JSON-schemas) |
-| [Dashjoin](https://dashjoin.com/) | [Andreas Eberhart](https://www.linkedin.com/in/andreas-eberhart-94264a44/) | [Dashjoin Is an Open Source & Cloud Native Low Code Development and Integration Platform That Helps Teams Deliver AI Empowered Applications Faster. The platform leverages popular JSON standards like JSON Schema and JSONata and for all aspects of the system. Specifically, Dashjoin Platform allows connecting to multiple databases (relational, graph and document) and all database structures are scanned and represented using JSON Schema.](https://dashjoin.github.io/platform/latest/) |
-| [F5](https://www.f5.com/) | [Kin Lane](https://www.linkedin.com/in/kinlane/) | [F5 - JSON Schema in production episode](https://youtu.be/pibZF049zqE) |
-| [GitHub](https://github.com/) | [Rachael Sewell](https://www.linkedin.com/in/rachaelsewell/)
[Robert Sese](https://www.linkedin.com/in/rsese/) | [Github JSON Schema case study](https://json-schema.org/blog/posts/github-case-study) |
-| [Tyler Technology](https://www.tylertech.com/) | [Andres Moreno](https://www.linkedin.com/in/andmoredev/) | [Tyler Technology JSON Schema case study](https://json-schema.org/blog/posts/tyler-technologies-case-study) |
-| [HAPI Specification](https://hapi-server.org/) | [Jeremy Faden](https://cottagesystems.com/) | [Server responses can be verified against a schema, accelerating development of correct servers](https://github.com/hapi-server/data-specification-schema) |
-| [Helm](https://helm.sh/) | [The Helm Community](https://github.com/helm/community) | [Helm uses JSON Schema to validate their values files.](https://helm.sh/docs/topics/charts/#schema-files)|
-| [Invopop](https://www.invopop.com/) | [Sam Lown](https://www.linkedin.com/in/samlown/) | [Invopop helps global companies comply with local tax reporting requirements. Invopop uses JSON Schema at the core of their GOBL SDK to build, share, and convert invoices globally](https://docs.gobl.org/introduction) |
-| [kickstartDS](https://www.kickstartDS.com/) | [Jonas Ulrich](https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/) | [kickstartDS uses JSON Schema to document component APIs in Design Systems. Those get rewritten to headless CMS-specific configuration files through converters](https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77) |
-| [KrakenD](https://www.krakend.io/) | [Albert Lombarte](https://www.linkedin.com/in/alombarte/) | [KrakenD is a high-performance API Gateway offering JSON Schema validation in requests, responses, config validation, and documentation](https://www.krakend.io/blog/json-schema-use-case/) |
-| [Manfred](https://www.getmanfred.com/) | [David Bonilla](https://www.linkedin.com/in/dbonillaf/) | [The MAC is a standard open source format created by Manfred to define and share CVs](https://github.com/getmanfred/mac) |
-| [Microsoft](https://www.microsoft.com/) | [Mads Kristensen](https://www.linkedin.com/in/madskvistkristensen/) | [Microsoft - JSON Schema in production episode](https://youtu.be/-yYTxLZZk58) |
-| [OpenMetadata](https://open-metadata.org/) | [Suresh Srinivas](https://www.linkedin.com/in/sureshsri/) | [OpenMetadata - JSON Schema in production episode](https://youtu.be/ZrVTZwmTR3k) |
-| [Postman](https://www.postman.com/) | [Juan Cruz Viotti](https://www.linkedin.com/in/jviotti/) | [Postman JSON Schema case study](https://json-schema.org/blog/posts/postman-case-study) |
-| [Remote](https://remote.com/) | [Sandrina Pereira](https://www.linkedin.com/in/sandrina-p/) | [Remote JSON Schema case study](https://json-schema.org/blog/posts/remote-case-study) |
-| [Stedi](https://www.stedi.com/) | [Brian Quinn](https://www.linkedin.com/in/bdquinn/) | [Stedi Guides – powered by JSON Schema](https://www.stedi.com/docs/edi-platform/operate/transform-json/guide-json#find-a-guides-json-schema) |
-| [W3C Web of Things](https://www.w3.org/WoT/) | [Ege Korkan](https://www.linkedin.com/in/ege-korkan/) | [W3C Web of Things JSON Schema case study](https://json-schema.org/blog/posts/w3c-wot-case-study) |
-| [Waylit](https://www.waylit.com/) | [Satya Mishra](https://www.linkedin.com/in/satyamishra/) | [WayLit helps customers and their employees by making immigration a bit easier. Waylit uses JSON Schema to generate nice-looking adaptive forms and validate all the collected data](https://www.waylit.com/post/more-than-1000-form-fields-and-growing-how-waylit-uses-json-schema) |
-| [Wundergraph](https://wundergraph.com/) | [Jens Neuse](https://www.linkedin.com/in/jens-neuse-706673195/) | [Wundergraph - JSON Schema in production episode](https://youtu.be/_TCU6da0GA8) |
-| [Zapier](https://zapier.com/) | [David Brownman](https://www.linkedin.com/in/xavdid/) | [Zapier - JSON Schema in production episode](https://youtu.be/yDL98sd4KVE) |
-| Zones | [Chuck Reeves](https://www.linkedin.com/in/charles-reeves-156953284/) | [Zones - JSON Schema in production episode](https://youtu.be/fkziMQD7pqQ) |
-
-The previouse list contains the organizations that have opted to join the adopters of JSON Schema, although there are many others that also use it. Below, you will find a list of organizations known to utilize JSON Schema. Feel free to edit this list by adding any organization that has publicly disclosed its use of JSON Schema.
-
-(ordered alphabetically)
+### The JSON Schema Adopters list
-- [Adobe Experience Manager](https://experienceleague.adobe.com/docs/experience-manager-65/forms/adaptive-forms-advanced-authoring/adaptive-form-json-schema-form-model.html?lang=en?utm_source=awesome-jsonschema) - The Adobe Experience Manager content management solution for building websites, mobile apps and forms supports creating adaptative forms using JSON Schema.
-- [Amazon EventBridge Schema Registry](https://aws.amazon.com/about-aws/whats-new/2020/09/amazon-eventbridge-schema-registry-announces-support-for-json-schema/?utm_source=awesome-jsonschema) - Amazon EventBridge Schema Registry has support for JSON Schema, allowing customers to validate, annotate, and manipulate JSON documents conforming to JSON Schema Draft 4 specification.
-- [Apiary](https://help.apiary.io/api_101/json-schema/?utm_source=awesome-jsonschema) - Apiary's interactive documentation is able to render JSON Schema documents associated with payloads.
-- [Assertible](https://assertible.com/json-schema-validation?utm_source=awesome-jsonschema) - Assertible provides a free-to-use API to validate a JSON document against a JSON Schema and a service to test and monitor web services using JSON Schema.
-- [Axway API Gateway](https://docs.axway.com/bundle/APIGateway_762_PolicyDevFilterReference_allOS_en_HTML5/page/Content/PolicyDevTopics/content_schema_json.htm?utm_source=awesome-jsonschema) - The API Gateway can check that JavaScript Object Notation (JSON) messages conform to the format expected by a web service by validating requests against a specified JSON schema.
-- [Cloudflare](https://blog.cloudflare.com/cloudflares-json-powered-documentation-generator/?utm_source=awesome-jsonschema) - The Cloudflare makes use of JSON Schema and Hyper Schema to keep track of their API endpoints.
-- [Cloudflare Terraform](https://www.infoq.com/news/2021/04/cloudflare-terraform/?utm_source=awesome-jsonschema) - The Cloudflare Terraform provider comes with a tool to generate Terraform configuration from existing Cloudflare resources that uses JSON Schema to map data between both technologies.
-- [Confluent Schema Registry](https://docs.confluent.io/platform/current/schema-registry/serdes-develop/serdes-json.html?utm_source=awesome-jsonschema) - JSON Schema can be configured with the Apache Kafka Java client and console tools to fail if the payload is not valid for the given schema.
-- [Contentstack](https://www.contentstack.com/docs/developers/create-content-types/json-schema-for-creating-a-content-type/?utm_source=awesome-jsonschema) - The Contentstack CMS platform supports creating content types using JSON Schema.
-- [Decisions](https://documentation.decisions.com/docs/create-types-json-schema?utm_source=awesome-jsonschema) - The Decisions rules-driven business process automation platform support using JSON Schema to generate JSON deserializers.
-- [DocSpring](https://docspring.com/docs/api/get_template_schema.html?utm_source=awesome-jsonschema) - The DocSpring service to automatically fill out PDF forms supports generating JSON Schema definitions for user-created templates.
-- [Drupal Patternkit](https://www.drupal.org/project/patternkit?utm_source=awesome-jsonschema) - The Drupal Patternkit module uses JSON Schema to define pattern templates.
-- [Form.io](https://www.form.io/article/angular-json-schema-form-builder?utm_source=awesome-jsonschema) - The Form.io online web form generator supports generating Angular.js forms using JSON Schema.
-- [Genomic Data Commons](https://gdc.cancer.gov/developers/gdc-data-model?utm_source=awesome-jsonschema) - The Genomic Data Commons data model is defined using JSON Schema.
-- [Hackolade](https://hackolade.com/help/JSONSchema.html?utm_source=awesome-jsonschema) - The Hackolade data modelling service supports defining entities using JSON Schema.
-- [Heroku](https://blog.heroku.com/json_schema_for_heroku_platform_api?utm_source=awesome-jsonschema) - Heroku makes use of JSON Schema to publish machine-readable schema definitions for their public APIs.
-- [Human Cell Atlas](https://data.humancellatlas.org/metadata/structure?utm_source=awesome-jsonschema) - The open data generated by the Human Cell Atlas describes metadata structure using JSON Schema.
-- [IBM App Connect](https://www.ibm.com/docs/en/app-connect/11.0.0?topic=schema-json-requirements-message-maps?utm_source=awesome-jsonschema) - The Graphical Data Mapping editor can be used to create and transform JSON messages with the data model defined from a JSON schema.
-- [Informatica](https://docs.informatica.com/data-integration/b2b-data-transformation/10-2-2/user-guide/wizard-input-and-output-formats/json/sample-json-schema.html?utm_source=awesome-jsonschema) - The Informatica data management platform supports creating auto-generated data processor transformations using JSON Schema.
-- [JSON BinPack](https://www.jsonbinpack.org?utm_source=awesome-jsonschema) - JSON BinPack uses JSON Schema to perform space-efficient JSON binary serialization.
-- [JSON:API](https://github.com/json-api/json-api/blob/a0296352b6eb57a4ea3eb08a1332e311f78adafa/schema?utm_source=awesome-jsonschema) - The JSON:API 1.0 and later specifications for building APIs in JSON use JSON Schema to define JSON:API responses.
-- [JamF](https://docs.jamf.com/technical-papers/jamf-pro/json-schema/10.26.0/Understanding_the_Structure_of_a_JSON_Schema_Manifest.html?utm_source=awesome-jsonschema) - The JamF Apple enterprise management service supports creating app manifests using JSON Schema.
-- [JetBrains](https://www.jetbrains.com/help/objc/json.html?utm_source=awesome-jsonschema) - The suite of JetBrains programming editors supports JSON code-completion based on JSON Schema.
-- [Lightblue.io](https://docs.lightblue.io/standards/json_schema.html?utm_source=awesome-jsonschema) - The Lightblue document based data access layer framework uses JSON Schema to define certain file resources in the project.
-- [Linux](https://www.kernel.org/doc/html/latest/devicetree/bindings/writing-schema.html?utm_source=awesome-jsonschema) - The Linux kernel uses JSON Schema to define Devicetree bindings.
-- [MongoDB](https://docs.mongodb.com/manual/reference/operator/query/jsonSchema/?utm_source=awesome-jsonschema) - MongoDB 3.6 and later support JSON Schema for querying data and defining collection constraints.
-- [Mozilla Data Pipeline](https://docs.telemetry.mozilla.org/concepts/pipeline/schemas.html?utm_source=awesome-jsonschema) - Mozilla Data Pipeline uses JSON Schema to define telemetry data ingested from Mozilla products and logs from various services.
-- [MuleSoft](https://docs.mulesoft.com/json-module/2.1/json-schema-validation?utm_source=awesome-jsonschema) - The MuleSoft integration framework supports validating a JSON document against a JSON Schema.
-- [MySQL](https://dev.mysql.com/doc/refman/8.0/en/json-validation-functions.html?utm_source=awesome-jsonschema) - MySQL 8.0.17 and later support table constraints to validate a JSON document against a JSON Schema.
-- [Nakadi](https://nakadi.io?utm_source=awesome-jsonschema) - The Nakadi open-source distributed event bus supports defining event types with JSON Schema.
-- [National Cancer Institute](https://github.com/NCI-GDC/gdcdictionary/tree/develop/gdcdictionary/schemas?utm_source=awesome-jsonschema) - The National Cancer Institute uses JSON Schema to model entities for their Genomic Data Commons collection.
-- [NinJS](https://www.iptc.org/std/ninjs/userguide/?utm_source=awesome-jsonschema) - NinJS standardises the representation of news content in JSON and maintains a JSON Schema document to help validate NinJS implementations.
-- [Open Policy Agent (OPA)](https://blog.openpolicyagent.org/enhanced-type-checking-for-opa-with-json-schema-annotations-826acb0f575?utm_source=awesome-jsonschema) - The OPA policy-based control platform 0.27.0 and newer support statically type-checking Rego policy code using JSON Schema.
-- [Ory Kratos](https://www.ory.sh/kratos/docs/reference/json-schema-json-paths/?utm_source=awesome-jsonschema) - The Ory Kratos identity & user management product relies on JSON Schema from configuration validation, documentation generation for defining identity schemas.
-- [RDA DMP Common Standard for machine-actionable Data Management Plans](https://github.com/RDA-DMP-Common/RDA-DMP-Common-Standard?utm_source=awesome-jsonschema) - The RDA DMP Common Standards Working Group maintains JSON Schemas to validate maDMP JSON documents.
-- [RESTHeart](https://restheart.org/docs/json-schema-validation/?utm_source=awesome-jsonschema) - RESTHeart supports MongoDB schema validation to enforce a format to documents: rules-based validation from MongoDB 3.2 and Json Schema validation from MongoDB 3.6.
-- [Retool](https://docs.retool.com/docs/working-with-json-schema-form?utm_source=awesome-jsonschema) - The Retool no-code platform supports generating web forms using JSON Schema.
-- [Serverless](https://www.serverless.com/framework/docs/configuration-validation/?utm_source=awesome-jsonschema) - The Serverless framework validates service configuration files using JSON Schema.
-- [Smart Data Models](https://github.com/smart-data-models?utm_source=awesome-jsonschema) - The Smart Data Models GitHub organization makes use of JSON Schema to describe harmonized Data Models for different Smart Domains.
-- [Snowplow](https://docs.snowplowanalytics.com/docs/understanding-tracking-design/understanding-schemas-and-validation/?utm_source=awesome-jsonschema) - The Snowplow analytics platform support using JSON Schema to define the structure of the data to collect.
-- [SpreadJS](https://www.grapecity.com/spreadjs/docs/v13/online/jsonschema.html?utm_source=awesome-jsonschema) - The SpreadJS JavaScript spreadsheet library uses JSON Schema to describe the SpreadJS JSON data format.
-- [TILT (machine-readable privacy policies)](https://github.com/Transparency-Information-Language/schema?utm_source=awesome-jsonschema) - TILT is a transparency information language and toolkit powered by JSON Schema explicitly designed to represent and process transparency information in line with the requirements of the EU General Data Protection Regulation and allowing for a more automated and adaptive use of such information than established, legalese data protection policies do.
-- [U.S. Department of Commerce](https://github.com/usnistgov/OSCAL/tree/main/json?utm_source=awesome-jsonschema) - The National Institute of Standards and Technology uses JSON Schema Draft 7 to model Open Security Controls Assessment Language (OSCAL) JSON documents.
-- [Walmart eCommerce](https://developer.walmart.com/documentation/item-object-v4-0/?utm_source=awesome-jsonschema) - Walmart publishes JSON Schema documents for certain resources that developers can make use of when integratting with the Walmart eCommerce platform.
-- [Wordpress](https://make.wordpress.org/themes/2021/11/30/theme-json-schema/?utm_source=awesome-jsonschema) - Wordpress maintains official JSON Schema documents to help with building block based themes.
-- [Zuplo](https://zuplo.com/json-schema/lp-a?utm_source=awesome-jsonschema) - The Zuplo API gateway provides JSON Schema validation and supports generating API documentation out of OpenAPI specifications.
-- [nf-core](https://nf-co.re/tools/#pipeline-schema?utm_source=awesome-jsonschema) - The nf-core Nextflow analysis pipelines collection uses JSON Schema to define the parameters used by Nextflow workflows.
+Please visit the JSON Schema Landscape to see the full list: https://landscape.json-schema.org/
\ No newline at end of file
diff --git a/programs/adopters/templates/socialmedia-promotion.md b/programs/adopters/templates/socialmedia-promotion.md
index 4da486d2..3b806682 100644
--- a/programs/adopters/templates/socialmedia-promotion.md
+++ b/programs/adopters/templates/socialmedia-promotion.md
@@ -1,31 +1,32 @@
### Twitter Template
-📣 🎉 We are pleased to welcome ____ to the official list of JSON Schema adopters!
+📣 We are pleased to welcome _______ to the JSON Schema adopters list!
-_______ is a
+XXXXXXX is a _______
-More about JSON Schema Adopters list ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
+https://
-🧐🧵
-
-Know more about _______ use case :
+Visit our landscape and discover more orgnizations using JSON Schema : https://landscape.json-schema.org
### Linkedin Template
-📣 🎉 We are pleased to welcome ______ to the official list of JSON Schema adopters!
+📣 🎉 We are pleased to welcome _______ to the official list of JSON Schema adopters!
+
+_______ is a ....
-________ is a
+More about _______ 👉 https://
-Know more about ______ use case 💡
+Check out the JSON Schema Landscape to explore the leading orgnizations using JSON Schema: https://landscape.json-schema.org/
+
+#ecosystem #jsonschema #adopters #production
-More about JSON Schema Adopters list ➡️ https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
### Slack
-:mega: :tada: We are pleased to welcome ______ to the official list of :star: JSON Schema adopters :star:!
+:mega: :tada: We are pleased to welcome _______ to the official list of JSON Schema adopters!
+
______ is a ....
-Know more about JSON Schema Adopters :arrow_right: https://github.com/json-schema-org/community/blob/main/ADOPTERS.md
-Know more about _____ use case :bulb:
+Check out the JSON Schema Landscape to explore the leading orgnizations using JSON Schema: https://landscape.json-schema.org/
-Is your Organization using JSON Schema? Please join the [Adopters list](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md) and help us to grow the JSON Schema Ecosystem by sharing your use case.
\ No newline at end of file
+Is your Organization using JSON Schema? Please join the Adopters group in the JSON Schema Landscape and help us to grow the JSON Schema Ecosystem by sharing your use case.
\ No newline at end of file
From 709a9b96a80b08c3dd2261299d627f9fb96b06b8 Mon Sep 17 00:00:00 2001
From: Ramish_Jamal <118445402+ramishj@users.noreply.github.com>
Date: Tue, 25 Jun 2024 13:10:32 +0530
Subject: [PATCH 240/309] Added Workflow to verify ambassaor.json schema (#758)
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Create blank.yml
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Create Validate Ambassadors JSON.yml
* Delete .github/workflows/validate-ambassadors.yml
* Delete .github/workflows/blank.yml
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Update Validate Ambassadors JSON.yml
* Update Validate Ambassadors JSON.yml
* Update Validate Ambassadors JSON.yml
* Update Validate Ambassadors JSON.yml
* Update Validate Ambassadors JSON.yml
* Update Validate Ambassadors JSON.yml
* Added Workflow to verify ambassaor.json schema
* Update Validate Ambassadors JSON.yml
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Added Workflow to verify ambassaor.json schema
* Update .github/workflows/Validate Ambassadors JSON.yml
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
* Update ambassadors-schema.json
Updated schema version,added description to each field,expanded list of Type of contributions and made Linked and Twitter not mandatory
* Update Validate Ambassadors JSON.yml
fixed indentation error
* add mastodon optional property
* Update Validate Ambassadors JSON.yml
* Update Validate Ambassadors JSON.yml
updated ajv import to support latest draft
* Update Validate Ambassadors JSON.yml
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Co-authored-by: Benjamin Granados
---
.../workflows/Validate Ambassadors JSON.yml | 53 ++++++++++
programs/ambassadors/ambassadors-schema.json | 96 +++++++++++++++++++
programs/ambassadors/ambassadors.json | 44 ++++-----
3 files changed, 171 insertions(+), 22 deletions(-)
create mode 100644 .github/workflows/Validate Ambassadors JSON.yml
create mode 100644 programs/ambassadors/ambassadors-schema.json
diff --git a/.github/workflows/Validate Ambassadors JSON.yml b/.github/workflows/Validate Ambassadors JSON.yml
new file mode 100644
index 00000000..2d9b1653
--- /dev/null
+++ b/.github/workflows/Validate Ambassadors JSON.yml
@@ -0,0 +1,53 @@
+name: Validate Ambassadors JSON
+
+on:
+ push:
+ paths:
+ - 'programs/ambassadors/ambassadors.json'
+ pull_request:
+ paths:
+ - 'programs/ambassadors/ambassadors.json'
+
+jobs:
+ validate-json:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+
+ - name: Set up Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Install Dependencies
+ run: npm install ajv ajv-formats
+
+ - name: Validate ambassadors.json
+ run: |
+ node -e "
+ const Ajv = require('ajv/dist/2020');
+ const addFormats = require('ajv-formats');
+ const path = require('path');
+ const fs = require('fs');
+ const ambassadorsDir = path.join(process.env.GITHUB_WORKSPACE, 'programs', 'ambassadors');
+ const schemaPath = path.join(ambassadorsDir, 'ambassadors-schema.json');
+ const dataPath = path.join(ambassadorsDir, 'ambassadors.json');
+ try {
+ const schema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8'));
+ const data = JSON.parse(fs.readFileSync(dataPath, 'utf-8'));
+ const ajv = new Ajv({ allErrors: true });
+ addFormats(ajv);
+ const validate = ajv.compile(schema);
+ const valid = validate(data);
+ if (!valid) {
+ console.error('Validation failed:', validate.errors);
+ process.exit(1);
+ } else {
+ console.log('ambassadors.json is valid.');
+ }
+ } catch (error) {
+ console.error('Error validating ambassadors.json:', error);
+ process.exit(1);
+ }"
diff --git a/programs/ambassadors/ambassadors-schema.json b/programs/ambassadors/ambassadors-schema.json
new file mode 100644
index 00000000..c883668e
--- /dev/null
+++ b/programs/ambassadors/ambassadors-schema.json
@@ -0,0 +1,96 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "type": "array",
+ "description": "Array of contributor profiles",
+ "items": {
+ "type": "object",
+ "description": "Contributor profile",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Full name of the contributor"
+ },
+ "img": {
+ "type": "string",
+ "format": "uri",
+ "description": "URL to the contributor's profile image"
+ },
+ "bio": {
+ "type": "string",
+ "description": "Brief biography of the contributor"
+ },
+ "title": {
+ "type": "string",
+ "description": "Professional title of the contributor"
+ },
+ "github": {
+ "type": "string",
+ "description": "GitHub profile URL of the contributor"
+ },
+ "twitter": {
+ "type": "string",
+ "description": "Twitter profile URL of the contributor"
+ },
+ "mastodon": {
+ "type": "string",
+ "description": "Mastodon profile URL of the contributor"
+ },
+ "linkedin": {
+ "type": "string",
+ "description": "LinkedIn profile URL of the contributor"
+ },
+ "company": {
+ "type": "string",
+ "description": "Company where the contributor works"
+ },
+ "country": {
+ "type": "string",
+ "description": "Country where the contributor is based"
+ },
+ "contributions": {
+ "type": "array",
+ "description": "List of contributions made by the contributor",
+ "items": {
+ "type": "object",
+ "description": "Details of a specific contribution",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["article", "talk", "video", "other", "book", "paper", "initiative", "project", "working group"],
+ "description": "Type of the contribution"
+ },
+ "title": {
+ "type": "string",
+ "description": "Title of the contribution"
+ },
+ "date": {
+ "type": "object",
+ "description": "Date of the contribution",
+ "properties": {
+ "year": {
+ "type": "integer",
+ "minimum": 1900,
+ "maximum": 2100,
+ "description": "Year of the contribution"
+ },
+ "month": {
+ "type": "string",
+ "enum": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ "description": "Month of the contribution"
+ }
+ },
+ "required": ["year", "month"]
+ },
+ "link": {
+ "type": "string",
+ "format": "uri",
+ "description": "URL link to the contribution"
+ }
+ },
+ "required": ["type", "title", "date", "link"]
+ }
+ }
+ },
+ "required": ["name", "img", "bio", "title", "github", "company", "country", "contributions"]
+ }
+}
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 29f32766..c7e186a5 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -1,24 +1,24 @@
[
- {
- "name": "I am the first Ambassador",
- "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
- "bio": "I am the first JSON Schema Ambassador. I work as Schema Designer in ACME since 2002 and I am the implementer of the Turbo Implementation.",
- "title": "Schema Designer at ACME",
- "github": "iamthefirst",
- "twitter": "iamthefirst",
- "linkedin": "iamthefirst",
- "company": "ACME",
- "country": "🇺🇸",
- "contributions": [
- {
- "type": "article",
- "title": "Title of my first contribution",
- "date": {
- "year": 2024,
- "month": "May"
- },
- "link": "link-to-my-contribution"
- }
- ]
- }
+ {
+ "name": "I am the first Ambassador",
+ "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
+ "bio": "I am the first JSON Schema Ambassador. I work as Schema Designer in ACME since 2002 and I am the implementer of the Turbo Implementation.",
+ "title": "Schema Designer at ACME",
+ "github": "iamthefirst",
+ "twitter": "iamthefirst",
+ "linkedin": "iamthefirst",
+ "company": "ACME",
+ "country": "🇺🇸",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "Title of my first contribution",
+ "date": {
+ "year": 2024,
+ "month": "May"
+ },
+ "link": "https://github.com/my-contri"
+ }
+ ]
+ }
]
\ No newline at end of file
From 15ed57faf9e3763e36fa6e97d9b0c1a5c2f7d064 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 25 Jun 2024 12:08:55 +0200
Subject: [PATCH 241/309] Update ambassadors-schema.json to add more
contribution types
---
programs/ambassadors/ambassadors-schema.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/ambassadors/ambassadors-schema.json b/programs/ambassadors/ambassadors-schema.json
index c883668e..75407143 100644
--- a/programs/ambassadors/ambassadors-schema.json
+++ b/programs/ambassadors/ambassadors-schema.json
@@ -56,7 +56,7 @@
"properties": {
"type": {
"type": "string",
- "enum": ["article", "talk", "video", "other", "book", "paper", "initiative", "project", "working group"],
+ "enum": ["article", "talk", "adopter", "case study", "video", "other", "book", "paper", "initiative", "project", "working group"],
"description": "Type of the contribution"
},
"title": {
From f88806dcae22d6f8b7c9e215816c31cf6f9a0c7c Mon Sep 17 00:00:00 2001
From: Andreas Eberhart <61732435+aeberhart@users.noreply.github.com>
Date: Tue, 25 Jun 2024 12:15:49 +0200
Subject: [PATCH 242/309] Update ambassadors.json (#752)
* Update ambassadors.json
Application for Andreas Eberhart
* Update programs/ambassadors/ambassadors.json
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
* Fix some details in the JSON instance
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Co-authored-by: Benjamin Granados
---
programs/ambassadors/ambassadors.json | 63 +++++++++++++++++----------
1 file changed, 41 insertions(+), 22 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index c7e186a5..cce078df 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -1,24 +1,43 @@
[
- {
- "name": "I am the first Ambassador",
- "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
- "bio": "I am the first JSON Schema Ambassador. I work as Schema Designer in ACME since 2002 and I am the implementer of the Turbo Implementation.",
- "title": "Schema Designer at ACME",
- "github": "iamthefirst",
- "twitter": "iamthefirst",
- "linkedin": "iamthefirst",
- "company": "ACME",
- "country": "🇺🇸",
- "contributions": [
- {
- "type": "article",
- "title": "Title of my first contribution",
- "date": {
- "year": 2024,
- "month": "May"
+ {
+ "name": "Andreas Eberhart",
+ "img": "https://media.licdn.com/dms/image/C5603AQFwzjco4Zp2iw/profile-displayphoto-shrink_200_200/0/1522155839427?e=1723680000&v=beta&t=mzwGrHJqCu_doxI4tTZIkH2GtWIeW8iOTD-JDLxwYuA",
+ "bio": "With 25 years of professional experience, Andreas is very proficient in the areas of enterprise cloud, linked & big data, as well as systems architecture and development. He co-founded two startups and drove their growth resulting in two acquisitions by silicon valley giants HP and Veritas. Combined with his extensive background in cutting edge research, he has the unique ability to address projects from technical, time to market, and ROI angles. He holds a PhD in Computer Science from the University of Saarbrücken and a Master in Computer Science from Portland State University.",
+ "title": "CEO at Dashjoin",
+ "github": "aeberhart",
+ "twitter": "dashjoin",
+ "linkedin": "andreas-eberhart-94264a44",
+ "company": "Dashjoin",
+ "country": "🇩🇪",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "JSON Schema, Schema.org, JSON-LD: What’s the Difference?",
+ "date": {
+ "year": 2020,
+ "month": "August"
+ },
+ "link": "https://medium.com/@dashjoin/json-schema-schema-org-json-ld-whats-the-difference-e30d7315686a"
},
- "link": "https://github.com/my-contri"
- }
- ]
- }
-]
\ No newline at end of file
+ {
+ "type": "video",
+ "title": "Supercharge your Angular Project with JSON Schema Forms",
+ "date": {
+ "year": 2020,
+ "month": "August"
+ },
+ "link": "https://www.youtube.com/watch?v=Xk9dxbbBFjo"
+ },
+ {
+ "type": "adopter",
+ "title": "Add Dashjoin to the JSON Schema Adopters list.",
+ "date": {
+ "year": 2024,
+ "month": "April"
+ },
+ "link": "https://landscape.json-schema.org/"
+ }
+ ]
+ }
+]
+
From 523d5866970224d850752164f74b40a1bc9fb5ca Mon Sep 17 00:00:00 2001
From: Alok Gupta
Date: Tue, 16 Jul 2024 19:49:37 +0530
Subject: [PATCH 243/309] chore(github-actions) : Fixes notify-failed-actions
workflow (#772)
* chore(github-actions) : Fixes notify-failed-actions workflow
* Update failed-actions-notify.yml to change webhook name
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
.github/workflows/failed-actions-notify.yml | 50 +++++++++------------
1 file changed, 22 insertions(+), 28 deletions(-)
diff --git a/.github/workflows/failed-actions-notify.yml b/.github/workflows/failed-actions-notify.yml
index 36751a1f..54ab2644 100644
--- a/.github/workflows/failed-actions-notify.yml
+++ b/.github/workflows/failed-actions-notify.yml
@@ -8,36 +8,30 @@ on:
branches:
- main
+permissions:
+ actions: read
+
jobs:
- notify-slack:
+ on-failure:
runs-on: ubuntu-latest
- if: ${{ github.event.workflow_run.conclusion == 'failure' }}
+ if: |
+ (github.event.workflow_run.conclusion == 'failure' ||
+ github.event.workflow_run.conclusion == 'timed_out') &&
+ github.event.workflow_run.name != 'Slack Notifications for Failed GitHub Actions'
+ timeout-minutes: 10
steps:
- - name: Check out repository
- uses: actions/checkout@v4
-
- - name: Send Slack notification
+ - name: Send Slack Notification
+ uses: ravsamhq/notify-slack-action@v2
+ with:
+ status: ${{ github.event.workflow_run.conclusion }}
+ notification_title: " ${{github.event.workflow_run.name}} - ${{github.event.workflow_run.conclusion}} on ${{github.event.workflow_run.head_branch}} - <${{github.server_url}}/${{github.repository}}/actions/runs/${{github.event.workflow_run.id}}|View Failure>"
+ message_format: ":fire: *${{github.event.workflow_run.name}}* ${{github.event.workflow_run.conclusion}} in <${{github.server_url}}/${{github.repository}}/${{github.event.workflow_run.head_branch}}|${{github.repository}}>"
+ footer: "Linked Repo <${{github.server_url}}/${{github.repository}}|${{github.repository}}> | <${{github.server_url}}/${{github.repository}}/actions/runs/${{github.event.workflow_run.id}}|View Failure>"
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_NOTIF }}
+
+ - name: Check Slack Notification Status
if: failure()
run: |
- const fetch = require('node-fetch');
-
- const SLACK_WEBHOOK_URL = process.env.SLACK_WEBHOOK_URL;
- const context = JSON.parse(process.env.GITHUB_CONTEXT);
-
- const slackMessage = {
- channel: '#github',
- issue: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`,
- status: context.jobStatus,
- text: `GitHub Actions workflow failed: ${context.workflow}`
- };
-
- await fetch(SLACK_WEBHOOK_URL, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify(slackMessage),
- });
- env:
- SLACK_WEBHOOK_URL: ${{ vars.SLACK_WEBHOOK_FAIL_ACTIONS }}
- GITHUB_CONTEXT: ${{ toJson(github) }}
+ echo "Failed to send Slack notification"
+ echo "Workflow Run ID: ${{ github.event.workflow_run.id }}"
From d4afdc04747c25c768cd09f258de6d8be22949c0 Mon Sep 17 00:00:00 2001
From: David Biesack
Date: Fri, 19 Jul 2024 12:56:12 -0400
Subject: [PATCH 244/309] Add ambassador submission - David Biesack (#754)
* Add ambassador submission - David Biesack
* add APISpecs conference talk
* Update programs/ambassadors/ambassadors.json
change twitter to mastodon
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
* Update ambassadors.json
fix misspelling
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
programs/ambassadors/ambassadors.json | 65 +++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index cce078df..cd421514 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -36,6 +36,71 @@
"month": "April"
},
"link": "https://landscape.json-schema.org/"
+ },
+ {
+ "name": "David Biesack",
+ "img": "https://avatars.githubusercontent.com/u/545944?s=400&u=26818946106e2d8ae8c0cb5e0b72d6c7f612d268&v=4",
+ "bio": "Chief API Officer at APiture (I design banking APIs with OpenAPI 3.1, JSON Schema 2020/12) and author of the API Design Matters blog, https://apidesignmatters.substack.com/ ",
+ "title": "Chief API Officer",
+ "github": "DavidBiesack",
+ "mastodon": "@DavidBiesack@fosstodon.org",
+ "linkedin": "davdbiesack",
+ "company": "Apiture",
+ "country": "🇺🇸",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "Composing API Models with JSON Schema",
+ "date": {
+ "year": 2023,
+ "month": "June"
+ },
+ "link": "https://apidesignmatters.substack.com/p/composing-api-models-with-json-schema"
+ },
+ {
+ "type": "article",
+ "title": "Master JSON Schema's Subtleties",
+ "date": {
+ "year": 2023,
+ "month": "July"
+ },
+ "link": "https://apidesignmatters.substack.com/p/master-json-schemas-subtleties"
+ },
+ {
+ "type": "article",
+ "title": "Master More JSON Schema's Subtleties",
+ "date": {
+ "year": 2023,
+ "month": "July"
+ },
+ "link": "https://apidesignmatters.substack.com/p/master-more-json-schemas-subtleties"
+ },
+ {
+ "type": "article",
+ "title": "Learning the Language of API Data",
+ "date": {
+ "year": 2023,
+ "month": "May"
+ },
+ "link": "https://apidesignmatters.substack.com/p/learning-the-language-of-api-data"
+ },
+ {
+ "type": "pull request review",
+ "title": "What is JSON Schema?",
+ "date": {
+ "year": 2024,
+ "month": "June"
+ },
+ "link": "https://github.com/json-schema-org/website/pull/679"
+ },
+ {
+ "type": "conference-talk",
+ "title": "Wielding the Double-Edged Sword of JSON Schema",
+ "date": {
+ "year": 2022,
+ "month": "Sempember"
+ },
+ "link": "https://www.youtube.com/watch?v=6ukZEUBRpqo"
}
]
}
From 6fd093c50d172fb8cedd7d66078a3e00e024fc29 Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Mon, 5 Aug 2024 04:32:48 -0400
Subject: [PATCH 245/309] Add Juan Cruz Viotti to ambassador list (#761)
* Add Juan Cruz Viotti to ambassador list
Signed-off-by: Juan Cruz Viotti
* Fix JSON
Signed-off-by: Juan Cruz Viotti
* Make JSON adhere to its schema
Signed-off-by: Juan Cruz Viotti
---------
Signed-off-by: Juan Cruz Viotti
---
programs/ambassadors/ambassadors.json | 75 +++++++++++++++++++++++++--
1 file changed, 71 insertions(+), 4 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index cd421514..8a93cb54 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -36,6 +36,8 @@
"month": "April"
},
"link": "https://landscape.json-schema.org/"
+ }
+ ]
},
{
"name": "David Biesack",
@@ -85,7 +87,7 @@
"link": "https://apidesignmatters.substack.com/p/learning-the-language-of-api-data"
},
{
- "type": "pull request review",
+ "type": "other",
"title": "What is JSON Schema?",
"date": {
"year": 2024,
@@ -94,15 +96,80 @@
"link": "https://github.com/json-schema-org/website/pull/679"
},
{
- "type": "conference-talk",
+ "type": "talk",
"title": "Wielding the Double-Edged Sword of JSON Schema",
"date": {
"year": 2022,
- "month": "Sempember"
+ "month": "September"
},
"link": "https://www.youtube.com/watch?v=6ukZEUBRpqo"
}
]
+ },
+ {
+ "name": "Juan Cruz Viotti",
+ "img": "https://avatars.githubusercontent.com/u/2192773?v=4",
+ "bio": "CTO at Intelligence.AI, founder of Sourcemeta, consultant, and author",
+ "title": "Chief Technical Officer",
+ "github": "jviotti",
+ "linkedin": "jviotti",
+ "company": "Intelligence.AI",
+ "country": "🇧🇴",
+ "contributions": [
+ {
+ "type": "project",
+ "title": "Alterschema",
+ "date": {
+ "year": 2022,
+ "month": "May"
+ },
+ "link": "https://alterschema.sourcemeta.com"
+ },
+ {
+ "type": "article",
+ "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
+ "date": {
+ "year": 2022,
+ "month": "October"
+ },
+ "link": "https://json-schema.org/blog/posts/w3c-wot-case-study"
+ },
+ {
+ "type": "project",
+ "title": "Learn JSON Schema",
+ "date": {
+ "year": 2023,
+ "month": "March"
+ },
+ "link": "https://www.learnjsonschema.com"
+ },
+ {
+ "type": "article",
+ "title": "Understanding JSON Schema Lexical and Dynamic Scopes",
+ "date": {
+ "year": 2024,
+ "month": "February"
+ },
+ "link": "https://json-schema.org/blog/posts/understanding-lexical-dynamic-scopes"
+ },
+ {
+ "type": "book",
+ "title": "Unifying Business, Data, and Code: Designing Data Products with JSON Schema",
+ "date": {
+ "year": 2024,
+ "month": "January"
+ },
+ "link": "https://www.oreilly.com/library/view/unifying-business-data/9781098144999/"
+ },
+ {
+ "type": "initiative",
+ "title": "GSoC 2024: Upgrade/Downgrade Rules",
+ "date": {
+ "year": 2024,
+ "month": "March"
+ },
+ "link": "https://github.com/json-schema-org/community/issues/599"
+ }
+ ]
}
]
-
From 1b2f40b46a69531128cb37329db4f05877360e32 Mon Sep 17 00:00:00 2001
From: Alok Gupta
Date: Mon, 5 Aug 2024 14:10:15 +0530
Subject: [PATCH 246/309] chore(github-actions) : updated
slack-ocwm-reminder.yml with new office hours and timezone (#771)
---
.github/workflows/slack-ocwm-reminder.yml | 180 +++++++++++++++-------
1 file changed, 128 insertions(+), 52 deletions(-)
diff --git a/.github/workflows/slack-ocwm-reminder.yml b/.github/workflows/slack-ocwm-reminder.yml
index 8d7e924d..80ddd97d 100644
--- a/.github/workflows/slack-ocwm-reminder.yml
+++ b/.github/workflows/slack-ocwm-reminder.yml
@@ -1,22 +1,29 @@
-name: Send reminders to join the OCWM
+name: Send Office Hours Reminders
on:
schedule:
- - cron: '0 15 1-7 * 5' #Runs at 15:00, between day 1 and 7 of the month on Friday
- - cron: '0 15 1-7 * 2' #Runs at 15:00, between day 1 and 7 of the month on Tuesday
+ # Europe/Americas: Last Friday of previous month, first Friday (if before Tuesday), and day of (first Tuesday), even months
+ - cron: '0 9 25-31 5,7,9,11,1,3 5' # Last Friday of odd months at 9 UTC
+ - cron: '0 9 1-7 6,8,10,12,2,4 5' # First Friday at 9 UTC in even months
+ - cron: '0 9 1-7 6,8,10,12,2,4 2' # First Tuesday at 9 UTC in even months
+ # APAC/Americas: Last Friday of previous month, first Friday (if before Tuesday), and day of (first Tuesday), odd months
+ - cron: '0 17 25-31 4,6,8,10,12,2 5' # Last Friday of even months at 17 UTC
+ - cron: '0 17 1-7 7,9,11,1,3,5 5' # First Friday at 17 UTC in odd months
+ - cron: '0 17 1-7 7,9,11,1,3,5 2' # First Tuesday at 17 UTC in odd months
jobs:
- ocwm-reminders:
+ send-reminders:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- - name: Set up Node 20
+
+ - name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- - name: Get Token
+ - name: Get GitHub App Token
uses: actions/create-github-app-token@v1
id: get_workflow_token
with:
@@ -29,57 +36,126 @@ jobs:
- name: Send reminders
uses: actions/github-script@v7
env:
- MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
+ GITHUB_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
OWNER: ${{ vars.ORGANISATION }}
REPO: 'community'
OCWM_LABEL: ${{ vars.OCWM_LABEL }}
- SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK_REMINDER }}
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_OFFICEHOURS }}
with:
script: |
-
- const octokit = require('@octokit/core').Octokit;
- const mygithub = new octokit({
- request: { fetch: fetch,},
- auth: process.env.MY_TOKEN
- });
-
- let targetLabel = encodeURIComponent(process.env.OCWM_LABEL);
-
- const { data: workMeetings } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1`, {
- })
-
- const issueNumber = workMeetings[0].number
- const newTitle = workMeetings[0].title;
- const issueDate = newTitle.replace(/Open Community Working Meeting /g, "");
-
- //Date of the next meeting
- const nextMeetingDate = new Date();
- nextMeetingDate.setDate(nextMeetingDate.getDate() + (2 + 7 - nextMeetingDate.getDay()) % 7);
-
- const formattedDate = nextMeetingDate.toISOString().split('T')[0];
-
- const reminderText = (new Date().getDay() === 2) ? "today" : formattedDate;
-
- // Checking if the reminder should be sent
- const today = new Date();
- const firstTuesday = new Date(today.getFullYear(), today.getMonth(), 1);
- firstTuesday.setDate(firstTuesday.getDate() + (2 + 7 - firstTuesday.getDay()) % 7);
- const firstFriday = new Date(today.getFullYear(), today.getMonth(), 1);
- firstFriday.setDate(firstFriday.getDate() + (5 + 7 - firstFriday.getDay()) % 7);
-
- if ((today.getDay() === 2 && today.getDate() === firstTuesday.getDate()) || (today.getDay() === 5 && today.getDate() === firstFriday.getDate() && firstFriday < firstTuesday)) {
- // Notify Slack
- const SLACK_WEBHOOK_URL = process.env.SLACK_WEBHOOK;
- const SLACK_MESSAGE = `{
- "issue": "https://github.com/${process.env.OWNER}/${process.env.REPO}/issues/${issueNumber}",
- "date": "${reminderText}"
- }`;
-
- await fetch(SLACK_WEBHOOK_URL, {
+ const { Octokit } = require("@octokit/core");
+ const github = new Octokit({ auth: process.env.GITHUB_TOKEN });
+
+ function getFirstTuesdayOfMonth(year, month) {
+ let date = new Date(Date.UTC(year, month, 1));
+ while (date.getUTCDay() !== 2) {
+ date.setUTCDate(date.getUTCDate() + 1);
+ }
+ return date;
+ }
+
+ function getLastTuesdayOfMonth(year, month) {
+ let date = new Date(Date.UTC(year, month + 1, 0)); // Last day of the month
+ while (date.getUTCDay() !== 2) {
+ date.setUTCDate(date.getUTCDate() - 1);
+ }
+ return date;
+ }
+
+ function isLastFridayOfMonth(date) {
+ const lastDayOfMonth = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0));
+ const lastFriday = new Date(lastDayOfMonth);
+ lastFriday.setUTCDate(lastFriday.getUTCDate() - (lastFriday.getUTCDay() + 2) % 7);
+ return date.getUTCDate() === lastFriday.getUTCDate();
+ }
+
+ function isFirstFridayOfMonth(date) {
+ return date.getUTCDay() === 5 && date.getUTCDate() <= 7;
+ }
+
+ try {
+ const today = new Date();
+ const currentMonth = today.getUTCMonth();
+ const isEuropeAmericas = [5, 7, 9, 11, 1, 3].includes(currentMonth+1);
+ const isFriday = today.getUTCDay() === 5;
+ const isTuesday = today.getUTCDay() === 2;
+ const isLastFriday = isLastFridayOfMonth(today);
+ const isFirstFriday = isFirstFridayOfMonth(today);
+
+ console.log(`Current date: ${today.toISOString()}, Month: ${currentMonth + 1}, Is Europe/Americas: ${isEuropeAmericas}, Is Friday: ${isFriday}, Is Tuesday: ${isTuesday}, Is Last Friday: ${isLastFriday}, Is First Friday: ${isFirstFriday}`);
+
+ let timezone, time, date;
+ if (isEuropeAmericas) {
+ timezone = "Europe/Americas friendly";
+ time = "10:00 BST";
+ } else {
+ timezone = "APAC/Americas friendly";
+ time = "10:00 PT";
+ }
+
+ const firstTuesdayThisMonth = getFirstTuesdayOfMonth(today.getUTCFullYear(), currentMonth);
+ const lastTuesdayLastMonth = getLastTuesdayOfMonth(today.getUTCFullYear(), currentMonth);
+
+ let shouldSendReminder = false;
+
+ if (isFriday) {
+ if(isLastFriday && today > lastTuesdayLastMonth){
+ shouldSendReminder = true;
+ const firstTuesdayNextMonth = getFirstTuesdayOfMonth(today.getUTCFullYear(), currentMonth + 1);
+ date = firstTuesdayNextMonth.toISOString().split('T')[0];
+ } else if (isFirstFriday && today < firstTuesdayThisMonth) {
+ shouldSendReminder = true;
+ date = firstTuesdayThisMonth.toISOString().split('T')[0];
+ }
+ } else if (isTuesday) {
+ shouldSendReminder = true;
+ date = "today";
+ }
+
+ if (!shouldSendReminder) {
+ console.log("Not the correct day for sending a reminder");
+ return;
+ }
+
+ console.log(`Calculated date for reminder: ${date}`);
+
+ // Fetch the latest open Office Hours issue
+ const targetLabel = encodeURIComponent(process.env.OCWM_LABEL);
+ const { data: workMeetings } = await github.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${targetLabel}&per_page=1&state=open`);
+
+ if (workMeetings.length === 0) {
+ console.log("No open Office Hours issue found");
+ return;
+ }
+
+ const issueNumber = workMeetings[0].number;
+ const issueLink = `https://github.com/${process.env.OWNER}/${process.env.REPO}/issues/${issueNumber}`;
+
+ console.log(`Found issue: ${issueLink}`);
+
+ // Prepare the message for Slack
+ const message = {
+ issue: issueLink,
+ date: date,
+ timezone: timezone,
+ time: time
+ };
+
+ console.log(`Sending message to Slack: ${JSON.stringify(message)}`);
+
+ // Send the message to Slack
+ const response = await fetch(process.env.SLACK_WEBHOOK, {
method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: SLACK_MESSAGE,
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(message)
});
+
+ if (!response.ok) {
+ throw new Error(`Failed to send Slack message: ${response.statusText}`);
+ }
+
+ console.log(`Reminder sent for ${timezone} session on ${date}`);
+ } catch (error) {
+ console.error(`An error occurred: ${error.message}`);
+ core.setFailed(error.message);
}
\ No newline at end of file
From 2a64860782f1e67dd9f714586f49472ee771442d Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 5 Aug 2024 10:40:32 +0200
Subject: [PATCH 247/309] Update open_community_working_meeting.md to fix
meeting link (#783)
Added a new meeting link using Google Meet.
---
.github/ISSUE_TEMPLATE/open_community_working_meeting.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
index 1dddf540..686184fb 100644
--- a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
+++ b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
@@ -5,7 +5,7 @@ about: Regular Open Community Working Meetings Issue - This template is for thos
# Open Community Working Meeting 2022-MM-DD - 14:00 PT
-Zoom Meeting link: https://postman.zoom.us/j/89562933116?pwd=OWlsQ0RrcDY4S1JQU2d2Q2M0aFFlZz09
+Google Meet joining info - Video call link: https://meet.google.com/rag-mhbi-cgt
You can find these events scheduled on our **[JSON Schema Community Calendar](https://calendar.google.com/calendar/u/0/embed?src=info@json-schema.org)**.
From 59458076ca5c9ce4a787706dad161acbc8d186ae Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Fri, 9 Aug 2024 12:13:03 -0400
Subject: [PATCH 248/309] Kickstart the Contractor program
See: https://github.com/orgs/json-schema-org/discussions/779
Signed-off-by: Juan Cruz Viotti
---
programs/contractors/README.md | 18 +++++
programs/contractors/contractors-schema.json | 77 ++++++++++++++++++++
programs/contractors/contractors.json | 38 ++++++++++
3 files changed, 133 insertions(+)
create mode 100644 programs/contractors/README.md
create mode 100644 programs/contractors/contractors-schema.json
create mode 100644 programs/contractors/contractors.json
diff --git a/programs/contractors/README.md b/programs/contractors/README.md
new file mode 100644
index 00000000..c7f1991a
--- /dev/null
+++ b/programs/contractors/README.md
@@ -0,0 +1,18 @@
+This document covers the organizational and operational aspects of the JSON Schema Contractor Program.
+
+### What is the JSON Schema Contractor Program?
+
+The JSON Schema Contractor Program aims to promote official professional services around JSON Schema coming from TSC members and Ambassors, connecting companies with the key people they need to be successful with JSON Schema, while promoting the sustainability of JSON Schema organization.
+
+### How does the program work?
+
+- The TSC and existing ambassadors can opt-in to be listed as contractors at any time.
+- All contractor information will be displayed on the JSON Schema website.
+
+### Contractor requirements
+
+The participation will be determined and checked annually. The only requirement for being listed as a contractor is being a current TSC member or an current Ambassador.
+
+### Become an JSON Schema Contractor
+
+The process of becoming a listed contractor is very simple. Go to the **community** repository and open a PR to edit the `contractors.json` file. The TSC will then evaluate your candidacy!
diff --git a/programs/contractors/contractors-schema.json b/programs/contractors/contractors-schema.json
new file mode 100644
index 00000000..d7e8ba58
--- /dev/null
+++ b/programs/contractors/contractors-schema.json
@@ -0,0 +1,77 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "type": "array",
+ "description": "Array of contractor profiles",
+ "items": {
+ "type": "object",
+ "description": "Contractor profile",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Full name of the contractor"
+ },
+ "bio": {
+ "type": "string",
+ "description": "Biography of the contractor"
+ },
+ "email": {
+ "type": "string",
+ "format": "email",
+ "description": "E-mail address of the contractor"
+ },
+ "website": {
+ "type": "string",
+ "format": "url",
+ "description": "Website URL of the contractor"
+ },
+ "github": {
+ "type": "string",
+ "description": "GitHub profile URL of the contractor"
+ },
+ "twitter": {
+ "type": "string",
+ "description": "Twitter profile URL of the contractor"
+ },
+ "mastodon": {
+ "type": "string",
+ "description": "Mastodon profile URL of the contractor"
+ },
+ "linkedin": {
+ "type": "string",
+ "description": "LinkedIn profile URL of the contractor"
+ },
+ "incorporatedIn": {
+ "type": "array",
+ "description": "Countries where the contractor is incorporated",
+ "items": {
+ "type": "string"
+ }
+ },
+ "type": {
+ "enum": [ "tsc", "ambassor" ],
+ "description": "Status of the contractor in the JSON Schema organization"
+ },
+ "links": {
+ "type": "array",
+ "description": "List of key links to showcase",
+ "items": {
+ "type": "object",
+ "description": "Details of a specific link",
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Title of the link"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "description": "The link URL"
+ }
+ },
+ "required": ["title", "url"]
+ }
+ }
+ },
+ "required": ["name", "bio", "type", "github", "incorporatedIn", "links"]
+ }
+}
diff --git a/programs/contractors/contractors.json b/programs/contractors/contractors.json
new file mode 100644
index 00000000..30422b45
--- /dev/null
+++ b/programs/contractors/contractors.json
@@ -0,0 +1,38 @@
+[
+ {
+ "name": "Juan Cruz Viotti",
+ "github": "jviotti",
+ "linkedin": "jviotti",
+ "email": "jv@jviotti.com",
+ "website": "https://www.jviotti.com",
+ "type": "tsc",
+ "incorporatedIn": [ "UK", "US" ],
+ "bio": "I'm a TSC member of JSON Schema, did award-winning research at the University of Oxford in the space of binary serialization and compression using JSON Schema, co-authored an O'Reilly book covering JSON Schema, and own several projects in the ecosystem, ranging educational material like LearnJSONSchema.com to a high-performance C++ JSON Schema compiler and validator. I have experience helping organizations be successful with JSON Schema in the Data, API, and IoT spaces all the way from architecture and training to custom development. I'm eager to help you take your JSON Schema integrations to the next level!",
+ "links": [
+ {
+ "title": "O'Reilly Book: Unifying Business, Data, and Code: Designing Data Products with JSON Schema",
+ "url": "https://learning.oreilly.com/library/view/unifying-business-data/9781098144999/"
+ },
+ {
+ "title": "JSON Schema CLI: The CLI for working with JSON Schema. Covers formatting, linting, testing, bundling, and more for both local development and CI/CD pipelines",
+ "url": "https://github.com/intelligence-ai/jsonschema"
+ },
+ {
+ "title": "JSON BinPack: binary serialization with JSON Schema, more space-efficient than Protocol Buffers and similar alternatives (work in progress)",
+ "url": "https://jsonbinpack.sourcemeta.com"
+ },
+ {
+ "title": "Alterschema: Automatic upgrades between versions of JSON Schema (downgrades coming soon)",
+ "url": "https://alterschema.sourcemeta.com"
+ },
+ {
+ "title": "JSON Toolkit: a C++ implementation of JSON Schema, featuring a state-of-the-art schema compiler and a custom JSON parser",
+ "url": "https://github.com/sourcemeta/jsontoolkit"
+ },
+ {
+ "title": "Blog post: A deep dive on lexical and dynamic scopes, essential for understanding more advanced topics like dynamic referencing",
+ "url": "https://json-schema.org/blog/posts/understanding-lexical-dynamic-scopes"
+ }
+ ]
+ }
+]
From a3a63ab4039a57aa5c25ba91a51e2dfa7bbb9306 Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Fri, 9 Aug 2024 18:45:51 -0400
Subject: [PATCH 249/309] Update programs/contractors/README.md
Co-authored-by: Greg Dennis
---
programs/contractors/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/contractors/README.md b/programs/contractors/README.md
index c7f1991a..f84333b7 100644
--- a/programs/contractors/README.md
+++ b/programs/contractors/README.md
@@ -11,7 +11,7 @@ The JSON Schema Contractor Program aims to promote official professional service
### Contractor requirements
-The participation will be determined and checked annually. The only requirement for being listed as a contractor is being a current TSC member or an current Ambassador.
+The participation will be determined and checked annually. The only requirement for being listed as a contractor is being a current TSC member or a current Ambassador.
### Become an JSON Schema Contractor
From 0aa326dfe4e497e887dd550f91648fbabcedde47 Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Fri, 16 Aug 2024 20:15:06 -0400
Subject: [PATCH 250/309] Update programs/contractors/README.md
Co-authored-by: Jason Desrosiers
---
programs/contractors/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/contractors/README.md b/programs/contractors/README.md
index f84333b7..2dc3f904 100644
--- a/programs/contractors/README.md
+++ b/programs/contractors/README.md
@@ -2,7 +2,7 @@ This document covers the organizational and operational aspects of the JSON Sche
### What is the JSON Schema Contractor Program?
-The JSON Schema Contractor Program aims to promote official professional services around JSON Schema coming from TSC members and Ambassors, connecting companies with the key people they need to be successful with JSON Schema, while promoting the sustainability of JSON Schema organization.
+The JSON Schema Contractor Program aims to promote official professional services around JSON Schema coming from TSC members and Ambassors, connecting companies with the key people they need to be successful with JSON Schema, while promoting the sustainability of the JSON Schema organization.
### How does the program work?
From 681d469ab953ca897d2d285d402284d6bc1ef888 Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Fri, 16 Aug 2024 20:16:20 -0400
Subject: [PATCH 251/309] Twitter => X
Signed-off-by: Juan Cruz Viotti
---
programs/contractors/contractors-schema.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/contractors/contractors-schema.json b/programs/contractors/contractors-schema.json
index d7e8ba58..56964b19 100644
--- a/programs/contractors/contractors-schema.json
+++ b/programs/contractors/contractors-schema.json
@@ -28,9 +28,9 @@
"type": "string",
"description": "GitHub profile URL of the contractor"
},
- "twitter": {
+ "x": {
"type": "string",
- "description": "Twitter profile URL of the contractor"
+ "description": "X profile URL of the contractor"
},
"mastodon": {
"type": "string",
From 1851bae22ac8310f64394dfe5836fc501e154b39 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 21 Aug 2024 11:05:51 +0200
Subject: [PATCH 252/309] Update stale.yml
---
.github/workflows/stale.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 01632bf3..2da10321 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -55,7 +55,7 @@ jobs:
stale-pr-label: 'Status: Stale'
# Number of days of inactivity before an issue/PR is marked as stale.
- days-before-stale: 30
+ days-before-stale: 180
# Number of days of inactivity before an issue/PR is closed.
days-before-close: 180
From 3840b0b6bcd681a2fac3a38a422ee948a4220719 Mon Sep 17 00:00:00 2001
From: Codequeen <54287358+Estherokafor05@users.noreply.github.com>
Date: Thu, 22 Aug 2024 10:05:50 +0100
Subject: [PATCH 253/309] applying for ambassadors at JSONschema (#732)
* applying for ambassadors at JSONschema
* fixed conflict, Update PR
* fixed former files
* Update ambassadors.json
* Update ambassadors.json
* Update ambassadors.json
Fix JSON format
---------
Co-authored-by: esthertests
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
programs/ambassadors/ambassadors.json | 49 +++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 8a93cb54..3a4ec872 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -171,5 +171,54 @@
"link": "https://github.com/json-schema-org/community/issues/599"
}
]
+ },
+ {
+ "name": "Esther Okafor",
+ "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
+ "bio": "I am a QA engineer currently working with Storyblok. I am passionate about quality and making sure software design systems are developed with the highest standards",
+ "title": "Test engineer at Storyblok",
+ "github": "https://github.com/Estherokafor05/My-portfolio",
+ "twitter": "https://x.com/Estherokafor_",
+ "linkedin": "https://www.linkedin.com/in/okaforesther/",
+ "company": "Storyblok",
+ "country": "Nigeria",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "Postman Series - writing assertions and validating responses",
+ "date": {
+ "year": 2024,
+ "month": "May"
+ },
+ "link": "https://estherokafor.com/postman-series-writing-assertions-and-validating-responses"
+ },
+ {
+ "type": "article",
+ "title": "Beyond Assertions: Data Validation using Cypress with JSON Schema in End-to-End Testing",
+ "date": {
+ "year": 2024,
+ "month": "May"
+ },
+ "link": "https://estherokafor.com/beyond-assertions-data-validation-using-cypress-with-json-schema-in-end-to-end-testing"
+ },
+ {
+ "type": "article",
+ "title": "Beyond Basics: Leveraging JSON Schema for API Security Testing",
+ "date": {
+ "year": 2024,
+ "month": "June"
+ },
+ "link": "https://estherokafor.com/beyond-basics-leveraging-json-schema-for-api-security-testing"
+ },
+ {
+ "type": "talk",
+ "title": "Beyond Code: A qa's perspective to API design",
+ "date": {
+ "year": 2024,
+ "month": "July"
+ },
+ "link": "https://www.canva.com/design/DAGJgnhNUYA/GLVTP-Yx7wcBVFjOhsN2uQ/edit?utm_content=DAGJgnhNUYA&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton"
+ }
+ ]
}
]
From f2b66fbbd89bcd101de4bea168ca7a4f96a7afe0 Mon Sep 17 00:00:00 2001
From: Ege Korkan
Date: Thu, 22 Aug 2024 19:56:16 +0200
Subject: [PATCH 254/309] Add Ege Korkan to ambassadors list (#763)
* add Ege Korkan to ambassadors list
* Update ambassadors.json
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
programs/ambassadors/ambassadors.json | 59 +++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 3a4ec872..660fda47 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -220,5 +220,64 @@
"link": "https://www.canva.com/design/DAGJgnhNUYA/GLVTP-Yx7wcBVFjOhsN2uQ/edit?utm_content=DAGJgnhNUYA&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton"
}
]
+ },
+ {
+ "name": "Ege Korkan",
+ "img": "https://media.licdn.com/dms/image/D4D03AQG03-U--zDJpw/profile-displayphoto-shrink_200_200/0/1707341764311?e=1724889600&v=beta&t=xY0i-IncaI51wlZVJD7fEuSb0LMdR7j0-XlipV7EK6c",
+ "bio": "Research and standardization focused engineer at Siemens with a passion to drive interoperability across all levels.",
+ "title": "Web of Things Expert at Siemens",
+ "github": "egekorkan",
+ "twitter": "egekorkan",
+ "linkedin": "ege-korkan",
+ "mastodon":"https://mastodon.social/@egekorkan",
+ "company": "Siemens AG",
+ "country": "Germany",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
+ "date": {
+ "year": 2022,
+ "month": "October"
+ },
+ "link": "https://json-schema.org/blog/posts/w3c-wot-case-study"
+ },
+ {
+ "type": "project",
+ "title": "Web of Things Tutorial which contains a part on JSON Schema",
+ "date": {
+ "year": 2024,
+ "month": "January"
+ },
+ "link": "https://w3c.github.io/wot-cg/tutorials/whatiswot/docs/preliminary/json-schema/intro"
+ },
+ {
+ "type": "adopter",
+ "title": "Add Standards Category to the JSON Schema Adopters list.",
+ "date": {
+ "year": 2024,
+ "month": "May"
+ },
+ "link": "https://landscape.json-schema.org/"
+ },
+ {
+ "type": "working group",
+ "title": "Web of Things Working Group participation at the W3C, which is using JSON Schema",
+ "date": {
+ "year": 2018,
+ "month": "September"
+ },
+ "link": "https://www.w3.org/WoT/"
+ },
+ {
+ "type": "project",
+ "title": "JSON Spell-checker based on JSON Schema",
+ "date": {
+ "year": 2023,
+ "month": "January"
+ },
+ "link": "https://github.com/eclipse-thingweb/playground/tree/master/packages/json-spell-checker"
+ }
+ ]
}
]
From 0a544eceb38515411da3c18937c8ea27e4b71bdf Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 23 Aug 2024 08:57:04 +0200
Subject: [PATCH 255/309] Update ambassadors-schema to add community as type of
contribution (#791)
---
programs/ambassadors/ambassadors-schema.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/ambassadors/ambassadors-schema.json b/programs/ambassadors/ambassadors-schema.json
index 75407143..33a41b5f 100644
--- a/programs/ambassadors/ambassadors-schema.json
+++ b/programs/ambassadors/ambassadors-schema.json
@@ -56,7 +56,7 @@
"properties": {
"type": {
"type": "string",
- "enum": ["article", "talk", "adopter", "case study", "video", "other", "book", "paper", "initiative", "project", "working group"],
+ "enum": ["article", "talk", "adopter", "case study", "video", "other", "book", "paper", "initiative", "project", "working group", "community"],
"description": "Type of the contribution"
},
"title": {
From e4c8884b2eb0b5d922d1a3b0a8b8442f012d46e7 Mon Sep 17 00:00:00 2001
From: Jeremy Fiel <32110157+jeremyfiel@users.noreply.github.com>
Date: Sat, 24 Aug 2024 06:03:11 -0400
Subject: [PATCH 256/309] chore(ambassadors): fix formatting issues (#781)
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
programs/ambassadors/ambassadors.json | 62 ++++++++++++++++++++++++++-
1 file changed, 60 insertions(+), 2 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 660fda47..4233216f 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -279,5 +279,63 @@
"link": "https://github.com/eclipse-thingweb/playground/tree/master/packages/json-spell-checker"
}
]
- }
-]
+ },
+ {
+ "name": "Jeremy Fiel",
+ "img": "https://avatars.githubusercontent.com/u/32110157?v=4",
+ "bio": "Originally, an international logistics expert with more than 15 years of professional experience, Jeremy transitioned to software, specifically APIs, about 8 years ago. His passion for learning and contributing back to the community is where he found a love for open source projects. He is now a consistent contributor to projects such as [Redocly](https://github.com/redocly) and the [OpenAPI Initiative](https://github.com/OAI) projects, and a very active community member of JSON Schema.",
+ "title": "Principal Software Engineer | OpenAPI | JSON Schema | Arazzo | APIs",
+ "github": "jeremyfiel",
+ "twitter": "jeremyfiel",
+ "linkedin": "https://www.linkedin.com/in/jeremyfiel",
+ "company": "ADP, Inc.",
+ "country": "US",
+ "contributions": [
+ {
+ "type": "project",
+ "title": "Schema author of OpenAPI Initiative's Arazzo Specification v1.0 JSON Schema",
+ "date": {
+ "year": 2024,
+ "month": "August"
+ },
+ "link": "https://github.com/oai/arazzo-specification/schemas/v1.0/schema.yaml"
+ },
+ {
+ "type": "project",
+ "title": "OSS contributor for Redocly CLI",
+ "date": {
+ "year": 2023,
+ "month": "April"
+ },
+ "link": "https://github.com/redocly/redocly-cli"
+ },
+ {
+ "type": "other",
+ "title": "JSON Schema Slack Community Member",
+ "date": {
+ "year": 2021,
+ "month": "November"
+ },
+ "link": "https://json-schema.slack.com"
+ },
+ {
+ "type": "other",
+ "title": "JSON Schema Stack Overflow Community Member",
+ "date": {
+ "year": 2021,
+ "month": "November"
+ },
+ "link": "https://stackoverflow.com/questions/tagged/json-schema"
+ },
+ {
+ "type": "adopter",
+ "title": "Add ADP, Inc. to the JSON Schema Adopters list.",
+ "date": {
+ "year": 2023,
+ "month": "October"
+ },
+ "link": "https://landscape.json-schema.org/"
+ }
+ ]
+ }
+]
\ No newline at end of file
From 846b4369d37550bd64ceb1cffa00957dc03216d5 Mon Sep 17 00:00:00 2001
From: Jeremy Fiel <32110157+jeremyfiel@users.noreply.github.com>
Date: Mon, 26 Aug 2024 04:09:42 -0400
Subject: [PATCH 257/309] chore(contractors): typo (#792)
---
programs/contractors/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/contractors/README.md b/programs/contractors/README.md
index 2dc3f904..568e2ae3 100644
--- a/programs/contractors/README.md
+++ b/programs/contractors/README.md
@@ -2,7 +2,7 @@ This document covers the organizational and operational aspects of the JSON Sche
### What is the JSON Schema Contractor Program?
-The JSON Schema Contractor Program aims to promote official professional services around JSON Schema coming from TSC members and Ambassors, connecting companies with the key people they need to be successful with JSON Schema, while promoting the sustainability of the JSON Schema organization.
+The JSON Schema Contractor Program aims to promote official professional services around JSON Schema coming from TSC members and Ambassadors, connecting companies with the key people they need to be successful with JSON Schema, while promoting the sustainability of the JSON Schema organization.
### How does the program work?
From 02116340f78e9bd8831c6e7c83e685cfe43c5c83 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Thu, 5 Sep 2024 22:02:29 +0200
Subject: [PATCH 258/309] Update ambassadors.json to fix indentation (#793)
* Update ambassadors.json to fix indentation
Tiny pr to fix the file's indentation
* Adding changes suggested by David
---
programs/ambassadors/ambassadors.json | 634 +++++++++++++-------------
1 file changed, 317 insertions(+), 317 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 4233216f..a0685749 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -1,341 +1,341 @@
[
- {
- "name": "Andreas Eberhart",
- "img": "https://media.licdn.com/dms/image/C5603AQFwzjco4Zp2iw/profile-displayphoto-shrink_200_200/0/1522155839427?e=1723680000&v=beta&t=mzwGrHJqCu_doxI4tTZIkH2GtWIeW8iOTD-JDLxwYuA",
- "bio": "With 25 years of professional experience, Andreas is very proficient in the areas of enterprise cloud, linked & big data, as well as systems architecture and development. He co-founded two startups and drove their growth resulting in two acquisitions by silicon valley giants HP and Veritas. Combined with his extensive background in cutting edge research, he has the unique ability to address projects from technical, time to market, and ROI angles. He holds a PhD in Computer Science from the University of Saarbrücken and a Master in Computer Science from Portland State University.",
- "title": "CEO at Dashjoin",
- "github": "aeberhart",
- "twitter": "dashjoin",
- "linkedin": "andreas-eberhart-94264a44",
- "company": "Dashjoin",
- "country": "🇩🇪",
- "contributions": [
- {
- "type": "article",
- "title": "JSON Schema, Schema.org, JSON-LD: What’s the Difference?",
- "date": {
- "year": 2020,
- "month": "August"
- },
- "link": "https://medium.com/@dashjoin/json-schema-schema-org-json-ld-whats-the-difference-e30d7315686a"
+ {
+ "name": "Andreas Eberhart",
+ "img": "https://media.licdn.com/dms/image/C5603AQFwzjco4Zp2iw/profile-displayphoto-shrink_200_200/0/1522155839427?e=1723680000&v=beta&t=mzwGrHJqCu_doxI4tTZIkH2GtWIeW8iOTD-JDLxwYuA",
+ "bio": "With 25 years of professional experience, Andreas is very proficient in the areas of enterprise cloud, linked & big data, as well as systems architecture and development. He co-founded two startups and drove their growth resulting in two acquisitions by silicon valley giants HP and Veritas. Combined with his extensive background in cutting edge research, he has the unique ability to address projects from technical, time to market, and ROI angles. He holds a PhD in Computer Science from the University of Saarbrücken and a Master in Computer Science from Portland State University.",
+ "title": "CEO at Dashjoin",
+ "github": "aeberhart",
+ "twitter": "dashjoin",
+ "linkedin": "andreas-eberhart-94264a44",
+ "company": "Dashjoin",
+ "country": "🇩🇪",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "JSON Schema, Schema.org, JSON-LD: What’s the Difference?",
+ "date": {
+ "year": 2020,
+ "month": "August"
},
- {
- "type": "video",
- "title": "Supercharge your Angular Project with JSON Schema Forms",
- "date": {
- "year": 2020,
- "month": "August"
- },
- "link": "https://www.youtube.com/watch?v=Xk9dxbbBFjo"
+ "link": "https://medium.com/@dashjoin/json-schema-schema-org-json-ld-whats-the-difference-e30d7315686a"
+ },
+ {
+ "type": "video",
+ "title": "Supercharge your Angular Project with JSON Schema Forms",
+ "date": {
+ "year": 2020,
+ "month": "August"
},
- {
- "type": "adopter",
- "title": "Add Dashjoin to the JSON Schema Adopters list.",
- "date": {
- "year": 2024,
- "month": "April"
- },
- "link": "https://landscape.json-schema.org/"
- }
- ]
- },
- {
- "name": "David Biesack",
- "img": "https://avatars.githubusercontent.com/u/545944?s=400&u=26818946106e2d8ae8c0cb5e0b72d6c7f612d268&v=4",
- "bio": "Chief API Officer at APiture (I design banking APIs with OpenAPI 3.1, JSON Schema 2020/12) and author of the API Design Matters blog, https://apidesignmatters.substack.com/ ",
- "title": "Chief API Officer",
- "github": "DavidBiesack",
- "mastodon": "@DavidBiesack@fosstodon.org",
- "linkedin": "davdbiesack",
- "company": "Apiture",
- "country": "🇺🇸",
- "contributions": [
- {
- "type": "article",
- "title": "Composing API Models with JSON Schema",
- "date": {
- "year": 2023,
- "month": "June"
- },
- "link": "https://apidesignmatters.substack.com/p/composing-api-models-with-json-schema"
+ "link": "https://www.youtube.com/watch?v=Xk9dxbbBFjo"
+ },
+ {
+ "type": "adopter",
+ "title": "Add Dashjoin to the JSON Schema Adopters list.",
+ "date": {
+ "year": 2024,
+ "month": "April"
},
- {
- "type": "article",
- "title": "Master JSON Schema's Subtleties",
- "date": {
- "year": 2023,
- "month": "July"
- },
- "link": "https://apidesignmatters.substack.com/p/master-json-schemas-subtleties"
+ "link": "https://landscape.json-schema.org/"
+ }
+ ]
+ },
+ {
+ "name": "David Biesack",
+ "img": "https://avatars.githubusercontent.com/u/545944?s=400&u=26818946106e2d8ae8c0cb5e0b72d6c7f612d268&v=4",
+ "bio": "Chief API Officer at APiture (I design banking APIs with OpenAPI 3.1, JSON Schema 2020/12) and author of the API Design Matters blog, https://apidesignmatters.substack.com/ ",
+ "title": "Chief API Officer",
+ "github": "DavidBiesack",
+ "mastodon": "@DavidBiesack@fosstodon.org",
+ "linkedin": "davidbiesack",
+ "company": "Apiture",
+ "country": "🇺🇸",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "Composing API Models with JSON Schema",
+ "date": {
+ "year": 2023,
+ "month": "June"
},
- {
- "type": "article",
- "title": "Master More JSON Schema's Subtleties",
- "date": {
- "year": 2023,
- "month": "July"
- },
- "link": "https://apidesignmatters.substack.com/p/master-more-json-schemas-subtleties"
+ "link": "https://apidesignmatters.substack.com/p/composing-api-models-with-json-schema"
+ },
+ {
+ "type": "article",
+ "title": "Master JSON Schema's Subtleties",
+ "date": {
+ "year": 2023,
+ "month": "July"
},
- {
- "type": "article",
- "title": "Learning the Language of API Data",
- "date": {
- "year": 2023,
- "month": "May"
- },
- "link": "https://apidesignmatters.substack.com/p/learning-the-language-of-api-data"
+ "link": "https://apidesignmatters.substack.com/p/master-json-schemas-subtleties"
+ },
+ {
+ "type": "article",
+ "title": "Master More JSON Schema's Subtleties",
+ "date": {
+ "year": 2023,
+ "month": "July"
},
- {
- "type": "other",
- "title": "What is JSON Schema?",
- "date": {
- "year": 2024,
- "month": "June"
- },
- "link": "https://github.com/json-schema-org/website/pull/679"
+ "link": "https://apidesignmatters.substack.com/p/master-more-json-schemas-subtleties"
+ },
+ {
+ "type": "article",
+ "title": "Learning the Language of API Data",
+ "date": {
+ "year": 2023,
+ "month": "May"
},
- {
- "type": "talk",
- "title": "Wielding the Double-Edged Sword of JSON Schema",
- "date": {
- "year": 2022,
- "month": "September"
- },
- "link": "https://www.youtube.com/watch?v=6ukZEUBRpqo"
- }
- ]
- },
- {
- "name": "Juan Cruz Viotti",
- "img": "https://avatars.githubusercontent.com/u/2192773?v=4",
- "bio": "CTO at Intelligence.AI, founder of Sourcemeta, consultant, and author",
- "title": "Chief Technical Officer",
- "github": "jviotti",
- "linkedin": "jviotti",
- "company": "Intelligence.AI",
- "country": "🇧🇴",
- "contributions": [
- {
- "type": "project",
- "title": "Alterschema",
- "date": {
- "year": 2022,
- "month": "May"
- },
- "link": "https://alterschema.sourcemeta.com"
+ "link": "https://apidesignmatters.substack.com/p/learning-the-language-of-api-data"
+ },
+ {
+ "type": "other",
+ "title": "What is JSON Schema?",
+ "date": {
+ "year": 2024,
+ "month": "June"
},
- {
- "type": "article",
- "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
- "date": {
- "year": 2022,
- "month": "October"
- },
- "link": "https://json-schema.org/blog/posts/w3c-wot-case-study"
+ "link": "https://github.com/json-schema-org/website/pull/679"
+ },
+ {
+ "type": "talk",
+ "title": "Wielding the Double-Edged Sword of JSON Schema",
+ "date": {
+ "year": 2022,
+ "month": "September"
},
- {
- "type": "project",
- "title": "Learn JSON Schema",
- "date": {
- "year": 2023,
- "month": "March"
- },
- "link": "https://www.learnjsonschema.com"
+ "link": "https://www.youtube.com/watch?v=6ukZEUBRpqo"
+ }
+ ]
+ },
+ {
+ "name": "Juan Cruz Viotti",
+ "img": "https://avatars.githubusercontent.com/u/2192773?v=4",
+ "bio": "CTO at Intelligence.AI, founder of Sourcemeta, consultant, and author",
+ "title": "Chief Technical Officer",
+ "github": "jviotti",
+ "linkedin": "jviotti",
+ "company": "Intelligence.AI",
+ "country": "🇧🇴",
+ "contributions": [
+ {
+ "type": "project",
+ "title": "Alterschema",
+ "date": {
+ "year": 2022,
+ "month": "May"
},
- {
- "type": "article",
- "title": "Understanding JSON Schema Lexical and Dynamic Scopes",
- "date": {
- "year": 2024,
- "month": "February"
- },
- "link": "https://json-schema.org/blog/posts/understanding-lexical-dynamic-scopes"
+ "link": "https://alterschema.sourcemeta.com"
+ },
+ {
+ "type": "article",
+ "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
+ "date": {
+ "year": 2022,
+ "month": "October"
},
- {
- "type": "book",
- "title": "Unifying Business, Data, and Code: Designing Data Products with JSON Schema",
- "date": {
- "year": 2024,
- "month": "January"
- },
- "link": "https://www.oreilly.com/library/view/unifying-business-data/9781098144999/"
+ "link": "https://json-schema.org/blog/posts/w3c-wot-case-study"
+ },
+ {
+ "type": "project",
+ "title": "Learn JSON Schema",
+ "date": {
+ "year": 2023,
+ "month": "March"
},
- {
- "type": "initiative",
- "title": "GSoC 2024: Upgrade/Downgrade Rules",
- "date": {
- "year": 2024,
- "month": "March"
- },
- "link": "https://github.com/json-schema-org/community/issues/599"
- }
- ]
- },
- {
- "name": "Esther Okafor",
- "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
- "bio": "I am a QA engineer currently working with Storyblok. I am passionate about quality and making sure software design systems are developed with the highest standards",
- "title": "Test engineer at Storyblok",
- "github": "https://github.com/Estherokafor05/My-portfolio",
- "twitter": "https://x.com/Estherokafor_",
- "linkedin": "https://www.linkedin.com/in/okaforesther/",
- "company": "Storyblok",
- "country": "Nigeria",
- "contributions": [
- {
- "type": "article",
- "title": "Postman Series - writing assertions and validating responses",
- "date": {
- "year": 2024,
- "month": "May"
- },
- "link": "https://estherokafor.com/postman-series-writing-assertions-and-validating-responses"
+ "link": "https://www.learnjsonschema.com"
+ },
+ {
+ "type": "article",
+ "title": "Understanding JSON Schema Lexical and Dynamic Scopes",
+ "date": {
+ "year": 2024,
+ "month": "February"
},
- {
- "type": "article",
- "title": "Beyond Assertions: Data Validation using Cypress with JSON Schema in End-to-End Testing",
- "date": {
- "year": 2024,
- "month": "May"
- },
- "link": "https://estherokafor.com/beyond-assertions-data-validation-using-cypress-with-json-schema-in-end-to-end-testing"
+ "link": "https://json-schema.org/blog/posts/understanding-lexical-dynamic-scopes"
+ },
+ {
+ "type": "book",
+ "title": "Unifying Business, Data, and Code: Designing Data Products with JSON Schema",
+ "date": {
+ "year": 2024,
+ "month": "January"
},
- {
- "type": "article",
- "title": "Beyond Basics: Leveraging JSON Schema for API Security Testing",
- "date": {
- "year": 2024,
- "month": "June"
- },
- "link": "https://estherokafor.com/beyond-basics-leveraging-json-schema-for-api-security-testing"
+ "link": "https://www.oreilly.com/library/view/unifying-business-data/9781098144999/"
+ },
+ {
+ "type": "initiative",
+ "title": "GSoC 2024: Upgrade/Downgrade Rules",
+ "date": {
+ "year": 2024,
+ "month": "March"
},
- {
- "type": "talk",
- "title": "Beyond Code: A qa's perspective to API design",
- "date": {
- "year": 2024,
- "month": "July"
- },
- "link": "https://www.canva.com/design/DAGJgnhNUYA/GLVTP-Yx7wcBVFjOhsN2uQ/edit?utm_content=DAGJgnhNUYA&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton"
- }
- ]
- },
- {
- "name": "Ege Korkan",
- "img": "https://media.licdn.com/dms/image/D4D03AQG03-U--zDJpw/profile-displayphoto-shrink_200_200/0/1707341764311?e=1724889600&v=beta&t=xY0i-IncaI51wlZVJD7fEuSb0LMdR7j0-XlipV7EK6c",
- "bio": "Research and standardization focused engineer at Siemens with a passion to drive interoperability across all levels.",
- "title": "Web of Things Expert at Siemens",
- "github": "egekorkan",
- "twitter": "egekorkan",
- "linkedin": "ege-korkan",
- "mastodon":"https://mastodon.social/@egekorkan",
- "company": "Siemens AG",
- "country": "Germany",
- "contributions": [
- {
- "type": "article",
- "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
- "date": {
- "year": 2022,
- "month": "October"
- },
- "link": "https://json-schema.org/blog/posts/w3c-wot-case-study"
+ "link": "https://github.com/json-schema-org/community/issues/599"
+ }
+ ]
+ },
+ {
+ "name": "Esther Okafor",
+ "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
+ "bio": "I am a QA engineer currently working with Storyblok. I am passionate about quality and making sure software design systems are developed with the highest standards",
+ "title": "Test engineer at Storyblok",
+ "github": "https://github.com/Estherokafor05/My-portfolio",
+ "twitter": "https://x.com/Estherokafor_",
+ "linkedin": "https://www.linkedin.com/in/okaforesther/",
+ "company": "Storyblok",
+ "country": "Nigeria",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "Postman Series - writing assertions and validating responses",
+ "date": {
+ "year": 2024,
+ "month": "May"
},
- {
- "type": "project",
- "title": "Web of Things Tutorial which contains a part on JSON Schema",
- "date": {
- "year": 2024,
- "month": "January"
- },
- "link": "https://w3c.github.io/wot-cg/tutorials/whatiswot/docs/preliminary/json-schema/intro"
+ "link": "https://estherokafor.com/postman-series-writing-assertions-and-validating-responses"
+ },
+ {
+ "type": "article",
+ "title": "Beyond Assertions: Data Validation using Cypress with JSON Schema in End-to-End Testing",
+ "date": {
+ "year": 2024,
+ "month": "May"
},
- {
- "type": "adopter",
- "title": "Add Standards Category to the JSON Schema Adopters list.",
- "date": {
- "year": 2024,
- "month": "May"
- },
- "link": "https://landscape.json-schema.org/"
+ "link": "https://estherokafor.com/beyond-assertions-data-validation-using-cypress-with-json-schema-in-end-to-end-testing"
+ },
+ {
+ "type": "article",
+ "title": "Beyond Basics: Leveraging JSON Schema for API Security Testing",
+ "date": {
+ "year": 2024,
+ "month": "June"
},
- {
- "type": "working group",
- "title": "Web of Things Working Group participation at the W3C, which is using JSON Schema",
- "date": {
- "year": 2018,
- "month": "September"
- },
- "link": "https://www.w3.org/WoT/"
+ "link": "https://estherokafor.com/beyond-basics-leveraging-json-schema-for-api-security-testing"
+ },
+ {
+ "type": "talk",
+ "title": "Beyond Code: A qa's perspective to API design",
+ "date": {
+ "year": 2024,
+ "month": "July"
},
- {
- "type": "project",
- "title": "JSON Spell-checker based on JSON Schema",
- "date": {
- "year": 2023,
- "month": "January"
- },
- "link": "https://github.com/eclipse-thingweb/playground/tree/master/packages/json-spell-checker"
- }
- ]
- },
- {
- "name": "Jeremy Fiel",
- "img": "https://avatars.githubusercontent.com/u/32110157?v=4",
- "bio": "Originally, an international logistics expert with more than 15 years of professional experience, Jeremy transitioned to software, specifically APIs, about 8 years ago. His passion for learning and contributing back to the community is where he found a love for open source projects. He is now a consistent contributor to projects such as [Redocly](https://github.com/redocly) and the [OpenAPI Initiative](https://github.com/OAI) projects, and a very active community member of JSON Schema.",
- "title": "Principal Software Engineer | OpenAPI | JSON Schema | Arazzo | APIs",
- "github": "jeremyfiel",
- "twitter": "jeremyfiel",
- "linkedin": "https://www.linkedin.com/in/jeremyfiel",
- "company": "ADP, Inc.",
- "country": "US",
- "contributions": [
- {
- "type": "project",
- "title": "Schema author of OpenAPI Initiative's Arazzo Specification v1.0 JSON Schema",
- "date": {
- "year": 2024,
- "month": "August"
- },
- "link": "https://github.com/oai/arazzo-specification/schemas/v1.0/schema.yaml"
+ "link": "https://www.canva.com/design/DAGJgnhNUYA/GLVTP-Yx7wcBVFjOhsN2uQ/edit?utm_content=DAGJgnhNUYA&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton"
+ }
+ ]
+ },
+ {
+ "name": "Ege Korkan",
+ "img": "https://media.licdn.com/dms/image/D4D03AQG03-U--zDJpw/profile-displayphoto-shrink_200_200/0/1707341764311?e=1724889600&v=beta&t=xY0i-IncaI51wlZVJD7fEuSb0LMdR7j0-XlipV7EK6c",
+ "bio": "Research and standardization focused engineer at Siemens with a passion to drive interoperability across all levels.",
+ "title": "Web of Things Expert at Siemens",
+ "github": "egekorkan",
+ "twitter": "egekorkan",
+ "linkedin": "ege-korkan",
+ "mastodon":"https://mastodon.social/@egekorkan",
+ "company": "Siemens AG",
+ "country": "Germany",
+ "contributions": [
+ {
+ "type": "article",
+ "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
+ "date": {
+ "year": 2022,
+ "month": "October"
},
- {
- "type": "project",
- "title": "OSS contributor for Redocly CLI",
- "date": {
- "year": 2023,
- "month": "April"
- },
- "link": "https://github.com/redocly/redocly-cli"
+ "link": "https://json-schema.org/blog/posts/w3c-wot-case-study"
+ },
+ {
+ "type": "project",
+ "title": "Web of Things Tutorial which contains a part on JSON Schema",
+ "date": {
+ "year": 2024,
+ "month": "January"
},
- {
- "type": "other",
- "title": "JSON Schema Slack Community Member",
- "date": {
- "year": 2021,
- "month": "November"
- },
- "link": "https://json-schema.slack.com"
+ "link": "https://w3c.github.io/wot-cg/tutorials/whatiswot/docs/preliminary/json-schema/intro"
+ },
+ {
+ "type": "adopter",
+ "title": "Add Standards Category to the JSON Schema Adopters list.",
+ "date": {
+ "year": 2024,
+ "month": "May"
},
- {
- "type": "other",
- "title": "JSON Schema Stack Overflow Community Member",
- "date": {
- "year": 2021,
- "month": "November"
- },
- "link": "https://stackoverflow.com/questions/tagged/json-schema"
+ "link": "https://landscape.json-schema.org/"
+ },
+ {
+ "type": "working group",
+ "title": "Web of Things Working Group participation at the W3C, which is using JSON Schema",
+ "date": {
+ "year": 2018,
+ "month": "September"
},
- {
- "type": "adopter",
- "title": "Add ADP, Inc. to the JSON Schema Adopters list.",
- "date": {
- "year": 2023,
- "month": "October"
- },
- "link": "https://landscape.json-schema.org/"
- }
- ]
- }
-]
\ No newline at end of file
+ "link": "https://www.w3.org/WoT/"
+ },
+ {
+ "type": "project",
+ "title": "JSON Spell-checker based on JSON Schema",
+ "date": {
+ "year": 2023,
+ "month": "January"
+ },
+ "link": "https://github.com/eclipse-thingweb/playground/tree/master/packages/json-spell-checker"
+ }
+ ]
+ },
+ {
+ "name": "Jeremy Fiel",
+ "img": "https://avatars.githubusercontent.com/u/32110157?v=4",
+ "bio": "Originally, an international logistics expert with more than 15 years of professional experience, Jeremy transitioned to software, specifically APIs, about 8 years ago. His passion for learning and contributing back to the community is where he found a love for open source projects. He is now a consistent contributor to projects such as [Redocly](https://github.com/redocly) and the [OpenAPI Initiative](https://github.com/OAI) projects, and a very active community member of JSON Schema.",
+ "title": "Principal Software Engineer | OpenAPI | JSON Schema | Arazzo | APIs",
+ "github": "jeremyfiel",
+ "twitter": "jeremyfiel",
+ "linkedin": "https://www.linkedin.com/in/jeremyfiel",
+ "company": "ADP, Inc.",
+ "country": "US",
+ "contributions": [
+ {
+ "type": "project",
+ "title": "Schema author of OpenAPI Initiative's Arazzo Specification v1.0 JSON Schema",
+ "date": {
+ "year": 2024,
+ "month": "August"
+ },
+ "link": "https://github.com/oai/arazzo-specification/schemas/v1.0/schema.yaml"
+ },
+ {
+ "type": "project",
+ "title": "OSS contributor for Redocly CLI",
+ "date": {
+ "year": 2023,
+ "month": "April"
+ },
+ "link": "https://github.com/redocly/redocly-cli"
+ },
+ {
+ "type": "other",
+ "title": "JSON Schema Slack Community Member",
+ "date": {
+ "year": 2021,
+ "month": "November"
+ },
+ "link": "https://json-schema.slack.com"
+ },
+ {
+ "type": "other",
+ "title": "JSON Schema Stack Overflow Community Member",
+ "date": {
+ "year": 2021,
+ "month": "November"
+ },
+ "link": "https://stackoverflow.com/questions/tagged/json-schema"
+ },
+ {
+ "type": "adopter",
+ "title": "Add ADP, Inc. to the JSON Schema Adopters list.",
+ "date": {
+ "year": 2023,
+ "month": "October"
+ },
+ "link": "https://landscape.json-schema.org/"
+ }
+ ]
+ }
+]
From e740db68909fcfe9f634c96cdb37c060f0b6ead8 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Thu, 19 Sep 2024 16:10:45 +0200
Subject: [PATCH 259/309] Changes in the timing and periodicity of the Open
Community Working Meetings (#805)
* Changes to make monthly the open community working meetings
* Changes to adjust issue title
---
.github/ISSUE_TEMPLATE/open_community_working_meeting.md | 2 +-
.github/workflows/close-completed-ocwm.yml | 2 +-
.github/workflows/ocwm-creator.yml | 4 ++--
.github/workflows/ocwm-issue-collector.yml | 2 +-
README.md | 7 ++++---
5 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
index 686184fb..381099e4 100644
--- a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
+++ b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
@@ -3,7 +3,7 @@ name: Open Community Working Meeting
about: Regular Open Community Working Meetings Issue - This template is for those setting up an OCWM only.
---
-# Open Community Working Meeting 2022-MM-DD - 14:00 PT
+# Open Community Working Meeting 2022-MM-DD - 12:00 PT
Google Meet joining info - Video call link: https://meet.google.com/rag-mhbi-cgt
diff --git a/.github/workflows/close-completed-ocwm.yml b/.github/workflows/close-completed-ocwm.yml
index 55ac388e..301007a2 100644
--- a/.github/workflows/close-completed-ocwm.yml
+++ b/.github/workflows/close-completed-ocwm.yml
@@ -2,7 +2,7 @@ name: Close issues with no tasks and a specific label
on:
schedule:
- - cron: '0 0 * * 0' # Runs every Sunday at midnight
+ - cron: '0 0 15-21 * 0' # Runs at midnight on the third Sunday of the month
repository_dispatch:
types: close-issues-ocwm
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index dd990f76..67aef761 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -2,7 +2,7 @@ name: Create OCWM weekly
on:
schedule:
- - cron: "0 9 * * 2" # Run every Tuesday at 9:00 AM
+ - cron: "0 9 15-21 * 2" # Runs at 9:00 AM on the 3rd Tuesday of the month
repository_dispatch:
types: ocwm-creator
@@ -33,7 +33,7 @@ jobs:
id: create-title
run: |
date=$(date -u -d "6 days" +%Y-%m-%d)
- echo "title=Open Community Working Meeting ${date} - 14:00 PT" >> "$GITHUB_OUTPUT"
+ echo "title=Open Community Working Meeting ${date} - 12:00 PT" >> "$GITHUB_OUTPUT"
- name: Create Issue using Template
id: create-issue
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index a915d2e0..e9f36b0c 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -2,7 +2,7 @@ name: Search for issues and PR labeled 'agenda' and add them to the agenda
on:
schedule:
- - cron: '0 0 * * 0' # Runs every Sunday at midnight
+ - cron: '0 0 8-14 * 0' # Runs at midnight on the second Sunday of the month
repository_dispatch:
types: add-issues-ocwm
diff --git a/README.md b/README.md
index 8e2860b8..815504f5 100644
--- a/README.md
+++ b/README.md
@@ -69,7 +69,7 @@ We host two different alternate sessions:
More details [here](https://github.com/orgs/json-schema-org/discussions/34/).
-**Open Community Working Meeting (Weekly):**
+**Open Community Working Meeting (Monthly every 3rd Monday):**
**Open Community Working Meetings** are a 1 hour, agenda'd only, with a focus on furthering the JSON Schema specification and organization.
@@ -79,8 +79,9 @@ You can always catch up offline by watching the recordings on the JSON Schema Yo
| Asset | Link |
|:-----------|:------------|
-| 🔗 Office Hours Meeting Link | [**Zoom Link**](https://postman.zoom.us/j/85358817067?pwd=NmFXTG5oL1paK0VyTEdrNU9TR2RMUT09)
-| 🔗 Open Community Working Meeting Link | [**Zoom Link**](https://www.google.com/url?q=https://postman.zoom.us/j/89562933116?pwd%3DOWlsQ0RrcDY4S1JQU2d2Q2M0aFFlZz09&sa=D&source=calendar&ust=1708431911262691&usg=AOvVaw14JoRXk9cLLBT-_wngWROA)
+| 🔗 APAC/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/zfu-mafp-qsp)
+| 🔗 Europe/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/aun-brma-sfe)
+| 🔗 Open Community Working Meeting Link | [**Google meet Link**](https://meet.google.com/rag-mhbi-cgt)
| 🎥 Meeting Recordings | https://www.youtube.com/@JSONSchemaOrgOfficial
## Getting involved
From 4afc73d71f5deafdaced516a9a783b0b97909aa3 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 20 Sep 2024 11:41:20 +0200
Subject: [PATCH 260/309] Update ocwm-creator.yml
---
.github/workflows/ocwm-creator.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 67aef761..76c23878 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -1,4 +1,4 @@
-name: Create OCWM weekly
+name: Create OCWM Monthly
on:
schedule:
From 491d69fd610def368866c5104b6f7bdf6c0f979a Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sat, 21 Sep 2024 12:17:09 +0200
Subject: [PATCH 261/309] fix OCW workflows to run monthly
---
.github/workflows/ocwm-creator.yml | 22 +++++++++++++++++++++-
.github/workflows/ocwm-issue-collector.yml | 21 ++++++++++++++++++++-
.github/workflows/ocwm-reminders.yml | 18 ++++++++++++++++++
3 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 76c23878..980a9e30 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -2,7 +2,7 @@ name: Create OCWM Monthly
on:
schedule:
- - cron: "0 9 15-21 * 2" # Runs at 9:00 AM on the 3rd Tuesday of the month
+ - cron: "0 9 * * 2" # Runs at 9:00 AM every Tuesday
repository_dispatch:
types: ocwm-creator
@@ -35,6 +35,26 @@ jobs:
date=$(date -u -d "6 days" +%Y-%m-%d)
echo "title=Open Community Working Meeting ${date} - 12:00 PT" >> "$GITHUB_OUTPUT"
+ # Step to check if it's the third Tuesday of the month
+ - name: Check if today is the third Tuesday
+ id: check-third-tuesday
+ run: |
+ day=$(date +%d)
+ dow=$(date +%u) # Day of the week (1 = Monday, ..., 7 = Sunday)
+ # Get the first day of this month
+ first_tuesday=$(cal | awk '/^..$/ {print $3}')
+ if [ "$dow" -ne 2 ]; then
+ echo "Not a Tuesday, exiting..."
+ exit 0
+ fi
+ # Calculate the third Tuesday by checking if the current date is between 15th and 21st
+ if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
+ echo "This is the third Tuesday of the month!"
+ else
+ echo "Not the third Tuesday, exiting..."
+ exit 0
+ fi
+
- name: Create Issue using Template
id: create-issue
uses: peter-evans/create-issue-from-file@v5
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index e9f36b0c..d88a7493 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -2,7 +2,7 @@ name: Search for issues and PR labeled 'agenda' and add them to the agenda
on:
schedule:
- - cron: '0 0 8-14 * 0' # Runs at midnight on the second Sunday of the month
+ - cron: '0 1 * * 1' # Runs at 1:00 AM every Monday
repository_dispatch:
types: add-issues-ocwm
@@ -26,6 +26,25 @@ jobs:
- name: Install dependencies
run: npm install @octokit/core@5.1.0
+
+ # Step to check if today is the third Monday
+ - name: Check if today is the third Monday
+ id: check-third-monday
+ run: |
+ day=$(date +%d)
+ dow=$(date +%u) # Day of the week (1 = Monday, ..., 7 = Sunday)
+ # Check if the day is between 15th and 21st, and if it's Monday (1)
+ if [ "$dow" -ne 1 ]; then
+ echo "Not a Monday, exiting..."
+ exit 0
+ fi
+ if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
+ echo "This is the third Monday of the month!"
+ else
+ echo "Not the third Monday, exiting..."
+ exit 0
+ fi
+
- name: Adding Issues
id: add-issues
uses: actions/github-script@v7
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
index 84f9726f..ab5766d3 100644
--- a/.github/workflows/ocwm-reminders.yml
+++ b/.github/workflows/ocwm-reminders.yml
@@ -28,6 +28,24 @@ jobs:
- name: Install dependencies
run: npm install @octokit/core@5.1.0
+ # Step to check if today is the third Monday
+ - name: Check if today is the third Monday
+ id: check-third-monday
+ run: |
+ day=$(date +%d)
+ dow=$(date +%u) # Day of the week (1 = Monday, ..., 7 = Sunday)
+ # Check if the day is between 15th and 21st, and if it's Monday (1)
+ if [ "$dow" -ne 1 ]; then
+ echo "Not a Monday, exiting..."
+ exit 0
+ fi
+ if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
+ echo "This is the third Monday of the month!"
+ else
+ echo "Not the third Monday, exiting..."
+ exit 0
+ fi
+
- name: Send reminders
uses: actions/github-script@v7
env:
From c8e91050124aaf0cec5f0a2ea4c24cd3b01d2f4d Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 24 Sep 2024 11:35:45 +0200
Subject: [PATCH 262/309] Fix the conditions to run the OCWM workflows monthly
(#808)
---
.github/workflows/ocwm-creator.yml | 18 ++++++++++++++++--
.github/workflows/ocwm-issue-collector.yml | 4 ++++
.github/workflows/ocwm-reminders.yml | 4 ++++
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 980a9e30..3923bbfa 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -29,11 +29,21 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.8'
+
- name: Generate Issue Title
id: create-title
run: |
- date=$(date -u -d "6 days" +%Y-%m-%d)
- echo "title=Open Community Working Meeting ${date} - 12:00 PT" >> "$GITHUB_OUTPUT"
+ # Get the first day of the next month
+ next_month=$(date -u -d "$(date +%Y-%m-01) +1 month" +%Y-%m-01)
+
+ # Find the first Monday of the next month
+ first_monday=$(date -u -d "$next_month +$(( (8 - $(date -u -d "$next_month" +%u)) % 7 )) days" +%Y-%m-%d)
+
+ # Calculate the third Monday by adding 14 days to the first Monday
+ third_monday=$(date -u -d "$first_monday +14 days" +%Y-%m-%d)
+
+ # Output the issue title with the third Monday's date
+ echo "title=Open Community Working Meeting ${third_monday} - 12:00 PT" >> "$GITHUB_OUTPUT"
# Step to check if it's the third Tuesday of the month
- name: Check if today is the third Tuesday
@@ -45,18 +55,22 @@ jobs:
first_tuesday=$(cal | awk '/^..$/ {print $3}')
if [ "$dow" -ne 2 ]; then
echo "Not a Tuesday, exiting..."
+ echo "::set-output name=is-third-tuesday::false"
exit 0
fi
# Calculate the third Tuesday by checking if the current date is between 15th and 21st
if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
echo "This is the third Tuesday of the month!"
+ echo "::set-output name=is-third-tuesday::true"
else
echo "Not the third Tuesday, exiting..."
+ echo "::set-output name=is-third-tuesday::false"
exit 0
fi
- name: Create Issue using Template
id: create-issue
+ if: steps.check-third-tuesday.outputs.is-third-tuesday == 'true'
uses: peter-evans/create-issue-from-file@v5
with:
title: ${{ steps.create-title.outputs.title }}
diff --git a/.github/workflows/ocwm-issue-collector.yml b/.github/workflows/ocwm-issue-collector.yml
index d88a7493..1f8135ff 100644
--- a/.github/workflows/ocwm-issue-collector.yml
+++ b/.github/workflows/ocwm-issue-collector.yml
@@ -36,17 +36,21 @@ jobs:
# Check if the day is between 15th and 21st, and if it's Monday (1)
if [ "$dow" -ne 1 ]; then
echo "Not a Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
exit 0
fi
if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
echo "This is the third Monday of the month!"
+ echo "::set-output name=is-third-monday::true"
else
echo "Not the third Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
exit 0
fi
- name: Adding Issues
id: add-issues
+ if: steps.check-third-monday.outputs.is-third-monday == 'true'
uses: actions/github-script@v7
env:
PLACEHOLDER: ''
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
index ab5766d3..2a28ba7d 100644
--- a/.github/workflows/ocwm-reminders.yml
+++ b/.github/workflows/ocwm-reminders.yml
@@ -37,16 +37,20 @@ jobs:
# Check if the day is between 15th and 21st, and if it's Monday (1)
if [ "$dow" -ne 1 ]; then
echo "Not a Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
exit 0
fi
if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
echo "This is the third Monday of the month!"
+ echo "::set-output name=is-third-monday::true"
else
echo "Not the third Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
exit 0
fi
- name: Send reminders
+ if: steps.check-third-monday.outputs.is-third-monday == 'true'
uses: actions/github-script@v7
env:
MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
From defef76407e6e18f97c8208af76f459ca79b7ab1 Mon Sep 17 00:00:00 2001
From: Nikhil S Kalburgi <70331875+nikhilkalburgi@users.noreply.github.com>
Date: Tue, 24 Sep 2024 18:02:37 +0530
Subject: [PATCH 263/309] add workflow for Agenda Verification and
Notifications before Monday Meetings (#802)
* Add ocwm-pre-meeting-check.yml to workflow
* change ocwm-pre-meeting-check.yml comment
* fix: update ocwm-pre-meeting-check.yml with suggested changes
* update ocwm-pre-meeting-check.yml
* update ocwm-pre-meeting-check.yml for test
* second update ocwm-pre-meeting-check.yml for test
* third update ocwm-pre-meeting-check.yml for test
* forth update ocwm-pre-meeting-check.yml for test
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
* fix: improve ocwm-pre-meeting-check.yml
* Update ocwm-pre-meeting-check.yml
We are facing issues with this same logic in other workflows. I am just applying the same version we have in other workflows to consistently merge with master branch.
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
.github/workflows/ocwm-pre-meeting-check.yml | 107 +++++++++++++++++++
1 file changed, 107 insertions(+)
create mode 100644 .github/workflows/ocwm-pre-meeting-check.yml
diff --git a/.github/workflows/ocwm-pre-meeting-check.yml b/.github/workflows/ocwm-pre-meeting-check.yml
new file mode 100644
index 00000000..cf83898f
--- /dev/null
+++ b/.github/workflows/ocwm-pre-meeting-check.yml
@@ -0,0 +1,107 @@
+name: OCWM Pre-Meeting Check
+
+on:
+ schedule:
+ - cron: '50 21 * * 1' # Runs at 11:50 AM PT on the 3rd Monday of the month
+
+jobs:
+ check_agenda:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+
+ - name: Set up Node 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Get GitHub Token
+ uses: actions/create-github-app-token@v1
+ id: get_workflow_token
+ with:
+ app-id: ${{ vars.APP_ID }}
+ private-key: ${{ secrets.PRIVATE_KEY }}
+
+ - name: Install Dependencies
+ run: npm install @octokit/core@5.1.0
+
+ # Step to check if today is the third Monday
+ - name: Check if today is the third Monday
+ id: check-third-monday
+ run: |
+ day=$(date +%d)
+ dow=$(date +%u) # Day of the week (1 = Monday, ..., 7 = Sunday)
+ # Check if the day is between 15th and 21st, and if it's Monday (1)
+ if [ "$dow" -ne 1 ]; then
+ echo "Not a Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
+ exit 0
+ fi
+ if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
+ echo "This is the third Monday of the month!"
+ echo "::set-output name=is-third-monday::true"
+ else
+ echo "Not the third Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
+ exit 0
+ fi
+
+ - name: Check Latest OCWM Issue
+ id: check_issue
+ if: steps.check-third-monday.outputs.is-third-monday == 'true'
+ uses: actions/github-script@v7
+ env:
+ MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
+ OWNER: ${{ vars.ORGANISATION }}
+ REPO: 'community'
+ OCWM_LABEL: ${{ vars.OCWM_LABEL }}
+ TEMPLATE_PATH: '.github/ISSUE_TEMPLATE/open_community_working_meeting.md'
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_GEN_NOTIF }}
+ with:
+ script: |
+ const fs = require('fs');
+ const octokit = require('@octokit/core').Octokit;
+ const mygithub = new octokit({
+ request: { fetch: fetch, },
+ auth: process.env.MY_TOKEN
+ });
+
+ // Read the template from the markdown file
+ const templateContent = fs.readFileSync(process.env.TEMPLATE_PATH, 'utf8');
+
+ // Fetch the latest issue with OCWM_LABEL
+ const { data: issues } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${encodeURIComponent(process.env.OCWM_LABEL)}&per_page=1`);
+
+ if (issues.length === 0) {
+ console.log("No open community working meeting issues found.");
+ return;
+ }
+
+ const latestIssue = issues[0];
+ const issueBody = latestIssue.body;
+
+ // Check if the issue body matches the template
+ if (issueBody.includes(templateContent)) {
+ console.log("Template matched, cancelling the meeting.");
+
+ // Add a comment to the issue
+ await mygithub.request(`POST /repos/${process.env.OWNER}/${process.env.REPO}/issues/${latestIssue.number}/comments`, {
+ body: "The meeting has been cancelled as there is no agenda for today. Thanks everyone!"
+ });
+
+ // Send a notification to Slack
+ const slackPayload = {
+ text: `The meeting has been cancelled as there is no agenda for today. Thanks everyone!`
+ };
+
+ await fetch(process.env.SLACK_WEBHOOK, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(slackPayload)
+ });
+
+ } else {
+ console.log("Agenda found. Meeting will proceed.");
+ }
From eee027d89040015f6a8ec5b750bf647de210dde6 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 1 Oct 2024 11:19:48 +0200
Subject: [PATCH 264/309] Update ocwm-creator.yml
Add missing ';'
---
.github/workflows/ocwm-creator.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 3923bbfa..b8dad7dc 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -99,7 +99,7 @@ jobs:
const ocwmnumber = ${{ steps.create-issue.outputs.issue-number }};
const { data: ocwmissue } = await mygithub.request(`GET /repos/${context.repo.owner}/${context.repo.repo}/issues/${ ocwmnumber }`, {
- })
+ });
console.log("OCWM Issue:" + JSON.stringify(ocwmissue));
@@ -109,7 +109,7 @@ jobs:
body: newBody,
milestone: null,
state: 'open',
- })
+ });
const newTitle = ocwmissue.title;
const issueDate = newTitle.replace(/Open Community Working Meeting /g, "");
From 1684bed0d01b2c2dbf39039e77076b8510db18e7 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 1 Oct 2024 11:26:15 +0200
Subject: [PATCH 265/309] Update ocwm-creator.yml
---
.github/workflows/ocwm-creator.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index b8dad7dc..bacb8a6f 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -82,6 +82,7 @@ jobs:
run: npm install @octokit/core@5.1.0
- name: Update Issue Body
+ if: steps.check-third-tuesday.outputs.is-third-tuesday == 'true'
uses: actions/github-script@v7
env:
MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
From 93f841dc3181a0d643294f0d994cc515ed381cb0 Mon Sep 17 00:00:00 2001
From: Ege Korkan
Date: Wed, 2 Oct 2024 16:37:31 +0200
Subject: [PATCH 266/309] add talk by @egekorkan in W3C TPAC (#811)
---
programs/ambassadors/ambassadors.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index a0685749..0e615e5c 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -233,6 +233,15 @@
"company": "Siemens AG",
"country": "Germany",
"contributions": [
+ {
+ "type": "talk",
+ "title": "One Year Update: Using LinkML in Web of Things Specifications",
+ "date": {
+ "year": 2024,
+ "month": "September"
+ },
+ "link": "https://www.w3.org/events/meetings/e5cb0ff4-1696-4367-b9fe-9e74c5034dd3/"
+ },
{
"type": "article",
"title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
From f863fc4087c046c0d23264ac82e4a62e3934e3e5 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 18 Oct 2024 08:52:31 +0200
Subject: [PATCH 267/309] Update google meet links
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 815504f5..d5371138 100644
--- a/README.md
+++ b/README.md
@@ -79,9 +79,9 @@ You can always catch up offline by watching the recordings on the JSON Schema Yo
| Asset | Link |
|:-----------|:------------|
-| 🔗 APAC/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/zfu-mafp-qsp)
-| 🔗 Europe/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/aun-brma-sfe)
-| 🔗 Open Community Working Meeting Link | [**Google meet Link**](https://meet.google.com/rag-mhbi-cgt)
+| 🔗 APAC/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/iku-areu-ide)
+| 🔗 Europe/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/dcx-ijyy-ahd)
+| 🔗 Open Community Working Meeting Link | [**Google meet Link**](https://meet.google.com/xsn-rgwu-jvk)
| 🎥 Meeting Recordings | https://www.youtube.com/@JSONSchemaOrgOfficial
## Getting involved
From 6fcb8c079f8a1533356c105bc7d87be9569d1633 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 21 Oct 2024 18:39:19 +0200
Subject: [PATCH 268/309] Change google meet url for OCWM
---
.github/ISSUE_TEMPLATE/open_community_working_meeting.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
index 381099e4..95f7869b 100644
--- a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
+++ b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
@@ -5,7 +5,7 @@ about: Regular Open Community Working Meetings Issue - This template is for thos
# Open Community Working Meeting 2022-MM-DD - 12:00 PT
-Google Meet joining info - Video call link: https://meet.google.com/rag-mhbi-cgt
+Google Meet joining info - Video call link: https://meet.google.com/xsn-rgwu-jvk
You can find these events scheduled on our **[JSON Schema Community Calendar](https://calendar.google.com/calendar/u/0/embed?src=info@json-schema.org)**.
From 21e5e5401446129b7c36f93a049b35c17642bad9 Mon Sep 17 00:00:00 2001
From: Andreas Eberhart <61732435+aeberhart@users.noreply.github.com>
Date: Mon, 21 Oct 2024 20:43:46 +0200
Subject: [PATCH 269/309] Add article by @aeberhart (#816)
---
programs/ambassadors/ambassadors.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 0e615e5c..4e984a31 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -36,6 +36,15 @@
"month": "April"
},
"link": "https://landscape.json-schema.org/"
+ },
+ {
+ "type": "article",
+ "title": "JSON Schema, OpenAPI & Low Code: A Match Made in Heaven",
+ "date": {
+ "year": 2024,
+ "month": "October"
+ },
+ "link": "https://dashjoin.medium.com/json-schema-openapi-low-code-a-match-made-in-heaven-d29723e543ac"
}
]
},
From ac6a0c1bb844c9d3cdcc788e9caf2627695cbc94 Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Thu, 24 Oct 2024 01:42:24 -0400
Subject: [PATCH 270/309] Minor updates to `contractors.json` entry (#817)
Signed-off-by: Juan Cruz Viotti
---
programs/contractors/contractors.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/programs/contractors/contractors.json b/programs/contractors/contractors.json
index 30422b45..c6a8f86d 100644
--- a/programs/contractors/contractors.json
+++ b/programs/contractors/contractors.json
@@ -6,8 +6,8 @@
"email": "jv@jviotti.com",
"website": "https://www.jviotti.com",
"type": "tsc",
- "incorporatedIn": [ "UK", "US" ],
- "bio": "I'm a TSC member of JSON Schema, did award-winning research at the University of Oxford in the space of binary serialization and compression using JSON Schema, co-authored an O'Reilly book covering JSON Schema, and own several projects in the ecosystem, ranging educational material like LearnJSONSchema.com to a high-performance C++ JSON Schema compiler and validator. I have experience helping organizations be successful with JSON Schema in the Data, API, and IoT spaces all the way from architecture and training to custom development. I'm eager to help you take your JSON Schema integrations to the next level!",
+ "incorporatedIn": [ "UK" ],
+ "bio": "I'm a TSC member of JSON Schema, did award-winning research at the University of Oxford in the space of binary serialization and compression using JSON Schema, co-authored an O'Reilly book covering JSON Schema, and own several projects in the ecosystem, ranging educational material like LearnJSONSchema.com to a high-performance C++ JSON Schema compiler and validator. I have experience helping organizations be successful with JSON Schema in the Data, API, and IoT spaces all the way from architecture, ontology design, and XML migrations to training and custom development. I'm eager to help you take your JSON Schema integrations to the next level!",
"links": [
{
"title": "O'Reilly Book: Unifying Business, Data, and Code: Designing Data Products with JSON Schema",
@@ -22,12 +22,12 @@
"url": "https://jsonbinpack.sourcemeta.com"
},
{
- "title": "Alterschema: Automatic upgrades between versions of JSON Schema (downgrades coming soon)",
+ "title": "AlterSchema: Automatic upgrades between versions of JSON Schema (downgrades coming soon)",
"url": "https://alterschema.sourcemeta.com"
},
{
- "title": "JSON Toolkit: a C++ implementation of JSON Schema, featuring a state-of-the-art schema compiler and a custom JSON parser",
- "url": "https://github.com/sourcemeta/jsontoolkit"
+ "title": "Blaze: the ultra high-performance JSON Schema validator, providing validation in the nano-second range, along with perfect compliance scores. Supports Draft 4, Draft 6, Draft 7, 2019-09 and 2020-12",
+ "url": "https://github.com/sourcemeta/blaze"
},
{
"title": "Blog post: A deep dive on lexical and dynamic scopes, essential for understanding more advanced topics like dynamic referencing",
From 772e0d361a889a87de9f18ec607da62c962f209c Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sat, 26 Oct 2024 12:02:47 +0200
Subject: [PATCH 271/309] Update ocwm-creator.yml to make sure runs 3rd monday
of the month
---
.github/workflows/ocwm-creator.yml | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index bacb8a6f..7f49b556 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -2,7 +2,7 @@ name: Create OCWM Monthly
on:
schedule:
- - cron: "0 9 * * 2" # Runs at 9:00 AM every Tuesday
+ - cron: "0 23 * * 1" # Runs at 11:00 PM every Monday
repository_dispatch:
types: ocwm-creator
@@ -47,30 +47,28 @@ jobs:
# Step to check if it's the third Tuesday of the month
- name: Check if today is the third Tuesday
- id: check-third-tuesday
+ id: check-third-monday
run: |
day=$(date +%d)
dow=$(date +%u) # Day of the week (1 = Monday, ..., 7 = Sunday)
- # Get the first day of this month
- first_tuesday=$(cal | awk '/^..$/ {print $3}')
- if [ "$dow" -ne 2 ]; then
- echo "Not a Tuesday, exiting..."
- echo "::set-output name=is-third-tuesday::false"
+ # Check if the day is between 15th and 21st, and if it's Monday (1)
+ if [ "$dow" -ne 1 ]; then
+ echo "Not a Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
exit 0
fi
- # Calculate the third Tuesday by checking if the current date is between 15th and 21st
if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
- echo "This is the third Tuesday of the month!"
- echo "::set-output name=is-third-tuesday::true"
+ echo "This is the third Monday of the month!"
+ echo "::set-output name=is-third-monday::true"
else
- echo "Not the third Tuesday, exiting..."
- echo "::set-output name=is-third-tuesday::false"
+ echo "Not the third Monday, exiting..."
+ echo "::set-output name=is-third-monday::false"
exit 0
fi
- name: Create Issue using Template
id: create-issue
- if: steps.check-third-tuesday.outputs.is-third-tuesday == 'true'
+ if: steps.check-third-tuesday.outputs.is-third-monday == 'true'
uses: peter-evans/create-issue-from-file@v5
with:
title: ${{ steps.create-title.outputs.title }}
From 06eb0ef7410a7eb345311e5ef7438e83423dd51a Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sat, 26 Oct 2024 15:40:41 +0200
Subject: [PATCH 272/309] Update ADOPTERS with a new form as we lost access to
the previous one
---
ADOPTERS.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 521e3a31..38dbdb39 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -19,7 +19,7 @@ If any organization would like to be added or get removed please make a Pull Req
## How to add your company
-You can add your Company by using the [Adopter form](https://forms.gle/vyFskw1RshJ55LY46) or by submitting a PR editting the [landscape.yml](https://github.com/json-schema-org/landscape/blob/main/landscape.yml) file in the [landscape repository](https://github.com/json-schema-org/landscape/). For more information please check the [contributing guidelines](https://github.com/json-schema-org/landscape/blob/main/CONTRIBUTING.md#adding-a-new-organization-) of the Landscape project.
+You can add your Company by using the [Adopter form](https://forms.gle/HNZs4vt49GWPPGQq5) or by submitting a PR editting the [landscape.yml](https://github.com/json-schema-org/landscape/blob/main/landscape.yml) file in the [landscape repository](https://github.com/json-schema-org/landscape/). For more information please check the [contributing guidelines](https://github.com/json-schema-org/landscape/blob/main/CONTRIBUTING.md#adding-a-new-organization-) of the Landscape project.
Looking for extra credit? We also do [case studies](https://github.com/orgs/json-schema-org/projects/8/views/2) and accept sponsorship via [Open Collective](https://opencollective.com/json-schema).
@@ -36,4 +36,4 @@ By supporting JSON Schema with a case study, you are documenting its success and
### The JSON Schema Adopters list
-Please visit the JSON Schema Landscape to see the full list: https://landscape.json-schema.org/
\ No newline at end of file
+Please visit the JSON Schema Landscape to see the full list: https://landscape.json-schema.org/
From 7c0bb48b8458e1d2d1701bf5c4655bdfb41531de Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 8 Nov 2024 07:26:15 +0100
Subject: [PATCH 273/309] Proposal to create a process to become Community
Manager (#819)
* Adding a process to apply to become a JSON Schema Community Manager
* Update COMMUNITY-MANAGER.md
---
COMMUNITY-MANAGER.md | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/COMMUNITY-MANAGER.md b/COMMUNITY-MANAGER.md
index cbba0830..03c2f510 100644
--- a/COMMUNITY-MANAGER.md
+++ b/COMMUNITY-MANAGER.md
@@ -2,6 +2,11 @@
Community managers are responsible for managing many aspects of the JSON Schema community. The goal is to achieve and maintain a healthy and growing JSON Schema community where everyone feels welcome and is encouraged to share knowledge and learn from each other. This document outlines the responsibilities of a community manager and the process involved in becoming one.
+### Requirements
+
+* Proven track record of contributions and active engagement in the JSON Schema Community.
+* Being an example of Open Source citizenship.
+
### Responsibilities
A community manager has the following responsibilities:
@@ -33,6 +38,34 @@ A community manager has the following responsibilities:
* Add new analytics tools
+## Process to become a community manager
+
+Self-nominate via a [new issue in the community repository](https://github.com/json-schema-org/community/issues/new) using the label `Programs` and stating why you want to be an community manager, or alternatively, contact an TSC member. A community manager needs approval from TSC using the [standard voting process](https://github.com/json-schema-org/community/blob/main/GOVERNANCE.md#decision-making-via-vote).
+
+Once a community manager is approved, they will be added to the Community Managers list. It is important to notice that Community Managers does not have TSC voting rights.
+
+## Limits and Expiration
+
+The community manager role expires 12 months from the date it was approved. Reapproval is then required. To minimize the number of people to coordinate between, there is a maximum of three active community managers.
+
+## Removal
+
+The community manager role is removed in the following cases:
+* Expiration of the 12-month term.
+* STC votes to remove the community manager.
+* The community manager can ask to have themselves removed from the role.
+
+## Current community managers
+The following community managers have been approved by the TSC:
+
+| Name | GitHub Handle | Slack Handle | Company | Status | Timezone | Term Start | Term End |
+| - | - | - | - | - | - | - | -
+| Benjamin Granados | [@benjagm](https://github.com/benjagm) | benjamin.granadosm | Celonis | Active | UTC+2/CET | Dec 1st, 2023 | Dec 1st, 2024
+
+### Statuses
+ * Active: Currently an active community manager.
+ * Inactive: Previously held a community manager role.
+
### Know more
Please join the `#community-mgmt` slack channel using this [link](#community-mgmt) if you like to know more.
From e7ec9ac65e50c4f6fc63fe67788ae1881a043795 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sat, 9 Nov 2024 11:05:16 +0100
Subject: [PATCH 274/309] Update README.md to change google meet links
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index d5371138..6d46ae43 100644
--- a/README.md
+++ b/README.md
@@ -79,9 +79,9 @@ You can always catch up offline by watching the recordings on the JSON Schema Yo
| Asset | Link |
|:-----------|:------------|
-| 🔗 APAC/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/iku-areu-ide)
-| 🔗 Europe/Americas friendly Office Hours Meeting Link | [**Google meet Link**](https://meet.google.com/dcx-ijyy-ahd)
-| 🔗 Open Community Working Meeting Link | [**Google meet Link**](https://meet.google.com/xsn-rgwu-jvk)
+| 🔗 APAC/Americas friendly Office Hours Meeting Link | [**Google meet Link**](http://meet.google.com/rmw-wgdx-bfc)
+| 🔗 Europe/Americas friendly Office Hours Meeting Link | [**Google meet Link**](http://meet.google.com/ofg-mtnn-dqc)
+| 🔗 Open Community Working Meeting Link | [**Google meet Link**](https://meet.google.com/raz-ptdn-ewf)
| 🎥 Meeting Recordings | https://www.youtube.com/@JSONSchemaOrgOfficial
## Getting involved
From a8377de1dc44b184c56d61e9a94a863c4fb27ab3 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sat, 9 Nov 2024 11:11:48 +0100
Subject: [PATCH 275/309] Update INFRASTRUCTURE to change email provider.
---
INFRASTRUCTURE.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index 6243eaa9..a329905c 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -48,7 +48,7 @@ The working location for these resources is in the specification repository at h
We are capturing feedback in the website using a cloudflare worker to receive the data and send it to an Airtable database. The Airtable account is owned and paid for by Postman.
## The JSON Schema Calendar
-We are using a Google Calendar to share with the Community all the events. This Calendar has been created with a Google Account associated with the email info@json-schema.org.
+We are using a Google Calendar to share with the Community all the events. This Calendar has been created with a Google Account associated with the emails info@json-schema.org and json.schema.community@gmail.com.
## Bots
The Slack server has a number of bots which feed data into specific channels.
@@ -77,7 +77,7 @@ For the Community metrics we are using Common Room and Orbit.
## Email
-We are using mailfence to manage the email accounts associated to json-schema.org.
+We are using google for business to manage the email accounts associated to json-schema.org.
If you believe something is missing from this documentation, [please file an issue](https://github.com/json-schema-org/community/issues/new?assignees=&labels=&template=action_item.md).
From 8ddbfeba97e0037f35d9591289d0ff32226b0fa8 Mon Sep 17 00:00:00 2001
From: JeevanSegu
Date: Fri, 13 Dec 2024 16:32:49 +0530
Subject: [PATCH 276/309] added startedOn and lastReviewedOn
---
programs/ambassadors/ambassadors-schema.json | 38 +++++++++++++++++++-
programs/ambassadors/ambassadors.json | 36 +++++++++++++++----
2 files changed, 67 insertions(+), 7 deletions(-)
diff --git a/programs/ambassadors/ambassadors-schema.json b/programs/ambassadors/ambassadors-schema.json
index 33a41b5f..3fd203d2 100644
--- a/programs/ambassadors/ambassadors-schema.json
+++ b/programs/ambassadors/ambassadors-schema.json
@@ -89,8 +89,44 @@
},
"required": ["type", "title", "date", "link"]
}
+ },
+ "startedOn": {
+ "type": "object",
+ "description": "Date of start",
+ "properties": {
+ "year": {
+ "type": "integer",
+ "minimum": 1900,
+ "maximum": 2100,
+ "description": "Year of start"
+ },
+ "month": {
+ "type": "string",
+ "enum": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ "description": "Month of start"
+ }
+ },
+ "required": ["year", "month"]
+ },
+ "lastReviewedOn": {
+ "type": "object",
+ "description": "Date of last reviewed",
+ "properties": {
+ "year": {
+ "type": "integer",
+ "minimum": 1900,
+ "maximum": 2100,
+ "description": "Year of last reviewed"
+ },
+ "month": {
+ "type": "string",
+ "enum": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ "description": "Month of last reviewed"
+ }
+ },
+ "required": ["year", "month"]
}
},
- "required": ["name", "img", "bio", "title", "github", "company", "country", "contributions"]
+ "required": ["name", "img", "bio", "title", "github", "company", "country", "contributions", "startedOn"]
}
}
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 4e984a31..fd424b70 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -46,7 +46,11 @@
},
"link": "https://dashjoin.medium.com/json-schema-openapi-low-code-a-match-made-in-heaven-d29723e543ac"
}
- ]
+ ],
+ "startedOn": {
+ "year": 2024,
+ "month": "July"
+ }
},
{
"name": "David Biesack",
@@ -113,7 +117,11 @@
},
"link": "https://www.youtube.com/watch?v=6ukZEUBRpqo"
}
- ]
+ ],
+ "startedOn": {
+ "year": 2024,
+ "month": "July"
+ }
},
{
"name": "Juan Cruz Viotti",
@@ -179,7 +187,11 @@
},
"link": "https://github.com/json-schema-org/community/issues/599"
}
- ]
+ ],
+ "startedOn": {
+ "year": 2024,
+ "month": "August"
+ }
},
{
"name": "Esther Okafor",
@@ -228,7 +240,11 @@
},
"link": "https://www.canva.com/design/DAGJgnhNUYA/GLVTP-Yx7wcBVFjOhsN2uQ/edit?utm_content=DAGJgnhNUYA&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton"
}
- ]
+ ],
+ "startedOn": {
+ "year": 2024,
+ "month": "August"
+ }
},
{
"name": "Ege Korkan",
@@ -296,7 +312,11 @@
},
"link": "https://github.com/eclipse-thingweb/playground/tree/master/packages/json-spell-checker"
}
- ]
+ ],
+ "startedOn": {
+ "year": 2024,
+ "month": "August"
+ }
},
{
"name": "Jeremy Fiel",
@@ -354,6 +374,10 @@
},
"link": "https://landscape.json-schema.org/"
}
- ]
+ ],
+ "startedOn": {
+ "year": 2024,
+ "month": "September"
+ }
}
]
From 26da7eebfab80ad92ba064211176c3b783219eff Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti
Date: Tue, 10 Dec 2024 08:27:41 -0400
Subject: [PATCH 277/309] Mention JSON Schema Conference talk in ambassor entry
Signed-off-by: Juan Cruz Viotti
---
programs/ambassadors/ambassadors.json | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index fd424b70..ca1ebb8e 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -126,11 +126,11 @@
{
"name": "Juan Cruz Viotti",
"img": "https://avatars.githubusercontent.com/u/2192773?v=4",
- "bio": "CTO at Intelligence.AI, founder of Sourcemeta, consultant, and author",
- "title": "Chief Technical Officer",
+ "bio": "Founder at Sourcemeta, consultant, and author",
+ "title": "Founder",
"github": "jviotti",
"linkedin": "jviotti",
- "company": "Intelligence.AI",
+ "company": "Sourcemeta",
"country": "🇧🇴",
"contributions": [
{
@@ -186,6 +186,15 @@
"month": "March"
},
"link": "https://github.com/json-schema-org/community/issues/599"
+ },
+ {
+ "type": "talk",
+ "title": "Applying Software Engineering Practices to Schemas",
+ "date": {
+ "year": 2024,
+ "month": "December"
+ },
+ "link": "http://conference.json-schema.org"
}
],
"startedOn": {
From de5d0682faddc6c3569f14d386e0f82498f61a82 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 13 Dec 2024 21:07:45 +0100
Subject: [PATCH 278/309] Update Esther image (#839)
Update Esther image
---
programs/ambassadors/ambassadors.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index ca1ebb8e..c24fcee4 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -204,7 +204,7 @@
},
{
"name": "Esther Okafor",
- "img": "https://avatars.githubusercontent.com/u/40007659?v=4",
+ "img": "https://media.licdn.com/dms/image/v2/D4D03AQGO8M-VFQJvAQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1719478757384?e=1739404800&v=beta&t=N6GOewG0on7VdbwaEWMjPkXxY9o0haL5ek5rX9rEHcc",
"bio": "I am a QA engineer currently working with Storyblok. I am passionate about quality and making sure software design systems are developed with the highest standards",
"title": "Test engineer at Storyblok",
"github": "https://github.com/Estherokafor05/My-portfolio",
From b81462a65d1f9d4941edfa8a4eff8189c2ef1068 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 13 Dec 2024 21:14:14 +0100
Subject: [PATCH 279/309] Update ambassadors.json
---
programs/ambassadors/ambassadors.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index c24fcee4..d3dfb912 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -1,7 +1,7 @@
[
{
"name": "Andreas Eberhart",
- "img": "https://media.licdn.com/dms/image/C5603AQFwzjco4Zp2iw/profile-displayphoto-shrink_200_200/0/1522155839427?e=1723680000&v=beta&t=mzwGrHJqCu_doxI4tTZIkH2GtWIeW8iOTD-JDLxwYuA",
+ "img": "https://media.licdn.com/dms/image/v2/C5603AQFwzjco4Zp2iw/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1522155839579?e=1739404800&v=beta&t=A3Ki-Ct3mzO_0fTe6w_zWNj5z_1CCX0wpxxuDpCMxXA",
"bio": "With 25 years of professional experience, Andreas is very proficient in the areas of enterprise cloud, linked & big data, as well as systems architecture and development. He co-founded two startups and drove their growth resulting in two acquisitions by silicon valley giants HP and Veritas. Combined with his extensive background in cutting edge research, he has the unique ability to address projects from technical, time to market, and ROI angles. He holds a PhD in Computer Science from the University of Saarbrücken and a Master in Computer Science from Portland State University.",
"title": "CEO at Dashjoin",
"github": "aeberhart",
@@ -257,7 +257,7 @@
},
{
"name": "Ege Korkan",
- "img": "https://media.licdn.com/dms/image/D4D03AQG03-U--zDJpw/profile-displayphoto-shrink_200_200/0/1707341764311?e=1724889600&v=beta&t=xY0i-IncaI51wlZVJD7fEuSb0LMdR7j0-XlipV7EK6c",
+ "img": "https://media.licdn.com/dms/image/v2/D4D03AQG03-U--zDJpw/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1707341764311?e=1739404800&v=beta&t=jO5SgCnwdAKU1sRapA7-DzVq-p4tzu5GvNV_aJnci-k",
"bio": "Research and standardization focused engineer at Siemens with a passion to drive interoperability across all levels.",
"title": "Web of Things Expert at Siemens",
"github": "egekorkan",
From 0c14a29d4311ac78d99554907b7e14240ecb1b47 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 18 Dec 2024 23:24:18 +0100
Subject: [PATCH 280/309] Update README.md
---
programs/ambassadors/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/ambassadors/README.md b/programs/ambassadors/README.md
index 84397699..262f13c2 100644
--- a/programs/ambassadors/README.md
+++ b/programs/ambassadors/README.md
@@ -49,7 +49,7 @@ Examples:
- Community-wide recognition.
- All our respect for your contributions!
-### Become an JSON Schema Ambassador
+### Become a JSON Schema Ambassador
The process of becoming an ambassador is very simple. Go to the **community** repository and open a PR to edit the `ambassadors.json` file. The TSC will then evaluate your candidacy!
From ccf53b438c063d49555657d4ee20255bae0f5255 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 23 Dec 2024 14:23:18 +0100
Subject: [PATCH 281/309] Update ocwm-creator.yml to create the issue the third
tuesday of the month.
---
.github/workflows/ocwm-creator.yml | 34 +++++++++++++++---------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 7f49b556..565d3706 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -2,7 +2,7 @@ name: Create OCWM Monthly
on:
schedule:
- - cron: "0 23 * * 1" # Runs at 11:00 PM every Monday
+ - cron: "0 23 * * 2" # Runs at 11:00 PM every Tuesday
repository_dispatch:
types: ocwm-creator
@@ -36,39 +36,39 @@ jobs:
# Get the first day of the next month
next_month=$(date -u -d "$(date +%Y-%m-01) +1 month" +%Y-%m-01)
- # Find the first Monday of the next month
- first_monday=$(date -u -d "$next_month +$(( (8 - $(date -u -d "$next_month" +%u)) % 7 )) days" +%Y-%m-%d)
+ # Find the first Tuesday of the next month
+ first_tuesday=$(date -u -d "$next_month +$(( (9 - $(date -u -d "$next_month" +%u)) % 7 )) days" +%Y-%m-%d)
- # Calculate the third Monday by adding 14 days to the first Monday
- third_monday=$(date -u -d "$first_monday +14 days" +%Y-%m-%d)
+ # Calculate the third Tuesday by adding 14 days to the first Tuesday
+ third_tuesday=$(date -u -d "$first_tuesday +14 days" +%Y-%m-%d)
- # Output the issue title with the third Monday's date
- echo "title=Open Community Working Meeting ${third_monday} - 12:00 PT" >> "$GITHUB_OUTPUT"
+ # Output the issue title with the third Tuesday's date
+ echo "title=Open Community Working Meeting ${third_tuesday} - 12:00 PT" >> "$GITHUB_OUTPUT"
# Step to check if it's the third Tuesday of the month
- name: Check if today is the third Tuesday
- id: check-third-monday
+ id: check-third-tuesday
run: |
day=$(date +%d)
dow=$(date +%u) # Day of the week (1 = Monday, ..., 7 = Sunday)
- # Check if the day is between 15th and 21st, and if it's Monday (1)
- if [ "$dow" -ne 1 ]; then
- echo "Not a Monday, exiting..."
- echo "::set-output name=is-third-monday::false"
+ # Check if the day is between 15th and 21st, and if it's Tuesday (2)
+ if [ "$dow" -ne 2 ]; then
+ echo "Not a Tuesday, exiting..."
+ echo "::set-output name=is-third-tuesday::false"
exit 0
fi
if [ "$day" -ge 15 ] && [ "$day" -le 21 ]; then
- echo "This is the third Monday of the month!"
- echo "::set-output name=is-third-monday::true"
+ echo "This is the third Tuesday of the month!"
+ echo "::set-output name=is-third-tuesday::true"
else
- echo "Not the third Monday, exiting..."
- echo "::set-output name=is-third-monday::false"
+ echo "Not the third Tuesday, exiting..."
+ echo "::set-output name=is-third-tuesday::false"
exit 0
fi
- name: Create Issue using Template
id: create-issue
- if: steps.check-third-tuesday.outputs.is-third-monday == 'true'
+ if: steps.check-third-tuesday.outputs.is-third-tuesday == 'true'
uses: peter-evans/create-issue-from-file@v5
with:
title: ${{ steps.create-title.outputs.title }}
From 2868ee02ebef0088103c56934ee2bd0779171665 Mon Sep 17 00:00:00 2001
From: Dhairya Majmudar <124715224+DhairyaMajmudar@users.noreply.github.com>
Date: Mon, 23 Dec 2024 21:17:56 +0530
Subject: [PATCH 282/309] fix: updating social links (#843)
---
programs/ambassadors/ambassadors.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index d3dfb912..1410c69a 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -207,9 +207,9 @@
"img": "https://media.licdn.com/dms/image/v2/D4D03AQGO8M-VFQJvAQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1719478757384?e=1739404800&v=beta&t=N6GOewG0on7VdbwaEWMjPkXxY9o0haL5ek5rX9rEHcc",
"bio": "I am a QA engineer currently working with Storyblok. I am passionate about quality and making sure software design systems are developed with the highest standards",
"title": "Test engineer at Storyblok",
- "github": "https://github.com/Estherokafor05/My-portfolio",
- "twitter": "https://x.com/Estherokafor_",
- "linkedin": "https://www.linkedin.com/in/okaforesther/",
+ "github": "Estherokafor05/My-portfolio",
+ "twitter": "Estherokafor_",
+ "linkedin": "okaforesther/",
"company": "Storyblok",
"country": "Nigeria",
"contributions": [
@@ -263,7 +263,7 @@
"github": "egekorkan",
"twitter": "egekorkan",
"linkedin": "ege-korkan",
- "mastodon":"https://mastodon.social/@egekorkan",
+ "mastodon":"@egekorkan@mastodon.social",
"company": "Siemens AG",
"country": "Germany",
"contributions": [
From 903010740745b96f9b21204c4b578bb77d84cb53 Mon Sep 17 00:00:00 2001
From: Amaechi Hope <51549388+Honyii@users.noreply.github.com>
Date: Fri, 27 Dec 2024 11:43:43 +0100
Subject: [PATCH 283/309] Feat/update mentoring gsoc (#848)
* feat: add 2024 ideas to readme file
* feat: add 2025 gsoc file
* update reradme
---
programs/mentoring/gsoc/README.md | 5 +--
programs/mentoring/gsoc/gsoc-2025.md | 48 ++++++++++++++++++++++++++++
2 files changed, 51 insertions(+), 2 deletions(-)
create mode 100644 programs/mentoring/gsoc/gsoc-2025.md
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index 0dd45a5a..f0ed7329 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -11,13 +11,14 @@ We are a community JSON Schema enthusiast dedicated to maintain, evolve and prom
## 💡 GSoC Project Ideas
-### Current GSoC edition (2024) project ideas
+### Current GSoC edition (2025) project ideas
-You can find the project ideas for this year's program [here](gsoc-2024.md).
+Project ideas for this year's program are forthcoming. Check back soon [here](gsoc-2025.md).
### Past GSoC editions project ideas
- 2023 [ideas](gsoc-2023.md)
+- 2024 [ideas](gsoc-2024.md)
## 🎯 Why choosing a JSON Schema project?
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
new file mode 100644
index 00000000..369b7076
--- /dev/null
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -0,0 +1,48 @@
+
+
+
+# Welcome to Google Summer of Code 2025 with JSON Schema!
+
+We are thrilled to announce that JSON Schema will be applying as a mentoring organization for the 2025 Google Summer of Code (GSoC). If accepted, we look forward to collaborating with talented contributors from around the world to advance the field of JSON Schema and open-source technology.
+
+## Stay Tuned for Timeline and Project Ideas
+
+The official GSoC 2025 timeline and our project ideas will be announced soon! Be sure to check back for updates, and prepare to explore exciting opportunities to contribute to meaningful, real-world projects.
+
+## Why Choose a JSON Schema Project?
+
+JSON Schema is a widely adopted and powerful tool in the developer ecosystem. Some of the most active members today joined because of their participation in past GSoC editions, which is a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
+
+Contributing to a JSON Schema project offers:
+- Real-World Impact: Your work will influence the global developer community.
+- Skill Development: Gain hands-on experience with cutting-edge technology and improve your software development skills.
+- Collaborative Learning: Work closely with experienced mentors and a welcoming community.
+- Professional Growth: Build your network, receive guidance, and showcase your contributions at community events.
+- Financial Support: Participants receive a stipend from Google for their contributions.
+
+## How to Apply
+Details about our projects, qualification tasks, and application guidelines will be shared soon. In the meantime, prepare by:
+
+- Familiarizing yourself with JSON Schema.
+- Engaging with the community via GitHub and Slack.
+- Exploring past GSoC projects to understand the process.
+
+## Getting in Contact
+
+- **GitHub:** Please use [Issues](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc) to comment on project ideas, ask questions and collaborate.
+- **Slack:** Please join us in our [slack workspace](https://json-schema.org/slack). All GSoC discussions are are hapenning in the [`#gsoc`](https://json-schema.slack.com/archives/C04MVQSRBRS) channel.
+
+Please see our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)
+
+## Getting Help
+
+Got a problem? Reach out to mentors or the community for assistance. Remember, mentors are listed, but other community members can also lend a hand. When talking to non-mentors:
+
+- Introduce yourself.
+- Discuss tasks based on personal interest, not just the contest.
+- Explain technical decisions independently.
+- Consult mentors for guidance on task evaluation.
+
+## Contributing Guidelines
+
+Please, check-out the [GSoC Contributior guidelines](CONTRIBUTOR-GUIDANCE.md)
From 795e352063dba9198798136591b9bec050a3792d Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sun, 5 Jan 2025 12:39:20 +0100
Subject: [PATCH 284/309] Changes in the GSoC readme to improve onboarding
(#850)
* Add reference to contributing guidelines
* Add guidance pre-GSoC
* add more ways of contribution
---
CONTRIBUTING.md | 16 +++++++++++++---
programs/mentoring/gsoc/README.md | 10 ++++++++--
programs/mentoring/gsoc/gsoc-2025.md | 10 ++++++++--
3 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 45106d88..d0bc7310 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -18,13 +18,23 @@ Here are some areas where you can contribute:
* ❓ Answer questions
* 🙏 Join discussions and provide feedback
* 🛠️ [Add new JSON Schema tooling](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-add-a-new-implementation)
+ * 🚀 [Adding a new Adopter](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md)
* ✍️ [Publish a blog post](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#%EF%B8%8F-publish-a-blog-post)
* 📈 [Publish a case study](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-publish-a-case-study)
- * 📋 [Improving the Documentation](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-documentation)
+ * 📋 [Improving The Documentation](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-documentation)
* 🏗 [Website development](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-website)
- * 🎨 [Improving the Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
- * 😍 [Collaborating with Community Management tasks](#community-management-tasks)
+ * 🎨 [Improving The Design](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md#-improving-the-design)
+ * 😍 [Collaborating with Community Management tasks](https://github.com/json-schema-org/community)
* 🚀 [Adding a new Adopter](https://github.com/json-schema-org/community/blob/main/ADOPTERS.md)
+ * 🌈 Other JSON Schema projects you can contribute to:
+ * [JSON Schema Conference](https://github.com/json-schema-org/conference/blob/main/CONTRIBUTING.md).
+ * [Tour of JSON Schema](https://github.com/json-schema-org/tour/blob/main/CONTRIBUTING.md).
+ * [JSON Schema Landscape](https://github.com/json-schema-org/landscape/blob/main/CONTRIBUTING.md).
+ * [JSON Schema Ecosystem](https://github.com/json-schema-org/ecosystem/blob/main/CONTRIBUTING.md).
+
+ * 🌐 Other JSON Schema Ecosystem Projects you can contribute to:
+ * [Bowtie](https://github.com/bowtie-json-schema/bowtie) development.
+ * Contribute to any well mantained JSON Schema implementation.
#### Community management tasks
diff --git a/programs/mentoring/gsoc/README.md b/programs/mentoring/gsoc/README.md
index f0ed7329..9622ae07 100644
--- a/programs/mentoring/gsoc/README.md
+++ b/programs/mentoring/gsoc/README.md
@@ -50,7 +50,13 @@ Got a problem? Reach out to mentors or the community for assistance. Remember, m
- Consult mentors for guidance on task evaluation.
-## 🏗 Contributing Guidelines
+## 🫶 How to get involved before GSoC?
-Please, check-out the [GSoC Contributior guidelines](CONTRIBUTOR-GUIDANCE.md)
+If you join our organization before GSoC, we invite you to join us contributing to JSON Schema as a great way to start engaging with the Team, learn about the JSON Schema specification and get to know some of our projects.
+
+Please check out our [Contribution guidelines](https://github.com/json-schema-org/.github/blob/main/CONTRIBUTING.md) to know more about how to contribute in each area.
+
+## 🏗 GSoC Contributor Guidance
+
+Please, check-out the [GSoC Contributior Guidance](CONTRIBUTOR-GUIDANCE.md)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 369b7076..2e686306 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -43,6 +43,12 @@ Got a problem? Reach out to mentors or the community for assistance. Remember, m
- Explain technical decisions independently.
- Consult mentors for guidance on task evaluation.
-## Contributing Guidelines
+## 🫶 How to get involved before GSoC?
-Please, check-out the [GSoC Contributior guidelines](CONTRIBUTOR-GUIDANCE.md)
+If you join our organization before GSoC, we invite you to join us contributing to JSON Schema as a great way to start engaging with the Team, learn about the JSON Schema specification and get to know some of our projects.
+
+Please check out our [Contribution guidelines](https://github.com/json-schema-org/.github/blob/main/CONTRIBUTING.md) to know more about how to contribute in each area.
+
+## 🏗 GSoC Contributor Guidance
+
+Please, check-out the [GSoC Contributior Guidance](CONTRIBUTOR-GUIDANCE.md)
From eda040a83ff3cc1d5c1e1967f657241159ec1565 Mon Sep 17 00:00:00 2001
From: Julian Berman
Date: Sat, 18 Jan 2025 06:17:19 -0500
Subject: [PATCH 285/309] Add @Julian as a contractor. (#855)
---
programs/contractors/contractors.json | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/programs/contractors/contractors.json b/programs/contractors/contractors.json
index c6a8f86d..43731cb9 100644
--- a/programs/contractors/contractors.json
+++ b/programs/contractors/contractors.json
@@ -34,5 +34,28 @@
"url": "https://json-schema.org/blog/posts/understanding-lexical-dynamic-scopes"
}
]
+ },
+ {
+ "name": "Julian Berman",
+ "github": "Julian",
+ "linkedin": "julian-berman",
+ "email": "Julian+JSON.Schema@GrayVines.com",
+ "type": "tsc",
+ "incorporatedIn": [],
+ "bio": "Julian is an experienced engineering leader, JSON Schema TSC member and a member of the JSON Schema core team for over 10 years. He founded the JSON Schema Test Suite and Bowtie projects, helping countless implementers (and users) of all JSON Schema implementations ensure compliance with the specification. He also wrote and maintains the most widely used Python implementation of JSON Schema, along with a large number of projects in its orbit, and is a long-time contributor to the wider open source Python ecosystem. He has deep experience running engineering teams (in previous lives in the context of machine learning for large-enterprise consumer experience marketing). He also is a lecturer at Columbia University, who cares deeply about ensuring technology is accessible and easy to understand for all. Let him help your organization get smarter about how you use JSON Schema, how you collaborate with it across teams, and how you effectively build reliable production systems which leverage JSON Schema.",
+ "links": [
+ {
+ "title": "python-jsonschema, the most widely used Python implementation of JSON Schema for over 10 years",
+ "url": "https://github.com/python-jsonschema/jsonschema/"
+ },
+ {
+ "title": "Bowtie, a meta-validator for using JSON Schema implementations across every programming language in the world",
+ "url": "https://bowtie.report"
+ },
+ {
+ "title": "The official JSON Schema Test Suite, a large collection of compliance tests for the JSON Schema specification used by many or most implementations of JSON Schema",
+ "url": "https://github.com/json-schema-org/JSON-Schema-Test-Suite"
+ }
+ ]
}
]
From c2087596df5d50d0d4a2d07b379066d303554598 Mon Sep 17 00:00:00 2001
From: Jason Desrosiers
Date: Thu, 23 Jan 2025 13:19:48 -0800
Subject: [PATCH 286/309] Add a contractor bio for Jason
---
programs/contractors/contractors.json | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/programs/contractors/contractors.json b/programs/contractors/contractors.json
index 43731cb9..d2461426 100644
--- a/programs/contractors/contractors.json
+++ b/programs/contractors/contractors.json
@@ -57,5 +57,32 @@
"url": "https://github.com/json-schema-org/JSON-Schema-Test-Suite"
}
]
+ },
+ {
+ "name": "Jason Desrosiers",
+ "github": "jdesrosiers",
+ "linkedin": "jason-desrosiers",
+ "email": "jason@hyperjump.io",
+ "type": "tsc",
+ "incorporatedIn": ["California, USA"],
+ "bio": "Jason is a recognized expert and active contributor to the JSON Schema community with over a decade of experience. As a member of the Technical Steering Committee (TSC), he has helped shape the specification and establish best practices. In addition, Jason has developed innovative techniques for writing complex schemas that are scalable, maintainable, efficient, and produce error messages that are clear and helpful.\n\nAs the author and maintainer of the `@hyperjump/json-schema` validator, Jason has created an implementation that is widely regarded as a trusted reference for understanding and verifying correct behavior in complex scenarios.\n\nJason is also highly knowledgeable in using JSON Schema and JSON Hyper-Schema to design APIs that are easy to use, well-documented, and adaptable over time. He helps teams build APIs that not only meet immediate needs but also ensure smooth evolution as business requirements change, making it easier to maintain and scale them as the organization grows.\n\nIn addition to his JSON Schema expertise, Jason holds a Master's degree in Software Engineering and brings extensive experience in Pair/Mob Programming, Test-Driven Development, and coaching teams to improve their coding skills and productivity. He specializes in hands-on collaboration, working alongside teams to teach practical skills in the context of their real-world projects.\n\nIf you need expert guidance on JSON Schema, API design, schema development, or improving your team’s development practices, reach out to Jason to discuss your needs.",
+ "links": [
+ {
+ "title": "@hyperjump/json-schema -- A JSON Schema implementation with support for every validation, annotations, bundling, and more in every JSON Schema dialect since draft-04.",
+ "url": "https://github.com/hyperjump-io/json-schema"
+ },
+ {
+ "title": "Blog post -- Validating OpenAPI and JSON Schema",
+ "url": "https://json-schema.org/blog/posts/validating-openapi-and-json-schema"
+ },
+ {
+ "title": "Blog post -- Towards a stable JSON Schema",
+ "url": "https://json-schema.org/blog/posts/future-of-json-schema"
+ },
+ {
+ "title": "API Specifications Conference 2021 - Maintaining JSON Schemas at Scale",
+ "url": "https://www.youtube.com/watch?v=GjJpRsVffg0"
+ }
+ ]
}
]
From 7eee9efc5ea9d51b4badff4d89295ee2686a3570 Mon Sep 17 00:00:00 2001
From: KaranPalan <143683619+Karan-Palan@users.noreply.github.com>
Date: Sat, 25 Jan 2025 15:09:56 +0530
Subject: [PATCH 287/309] remove additional gmail link (#863)
---
INFRASTRUCTURE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/INFRASTRUCTURE.md b/INFRASTRUCTURE.md
index a329905c..b6714285 100644
--- a/INFRASTRUCTURE.md
+++ b/INFRASTRUCTURE.md
@@ -48,7 +48,7 @@ The working location for these resources is in the specification repository at h
We are capturing feedback in the website using a cloudflare worker to receive the data and send it to an Airtable database. The Airtable account is owned and paid for by Postman.
## The JSON Schema Calendar
-We are using a Google Calendar to share with the Community all the events. This Calendar has been created with a Google Account associated with the emails info@json-schema.org and json.schema.community@gmail.com.
+We are using a Google Calendar to share with the Community all the events. This Calendar has been created with a Google Account associated with the emails info@json-schema.org.
## Bots
The Slack server has a number of bots which feed data into specific channels.
From c1e1782b714584c409c7b78b6d18b4a2b887b1f1 Mon Sep 17 00:00:00 2001
From: Amaechi-Okorie Onyedikachi Hope
<51549388+Honyii@users.noreply.github.com>
Date: Sat, 25 Jan 2025 10:40:31 +0100
Subject: [PATCH 288/309] update gsoc 2025 file (#862)
---
programs/mentoring/gsoc/gsoc-2025.md | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 2e686306..80baac4c 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -5,9 +5,23 @@
We are thrilled to announce that JSON Schema will be applying as a mentoring organization for the 2025 Google Summer of Code (GSoC). If accepted, we look forward to collaborating with talented contributors from around the world to advance the field of JSON Schema and open-source technology.
-## Stay Tuned for Timeline and Project Ideas
-
-The official GSoC 2025 timeline and our project ideas will be announced soon! Be sure to check back for updates, and prepare to explore exciting opportunities to contribute to meaningful, real-world projects.
+## Timeline and Project Ideas
+
+The official GSoC 2025 timeline is now live, and our project ideas are on the way! Stay tuned for updates and get ready to explore exciting opportunities to contribute to meaningful, real-world projects.
+
+[Full timeline](https://developers.google.com/open-source/gsoc/timeline)
+
+|Important dates | Deadline|
+| ----- | ----- |
+| Organization Applications Open | January 27, 2025|
+| Organization Application Deadline | February 11, 2025 |
+| Organizations Announced | February 27, 2025 |
+| Potential GSoC contributors discuss application ideas with mentoring organizations | February 27 - March 24, 2025 |
+| GSoC contributor application period | March 24 - April 8, 2025 |
+| Accepted GSoC Contributor projects announced | May 8, 2025 |
+| Contributors work on their Google Summer of Code projects | June 2, 2025 - August 25, 2025|
+| Mentors submit final GSoC contributor evaluations (standard coding period) | September 1, 2025 - September 8, 2025|
+| Initial results of Google Summer of Code 2024 announced | September 3, 2025 |
## Why Choose a JSON Schema Project?
From 24a60fc92190015c11a7ed763654f3c2dc91f67b Mon Sep 17 00:00:00 2001
From: Andreas Eberhart <61732435+aeberhart@users.noreply.github.com>
Date: Sat, 25 Jan 2025 10:40:50 +0100
Subject: [PATCH 289/309] Add WoT Paper by Ege and Andi (#865)
---
programs/ambassadors/ambassadors.json | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 1410c69a..5fb1ab82 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -45,6 +45,15 @@
"month": "October"
},
"link": "https://dashjoin.medium.com/json-schema-openapi-low-code-a-match-made-in-heaven-d29723e543ac"
+ },
+ {
+ "type": "article",
+ "title": "Generic and Extensible Web of Things Manager Using JSON Schema & AI",
+ "date": {
+ "year": 2024,
+ "month": "December"
+ },
+ "link": "https://github.com/dashjoin/djapp-wot"
}
],
"startedOn": {
@@ -267,6 +276,15 @@
"company": "Siemens AG",
"country": "Germany",
"contributions": [
+ {
+ "type": "article",
+ "title": "Generic and Extensible Web of Things Manager Using JSON Schema & AI",
+ "date": {
+ "year": 2024,
+ "month": "December"
+ },
+ "link": "https://github.com/dashjoin/djapp-wot"
+ },
{
"type": "talk",
"title": "One Year Update: Using LinkML in Web of Things Specifications",
From 1034dc7dc2e466a6bd7dc6ecf080a4730016a8dc Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 10 Feb 2025 13:38:34 +0100
Subject: [PATCH 290/309] Update gsoc-2025.md
Update project ideas for 2025
---
programs/mentoring/gsoc/gsoc-2025.md | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 80baac4c..4ddb55a1 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -13,8 +13,8 @@ The official GSoC 2025 timeline is now live, and our project ideas are on the wa
|Important dates | Deadline|
| ----- | ----- |
-| Organization Applications Open | January 27, 2025|
-| Organization Application Deadline | February 11, 2025 |
+| ~~Organization Applications Open~~ | ~~January 27, 2025~~ |
+| ~~Organization Application Deadline~~ | ~~February 11, 2025~~ |
| Organizations Announced | February 27, 2025 |
| Potential GSoC contributors discuss application ideas with mentoring organizations | February 27 - March 24, 2025 |
| GSoC contributor application period | March 24 - April 8, 2025 |
@@ -23,6 +23,17 @@ The official GSoC 2025 timeline is now live, and our project ideas are on the wa
| Mentors submit final GSoC contributor evaluations (standard coding period) | September 1, 2025 - September 8, 2025|
| Initial results of Google Summer of Code 2024 announced | September 3, 2025 |
+## [Project Ideas](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc)
+Here is the list of our 2025 project ideas:
+- [#874](https://github.com/json-schema-org/community/issues/874): **GSOC 2025 : Build a Java wrapper library for sourcemeta/blaze**
+- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
+- [#871](https://github.com/json-schema-org/community/issues/871): **GSoC 2025: JSON Schema-based API Mocking Tool**
+- [#870](https://github.com/json-schema-org/community/issues/870): **GSoC 2025: Better JSON Schema Errors**
+- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
+- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
+- [#857](https://github.com/json-schema-org/community/issues/857): **GSoC 2025: Investigating Schema Normalization**
+- [#856](https://github.com/json-schema-org/community/issues/856): **GSoC 2025: Comprehensive JSON Schema linting for encouraging best practices and catching anti-patterns early**
+
## Why Choose a JSON Schema Project?
JSON Schema is a widely adopted and powerful tool in the developer ecosystem. Some of the most active members today joined because of their participation in past GSoC editions, which is a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
From 52b57e9787e8d791237c372cd5c95b7e62f9c563 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 14 Feb 2025 15:57:12 +0100
Subject: [PATCH 291/309] Update gsoc-2025.md
---
programs/mentoring/gsoc/gsoc-2025.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 4ddb55a1..7eceed06 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -27,7 +27,6 @@ The official GSoC 2025 timeline is now live, and our project ideas are on the wa
Here is the list of our 2025 project ideas:
- [#874](https://github.com/json-schema-org/community/issues/874): **GSOC 2025 : Build a Java wrapper library for sourcemeta/blaze**
- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
-- [#871](https://github.com/json-schema-org/community/issues/871): **GSoC 2025: JSON Schema-based API Mocking Tool**
- [#870](https://github.com/json-schema-org/community/issues/870): **GSoC 2025: Better JSON Schema Errors**
- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
From 844f7dbccf2f46b2d1a2c1dab02da7c97f27cae8 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 17 Feb 2025 14:40:59 +0100
Subject: [PATCH 292/309] Update ocwm-creator.yml to create the issue title
properly
---
.github/workflows/ocwm-creator.yml | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 565d3706..9ec5a1ef 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -36,14 +36,14 @@ jobs:
# Get the first day of the next month
next_month=$(date -u -d "$(date +%Y-%m-01) +1 month" +%Y-%m-01)
- # Find the first Tuesday of the next month
- first_tuesday=$(date -u -d "$next_month +$(( (9 - $(date -u -d "$next_month" +%u)) % 7 )) days" +%Y-%m-%d)
-
- # Calculate the third Tuesday by adding 14 days to the first Tuesday
- third_tuesday=$(date -u -d "$first_tuesday +14 days" +%Y-%m-%d)
-
- # Output the issue title with the third Tuesday's date
- echo "title=Open Community Working Meeting ${third_tuesday} - 12:00 PT" >> "$GITHUB_OUTPUT"
+ # Find the first Monday of the next month
+ first_monday=$(date -u -d "$next_month +$(( (8 - $(date -u -d "$next_month" +%u)) % 7 )) days" +%Y-%m-%d)
+
+ # Calculate the third Monday by adding 14 days to the first Monday
+ third_monday=$(date -u -d "$first_monday +14 days" +%Y-%m-%d)
+
+ # Output the issue title with the third Monday's date
+ echo "title=Open Community Working Meeting ${third_monday} - 12:00 PT" >> "$GITHUB_OUTPUT"
# Step to check if it's the third Tuesday of the month
- name: Check if today is the third Tuesday
From 1dbe7852077766690fb2a7957e68da9d2446d0ca Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 17 Feb 2025 21:27:53 +0100
Subject: [PATCH 293/309] Update open_community_working_meeting.md
---
.github/ISSUE_TEMPLATE/open_community_working_meeting.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
index 95f7869b..926dde61 100644
--- a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
+++ b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
@@ -5,7 +5,7 @@ about: Regular Open Community Working Meetings Issue - This template is for thos
# Open Community Working Meeting 2022-MM-DD - 12:00 PT
-Google Meet joining info - Video call link: https://meet.google.com/xsn-rgwu-jvk
+Google Meet joining info - Video call link: https://meet.google.com/raz-ptdn-ewf
You can find these events scheduled on our **[JSON Schema Community Calendar](https://calendar.google.com/calendar/u/0/embed?src=info@json-schema.org)**.
From ea796dc54137ef0fb80e1353584d16c45c47bb1d Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 28 Feb 2025 11:41:41 +0100
Subject: [PATCH 294/309] Update gsoc-2025.md
---
programs/mentoring/gsoc/gsoc-2025.md | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 7eceed06..3be13d2f 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -26,13 +26,15 @@ The official GSoC 2025 timeline is now live, and our project ideas are on the wa
## [Project Ideas](https://github.com/json-schema-org/community/issues?q=is%3Aopen+label%3Agsoc+sort%3Acreated-desc)
Here is the list of our 2025 project ideas:
- [#874](https://github.com/json-schema-org/community/issues/874): **GSOC 2025 : Build a Java wrapper library for sourcemeta/blaze**
-- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
- [#870](https://github.com/json-schema-org/community/issues/870): **GSoC 2025: Better JSON Schema Errors**
-- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
-- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
- [#857](https://github.com/json-schema-org/community/issues/857): **GSoC 2025: Investigating Schema Normalization**
- [#856](https://github.com/json-schema-org/community/issues/856): **GSoC 2025: Comprehensive JSON Schema linting for encouraging best practices and catching anti-patterns early**
-
+
+Looking for mentors:
+- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
+- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
+- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
+
## Why Choose a JSON Schema Project?
JSON Schema is a widely adopted and powerful tool in the developer ecosystem. Some of the most active members today joined because of their participation in past GSoC editions, which is a clear evidence of how positive the experience has been for them. Our mentors have extensive mentoring experience, you will have the best support before, during and after the program.
From 254d7964478f7f00d10d3c0a75e7314dce308f22 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 28 Feb 2025 21:24:16 +0100
Subject: [PATCH 295/309] Update gsoc-2025.md
---
programs/mentoring/gsoc/gsoc-2025.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 3be13d2f..7d5d9cdd 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -29,10 +29,10 @@ Here is the list of our 2025 project ideas:
- [#870](https://github.com/json-schema-org/community/issues/870): **GSoC 2025: Better JSON Schema Errors**
- [#857](https://github.com/json-schema-org/community/issues/857): **GSoC 2025: Investigating Schema Normalization**
- [#856](https://github.com/json-schema-org/community/issues/856): **GSoC 2025: Comprehensive JSON Schema linting for encouraging best practices and catching anti-patterns early**
+- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
Looking for mentors:
- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
-- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
## Why Choose a JSON Schema Project?
From 3e9951e29bc7ce0de112029aac30880f27e21755 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Mon, 3 Mar 2025 12:27:27 +0100
Subject: [PATCH 296/309] Update gsoc-2025.md
---
programs/mentoring/gsoc/gsoc-2025.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 7d5d9cdd..7009c144 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -15,7 +15,7 @@ The official GSoC 2025 timeline is now live, and our project ideas are on the wa
| ----- | ----- |
| ~~Organization Applications Open~~ | ~~January 27, 2025~~ |
| ~~Organization Application Deadline~~ | ~~February 11, 2025~~ |
-| Organizations Announced | February 27, 2025 |
+| ~~Organizations Announced~~ | February 27, 2025 |
| Potential GSoC contributors discuss application ideas with mentoring organizations | February 27 - March 24, 2025 |
| GSoC contributor application period | March 24 - April 8, 2025 |
| Accepted GSoC Contributor projects announced | May 8, 2025 |
From 66fdf856574259e8b5c46463a20d8a69b434b383 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 14 Mar 2025 02:25:38 +0100
Subject: [PATCH 297/309] Update gsoc-2025.md
---
programs/mentoring/gsoc/gsoc-2025.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index 7009c144..f8059073 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -30,9 +30,9 @@ Here is the list of our 2025 project ideas:
- [#857](https://github.com/json-schema-org/community/issues/857): **GSoC 2025: Investigating Schema Normalization**
- [#856](https://github.com/json-schema-org/community/issues/856): **GSoC 2025: Comprehensive JSON Schema linting for encouraging best practices and catching anti-patterns early**
- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
+- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
Looking for mentors:
-- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
## Why Choose a JSON Schema Project?
From 97aa3d5227848487214c9c0d489bf593afc8a6db Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Fri, 14 Mar 2025 12:05:47 +0100
Subject: [PATCH 298/309] Update gsoc-2025.md
---
programs/mentoring/gsoc/gsoc-2025.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/mentoring/gsoc/gsoc-2025.md b/programs/mentoring/gsoc/gsoc-2025.md
index f8059073..2202c04c 100644
--- a/programs/mentoring/gsoc/gsoc-2025.md
+++ b/programs/mentoring/gsoc/gsoc-2025.md
@@ -30,7 +30,7 @@ Here is the list of our 2025 project ideas:
- [#857](https://github.com/json-schema-org/community/issues/857): **GSoC 2025: Investigating Schema Normalization**
- [#856](https://github.com/json-schema-org/community/issues/856): **GSoC 2025: Comprehensive JSON Schema linting for encouraging best practices and catching anti-patterns early**
- [#872](https://github.com/json-schema-org/community/issues/872): **GSOC 2025 : Automated Badge Issuance System For Tour**
-- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website and completion of test suite development**
+- [#859](https://github.com/json-schema-org/community/issues/859): **GSoC 2025: Adaption of component library in JSON Schema website**
Looking for mentors:
- [#868](https://github.com/json-schema-org/community/issues/868): **GSOC 2025 : JSON Schema Visualization Tool - Interactive Graphical Viewer**
From 26e0408d996b117645ce760fb68d3fb0367472a0 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sun, 23 Mar 2025 19:56:53 +0100
Subject: [PATCH 299/309] Update ocwm-reminders.yml
---
.github/workflows/ocwm-reminders.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ocwm-reminders.yml b/.github/workflows/ocwm-reminders.yml
index 2a28ba7d..ab760d03 100644
--- a/.github/workflows/ocwm-reminders.yml
+++ b/.github/workflows/ocwm-reminders.yml
@@ -57,7 +57,7 @@ jobs:
OWNER: ${{ vars.ORGANISATION }}
REPO: 'community'
OCWM_LABEL: ${{ vars.OCWM_LABEL }}
- SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK_REMINDER }}
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_REMINDER }}
with:
script: |
@@ -89,4 +89,4 @@ jobs:
'Content-Type': 'application/json',
},
body: SLACK_MESSAGE,
- });
\ No newline at end of file
+ });
From a822e076cfec00f9ebd5135a36a8cd172b9d2477 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sun, 23 Mar 2025 20:06:36 +0100
Subject: [PATCH 300/309] Update ocwm-creator.yml
---
.github/workflows/ocwm-creator.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 9ec5a1ef..18fd4e27 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -84,7 +84,7 @@ jobs:
uses: actions/github-script@v7
env:
MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
- SLACK_WEBHOOK: ${{ vars.SLACK_WEBHOOK }}
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
with:
script: |
From 8241dc166e44e8bd0427b81e6e277b0aed027462 Mon Sep 17 00:00:00 2001
From: Joshethapolireddy
Date: Wed, 7 May 2025 19:58:06 +0530
Subject: [PATCH 301/309] Grammatically updated (#906)
---
programs/adopters/templates/socialmedia-promotion.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/programs/adopters/templates/socialmedia-promotion.md b/programs/adopters/templates/socialmedia-promotion.md
index 3b806682..36652d80 100644
--- a/programs/adopters/templates/socialmedia-promotion.md
+++ b/programs/adopters/templates/socialmedia-promotion.md
@@ -6,7 +6,7 @@ XXXXXXX is a _______
https://
-Visit our landscape and discover more orgnizations using JSON Schema : https://landscape.json-schema.org
+Visit our landscape and discover more organizations using JSON Schema: https://landscape.json-schema.org
### Linkedin Template
@@ -16,7 +16,7 @@ _______ is a ....
More about _______ 👉 https://
-Check out the JSON Schema Landscape to explore the leading orgnizations using JSON Schema: https://landscape.json-schema.org/
+Check out the JSON Schema Landscape to explore the leading organizations using JSON Schema: https://landscape.json-schema.org/
#ecosystem #jsonschema #adopters #production
@@ -27,6 +27,6 @@ Check out the JSON Schema Landscape to explore the leading orgnizations using JS
______ is a ....
-Check out the JSON Schema Landscape to explore the leading orgnizations using JSON Schema: https://landscape.json-schema.org/
+Check out the JSON Schema Landscape to explore the leading organizations using JSON Schema: https://landscape.json-schema.org/
Is your Organization using JSON Schema? Please join the Adopters group in the JSON Schema Landscape and help us to grow the JSON Schema Ecosystem by sharing your use case.
\ No newline at end of file
From 77ca0ac9ef5eb090186a966215c73da3623fa5ef Mon Sep 17 00:00:00 2001
From: DeepikaReddy <2300031389@kluniversity.in>
Date: Wed, 7 May 2025 20:02:01 +0530
Subject: [PATCH 302/309] Gramatically Updated readme file (#903)
* Gramatically Updated readme file
* Added space for consistency.
---------
Co-authored-by: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
---
slack/readme.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/slack/readme.md b/slack/readme.md
index bf977f7d..e62bd169 100644
--- a/slack/readme.md
+++ b/slack/readme.md
@@ -1,13 +1,13 @@
-This folder relates to Slack things.
+This folder contains files used for Slack.
-The things:
+Contents:
-`greeting`: A text file containing the greeting sent to users who join our Slack server.
+`greeting`: A text file containing the welcome message sent to users who join our Slack server.
-`other channels`: A text file containing info on some of our Slack server's channels.
+`other channels`: A text file providing information about some of our Slack server's channels.
-`greeting.slackworkflow`: A workflow exported from Slack for the greeting message. It can be imported should we somehow loose it. Given the format and specific token requirements, it doesn't make sense to maintain the greeting message in this file. Consider it a reference and backup. Maintain in the `greeting` text file and manually update Slack on change.
+`greeting.slackworkflow`: A Slack workflow export of the greeting message. It can be re-imported if it's ever lost.Due to specific token and formatting requirements, it's not recommended to maintain the greeting message directly in this file.Consider this file a reference and backup. Use the greeting text file as the source of truth and manually update Slack whenever changes are made.
-We could later manage this by creating our own Slack bot, but using Workflows will do for now.
+In the future, we may consider building our own Slack bot, but using Slack Workflows is sufficient for now.
-We needed to migrate from Greetbot because they are [shutting down](https://medium.com/greetbot-blog/after-5-million-hellos-its-time-to-say-goodbye-8b82e40b5701).
\ No newline at end of file
+We migrated from Greetbot because the service has been [shutting down](https://medium.com/greetbot-blog/after-5-million-hellos-its-time-to-say-goodbye-8b82e40b5701).
From 6de42a651aaff5540a4eb5a7d5e921343dae0fcd Mon Sep 17 00:00:00 2001
From: Aqib Nawab
Date: Wed, 7 May 2025 19:32:45 +0500
Subject: [PATCH 303/309] resolve the issue (#889)
---
programs/ambassadors/ambassadors.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/ambassadors/ambassadors.json b/programs/ambassadors/ambassadors.json
index 5fb1ab82..a2516403 100644
--- a/programs/ambassadors/ambassadors.json
+++ b/programs/ambassadors/ambassadors.json
@@ -352,7 +352,7 @@
"title": "Principal Software Engineer | OpenAPI | JSON Schema | Arazzo | APIs",
"github": "jeremyfiel",
"twitter": "jeremyfiel",
- "linkedin": "https://www.linkedin.com/in/jeremyfiel",
+ "linkedin": "jeremyfiel",
"company": "ADP, Inc.",
"country": "US",
"contributions": [
From 4ba5b98e8782219b6506682d6f4aa05745936c72 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Tue, 20 May 2025 19:52:53 +0200
Subject: [PATCH 304/309] update OCWM timing (#913)
---
.github/ISSUE_TEMPLATE/open_community_working_meeting.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
index 926dde61..17e06281 100644
--- a/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
+++ b/.github/ISSUE_TEMPLATE/open_community_working_meeting.md
@@ -3,7 +3,7 @@ name: Open Community Working Meeting
about: Regular Open Community Working Meetings Issue - This template is for those setting up an OCWM only.
---
-# Open Community Working Meeting 2022-MM-DD - 12:00 PT
+# Open Community Working Meeting 2022-MM-DD - 13:00 PT
Google Meet joining info - Video call link: https://meet.google.com/raz-ptdn-ewf
From 95f6aa2b33d92f156ed309017c3a102aecf83b51 Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Wed, 21 May 2025 07:59:21 +0200
Subject: [PATCH 305/309] Update OCWM timing in the OCWM automations (#916)
* update OCWM timing
* Update ocwm-creator.yml
Update OCWM timing
---
.github/workflows/ocwm-creator.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ocwm-creator.yml b/.github/workflows/ocwm-creator.yml
index 18fd4e27..64a4c53d 100644
--- a/.github/workflows/ocwm-creator.yml
+++ b/.github/workflows/ocwm-creator.yml
@@ -43,7 +43,7 @@ jobs:
third_monday=$(date -u -d "$first_monday +14 days" +%Y-%m-%d)
# Output the issue title with the third Monday's date
- echo "title=Open Community Working Meeting ${third_monday} - 12:00 PT" >> "$GITHUB_OUTPUT"
+ echo "title=Open Community Working Meeting ${third_monday} - 13:00 PT" >> "$GITHUB_OUTPUT"
# Step to check if it's the third Tuesday of the month
- name: Check if today is the third Tuesday
From 70aa99020aa70f7ca5e2350b5a292d430d6ff2eb Mon Sep 17 00:00:00 2001
From: Benjamin Granados <40007659+benjagm@users.noreply.github.com>
Date: Sat, 28 Jun 2025 15:13:09 +0200
Subject: [PATCH 306/309] Update COMMUNITY-MANAGER.md (#929)
---
COMMUNITY-MANAGER.md | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/COMMUNITY-MANAGER.md b/COMMUNITY-MANAGER.md
index 03c2f510..8a927b6d 100644
--- a/COMMUNITY-MANAGER.md
+++ b/COMMUNITY-MANAGER.md
@@ -60,7 +60,10 @@ The following community managers have been approved by the TSC:
| Name | GitHub Handle | Slack Handle | Company | Status | Timezone | Term Start | Term End |
| - | - | - | - | - | - | - | -
-| Benjamin Granados | [@benjagm](https://github.com/benjagm) | benjamin.granadosm | Celonis | Active | UTC+2/CET | Dec 1st, 2023 | Dec 1st, 2024
+| Onyedikachi (Hope) Amaechi-Okorie| [@Honyii](https://github.com/Honyii) | @onyedikachi hope | JSON Schema | Active | UTC+2/CET | June 15th, 2025 | TBD
+| Benjamin Granados | [@benjagm](https://github.com/benjagm)| benjamin.granadosm | Celonis | Inactive | UTC+2/CET | Dec 1st, 2023 | June 15th, 2025
+
+
### Statuses
* Active: Currently an active community manager.
@@ -72,4 +75,4 @@ Please join the `#community-mgmt` slack channel using this [link](#community-mgm
### Atribution
-This document has been inspared by the [DAPR Community Manager document](https://github.com/dapr/community/blob/master/COMMUNITY-MANAGER.md).
\ No newline at end of file
+This document has been inspared by the [DAPR Community Manager document](https://github.com/dapr/community/blob/master/COMMUNITY-MANAGER.md).
From 9dff0b17be458ac66acf9e77befd84f531d4ed51 Mon Sep 17 00:00:00 2001
From: Amaechi-Okorie Onyedikachi Hope
<51549388+Honyii@users.noreply.github.com>
Date: Sat, 28 Jun 2025 14:13:22 +0100
Subject: [PATCH 307/309] Add cm scope of work (#928)
* add cm scope of work file
* update gsoc timeline
---
...edikachi Community Manager Scope of Work.pdf | Bin 0 -> 77282 bytes
programs/mentoring/gsoc/gsoc-2025.md | 10 ++++------
2 files changed, 4 insertions(+), 6 deletions(-)
create mode 100644 programs/community-manager/Onyedikachi Community Manager Scope of Work.pdf
diff --git a/programs/community-manager/Onyedikachi Community Manager Scope of Work.pdf b/programs/community-manager/Onyedikachi Community Manager Scope of Work.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..13627b7b350cb1d72902a14b4961c35945e63b7f
GIT binary patch
literal 77282
zcma&NV{k1@6fGFrwv!v%wr$(Iv2C6B1~;~GW7~F4Y}?L!Z{DkVGc{9F(?7a))n2`J
z|J=RSZc1fwNd^{1b~wt#i?cmA77}I>CsSKEetsr(8#j9k5^6Cg2M2dY8#iwf1rtXT
zD+?DAH8ZE*79>uVBw9``b~JEI$}Udk?q>fbsMYLjOql*7BynJ2;~|l9aqO@(#GEHzpFDz+MBpp
zh+CLBng4f2-onw!&6N0DjQU
z4a(U^m5B|L4PP&f)d{4pPv||Y=*gx{(nv9Q7FC99eYla1)Q&H^>_pU+nFLdz7;I
z{eE|Y{PVRdyDsSeF657+_<3^^$er_ZpU^Al_W+*z{Vs(3*%jdjCwR0d^!<689=T%>
zuN?GK#Pa!!8t?o)If=9L`Ej=4)cbbzvE!GY(ED-yfqX;U^YeK-UFHS1d~}t!c+$%s
zR#p)KF%ya9$KOui#~5ySn`v}gm1y9=VJhJNy?CZ~LmKG${z;4sYCu0{3Wc}#Nzwl%
z^LtITs;7tl?&KG+M7Kc#$6IxIKIECAXD62eo3?OtOKakpgbzk|sM{~#dth|d?h=+r
z{~6InfmhI*pWDruLa@Clz}nAT*M;W&+{g>-;4Rpby#x&|?pFRw(XT9^tnx-?w7hn{
z1cYPbp^-CP4@tuKq)0q87FDeuo3&B4l=0jv(xwVRSe{V}VLqE9v8#$l%EUZpW)0BI
zrnNv!vxcrVcO+gZu6-iq&4?r$6*OU+oTwkm=1=Y`&3?-EM*PzFIT-kLCnU4e^KqB=
z^D)}%|NZdu_3(IAmXIeH{IU}$b^bE+?nzFWD?=kzY-|mn)Fe5Img)8XnJQ=J<870)
zEtrq!+n277()NZem71x=TxVQMK(Gqn)RLVDsJq%B_OXZoV3?3=SS!d^0*IDXKa%cr
z>UOw?EW_REbQk_`3tdPD1fLhR@DY|SPevmPJ|VSp%vQB
zWP;3dP~gUX&6(W1MqpS#C1$m+P+jzxxp;YiPo2e0n^ZuC6)fijU>Ym+rd&Ed7x;)=
z0+LfwCL!g}DMZ;q;CZD#B7WSgpLav$ltHH6zyuot;K1}m7dXqXOiy>b;E7X3*-3l@
z#Bhm}n@KrF+lwXdlqMhPcoO+c{y{YS{yg9@Lqo%L!)qhfkuG~kwI-5&e;n-tn9*;@*1E7@Qx+sMQ(9<){z<^w!Kwh!*U5Px3nA@BRL0oU3n2OLWu0^?`jK7Xgp
zmeq{>48ecDs#znU=p6Bv-r3BmPMu{co#ecK)4al>ik*8L0;yH#w}83gNVy3;lgSoR
zSoB~X-`&jW^yhMw?>WDISjpSD&aRsZWea#~+|Im^|8XVC7I=dLZ*pf_k7|=#rBzoQ
z8HHk3YYV}BVdp$x6j<6&T#K1cWgw(iWcv+7AML>GBEr+eh=q~-c{P#FYaGW;;l#@o
zaPHwLs%y)zrKjXdVM^DM2tdY(N3ui;-|UiQWx^kC=D6n8O~KVy`Onxpo1qw4=VWE~
zbG9oQ5@grPHjqop(i783p~PZn*h?s-l1vq@pF=vBu#Rxonj6Z~CmQVJF40LzXjyZENI1oa?N3Tvr6EFrri)|2%dyPPmoT(A8S$$lg
zVys;C{(jrtQixt!nr6=oH!#01MC8!|I<}D56puEIdGG1rBrZz)8)G|B#27@(;Jd%tq>dYo=ZxAtkr|lo+!&52r
zRMMhtbN!I?n@LjeDd0BU`QVU~r}FGdinO#AIupD9V1*ogqj@WYqN?<)I*}0C^za@1
z^5;k+S`lZ^JYj?ID6Ty-+SX-E1X`XP`wX2tDriOP{PhDMsRd(9Q_T_@&aD-CEaa~+
zmy*{@)HOgp*S2Iupf<->L33C{Z+hcuf#-zEIJ4mVif%>+3a{iRpFx?7)xDLrQ%|J8
zi>|LZ%7Fn9V<@Wfl>*@QxUJw_IMhXiRZch%eOzoaaFu&_ooUyfhGZQZ?Dq
z3UuwVu(&FN!+DoCfRv3x3Y1rp+huzl?0AuzS|$c=GLalwvy0o(lp(-Fa+(h)2H8s4
z4cc?g<afUOA{W?lfhj0_cKOmq>ZtN(
zmJV%?b68<{>yzn}f@SYrc?nEMkWvOze^)T|cQz+ty^SUVb+}Az`VQB$uqE}S0h?!-
zIl20_k9L~~c2Z7~TGE*uO>1?P_7!|KJrT9dJ7+GHJ$@bkdQVlv9+Aci8uU2tQ3y4y
zLoy7POqv7_C#9uW603k!Jrs5MV!y)89RUl_{M{%$MNJsLopc=?lcv
zScV3N1z6pxaoG{Io7Z+jHgSGvMycxlRkr(VeX|WygMO&G6^@7uQ^TRlxA1LSnE!HW
z5)yNiSmbD!9ix#WM7Um`mL_!OeF*2;6ANDevp9r=(hha|txwWQ&k4N+RhTOlY0Mpl
zZ`?|zq*9}kP%BaXR!gN)wq*n_LU{7G^|SH%$4`Og*JZqWGVrYdHrbP9P)db}RmwR~
zIF5BM{}pWQ%Gm$IB{y|%R!1%%R=FaW6L>t!cl+jEJh-0KgSV_;dN*x=FW^{}Zt3a^
z(g5C5@DjnD6xK!#{Yp4~w|)@-X6>-Wuhf`39yS!hw|}*kP}$=)<8{oHeK|WzNkL<<
zJrtm^QK}FEW692YWDiMZ3IV?reDrfTW=xo8tmR(au2%81JWqg@+
zOnd63fh7LB1~Ryp_Wb`gKrqA745|C<;EN8Omgat&2Qyg~W7#xU)LO#&?Juyx+5T>C
z&H;lYR$j*uJF6`C45rN!^AZ#lb?^Gn++fj7?d@Pq3)ZFA@Uh>v_*PlNgWg|D0&Cbd
zEBGDQEUl{8#IQ=
z_Bh4yEED8om^U9bg&_#Xn-=h`B?%83I9#?=;y711DE3^htRfxGK+J(v(!?8#MiLw_
z9d@`znDtYYH+~U)^=7K#FnW@N6XMdxp$k!SrfjXDY$f;N_{Aj1lQOH71M$bU+=#9*?h!`A))jGBlm4b#?
z2CKYGhlwAeq}cz3e{&jb`}<+ojc()+?ESZEAnX{^oOOo&fWvMc-61xCNB}9<>7l7j
zT9fBuzLDch{Ft-2k=8ZaXD>hS(4ie5%sCHLr`U&}Oel1y;@9HPi@thc_XT1K^~Y`TO)W|p5%xbLV>an354DhY>_f_k
z=KV1b`*dpgJ$+}S`lRyBp5{Z@4NA7`s#aRnq$&^^P4+N3u#k1C^X&BLakFApyswLE-SwGl9q6&7`riwD+
zXWB@p_}=K0G1d?d4Rv_l7xUfk@sQ%@tuf2N0guMfLE^j%Z!29*uGL3T2UYs040~nL
zak8@1=Tm$R>kkYI*?cX-D6yNN^ZzK{9*tj|H__7C3gToH8W2Io6z;y0W`9yrHn+-cToV=#Z|MAf^VZ!>BYv
z)mTC-pEn_)dUjTM_LO9c(!1y&rcuA7s(osTqyIjom>#Av&M8Zgxa9(;-<*Nw!cbWS
z5TML70Cx@7JwC01*s?nb+XKKV&J0ntqXv)fEG$hXH0}E0=+{ZsOtgyotm{NX7kwIe
zwP4M&s6Cp*3aO(*qC(I(S3Z-L`9hi(k`c{gDBBW`+`ze@eG$O+gU%Tgw8o#9CF1{J
zFQSik4$NVDfT60onMeC2*2`2UL>&$gdTdBIXfBp9?8Ez*_y>Zy>)mU<5uxz0ljIwL
zi`)Fyr(&l)&8(S%y6`pYcafe`q{<70ge^EH$yh04M~j)gYQ~nUsoN%e&!ar^`fVGc9iF^7t=Jlgm8(>NGs6^4eMt
zF#qY2t=)-y97cyp##Stf`ZB(^(l=Go%_t+EG#pPH79N7n(ol-wkx+?1MyM2$Psvp2TV
z!clh+uz|o*QuTHh(w`Jr8YZq?u!bGHtpN8fv
ztRd@jE%UwM%3ok7Rp-FTCT+Rt?I{u1IB^1RvP`!7nAoHXx+i`2J-TOnGs}?^d_zkIJ6t$TcJn%NgB9zCzFVbJ>WF1dRP@qL*rr`c+&Dj*XfaXh
z1i<0t;R}6jTbBpU1OJi#JwVp?S+Wtl8P|i|C;Fl!^TIP^SZPT1V@v?zJL>Er`5O&i
zcK1zYx7Wan^f!Z#ooR|~6v7uoP9~>EV3?cGI#0;a8Fe?&
zF!3rvy)l9=Td$vgoxf2K5!n=8M8qNCpli7m8&
z6*jF|Q$|oFnBF7j5rl6Dw%Rl;?1$8$c%}3^EOk=>^)zL^n7~!>ePbHrGzL8sT$g&f
zUtQJv#%eQ9hh(=kh&6Z%_-{UAD3#(j1ufYHRZ!PhR;A+=!4!q&gTj0(hc5PSxe+*a
zheYk9_J>|$#vR?0LSSXjE&{))%kj~8nzgD9Tc=wcH~&<>xzW)?VTF*k?=ytr&_k-cAt|8q${467w30x}
ztdh_WG3ki7iIx(8+{C)WT~AC65Vu+I5QjL!Xq5$rcTd2C)o{IH27rDQ`;wcb+ua>X
z+`TAt9!5L)6^$5T+@XgFgUVD*z_3bgbm7}>1$K%=mEGd&?pXxY&+xqx3x?EQz6E5q
z6M~$Lo!Q0sLYCD@(gcS^ey&Gu9c(4*IrgBV8;dWhy%kR~6QFR}4ZA~zhm%kG#!XQP
z(Px=rcg$QWu}^C;uA89Sv~6?@m?@g1w+Oyw-ZP7FIoc{ussh{8hBV9+Fte>E7UYyGmAy5*`U1c&r_~No&W;Hg@
z2M!E}owL3I+k~Xg?&fwIn>Mt^voxlUoBwAUp81OMPro?}QQIA*q*+eFiWhFW@Iu0(
z&l9s%RU%k7UQE@Dzn^6PeQJlX_U$kNTB7Wt+mkH)4Ub%E9Mq^C@Y2Y);dMz?#t3Ik
zaYm8N1zyAhof^h;Op%=)&}jx=kSt>T1R^RCNCd9GuipTn!g8UB4EZCLyRyrXN66uK
zp-7Q8nkd54fnxfM7J7X1+#Cz5Q<29Jkl2|5-uPhmvJF@$it8VcH@*@8b`VRDc-QBH3
zh1%8&CFNp|;{=N87fYnFSEOv8)7pjLG^$2Pl?Ew8MCmbZls0bt`UfR9p}Z0yaE4gHkbR
z8`xNhP5b>v6v^!=TpkEoco
zxrFDsjTES4Fq4iB2~4Y_>7g_11u$I>(Rl#KKHc{**)iS2qxj#EG`WI$0Qxi>{FbH5
ziWv2>9vJK7psO$Nf*ZNlBFjV&NBxZ&=R}(d?9^WiTv^#^I@7E*7Md<%7O8vgw@p_K
zkPZK?Hr6xx`PRj_U1S~n93Z-2+EmPCN3ib5wFl(yv|tp61`}BH&w^Q5rwWP(UwYiiWq0lCA37xaYE}f
zmwn|Ne*|GL_||DCc6ALbMQC1FvV?u%uzTplyJ%0@qfw!V-5(PK4N=f{LWJQR2gBhX
z@Q~Up#sA?L{4Wvye|ZNy|9=I19-jZZfPV!rA9eT=Qet7+Rn^S~&YRFnVh#&c9f7Mj_zWr{T6d4(L#&U1eEBz_dd@?HZ
z{V^CQ5GK2!6!;nVZQ?@^_;tZVocFVL6X^YVoPPV7{u6+c*Q!pWR(${ZA|&wnw&!U@
zzQq4MX*P5v#Xs^O)D?F(-TV1|_dk^U=~1J=S)rfn&axXJL4N;$*JE@6Dg=wqGQoiF
z2eJ1%9X3Iz>h2P_ue%4FH*8qZT1=GngOfntPtH=njzGZo#UOHCYeB$IUf?V8cMNji
z=jhMpo>Sh>WABgG=kp?Rp5PHqUeAG(AAu3ik3R$Z1Pm@?FPEg(_x6t8=Ur!6i?kHvqlKj^m!Nl;vk3I9|}>PDvX`EjT#;y
zE3WRj75kYMSAM!qFbO4mnUfSY<6dwqslP6`>On-&EUk#sLFF@m`8P<^42LWYVQ(wU
zMP8sg^CWXFe>{!8-YefNu0x~}khv?dA(ezdRLC4d2<7U#LB@JHT$M_5z?ErH{bjr}
z&0Z_+{KZQs<)4o%*BF8;>NH1KhdC9$3g|EwdCXakL+{3~z(TR|5lZGPDf9GFVv|(R
zk#~1)s?+8t!~jZ)(FfQ`Hb9%+6w29^u1^+U8mN{^HH!Vxq{JG|&tbeSZU^6Ng#sw^v9q<3*+J71Y=Hha9xqLZwQP(GF(auP
zpCJI;Hzt`Ur0I!wb9-VNu6B*)5LZ@Ptq-sC?5bb$G;P*p3`$tXFoE{W78uks!`X?Nrp$|Ls|~wc3U*-PaL1c#V4H9)kVyhL44SpQ{?l(ZI||=yllB(XH%}D3@*}F((bfRA~M!
z>J~L!Xq`lI$Jvl6vSVsgZWuwjG`#`in_}2JkqWpYT(U{xE;-fE9GY;smN>IH3wX^v
znD{f_xgUq`#L0GEU`4u~ux`y6v=>2qAm_9^_X}x?#`qe%N2;uL$sg7N>tZHtd7%4(7&aayP?3GG_a-(?o`Jgfe_|GZ}
zMbKJT9EH0p%ec#FD35=KOsF$#Gty9cD5)|`BR|LuUBl+tniQ19?S+urDQ(OKL2kPW
z>@Gt9u?>!5^@C7upkNNiT|^{b~j0=|AJ~zd&qJ
zsr06$D|5FPLq)!B3A(A+5i*I%&3gVZ-Gm@EHjb}SHCqluJn(Vy%h2eO1Tl7qf-i&`
z5(F#ZMG?8D@}IX_aXq8en~5tGbKMuvQ^w2<3xRju-D~CM_VPC(=c)2>?Ah&s>>wB1
zdPZ?yv$9VG2t%R9@gt@`yP9|mUw)@#s&qrOo=kzNkfEOFL79=>Vzo!Ke3*<&5ALDP
zhaQnsL0glZMhOwr?SJbUJ!!Z|*LaTl=i0%x7c*Wx;I94#;FW?7(lQ!Dc`eoD@))<0
zqX|){8zTd+OEuIo%Zui4#=hOyY8UM&abm9@#$R4AHHYc~cHp_5!cnr)MTWaeil_pQ
z0KA$-cqS`s)SF;bjGiI
zSKWxvH3H!S!AC&=7wF_d_#PPUg}s}6>C3F=#pg`b2_*{KnZi4l`0=-V#W=CE*sRF9J9*0AF*S2I0xTH=%ngRs4_-uGQ+E6|12v{$65v9>CTct
zT0J#0$9Kg`kU7#~{5`N&kTB)z$k3fD0*hGp+*w0C@FNSp`sKuzMAg{F$?T@2n_Tt#
zD+^BEZ6c$n64w`T3PYNK8p&X4AEn%hpgeO63vY4uE|fCUU?&B5+_tRi_SDf6A`sgO
z1?>S>;<<{&>n}}MOh&e-wXgQTdz$Hdat#4{Q4R^IH4Y<7DzW`V_9U7TH|PHY8Pe|i
zq(Kj=2eJA`+s|0$8n5&ww&&S^C*cihRAQz*EJCALfKi)btLHxlJavc@!C>(^oO^)5
z#Y2QHV+S{U?eqw3n-D@6NPSuR^VO6a#W5^#{*2N;yXC4Tw*L}MBZq(GIOVrV%gw*+
z>rA)H{LIo3UU6Mux~WQ?C?H{%k2r@Q
z$dZ`hv?KAR76)l(U5IFYvvfKcOe&SP+jEx{;8=~|l$p-(NkSoHv5nxIDlOx%Jq4s~jQ+QZ_xAifh4@M*
zyq-Bp+niQJNvn$A-kEl43Fy$pc1%CIwG0LAxK;H$y*S@8^|6cGYz0UeKCpF=rqkBv
zPp!3S_VBB$*k9rKnx)(F{kTfz$)ipBVwU4Y$}(d4*q!5b;`_5Zb5Me>`?BsL_m!$2w~#{rp5u%DJuz$GUS5m>``2nQSF|fcq8irM*T_BTg1u
zeJJ}?Wx%-Pw2uAO9)dsSn>J|^Mq6Wi-Vxy`QMbxAJr>k%3?#QKYb_sKsC><2fZC8J
z4S5}vt(k0s>vT!{l5oV(h`ew)i5iq0CwzbfkyH-edTvJ~luhx^N`=g7wT8s_)%wBe
zS5Mk&w;PJnw%+~=gbuybY7ycn)*0={UiHf)s*&*daASs$2poj{#E{;dz?H=zsia^r
z*_T_p`$3|UwM({j+U%;4*4Fy-W|wUIvSM^=z5`8B**(Ls8MfF8cNT3dM5C|8Br9KP
zyHta*t4^6G2CPLx@yW%74|4eG*zz7!T!By62hLZ$=^f59MVTzMhfzY6dQ=j>H3`tt-8B40iq
zRaMx1YcI-o6wNC0tND^eqJ#tkK&NQ{Ltl@gTFb*Ppuch8+M<8rYs#~E^70G|I(xBj1{bk_*ymhpbZ{`XZh=$Vg
z2x<7RV^juD&tF~}Q|Q_|e-c|MMmf;NRwNV&1qms;BcMzYgW27Kc>$+1`pz2>I=omt2Tg
zymCsFvDF$BJK1hGY{Tr|9mj>9JNG1G9JiG|mD*s%Byw)@Lnt3S%EJomapK@ROXf%N
z?kiO>{gQ`5DLAnVt}MDFsVY`i{?p94j7)6H8WsSl8Zr%9(h=0PBq_p{L-E^SzShtDbQp@^9}bj4&^42VrTnF>hUF#CP_953?z?ebxSSUk@P&b
zgDNR2T3by@F`yi+k}3)fcya#m3~Gr^AsK{rs14yGo_gpL&q%B@)htxNoxx
zl|sufM{1;TbE}r?CpofHMre;GW(=-Z{ia};UhurSggxG1&-26w9m{vpxqwZlnfcjx
zplUB+5ykiIPbnt4bG5$h%Oc9!K5Kww1&A&rNSqH=CF2yC0-oz>cvewjNaCcf&BNLD
z?>ojb=|(Xgv>5G&vC#`$VY7R1Q5k>NmD$KHBLpx9hz)iy(z=)Znk*C3J(Ww
zn?)rSEJxRRBeuny(cTDk8Kd4|ipx_&{rlf?v#p_tr&JyXc%`iK3&-s9Ios%4R?*jG
zYDxjM#UDQPHoZ2YV9AraS~nX7wOT6lG|!iOwt@{Fu3>hH7asn<%h?uU-IP`bCL;r(aql-HbN`>vtaBA2eKiTG}F4xq}S-;Q6df#}T1o#%NPF7f@GY|ZA$K0v$zbM~>LomKtiW%=?{NJ*x
zNsk#lQ*^q2Q&R|r+%d~$PIAB5rrT@KF{D(nn{VsdrfepkY>R&{BIoA*Vv3x(Q{j68
zS-r`Yt?{)@U+RxZ<3N3+6G;zKA+@=H(&Jb5qkOP$)m#5-XvmXf@Or97df0Xan5ej7
zUQ3j+1vUnS)s0KC#6nU8+#_q64{fupbVit9_@!b=Y$aOQ$BQ|eLaS!k(K-J&!o^}Y
zWM|Y3BMT^nZ}1Lzom;fNrmf=gw!@Qz`Gl)Q!*W(@`X{4J(6{Q*Rf}|lqhvvNh`!)`
z5L1yR;c-AYu7+4`$qsiiL^2H>Y8U{@GxdEIdL)}QpVLV(+FYP58un-CvO=Ti1Z%!X
z&CgNgG3s}!LdUy$Sdl&J#2>HPm8wl;r?Sk`<*&ixr1P~XrzON`T!g`qW3-mrm00vl
z@c14gu-^}^TK*?rqb~-V@An~SYiA0cc5Xt4c4KL=iEEe%?e}>K1k9ah`r#8U
z$VJ(jnKQTBpRj6zEB5PG=kdIjbGhZzt7GO>
zsPJIKhS4MrP8AgC!p-ilqgBNeNDB!{fgg)IAx*q)Eq&reFE!}csgLN8IcmIk`v
z+oN4J$r9pB=a@37I^TS?*)lBg&oq&1F+{G%ZoX|MRXumRZ{@h|{LQeS^HOMEo#Kx2
zL*=4~PPNSK2=7q-P`)0$2RUcEgCXhHC?SG%!>0_24lOgAyJ}_1z@IU8Tti}M4Ye|h
zRf$eNegy`EGa*ZrAxBOO4j)*_N$9jUVrG5D>_u8cDOAJp^9eVK{Ym7zJ0g37ee*tm
zRjBB&WJXH*hEF=F%xw5~FIe;%V~h1MSTn6`1L~S?vf9IHd__uCGG={+3X}m5#7k$M
z!cx4LO7w7l@lzMeGC#>ILM^U*#Wtg(@tjAzwzc$=rp};-on%%N{2|kPJ@enpWrBm_
z00i)ZRlBf=5jXKHM=bc0`0xEu#5F=BZ3gEYzTxbA4`d?R;rf3%11$fS9}NFrv;7=w
zY+V0$Yv2N4)*k8Xp(ZF;%rHU!
z;#O)IBGYP6;wr8}_7?pK6FK(tjqobeTsBDj^L^WkTyT6)w(}zt2orgCa}yBY^*Jc?
z{eF9V;`MqVL_G3>I00(P7#aAVCBTH-D}Y~6dM89gP9(I?LiBUXKk|2npy%Uyx=!fx
zo;>jL`RXHqm}ooD+v|acI7k%tXK66Km%s0!3aYYOWH{iJb>s`zSh|_agwOA7ajz3c
zEztM%-UylDFg*6Z>mFX`4f56N^K%h6rSZ|tO#b`+s`wKluI`4w!_cG?=uZU)xLS8!bu$%+yX}oFuMIX23u0v
zt|IEqN1=Pnx_H1Q)(iuufus&krpV#&7NaFKDWYZ|tw=uohjrGQAFY_4SXh4du)t0S
zbw2lnfoY4_ew+6KZn^Xr#!hqii>3(+{s{N3yrY~k_#HuF;c>hAdVR9FZoC^iKeNQ&e~Is|6Mo)bh`*nYW`ADl
z20inH{J*nJ4@0l6HU_;8KOc0hc~DE`SogdQQXb#xKRx^By`4PW*rk47GxG-4$b&Mg
zb@m%xN7z^AxZ@C+=v6FE$jw&vDJm%a9xSNGXN86cqU!EB54T$kDPJ>PKHj$50}en|
zN9EEXS3niU?Jryi&hJCiKO}IFjW$CATxlheze3gEz0MIUax(-iPMWJf&AOv$J87fW
z2bh_Mo1*JpE05XO?u*ca54v8>;VK&cdnR@Eiq1t-L?RGYlb$HDKD}Cx%hybF+&!Yl
z6f9cKX7g^KgPyEVE_6)|cZbbs=a=xF69BApwGnGCDaU!(h2UL-uo@3o@4^0^-&Mg@
zmA`-Ef0bn%&fS^sJ-vz=c)KT5Ot?#EdFaUmKChpnJkI%~inq6M4_S7li|_N)fPq#n
zD8M*2S})Tob97A|x4BN2*6$sQ$?zs?YUMweV47hwOdu31FKF=CT@=RmqUsL8+6dyt
z2ctgwp~WbIadqO55H};0kUK4B-6loQq-G`V+}Q9Mh)o+3NUb)oECXiyi8{T)#I86!
zZUf$9lg%6T;d*t}6TGII8wD#{oq3-Ow+wTadBhJDA_q2hKoc}p4J4MPNY0z3$8S})
zFJPAqA2z{#}95Ndfz`wyGlGKJfB@j}Y+hxE!JH`&i23?1b_icj%o|L`y#x&FsOBv*6+YW(<{npeH!59`8{7^x
zvxlw!2}f7nZ1!ie69Be9%&uEo_2A0y46W~UFYppm+8odUsH%_PeruRW?PTn*ckS41
zi^}_BjQ|
zEf1@#dcPUkI~^LLDIFsA&rVWol5Jrs*=H8v+qdxR`h}y^NUIlYD>pT?7WoZ{KsOASn3$dyl#*5{0Z~899*PRZV^_>x
zyD~a6Xj*9bJbd)31!CQec7#WYtTMNV>Z(4?U;t;ruqM?7*&@|jjpy3ETh1!z73^`M
zd@w=``|f?d&0DHLt;DR6OJ?YDx7EAD75Eb$S8uVIvZL(I6xEQ#(mYG3Up%IEOF#%N
zXK4;k?izv0V&|P8KrEmn?gOfwdopW>$92Zx4zr50`Z$zx#hy0zx2kNg#V<1dzYiyF
z%gqV}ro^6;56nt=Up^~Y$FMm_O7ZTBL+3R(%^a(un5X+ZDQ56#FKI=?llBjGW`A3~
zB*-Z+{u+VWNn;53pUI>A*ZWnib;ZqCiaEB#E^F8EWVb&BrSZc@4zU|>ly-piuE|wS
zp`DVNP8$UM(@YUyzWp<+8c-=<;5}d4G$x2++7;xeEmfSzom+=?Smtx#BfT3X@)wsD
zOPP(WVpvX8YxEG%0A_^UAzK0M3(MUts?|7`W`-ErJMmYg0Ox#-6fibo+)XVo*%yJk
zuhUg|Qk46p08l0*q}>f(!#ypOI`VS!*)E<+^ObDF+Z{oKp7(XeS=%5$5*ED0gL>Ze$Jn+@(4o|UVv;fokD{!<$-w>cWppGa#|OhYu+~|
z1d%VR+ml(klx8)GVLe|j`rz1x6iT5-i
zR0D^Ua!Ffr2$NpxE@NV`JN#`7%!mlENzJ&09~~W(
z>dX4(Ptx$k_L}-(27l^)e>Hg@Z!o#~eSA_OqOkh5PS`v!pjqG}c*$Puy4GV6yCC1V`jh{g
z%X~EHifXYw)8vkL5OagyJGWV1BeFKFDSOz0Xy}p4#pXKFo;JOdF>m8v{LGHYt@odd
zp_u7m8xvXrm_+TYaw=Hhq%GI3<@G%e2irpB;YbZp(y2=II-5e*LV`9nofR=YlcHmqV|Cg!}Rln4ak5{_orMOF$){hu^~YiqS|ABKy~f9@uB
zA|m!M<2Kp40daTrl3~<41NR8pFO`^F4U*7gY7N|^hV(#Sr*F=+WgL1O#@|QWaPYUD
z?K)RlgnM2T%vt=ae&y7HXs&gi_ps)XBbVq9feUkXlD!g73^AfFDRWiMc#nV>NwuTW
zOj_qmQ>bkUH)~iyCN$8Q>N{G4nNy%dZbWKSpnQdqcg3p`Elf;_#%yY848e*dkGt7%
zYHkH;CQ02r$;^?8S9B16rte4s2gSVqf+%hCg4&`#$J1!e*)J}@bAy*`d9gChB!rPI
zB2c$QxE905rtqH+8YZw?%9SUHM@vl!rVYOrtQWn7AiOEj!UqxtLdCqMeMG);Vts}N
zq5$xT+bdh$@3-VaV@@OUfx6{+dCYdHIB-l|pd!2EioU?(X5CdMP#NFjQv+|;u*s9}
znoZQ1O8n%2C3AU$WRwg_^AM7n&6G|4GA7y&6$;vfg^mFo@yBt*?BGsV(fou6?Je&1R
z-?Bk(fx$j=xISZ6!ZK$p({)^u-See8CtIXpdYxNiR-UGeTIi)=Cho)J1{C;;co}%o
zEYy`#<@vC6~`d~G1reQAoQ93z-9>cH4KbzZc@vGrNX|R%vRUp`5(2Rkq*ve3~==x2{j()qD
zR`Zxyx9C>gBK^fjwre;ujYAR;uE?!!NcAGQG_{5BUm~N?_*=G~GyUYH8L4YtSAoLp
z!4hWxxNx1Dc&klv02bY1!7MPO$@p^OaT3N4q3zP?lP?ZA9s8tcEMVCe?5JwdByB%t
z9iDd$zf<|fs1qz(4==XJ*~nQEt0}Q4r=V&6rO&KWgU?H>@DS=r5K-XAGsis@?2+)y
zJ&9-@QrSBnc~AvYiBB$^8PeDLCh|~;k>w+%K=|X1-@^3+Ei*LOx
zo3w|_e9?U7IYzjd-o8Of^mzEX+s7l|w1CttsrW@#@G^!{)Wv~r1(1UoJoE|6ho70n
zSr2E>QGx(&3gV$4z}8~Yv^iE1V=#YXpv|d8Re8sHVRz-|K2?Sg%UMcQ2w5daw*>Mz
zX&O~|Uz~|smhO5t{V>i^A0+PPuOSX83XL&dc>@XjKX`i!u&SCaY*-rU?l^SAp$|wS
zAR^t}-QC@t(jg^CBOpkKG)PFONQfLjkPZO>iT?olKD<6YkG|ja{oi$+YtNapXRp0x
zt$W=wd*AKQQrWA3Emq%wOaV3WeO}18R
zO-jAhhqKbHJS9G6L)G2QPrOK~i$Ryw_1nZ2gQb>`i5VM{r5fyS+uMj}^p>G+<{c!!
zmubT1ps7y3!(K)h+xzCBs+1>AC3FO-fPHVIQ*)HtdqJ}HK>_dQlSb1YtMcB|8K|`#
zCt7zdA{M;Rwk0b!wZQn|O!HxQ0-C;ce)avb87~|6-TJz!3ar-|E6I_YMn#Mj6C9xq
z#_hDE_T_FZ4_y0I6?VzE$=xj?TeEZh{ckY~7It`>Hc16(kW~ULX3YrurJ>B`t2qMw
zbv^k=d>TT}-29%8&ElY!Tzta+;P2tHx_2g12a@!k8<|rUIz7uT@;K@ENan{T?B>Ed
z;F3{uFwC~230RFG_EKT|B3zGoPv91M42bBxU?dgfF*I)TP9spu=uXT==SCH~H@$}O
zOflydJXkkunuWzLY`ISF4yhRAJ*JmJ4`3OWR>+qm(yittYxR9Z4rnD+zZy)Sfb9+w}Q3ozI|JT{<*pcdjn&(MZ_syGZk&B27^Q^FfcFbE(oSXF;*h
zJuI*i*W`pNp{T2T8CPR!X@oVoMoHo*6FRNASfx}e8QUe(5!fi&Tt~&t|GpRzpGi-h
zl!258S0_c2+zuaA
zi89&*8dQ_&Z0ZOG^g!2oayS$b@H58XAa8PRyur36+*eqrX={Y1GB+NtX>($B3Wtqs
zdFV@{H@=mn!R3VGAw;>@N1EBrf`O8$o1@B_f+sGmxYVS(RX8ln!*#%9c4yw=k;HMT
zos@SbCRv2)=jnRpCA=>>16DzulroYd8(^H*cch1M#P?|@L)s=OcOzeASBkuiP)zvvi)tvavDS14_zaO(p!;^PFiT9tWBj3hP0`
z$1?^#_f_d=z|N~Up;}>!#OWnXZVP^6PU_+5*+S>HVwqV}>ndlH68Is;_(l|X@`oe^
z3C_}T2eM}Q)3x#+(mz(0z1u>>v@a$Sl)g|R_Q&6RABwu9Uc`&fZu2OXAyuxGP~v`N
zSR8EbIGJpdG3JK^?*n5o`amZ-c?ag*+8B}X`i)awPA*C3Voa^YX$h6u6vu5wCy?$T
zo!4zdM`$K~>9iaxa$?(or;CIa==l}afxj3ay|M1fzYUPG^K!HQ*8r*ZsvQY0%6U8F
zztb3+)Dn@Ql
zI9P}K+^FQ}@ojMVt1Nx1_sOxoFJjlx!P%hUMOPnsR&pAb&yg`_74i}kn%ZhR3Y#X8PzZ`sngZ~6
z^|;0Rp&49Nkozn2!m!f46iFKnWkY7D;-O)&fVOG1D6WMA0bQv70~V?Qjx3Hq37r9GAnn(ypAxJ
ziyxH`u;a4l)D2Uh#L{qkXVF|SR!Uv*cydmP>Y$V!Sj#&ZeoVW0BE1V*YVOM70ThM5
zdU%{5Rzbs%Piw#h^W2>+tz-*17tN8F683)n8jwdz9x0tC`aIn>Rvbw54^2
z(Bi{)laR6{?F8`RdYe$Blu-Z``M$Vuz2+po)lN#4tGhE?+vcV&wY*ciQ4J5M1Cb|Wa1zw+!qxB0Wk&>5PI>V;w5*w-*Me|3SxxJCTuWU)W5~VNh`V~l+;mHRAM|^56
zYObGp^r|&J;TJzvs9T~L?WB1dR(TuXz+PgN2}Kz`RGU8PHB~WyV=QR2;-MZtq=5G6
zsl3vzQn;jPNS*ck1Fta7uSj~|9E@Tc&twXnw$~oKZG*bUf8riNAQJKPlg@?xq9yxX
zoHhQO$7GV+b$)Mmj_Ly}1-bM-=-Uz?e7W!Qg4-S8H6vwB+N<28nm9Tnm_?DDnLeE!
z>96iSPP7+$Fg-nO)>YOSHtqaA@1Cc)n)Amy+;tb-e
zO1mP*8YwsYR34*8S*|x0lC-0DA4Lo`4G@v6;6$hHyZ4T#P{q@Uc8C
z)#E1%Hq_l&n6@&H`D%NkN$%i9g5D6{ON!vmSihWPTzo*i=
zNNf@wE>g-akk!R5FO}j1T(-YTNNiF(fXl_rlpt%Ju}Rw7xm=!=_iL#{Kmb8!Y-E@%dksSH{2%-BW2(CO+&$SPm;rg!^3`*)MJO|Dclp
zmtA@_k^Q&&a{NJk{~tm4znuEN!Ik}c4E#4s
z?Mo9V0WQ(41X&I6I=T8y_b=?TUk2EBSr)8Dj@FhgeCCc;#%{nL*RyG8Y5{mT06ZKZ
zR$gvy4#)+NptE3gw(#OMbmO(;;^u*n!1cX;l;r~PuyTNScp$%Cm9+x8+VF9LEKT@~
zOnxrQ&dbgU0`dVNdR~<^NC?e<{HS5zGUGnE6^^XH#bzM=nk~8waDG%d!J`Svk1a`M7=*Hgq<(@bWZvHn%kA
z255h`-Ve##Kps{QABY=5U00Gh*f|U>+}u4(%v}Fon1h>xl^4jx4T;>FcK;jcT*E-Z
z#?%%^jU;2#w#v7p5JpGf9dk{4JS_+?YR(zG1kTdJE5;<+K^#>$=lqZG*ha{l9>8!L7Gk5WK4r2GzX|6C);>%;%i<#&+#
zXDOGO^lo96v9SpQ1OP3!&{tbZltrgi^URA0G632Q``)A;u0KQdFSWT599QT6
zRhydx1|jP!cqjp`{0m90sr$;pklZ!MuWAU%{S0#M-+}xe;dzthxPJ%oe-0J)8?nOu
zJL>*fnd^SyPi)EkXE5i!jH&Bj`Af_VOmP1h&VMQ9247xwTK@oAzZ7!=6Wo6W^k0g(
z!I)R){}*Uo8B+;xWeiAi-5t16<|b8g|1N(1=KsG;e$)TIi=Th?{|&O_`5hRqgPG?N
z`9J&r23uY}O#Ol5ektY#UGn@Hb^lV#4Zh_0Gf@9h%uT|)D)7Gm;L4gxkf+g0YXPom
z14%Bmxd{NC-v!G*d+ufzkmq;7^0zMFUpTr+#5}*l<97&LapP5cc|*>PsN?w^ApcFy
zjj-eW9n1ckoErhc`-jl}WxZ~O$Zy%?rxxbQpb)=bH6MVh>L>xOw7H1_$f(7?hs?jA
z;6~)}{u$PJZxHwuI)7>hcz=h50p8!5{HpWyOKol-lK0P$
z{Yx=70r_XZ{-v0kc>FE7{e+_{*FunU-9@=FEhKjZSHM-(Ah|1y-ROsdeiuA{L)CxK
za0BvJLp%RQe2^VOTx}sk*jE}~wR4wv(q_LjIAlEU8u?daH%b7G%Q%E2*QCgC1;p=T
z6M(CSVaUV9b&;#5QAqB($o2CK;OfZ&(iyuha@`#ST=m2tP3-lLS6v}U?)ti`_7#%5
zR^poE0au(0iOK6WndiF^uT{Es9N@}yHzO2uDgDw4|4Y5Do%Jt60smHK-5)~`pi9lJ
zZvFeGu%9h-ZG}JX-~P8P|I*-6%#{W|tb5gr{jzfd_{rqgUinok__H6b@$xICyd2fN
zY&QR6ksmy#{l{VP!=wKZ@i&gUo^w%gGKI_^$+_A>hNXdkE3ZQ^47l
zKey!U|3G(_5|!-jA>kqO*D&eT{LbYWImm33jH&14SomKG06azLCNGH}hq3xo)Pi~@h3TLOKLRAq_pAquJW
z<;)o9$_+PeeUmq@Z>`|!z<$jf9F09t@7gdpvmoGmOJ{?h0g@ZZPkSvhz)`5;um1>$Ap
z;^Vn|2>qo(*A)2OPFJS*VJE(;Ai1I458n7oJ5E-Bgxl3@BP~SDA3H@sCP>Yl3?YdB
zkFEY&GcI;cZb+c91G!lFI5{{kDe{-9T{G|x)vj#y!*Ewob3?Vu{3W6Mr5e|zYKAth
zKU}D6Y-nR?Xa1K?*Bwp3f6N8sVh3_S2#brA8wBEmc!yDN)O8c~1IynvxWY2u6>C7IkS(1c;rhdU
z4-79eS2p_3+}I6c{b0MljCI%41`={khDJ6wzj}ySb$;}F4=ecY%Z&>Ir
zWv`pTAIkm|Yga7s!$Mb6&hoA<5Wkp0Ch@N8@FP^O>+rpL*YkTf9_IM|Mz`XIE`~Pt
z=8*eBCgPpHPjz3@7$kSae~_7ULnmu#J2U&s+4k!Rg&)6MpEEVN+BOVgtM8NPKgbqv
z#m11x_@OS~2j8h#n!1}hL0HBNvcZ|%_rC~S%l_Lbh&qkc&L{gEf+QzB`jp11aqm~&j^CYmDKkpwEbUJ=}SB4oa>g!yW_p4X5+?to^I7B5Xt
zb4CzrS1{c^OG)^#XVjY)SODbJ%Es5NHeQf7-8Q;UgbmM@Gt$^l&$&*)=ui*PZf(Bd
z+jM4|@U6W=E~1VKXcKlnNphSeO_W)H|$6QJ$S`1&^DB$Lm&>*X<7H#ew6T=Ebm)f)do}JGWa9ee$Fc}
zY0!u^e%@?ZeiAKJqOBzBBV9fY9s7f3-aIKReYFPPOzwZ{q>)Ju-4S}sW_qw0ZQkhb
zyk*Xs-3+zzl_&M~BN!y41QV=@n6%0r7L_i^QG@4jQHC5N^_fEGSj%wp>KyS6$H@5O
z*5P!$VmWYrr@MXS%&kims
z0FP$b1QK=LDaLdDVV$#_k@CeJbYHDa^WAk>ard*M#Q`DY&rTTXLT?KJtukL1N?pg>
zln8l}6Qe>K4bU1^smms#QgkU-IteG!9gX`8w?#iE%t^=4nNEX?luc3Y7m!F4eTYe>
zx2+%-&kPA-5L63vR$N}JS&)4RWfy`;e;0Ji9-77jn?95yBsd@15En&M105SvF6;>+
zTX)t@s&b)ok$PXCV08}&c~bJFUhw-pk%$gHAW^Rf_Jg1=`J|~`4@WzCv#Q8pU0eM~
z4uNowyB1V@_a^+kU!P9BIy)sgt>$IF7!*wSh`fq;;tpQBaET_{HQTkejM%T;ucb|C
zZiw}0e^PGHD4@QTa_6Dr$zk5duuoyzF^w7fX646fgZE{|r%gUsXBlW)=NbBcWFOfL
zTSPUFU9aBi*?KLQ)r#&xzH=}*kGNF(ve;ha{z=m;I~pgUJSCnWmF&p9#Y`OzZ}x@U
z+Y?V;?a*&Ac8cSbD9!uN;~tUD!s2()Z!{7;SB-5zQo?;iqT+Bn9fhUo(B?zsKn}^s
zq65{lZUe#8xch#vD>N5q*udPFe8R3!0s=`vBb&Q1u@SqNMnmF|v=*D)t)N0H*^j;_
z)2qVrB@n4ABV8G2*9*jj6nAJhuH@c@ArH+P;4lK?^(hu`MU}2N2(`Y|od94&C4ztAQ(+<9udwe@jr4g?`iAA
zgh<6Q8XfPrFsJ)TifRi)NT8Z8b_d&%uz2u1j!Jhvhf|g{EGq#<(rBQ*m4FGN>gqTm
zJ^&l=X7IltoPhi%Ry$~yNjuh@o`3E&MAc=q}#MrPok|oc{`46cxot`j77FjvYJ_dg)CO-
zxVhYCoy$$Yw$KB^Sflm>$FHj40ws0tn<}e3hcg-oJ5LgGk3~~;+x=vLb9Y`G4^3kP
zv#`8}A0M9$dv<{O{y?_ByEjsFBX(|doP>_oAWf79o2UHEsad$x)1+t7!H#?almhl=
zJ+@6;FAf~j9ZX9nR+PPy5IT4{n*5ZUK{(X|h>Z`bU(bRA4zQ~>_R2)Jr?@3x+%zf}
zdbfZX6SsqRhq^bET?Kl^G|L=28Ah;p3U(}TB0L<-Fr>ywdihj2fGt?>URT`ZYSlti
z>M;jL4aE<-+OD&RYw#7u%REnYa5!@hz`_vPJD8%Gn4rnj8FYV{^gvE7lIY#nlEpEL
z)|!OKh-YY%IDMe(mBDCuojF;A@EI1-m;~R^kk*_zjv|67a->?gxzWl_l%a0*SbMoo
z!9c1)>^BP*GTF~+Gw05UR!r3D%G#H4JhcgEJn1IWMw(ci*7Bwnp2lbMQp@RFK*Yay)&rJl}s{YdOaw$Ip~jRxO~KCfBp+IxGe+TVfIR(pr(8O(1lLV>qlSJ^F%6
zr_{U$4(Gm}ND!){%uFecjiOk-zsyAC+Z@q1IRd?<9xj>8g0GGeK2IIzn}2#ulw;Ty
zu!u`l?>PSEVEtj;8j%82rT#|@G@c53ZQ-^%fdu7PqUn^W(?*-ZjSCtm}_%Ep4F^
z?uKP)IbeP1$G}lTqH+rvnBKjk^3-kN%`#d2X|OdNx4V+q`m|*IMt?{1axNg?mCWiB
zrBvjnBwScH`*LNAs)T}!FB$ci_Mmg~rep)sR!;^Ihc+HR;Xr2VDn}fZe7yu_@5iA^
zh*X=&KTk-{6X;&kc+f89Je-HLT8^C?^i^8uwix~~Cd*gyh%^*2WU-L#F|{c)UyrAJ
zqgYMJ?*Rxp7Im?-lnZykv`+eadrN6R6qbVUq}K`SNi#KmRIRYW^N8onSoM3ol;d!xmW4o;UPB>cgRFTcAhmpmBhim2K^mNpFTB
z3xs7KRm+$2!t*AIefAc5AMafkk4NnLd&w>${Hd+{o&>{~ca|2@m%Gx6vSae&qr#SU
zmckvN_FpoA^xeKj;YY+v<5OEDeWlAopc4?sd736b_wat>zHXKe@L0Q^kII4%waZgp
zv>fc^fuS&KJxvS=x+HS>L3#Tc&}BYW-$+h%6zSTY_>qt8n}ff$`(WP
z4e>c2SOhTV0)TKyha-6Q{)=LG{^%DBvveCcbGVU5uzPn1|CJ
zJGyoXwxq^>b&$-wI}hpo_1ei$7xukXelOxSQg46k?X!LH6ZSLWGr5Ei8^fBKdmaiA
z$R9fWz|LcolHGv|0LN^Q>Vt(>Dfd_IVHfum(-p528)sS#Gt0ItBX7D+zik%Y$2~mb
zgNpQw^e8|!RS!>c!F5`I@<9CLM_1Kh-9L8Gfk_^+*n}j6Md=CJVjLGC8X#~IdY&*u
zJDJG6G`VEwMD7`Jif10+{78$$JLTPYqziwJtoj7^zF9N&_J@7d6EZ=O`1$@1Vj2-h
z!69RvDqv_ss1d^_HDVgE*=?%tXV5r354r0gTZFW-!^
z9bRN!thdUtTI8Z6&MhSS__2m_?Xu®n~_fo-x|&Y|w6u*)WOGR{JOu(?*|n`m!f
zv|S;ZBMn~=oF8Qnp*dNPYkEY>0=WVewS(@13bMZCBE7K@TV2%{sxzgh2(JdBYm~&{
z4gqTbmn7k_;00tCf>TU+h3cd98WFG9uzBe>l3Abin!{rPa_TeX^0UUEPGSVm^732t
zp&FBA`msEcNGQbnxr>4-LfoIoq~B8$cip34#L9@F?Ykv)Yci^CzTm<}G@0=T+b6?A
zge$6D?CcGy`$CiuTwVg*yc8u(yW}SABc9ASt!3JjufzeCZECaTOpd}{iorT%p4e_!
zsQf;-ncxLg2bA;M`uAHD3nU-W3TCIX2?6{vEAHWe(Ykcu;}>6KA*{^D9itSRkS}X)
ziOsGettBbVzLovlJ``lFu>K)4hK`r6T3#~UiseJ3Ryls(
zKHU+?^PHtcq5!Y_+y@=cUW9)!#5)8MWcH)!1nMe;W;W;@!R*}$*D!z`pp6IU5^pJB
zALZXaNl_q3AjqmH`V#8v(Mw(13L{^QLLi9;rXK>u3ppe?D&(dI7<+^x8fCW*OF5$F
zlrDUl_8QSRuTZI;JP_ucC?<^KL)9~{hW5HoL@K2MjD1=Jm*Z5X
z7CfWOWYrM#2zOtrA{khsxO2o#umo8iX=2lwaAa!J7~yPlkpCU|XOt2v!gIDpdoIQV
zuL9>X-`%w7G*i;JG>SFR#3^O%gjn;#s)@)W`8QGUIdTX|l5Z>zJ}+d(o}3>Zl*~-B
zXVAxFzN*_-M>9uECz2_+*AR+fLsMWUdSEqAuSM
zPc_E$h&L}cC#bQAzJNZO7Vg_S1GH~x9acSx_skpE&RPy*S1&)67cYD(E2JCj8#5sy
za_scuC#N>EM!`JJcbWEZygTgV8moEdE7=LCrP(x5;bA@l!@o=fPgokFtG<6Ltcyxq
z+2P>!&20ZO%jzKu2n+k!wt(OrsyVGf#UzxZ4-vlW8gUKVjx&HW>Oy~z77u^n?#5xI
zTJ+QiW{yD@h31ffV_q3|=I*Os_Ki$YvIF%qiR|fhUWuRb0~*_XU;A5qTy*2}AsIv0%YHI=yNYw#
zeZJBiWHLqjjT8;R`lI33g550Q5fetZqnAo)olRhu+z)<|VUwFHn+PxC#rK*!h=qm)
zdFS98wH34P_iwrd-*%Q0X0`=n61tnI#
z86H`joT!p{6vCXG*rtQokzc-uSvnT^uPhfOvZoC|u5oe_3ltDafbQ=~3<<(u6jIG1
zd^tnZ&ym3)3-c5js>WQaj$<$3Q}7_tiM!o}%Ww>_rlxsgURoM9<5Gl#LIl;oZ85ni
z%dOCzXQ5(dGO5o&I7orm&gb;6IuoLx=wFaL0mcqxtF?~UwbuaIbhJNJbK%Xdn7A
zLDeknfX4DiFYN{!)bVj}0??hGfBL+`ovS?6?u<~9m}65P8fxAs?BTHbl7gfbK5RbW
zK7!b)WpJ4TU~VoDCTB#<{KLyYn2z}8K~^p*v~k39?at*B{prO05L=X$Grh9nTi{cO
zj(HLx+S8=m05iBV!p!8{g3$b$g^4K`upA{duchm8eh-H&j*Buj<~c{0^E+;%?wVJM
zB#tOCMDV~0=&&6BvS$@o+ajjLueF!66f`v>t;tK71@R}X-qlM6q%g-p{8g0%&UTF@
zQsuQ_mdZvnUca>#Ci1A-LLPfW<|IAO#D3^6i6T*0^7ypYo|wfO1-aq~%S5J?T>
z&qJd79wBEVewY{g4CTHjH5)<}B80~IGV7F1t}A>Loe;4OfK9aYA&>ElNaW3N}yZf`oXoy<2FGg%l)+iXlC~TZXrB
zC`h^u8F1+0#R*dYF&%)APly+RN?K7h(62Dm#83=zQ>aLScC-nQaHS9Do@0T5rD7lw
zFz*8k%(BlHKEa1;HB0O%sbIu)P(?UV2$iVB`&$i&ufYyDZ)oB>ElTCjNk>8x5sCAm
zz@8*=fzB9lp<{@B9nTT79$|t#LiD>}L2RC|p@t}((m*`030jE=cIOvEfljmZfOHlh
zCRhcHEkGKPErem9Js;gws52Ur4L^)H^N8jc*Go$ob0h#6V`Rwzubwg+6`vv-W+F+y
zQwMEDRC^Ek5Df|31H=Z?0FlAPBzo|5n5+SOi1?keONRS0%M?1WUoct2qLcFqs~vB5
z7CSI>nv&?DrBUdhAt&YKPmag!+}8-%VMMDA>p}E~lSv9671oY&fD2~=?=6+oAf-~Z
z;#G-wkm^M4c%i9xsUq43lqdU#5`&3CtTE2v-gP2{tQ*jD9@HR#;hXTlvLtgTlT@v6
zYINuY@$N94vJO<8+I*+n71DmtjU8Gcja^u>IXGU!fe#Lxo!;|!Azz(5
z$Zf=$2+v;0&-)#@?iqUobg?)PccL|sf`c9CI>YB#ZB`7?$OBtymlT^2z-mqSU}MCK
zklgjar-&A4DW
z59VVifnhMK2Q-+o2Gx*PAhHG_SFDK`4D}wSU9<_`FWP~;J9)bhe_+0@2F8%hh0+JD
z8AAyD4(5x19l;~P4Y4Cif#4mQ&yq(R;ngDYd+|Gr8