Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0: re-org and fix links #905

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions Makefile

This file was deleted.

40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,38 +27,38 @@ The following documents are available:
| | Latest Release | Working Draft |
| :---------------------------- | :----------------------------------------------------------------------------: | :---------------------------------------------------------------------------------: |
| **Core Specification:** |
| CloudEvents | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/spec.md) | [master](https://github.com/cloudevents/spec/blob/master/spec.md) |
| CloudEvents | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/cloudevents/spec.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md) |
| |
| **Optional Specifications:** |
| AMQP Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/amqp-protocol-binding.md) | [master](https://github.com/cloudevents/spec/blob/master/amqp-protocol-binding.md) |
| AVRO Event Format | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/avro-format.md) | [master](https://github.com/cloudevents/spec/blob/master/avro-format.md) |
| HTTP Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/http-protocol-binding.md) | [master](https://github.com/cloudevents/spec/blob/master/http-protocol-binding.md) |
| JSON Event Format | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/json-format.md) | [master](https://github.com/cloudevents/spec/blob/master/json-format.md) |
| Kafka Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/kafka-protocol-binding.md) | [master](https://github.com/cloudevents/spec/blob/master/kafka-protocol-binding.md) |
| MQTT Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/mqtt-protocol-binding.md) | [master](https://github.com/cloudevents/spec/blob/master/mqtt-protocol-binding.md) |
| NATS Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/nats-protocol-binding.md) | [master](https://github.com/cloudevents/spec/blob/master/nats-protocol-binding.md) |
| Web hook | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/http-webhook.md) | [master](https://github.com/cloudevents/spec/blob/master/http-webhook.md) |
| AMQP Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/amqp-protocol-binding.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/amqp-protocol-binding.md) |
| AVRO Event Format | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/avro-format.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/formats/avro-format.md) |
| HTTP Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/http-protocol-binding.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/http-protocol-binding.md) |
| JSON Event Format | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/json-format.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/formats/json-format.md) |
| Kafka Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/kafka-protocol-binding.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/kafka-protocol-binding.md) |
| MQTT Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/mqtt-protocol-binding.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/mqtt-protocol-binding.md) |
| NATS Protocol Binding | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/nats-protocol-binding.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/nats-protocol-binding.md) |
| Web hook | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/http-webhook.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/http-webhook.md) |
| |
| **Additional Documentation:** |
| CloudEvents Adapters | - | [master](https://github.com/cloudevents/spec/blob/master/adapters.md) |
| CloudEvents SDK Requirements | - | [master](https://github.com/cloudevents/spec/blob/master/SDK.md) |
| Documented Extensions | - | [master](https://github.com/cloudevents/spec/blob/master/documented-extensions.md) |
| Primer | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/primer.md) | [master](https://github.com/cloudevents/spec/blob/master/primer.md) |
| Proprietary Specifications | - | [master](https://github.com/cloudevents/spec/blob/master/proprietary-specs.md) |
| CloudEvents Adapters | - | [main](https://github.com/cloudevents/spec/blob/main/cloudevetns/adapters.md) |
| CloudEvents SDK Requirements | - | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/SDK.md) |
| Documented Extensions | - | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/documented-extensions.md) |
| Primer | [v1.0](https://github.com/cloudevents/spec/blob/v1.0/cloudevents/primer.md) | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/primer.md) |
| Proprietary Specifications | - | [main](https://github.com/cloudevents/spec/blob/main/cloudevents/proprietary-specs.md) |

If you are new to CloudEvents, it is recommended that you start by reading the
[Primer](primer.md) for an overview of the specification's goals and design
decisions, and then move on to the [core specification](spec.md).
[Primer](cloudevents/primer.md) for an overview of the specification's goals and design
decisions, and then move on to the [core specification](cloudevents/spec.md).

Since not all event producers generate CloudEvents by default, there is
documentation describing the recommended process for adapting some popular
events into CloudEvents, see
[CloudEvents Adapters](https://github.com/cloudevents/spec/blob/master/adapters.md).
[CloudEvents Adapters](https://github.com/cloudevents/spec/blob/main/cloudevents/adapters.md).

## SDKs

In addition to the documentation mentioned above, there are also an
[SDK proposal](SDK.md) and a set of SDKs being developed:
[SDK proposal](cloudevents/SDK.md) and a set of SDKs being developed:

- [CSharp](https://github.com/cloudevents/sdk-csharp)
- [Go](https://github.com/cloudevents/sdk-go)
Expand All @@ -78,8 +78,8 @@ native ecosystem by making our systems interoperable with CloudEvents.

## Process

The CloudEvents project is working to formalize the [specification](spec.md)
based on [design goals](primer.md#design-goals) which focus on interoperability
The CloudEvents project is working to formalize the [specification](cloudevents/spec.md)
based on [design goals](cloudevents/primer.md#design-goals) which focus on interoperability
between systems which generate and respond to events.

In order to achieve these goals, the project must describe:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ _structured_ mode with the JSON event format.
The 'key' attribute is populated by a partitionKeyExtractor function. The
partitionKeyExtractor is a protocol specific function that contains bespoke
logic to extract and populate the value. A default implementation of the
extractor will use the [Partitioning](extensions/partitioning.md) extension
extractor will use the [Partitioning](../extensions/partitioning.md) extension
value.

### 3.2. Binary Content Mode
Expand All @@ -142,7 +142,7 @@ message.
#### 3.2.3. Metadata Headers

All [CloudEvents][ce] attributes and
[CloudEvent Attributes Extensions](primer.md#cloudevent-attribute-extensions)
[CloudEvent Attributes Extensions](../primer.md#cloudevent-attribute-extensions)
with exception of `data` MUST be individually mapped to and from the Header
fields in the Kafka message.

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ might be changed, or removed, at any time. As such, inclusion of an attribute in
this document does not need to meet the same level of maturity, or popularity,
as attributes defined in the [CloudEvents specification](spec.md). To be
included in this document, aside from the normal PR review process, the
attribute needs to have at least two [Voting](GOVERNANCE.md#membership) member
attribute needs to have at least two [Voting](../community/GOVERNANCE.md#membership) member
organizations stating their support for its inclusion as comments in the PR. If
the author of the PR is also a Voting member, then they are allowed to be one of
two.
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion avro-format.md → cloudevents/formats/avro-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Example:
### 2.4 Definition

Users of Avro MUST use a message whose binary encoding is identical to the one
described by the [CloudEvent Avro Schema](./spec.avsc):
described by the [CloudEvent Avro Schema](../cloudevents.avsc):

```json
{
Expand Down
4 changes: 2 additions & 2 deletions json-format.md → cloudevents/formats/json-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ specification defined attributes. This includes their syntax and placement
within the JSON object. In particular, extensions are placed as top-level JSON
properties. Extensions MUST be serialized as a top-level JSON property. There
were many reasons for this design decision and they are covered in more detail
in the [Primer](primer.md#json-extensions).
in the [Primer](../primer.md#json-extensions).

### 2.1. Base Type System

Expand Down Expand Up @@ -101,7 +101,7 @@ The following table shows exemplary attribute mappings:
### 2.4. JSONSchema Validation

The CloudEvents [JSONSchema](http://json-schema.org) for the spec is located
[here](spec.json) and contains the definitions for validating events in JSON.
[here](../cloudevents.json) and contains the definitions for validating events in JSON.

## 3. Envelope

Expand Down
File renamed without changes.
12 changes: 6 additions & 6 deletions primer.md → cloudevents/primer.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ by those new to the concepts of CloudEvents. After much deliberation, the
working group has come to the conclusion that routing is unnecessary in the
spec: any protocol (e.g. HTTP, MQTT, XMPP, or a Pub/Sub bus) already
defines semantics for routing. For example, the CloudEvents
[HTTP binding](http-protocol-binding.md) dictates headers and request body
[HTTP binding](bindings/http-protocol-binding.md) dictates headers and request body
contents. CloudEvents don't need to include a destination URL in the spec to be
HTTP compatible; the HTTP spec already includes one in the
[Request-Line](https://tools.ietf.org/html/rfc2616#section-5.1).
Expand Down Expand Up @@ -181,11 +181,11 @@ elements that form a layered architecture model.
2. The [extensions](./spec.md#extension-context-attributes) add use-case
specific and potentially overlapping sets of extension attributes and
associated rules, e.g. to support different tracing standards.
3. The event format encodings, e.g. [JSON](json-format.md), define how the
3. The event format encodings, e.g. [JSON](formats/json-format.md), define how the
information model of the base specification together with the chosen
extensions is encoded for mapping it to header and payload elements of an
application protocol.
4. The protocol bindings, e.g. [HTTP](http-protocol-binding.md), defines how
4. The protocol bindings, e.g. [HTTP](bindings/http-protocol-binding.md), defines how
the CloudEvent is bound to an application protocol's transport frame, in the
case of HTTP to the HTTP message. The protocol binding does not constrain
how the transport frame is used, meaning that the HTTP binding can be used
Expand Down Expand Up @@ -292,7 +292,7 @@ Extension attributes should be kept minimal to ensure the CloudEvent can be
properly serialized and transported. For example, the Event producers should
consider the technical limitations that might be encountered when adding
extensions to a CloudEvent. For example, the
[HTTP Binary Mode](http-protocol-binding.md#31-binary-content-mode) uses HTTP
[HTTP Binary Mode](bindings/http-protocol-binding.md#31-binary-content-mode) uses HTTP
headers to transport metadata; most HTTP servers will reject requests with
excessive HTTP header data, with limits as low as 8kb. Therefore, the aggregate
size and number of extension attributes should be kept minimal.
Expand All @@ -304,8 +304,8 @@ formally adding them to the specification.

### JSON Extensions

As mentioned in the [Attributes](json-format.md#2-attributes) section of the
[JSON Event Format for CloudEvents](json-format.md) specification, CloudEvent
As mentioned in the [Attributes](formats/json-format.md#2-attributes) section of the
[JSON Event Format for CloudEvents](formats/json-format.md) specification, CloudEvent
extension attributes are serialized as siblings to the specification defined
attributes - meaning, at the top-level of the JSON object. The authors of the
specification spent a long time considering all options and decided that this
Expand Down
File renamed without changes.
File renamed without changes
8 changes: 4 additions & 4 deletions spec.md → cloudevents/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ provide interoperability across services, platforms and systems.
Event Formats specify how to serialize a CloudEvent with certain encoding
formats. Compliant CloudEvents implementations that support those encodings MUST
adhere to the encoding rules specified in the respective event format. All
implementations MUST support the [JSON format](json-format.md).
implementations MUST support the [JSON format](formats/json-format.md).

For more information on the history, development and design rationale behind the
specification, see the [CloudEvents Primer](primer.md) document.
Expand Down Expand Up @@ -118,7 +118,7 @@ information.
#### Event Format

An Event Format specifies how to serialize a CloudEvent as a sequence of bytes.
Stand-alone event formats, such as the [JSON format](json-format.md), specify
Stand-alone event formats, such as the [JSON format](formats/json-format.md), specify
serialization independent of any protocol or storage medium. Protocol Bindings
MAY define formats that are dependent on the protocol.

Expand Down Expand Up @@ -329,12 +329,12 @@ on the definition of OPTIONAL.
- Description: Content type of `data` value. This attribute enables `data` to
carry any type of content, whereby format and encoding might differ from that
of the chosen event format. For example, an event rendered using the
[JSON envelope](./json-format.md#3-envelope) format might carry an XML payload
[JSON envelope](formats/json-format.md#3-envelope) format might carry an XML payload
in `data`, and the consumer is informed by this attribute being set to
"application/xml". The rules for how `data` content is rendered for different
`datacontenttype` values are defined in the event format specifications; for
example, the JSON event format defines the relationship in
[section 3.1](./json-format.md#31-handling-of-data).
[section 3.1](formats/json-format.md#31-handling-of-data).

For some binary mode protocol bindings, this field is directly mapped to the
respective protocol's content-type metadata property. Normative rules for the
Expand Down
File renamed without changes.
12 changes: 6 additions & 6 deletions GOVERNANCE.md → community/GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ There are three categories of project membership:
administrative actions on behalf of the group. For example, manage the
website, github repos and moderate the meetings. Their actions should be done
with the knowledge and consent of the group. They also have the ability to
merge/close PRs, but only per the group's approval. See the [OWNERS](OWNERS)
merge/close PRs, but only per the group's approval. See the [OWNERS](../OWNERS)
file for the current list of Admins.

## PRs
Expand Down Expand Up @@ -73,7 +73,7 @@ If a vote is taken during a meeting, the follow rules will be followed:
meeting, not during.
- A "primary" or "alternate" member may request a leave-of-absence via an
e-mail to the mailing list, or a message to the
[public slack channel](README.md#communications), prior to the absence.
[public slack channel](../README.md#communications), prior to the absence.
An acceptable absence would include situations where the person is not
officially working at all, such as being on vacation, taking a sabbatical or
there is a public holiday. However, situations such as a scheduling conflict
Expand Down Expand Up @@ -107,22 +107,22 @@ The specifications produced will adhere to the following:
during the release cycle.

Note that these rules do not apply to the
[documented extensions](documented-extensions.md).
[documented extensions](../cloudevents/documented-extensions.md).

To create a new release:

- Create a PR that modifies the [README](README.md), and all specifications (ie.
- Create a PR that modifies the [README](../README.md), and all specifications (ie.
\*.md files) that include a version string, to the new release version string.
Make sure to remove `-wip` from all of the version strings.
- Merge the PR.
- Create a [new release](https://github.com/cloudevents/spec/releases/new):
- Choose a "Tag version" of the form: `vX.Y`, e.g. `v0.1`
- Target should be `master`, the default value
- Target should be `main`, the default value
- Release title should be the same as the Tag - `vX.Y`
- Add some descriptive text, or the list of PRs that have been merged since
the previous release. The git query to get the list commits since the last
release is:
`git log --pretty=format:%s master...v0.1 | grep -v "Merge pull"`.
`git log --pretty=format:%s main...v0.1 | grep -v "Merge pull"`.
Just replace "v0.1" with the name of the previous release.
- Press `Publish release` button
- Create a PR that modifies the version string in all of the files
Expand Down
4 changes: 2 additions & 2 deletions community/open-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ If you have created (or know of) an open source library or product that uses
CloudEvents, please include in the list below.

- [CloudEvents.NET](https://github.com/aliencube/CloudEvents.NET): is a .NET
implementation of the CloudEvents [spec](../spec.md) and
[HTTP protocol binding](../http-protocol-binding.md). It has been released
implementation of the CloudEvents [spec](../cloudevents/spec.md) and
[HTTP protocol binding](../cloudevents/bindings/http-protocol-binding.md). It has been released
to [nuget.org](https://www.nuget.org/packages?q=Aliencube.CloudEventsNet). It
also contains some app
[samples](https://github.com/aliencube/CloudEvents.NET/tree/master/sample)
Expand Down
19 changes: 19 additions & 0 deletions misc/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
all: verify

verify:
@echo Running href checker:
@# Use "-x" if you want to skip external links
@misc/tools/verify-links.sh -v .
@echo Running the spec phrase checker:
@misc/tools/verify-specs.sh -v
cloudevents/spec.md \
cloudevents/documented-extensions.md \
cloudevents/formats/json-format.md \
cloudevnets/bindings/http-protocol-binding.md \
cloudevents/http-webhook.md \
cloudevents/bindings/mqtt-protocol-binding.md \
cloudevents/bindings/nats-protocol-binding.md \
cloudevents/bindings/kafka-protocol-binding.md \
cloudevents/formats/avro-format.md
@echo Running the doc phrase checker:
@misc/tools/verify-docs.sh -v .
File renamed without changes.
Loading