Skip to content

Commit

Permalink
Add governance docs (#46)
Browse files Browse the repository at this point in the history
* Re-order sidebar, reflecting the stability and popularity of the implementations
* Add security policy, inspired by other CNCF projects
* Add governance policies, again inspired by other CNCF projects
* Add contribution guide, including RFC mechanics
* Update README, moving internal architecture to `swizzling.md`
  • Loading branch information
akshayjshah authored Sep 18, 2023
1 parent 241647c commit 8cce233
Show file tree
Hide file tree
Showing 18 changed files with 480 additions and 80 deletions.
3 changes: 3 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Community Code of Conduct

Connect follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
59 changes: 59 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Contributing
============

We'd love your help making Connect better! This repository houses Connect's
website and governance documentation — if you're trying to improve our
documentation, amend our governance, or submit an RFC, you're in the right
place.

If you'd like to make substantial changes (including opening an RFC), please
[open an issue][open-issue] describing your proposal — discussing large
changes ahead of time makes pull request review much smoother. In your issue,
pull request, and any other communications, please remember to treat your
fellow contributors with respect!

Note that you'll need to sign the [Contributor License Agreement][cla] before
we can accept any of your contributions. If necessary, a bot will remind you to
accept the CLA when you open your pull request.

## Documentation changes

Most documentation changes only require updating or adding Markdown. Fork, then
clone the repository, and make your changes locally. If you have Node.js
installed locally, you can preview your changes with `npm install && npm run
start`. Otherwise, you can open a pull request and use the [Vercel][vercel]
preview links. More complex changes may require consulting the
[Docusaurus][docusaurus] documentation and understanding [this project's
component swizzling][swizzling].

At this point, you're waiting on us to review your changes. We *try* to respond
to issues and pull requests within a few business days, and we may suggest some
improvements or alternatives. Once your changes are approved, one of the
project maintainers will merge them. After your pull request is merged, the
production website will update automatically.

## RFCs

To propose a change that affects multiple Connect projects (for example, a
significant change to the protocol), open a pull request that adds a proposal
to `docs/governance/rfc`. Use a kebab-case filename with a three-digit prefix,
like `047-websocket-streaming.md`. Choose the next available number, and use
the [RFC template](RFC_TEMPLATE.md) to structure your proposal.

When writing your RFC, be brief but complete. Get right to the point! Assume
that readers are familiar with Connect, HTTP, gRPC, and (if applicable)
Protocol Buffers. If context on other systems is helpful, include links to
references.

Once your pull request is open, the Connect maintainers will review it as
quickly as possible. Expect multiple rounds of review as maintainers ask you to
provide more detail, clarify, or amend your proposal. If merged, your proposal
will become part of the Connect project's official documentation and any
required work in other repositories can begin.

[fork]: https://github.com/connectrpc/connectrpc.com/fork
[open-issue]: https://github.com/connectrpc/connectrpc.com/issues/new
[cla]: https://cla-assistant.io/connectrpc/connectrpc.com
[docusaurus]: https://docusaurus.io
[vercel]: https://vercel.com
[swizzling]: swizzling.md
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2021-2022 The Connect Authors
Copyright 2021-2023 The Connect Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
14 changes: 14 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Maintainers

This repository is maintained by the combined efforts of the maintainers of the
Connect implementations:

- [connect-go][go],
- [connect-es][es],
- [connect-swift][swift], and
- [connect-kotlin][kotlin].

[go]: https://github.com/connectrpc/connect-go/blob/main/MAINTAINERS.md
[es]: https://github.com/connectrpc/connect-es/blob/main/MAINTAINERS.md
[swift]: https://github.com/connectrpc/connect-swift/blob/main/MAINTAINERS.md
[kotlin]: https://github.com/connectrpc/connect-kotlin/blob/main/MAINTAINERS.md
115 changes: 43 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,43 @@
# The Connect docs

This repo houses the assets used to build the website and documentation for the
[Connect] project, which is built using [Docusaurus].

## Running the site

Setup:

```sh
npm install
```

To serve locally:

```sh
npm run start

# Also:
make run
```

## Publishing

The Connect site is published automatically on [Vercel][vercel]. Any time
changes are pushed/merged to `main`, Vercel's CI automatically builds and
deploys the most recent commit.

## Custom theme components

The Connect site uses [swizzling] to customize several Docusaurus components:

- [Front page navbar](./src/theme/HomeNavbar)
- [Front page navbar item](./src/theme/HomeNavbarItem)
- [Docs navbar item](./src/theme/NavbarItem)
- [Footer](./src/theme/Footer)
- [Search bar](./src/theme/SearchBar.tsx)
- [CodeBlock](./src/theme/CodeBlock)
- [DocSidebar/Desktop/Content](./src/theme/DocSidebar/Desktop/Content)
- [DocSidebarItem/Category](./src/theme/DocSidebarItem)
- [NavBar/Content](./src/theme/NavBar/Content)
- [NavBar/Layout](./src/theme/NavBar/Layout)
- [NavBar/MobileSidebar](./src/theme/NavBar/MobileSidebar)

To swizzle more components, run `npm run swizzle -- @docusaurus/theme-classic --typescript` and select component you want to modify

## What lives where

In general, the site follows the standard Docusaurus structure, with swizzled components in [`src/theme`](./src/theme) and fully custom components in [`src/components`](./src/components). Some additional things to be aware of:

- The core logic for the front page is in [`src/pages/index.tsx`](./src/pages/index.tsx)
- Components specific to the front page are in [`src/components/home`](./src/components/home)
- All text for the front page is defined in [`src/components/home/text.tsx`](./src/components/home/text.tsx)

[connect]: https://connectrpc.com
[docusaurus]: https://docusaurus.io
[eslint]: https://eslint.org
[vercel]: https://vercel.com
[swizzling]: https://docusaurus.io/docs/swizzling

## Vendored libs

We've vendored out `crt-terminal` in order to fix a focus issue on mount. We have added the prop `focusOnMount` to the `Terminal` component.

In order to rebuild the package:

```bash
cd src/vendor/crt-terminal
npm install
npm run build
rm -rf node_modules
```
Connect
=======

Connect is a family of libraries for building browser- and gRPC-compatible
APIs with Protocol Buffers. If you're tired of hand-written boilerplate and
turned off by massive frameworks, Connect is for you.

This repository houses the [connectrpc.com website][website], which includes
Connect's [governance] and [security] policies. It's also the home of Connect's
[RFC process][rfc].

For more on Connect, see the [announcement blog post][blog], the
[website], an [example server][examples-go], or the [protocol
specification][protocol].

## Ecosystem

* [connect-go]: Go servers and clients
* [connect-es]: TypeScript servers and clients
* [connect-swift]: Swift clients
* [connect-kotlin]: Kotlin clients
* [conformance]: Connect, gRPC, and gRPC-Web interoperability tests
* [examples-go]: Go server powering demo.connectrpc.com
* and [much more][github-org].

## Legal

Offered under the [Apache 2 license][license].

[blog]: https://buf.build/blog/connect-a-better-grpc
[conformance]: https://github.com/connectrpc/conformance
[connect-go]: https://github.com/connectrpc/connect-go
[connect-es]: https://github.com/connectrpc/connect-es
[connect-swift]: https://github.com/connectrpc/connect-swift
[connect-kotlin]: https://github.com/connectrpc/connect-kotlin
[examples-go]: https://github.com/connectrpc/examples-go
[license]: LICENSE
[protocol]: https://connectrpc.com/docs/protocol
[website]: https://connectrpc.com
[governance]: https://connectrpc.com/docs/governance/project-governance
[security]: https://connectrpc.com/docs/governance/security
[rfc]: https://connectrpc.com/docs/governance/project-governance#project-wide-decisions
[github-org]: https://github.com/connectrpc
28 changes: 28 additions & 0 deletions RFC_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 001-sample

<!-- A few sentences summarizing your proposal. -->
This RFC proposes that...

## Why

<!-- A few paragraphs explaining your proposal in more detail. Why is this a
good idea? -->

## Anticipated complications

<!-- If we adopt this proposal, are there any foreseeable adverse effects? How
can we mitigate them? -->

## Alternatives

<!-- Instead of this idea, what else could we do? Write a short paragraph about
the most compelling alternatives and explain why they're not as good as your
proposal. Don't forget that doing nothing and waiting is always an alternative
too! -->

* **Alternative 1**:
* **Do nothing**:

## References

* [Some other document](https://example.com)
2 changes: 1 addition & 1 deletion docs/curl-and-other-clients.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: cURL & other clients
sidebar_position: 30
sidebar_position: 970
---

Not every client has access to generated code and a full RPC framework: perhaps
Expand Down
4 changes: 4 additions & 0 deletions docs/governance/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
position: 5
label: "Governance"
collapsible: true
collapsed: true
Loading

0 comments on commit 8cce233

Please sign in to comment.