Skip to content

Commit 590341d

Browse files
authored
Merge pull request #10 from json-everything/net-foundation
.Net foundation
2 parents e5122ab + 0308d36 commit 590341d

File tree

8 files changed

+277
-1
lines changed

8 files changed

+277
-1
lines changed

.github/FUNDING.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# These are supported funding model platforms
2+
3+
github: gregsdennis
4+
patreon: gregsdennis
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: gregsdennis
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
otechie: # Replace with a single Otechie username
12+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/SECURITY.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Personal Information
2+
3+
Please don't share any personal information you don't want _everyone_ to know. Once it's on the internet, it's there forever.
4+
5+
Even editing personal information out of comments doesn't remove it, as comment history is available.
6+
7+
## Secure/Privileged Information
8+
9+
Please don't share any secure details, such as passwords or other keys.
10+
11+
Please don't share any proprietary information or code. If posting examples, create a [minimal reproducible example](https://en.wikipedia.org/wiki/Minimal_reproducible_example).
12+
13+
If for some reason secure information must be shared, please arrange to DM me (gregsdennis) in Slack (link in the README). I will not share any such information, and since the workspace is free, any messages will eventually be lost to the void.
14+
15+
## Security Reporting
16+
17+
Please share any security issues you find by DM'ing me in Slack. My best effort will be made to resolve these issues.

.github/SUPPORT.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
If you find you need help with any of the `json-everything` libraries you can:
2+
3+
- Join the [Slack workspace](https://join.slack.com/t/manateeopensource/shared_invite/enQtMzU4MjgzMjgyNzU3LWZjYzAzYzY3NjY1MjY3ODI0ZGJiZjc3Nzk1MDM5NTNlMjMyOTE0MzMxYWVjMjdiOGU1NDY5OGVhMGQ5YzY4Zjg),
4+
- Post a question on [StackOverflow](http://www.stackoverflow.com) with the `json-everything` tag\*
5+
6+
For feature requests, bug reports, or documentation errata reports, please create an issue.

CODE_OF_CONDUCT.md

+128
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement
63+
via Slack (link in the README).
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series
86+
of actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or
93+
permanent ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within
113+
the community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.0, available at
119+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder](https://github.com/mozilla/diversity).
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
126+
For answers to common questions about this code of conduct, see the FAQ at
127+
https://www.contributor-covenant.org/faq. Translations are available at
128+
https://www.contributor-covenant.org/translations.

CONTRIBUTING.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Community Engagement
2+
3+
Questions, suggestions, corrections. All are welcome.
4+
5+
Channels for community engagement (where I'll be looking) include:
6+
7+
- Issues
8+
- Slack (link in the README)
9+
- StackOverflow (tag with `json-everything`)
10+
11+
## Submitting PRs
12+
13+
Please be sure that an issue has been opened to allow for proper discussion before submitting a PR. If the project maintainers decide _not_ to merge your PR, you might feel you've wasted your time, and no one wants that.
14+
15+
# Development
16+
17+
## Requirements
18+
19+
This site is a typical [Jekyll](https://jekyllrb.com/) website. They list all of the requirements to run the site on their page.
20+
21+
The template is modified from the [Chirpy template](https://chirpy.cotes.page/).
22+
23+
Once all of the dependencies have been installed, you can run the site with one of the `run` scripts in the repository root.
24+
25+
## IDE
26+
27+
I use Visual Studio Code with the extensions it recommends at you, but you can use whatever you feel comfortable with.
28+
29+
## Code Style & Releases
30+
31+
While I do have an `.editorconfig` that most editors should respect, please feel free to add any code contributions using your own coding style. Trying to conform to someone else's style can be a headache and confusing, and I prefer working code over pretty code. I find it's easier for contributors if I make my own style adjustments after a contribution rather than forcing conformance to my preferences.
32+
33+
## What Needs Doing?
34+
35+
Anything in the [issues](https://github.com/json-everything/json-everything-docs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) with a `help wanted` label is something that could benefit from a volunteer or two.
36+
37+
Outside of this, PRs are welcome. For larger changes, it's preferred that there be some discussion in an issue before a PR is submitted. Mainly, I don't want you to feel like you've wasted your time if changes are requested or the PR is ultimately closed unmerged.

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021 Cotes Chung
3+
Copyright (c) .NET Foundation and Contributors
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: "Joining the .Net Foundation"
3+
date: 2024-06-10 09:00:00 +1200
4+
tags: [.net, announcement]
5+
toc: true
6+
pin: false
7+
---
8+
9+
That's right! The `json-everything` project is officially a .Net Foundation member!
10+
11+
## How it started
12+
13+
### Inspiration from JSON Schema
14+
15+
A couple years ago JSON Schema started the onboarding process to join the OpenJS Foundation. Joining a foundation means that they can lean on the experience of other members for help on things like governance, outreach, project organization, etc. It helps to have the backing of a larger organization.
16+
17+
However, while the specification group would be joining the Foundation, all of the tooling built around the spec remained independent.
18+
19+
Sadly, the OpenJS Foundation onboarding journey was interrupted, so JSON Schema is still independent. We'll likely try again, maybe with another foundation, but that's on the horizon for right now... and this post is about `json-everything` anyway!
20+
21+
### A push via JSON Path
22+
23+
As part of the JSON Path specification effort with IETF, I reached out to a lot of JSON Path implementations to let them know a specification was coming, and I kept my eyes open for other places where JSON Path was being used and/or requested. One of those places was a [.Net issue](https://github.com/dotnet/runtime/issues/31068) requesting that _System.Text.Json_ get first-party support for the query syntax. I posted about _JsonPath.Net_, and [one of the responses](https://github.com/dotnet/runtime/issues/31068#issuecomment-1992390964) intrigued me.
24+
25+
> That is awesome and for my personal stuff this is great, but professionally, I might be limited by corporate policy to use 1st party (Microsoft), or 2nd party (.net foundation membered), or "verified" 3rd party, (Newtonsoft), libraries. - [@frankhaugen](https://github.com/frankhaugen)
26+
27+
I had never considered that a professional wouldn't be able to use my libraries because of a corporate policy.
28+
29+
They go on to say that many of these policies are driven by "auditing agencies for things like SOC2 and ISO2700 -certifications."
30+
31+
As I created these libraries to help developers make great software, this barrier bothered me.
32+
33+
### Investigation
34+
35+
Looking into the three options mentioned, I first discovered that I am not Microsoft. (This was a devastating realization, and I had to re-evaluate my entire worldview.) I'm also not a .Net Foundation member, but I could look into joining. But first I wondered what it would take to have my packages verified on Nuget.
36+
37+
Verifying packages is pretty simple: you just need a signing certificate. There are a [_lot_ of companies](https://www.google.com/search?q=signing+certificate) that provide them... and WOW are they expensive!
38+
39+
So, .Net Foundation seemed to be my best option. I researched the [benefits](https://dotnetfoundation.org/membership/participation-types), the requirements, and the T&Cs. (I'm looking for links to all of the pages I found before, but the site has changed, and it looks like the application process now starts by filling out a web form. When I looked into it before, I just had to [open an issue](https://github.com/dotnet-foundation/projects/issues/new?assignees=sbwalker%2CChrisSfanos&labels=project+application%2Cproject+support&projects=&template=application.yml&title=Issue%3A+New+.NET+Foundation+Project+Application) on the .Net Foundation's Projects repo. If you'd like to join, I recommend going through the web form.)
40+
41+
### Application
42+
43+
They use a very extensive issue template that plainly lists all of their requirements. Fortunately, through wanting to make my repository the best it could be, most of the requirements had already been met.
44+
45+
I had some questions about the IP implications of joining, and the Projects Committee was very helpful. [Shaun Walker](https://github.com/sbwalker) answered these questions to my satisfaction, and [Chris Sfanos](https://github.com/ChrisSfanos) has been guiding the application through the rest of the process.
46+
47+
### Acceptance
48+
49+
The Projects Committee decides on projects to be inducted on what appears to be a monthly basis. The result of their decision then goes to the .Net Foundation Board, who ultimately accepts or rejects the application.
50+
51+
I was quite pleased when I received notification that my humble `json-everything` had been accepted.
52+
53+
## How it's going
54+
55+
I'm currently finishing up the onboarding process. There a [checklist](https://github.com/dotnet-foundation/projects/issues/367#issuecomment-2155296470) on my application issue that details all of the things that need to happen (or ensure have happened).
56+
57+
I think the biggest change is that the project will be under a [CLA](https://dotnetfoundation.org/docs/default-source/default-document-library/contribution-license-agreement.pdf). I've read through it, and it basically says the contributor allows the project and .Net Foundation to distribute and potentially patent their contribution (as part of the project). I'm not sure anything contributed to `json-everything` will or could be patented, but I suppose it's come up enough for them to add it to the CLA. Outside of that, the contributor retains all rights.
58+
59+
I've also moved all of the related repos into a new `json-everything` org, and I spruced up the place a bit, made all the readmes pretty. GitHub has done a good job of applying redirects, so everyone's links should still work.
60+
61+
Then there are some housekeeping things for the repos and their public announcement, which will come via their newsletter.
62+
63+
## The future
64+
65+
<div class="video-container">
66+
{% video /assets/video/star-trek-exciting.mp4 798 %}
67+
<p class="video-caption">I like this ship! You know, it's exciting! - <strong>Star Trek, 2009</strong></p>
68+
</div>
69+
70+
The future is bright for the project. I expect to be working mostly on the new [learning site](/posts/learn-json-everything) by adding more lessons for _JsonSchema.Net_ and the other libraries.
71+
72+
I've been working hard over in JSON-Schema-Land getting the spec ready for its next release. Keep an eye out on the [JSON Schema blog](https://json-schema.org/blog) for news about that.
73+
74+
And hopefully this means that more people can use my work!
75+
76+
_If you like the work I put out, and would like to help ensure that I keep it up, please consider [becoming a sponsor](https://github.com/sponsors/gregsdennis)!_

assets/video/star-trek-exciting.mp4

411 KB
Binary file not shown.

0 commit comments

Comments
 (0)