diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
index a6d2397..7f9dd6e 100644
--- a/.github/copilot-instructions.md
+++ b/.github/copilot-instructions.md
@@ -4,17 +4,17 @@ This is the **primary** instruction file for AI coding agents. `AGENTS.md` and `
## What this repository is
-The single source of truth for generic, domain-agnostic Protobuf contracts shared across Feather gRPC services. The schema in `proto/feather/core/v1/core.proto` is compiled by `buf generate` into committed output under `gen/`, published as:
+The single source of truth for generic, domain-agnostic Protobuf contracts shared across Feather gRPC services. The schema in `proto/feather/contracts/core/v1/core.proto` is compiled by `buf generate` into committed output under `gen/`, published as:
- **.NET**: `Feather.Contracts` NuGet package (`Contracts.csproj` compiles `gen/csharp`).
- **PHP**: `feather/contracts` composer package (autoloads `gen/php`).
-- **Protobuf module**: `buf.build/feathertools/core` on the Buf Schema Registry.
+- **Protobuf module**: `buf.build/feathertools/contracts` on the Buf Schema Registry.
It is consumed as a .NET dependency in `Feather.Grpc`, as a PHP dependency in the PHP contracts library, and by depending on the BSR module in other `.proto` files.
## Golden rules
-- **`proto/core.proto` is the source of truth.** All message types are defined there. Never hand-edit generated output.
+- **`proto/feather/contracts/core/v1/core.proto` is the source of truth.** All message types are defined there. Never hand-edit generated output.
- **Keep contracts generic and domain-agnostic.** This library holds only reusable primitives. Do not add domain-specific types.
- **NO abbreviations** in names. Use full, readable words (`Instance` not `Inst`, `Message` not `Msg`). Exception: an adopted standard's proper name is written fully uppercase.
- Change **only what is asked**. No unsolicited refactors, extra files, or "improvements".
@@ -22,11 +22,11 @@ It is consumed as a .NET dependency in `Feather.Grpc`, as a PHP dependency in th
## Editing the schema
-After changing `proto/feather/core/v1/core.proto`:
+After changing `proto/feather/contracts/core/v1/core.proto`:
1. Lint: `buf lint` (config in `buf.yaml`, STANDARD rule set).
-2. .NET classes regenerate automatically at build time via `Grpc.Tools` — run `./build.sh`.
-3. Regenerate committed classes: `buf generate` (remote plugins in `buf.gen.yaml`, managed mode) emits C# to `gen/csharp` and PHP to `gen/php`. Commit the updated `gen/` output. `buf build` only compiles the schema; use `buf generate` to emit code.
+2. Regenerate committed classes: `buf generate` (remote plugins in `buf.gen.yaml`, managed mode) emits C# to `gen/csharp` and PHP to `gen/php`. Commit the updated `gen/` output. `buf build` only compiles the schema; use `buf generate` to emit code.
+3. Build the .NET package with `./build.sh`; `Contracts.csproj` compiles the committed `gen/csharp` (no `Grpc.Tools` codegen).
**Before opening a PR**, always run `buf generate` and commit the regenerated `gen/` files so they stay in sync with the schema in git.
@@ -36,7 +36,7 @@ After changing `proto/feather/core/v1/core.proto`:
- Messages / enums: `UpperCamelCase`
- Fields: `lower_snake_case`
- Enum values: `UPPER_SNAKE_CASE`
-- Package is `feather.core.v1`; do NOT set `csharp_namespace` / `php_namespace` — Buf managed mode derives them (`Feather.Core.V1`, `Feather\Core\V1`).
+- Package is `feather.contracts.core.v1`; do NOT set `csharp_namespace` / `php_namespace` — Buf managed mode derives them (`Feather.Contracts.Core.V1`, `Feather\Contracts\Core\V1`).
## Build & tooling
diff --git a/AGENTS.md b/AGENTS.md
index 5cdd3c7..ca4b7c3 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -4,5 +4,5 @@ The authoritative agent instructions for this repository live in
[`.github/copilot-instructions.md`](.github/copilot-instructions.md).
Read that file first and follow it for all work in this repository. It covers the
-project purpose, the `proto/core.proto` source-of-truth rule, naming conventions,
+project purpose, the `proto/feather/contracts/core/v1/core.proto` source-of-truth rule, naming conventions,
code generation, build tooling, CI, and the release process.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a1c35c8..69d8ae9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,9 @@
## Unreleased
+### Changed
+- Renamed the package to `feather.contracts.core.v1` (module `buf.build/feathertools/contracts`, path `proto/feather/contracts/core/v1/core.proto`).
+- Generated namespaces are now .NET `Feather.Contracts.Core.V1` and PHP `Feather\Contracts\Core\V1`.
## 1.1.0 - 2026-07-31
### Changed
diff --git a/CLAUDE.md b/CLAUDE.md
index ddf937b..03c8c8b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,5 +4,5 @@ The authoritative agent instructions for this repository live in
[`.github/copilot-instructions.md`](.github/copilot-instructions.md).
Read that file first and follow it for all work in this repository. It covers the
-project purpose, the `proto/core.proto` source-of-truth rule, naming conventions,
+project purpose, the `proto/feather/contracts/core/v1/core.proto` source-of-truth rule, naming conventions,
code generation, build tooling, CI, and the release process.
diff --git a/README.md b/README.md
index 22635c2..a64505c 100644
--- a/README.md
+++ b/README.md
@@ -6,21 +6,21 @@
> Core Protobuf contracts (generic, reusable message types) shared across Feather gRPC services — packaged for both .NET and PHP.
-This repository is the single source of truth for the low-level, domain-agnostic contracts used across Feather. The Protobuf schema in [`proto/feather/core/v1/core.proto`](proto/feather/core/v1/core.proto) is compiled into:
+This repository is the single source of truth for the low-level, domain-agnostic contracts used across Feather. The Protobuf schema in [`proto/feather/contracts/core/v1/core.proto`](proto/feather/contracts/core/v1/core.proto) is compiled into:
- a **.NET** library published as the [`Feather.Contracts`](https://www.nuget.org/packages/Feather.Contracts) NuGet package,
- a **PHP** package (`feather/contracts`) with generated message, client and RoadRunner server classes under [`gen/php/`](gen/php/), and
-- a **Protobuf module** published to the [Buf Schema Registry](https://buf.build/feathertools/core) (`buf.build/feathertools/core`).
+- a **Protobuf module** published to the [Buf Schema Registry](https://buf.build/feathertools/contracts) (`buf.build/feathertools/contracts`).
It is designed to be consumed in three ways:
1. As a **.NET dependency** in the `Feather.Grpc` library, providing the core message types.
2. As a **PHP dependency** in the PHP contracts library, providing the same core types.
-3. **Directly in other `.proto` files**, by depending on the BSR module `buf.build/feathertools/core` and referencing the `feather.core.v1` types.
+3. **Directly in other `.proto` files**, by depending on the BSR module `buf.build/feathertools/contracts` and referencing the `feather.contracts.core.v1` types.
## Contracts
-All messages live in the `feather.core.v1` package ([`proto/feather/core/v1/core.proto`](proto/feather/core/v1/core.proto)):
+All messages live in the `feather.contracts.core.v1` package ([`proto/feather/contracts/core/v1/core.proto`](proto/feather/contracts/core/v1/core.proto)):
| Message | Purpose |
| ----------------------- | ------------------------------------------------------------------------------ |
@@ -32,10 +32,10 @@ All messages live in the `feather.core.v1` package ([`proto/feather/core/v1/core
| `Box` | An `Instance` bound to a `Spot`. |
| `SerializedForChunking` | Wrapper (`bytes content`) for chunking large payloads in streaming gRPC calls. |
-Generated namespaces (derived by Buf managed mode from the `feather.core.v1` package):
+Generated namespaces (derived by Buf managed mode from the `feather.contracts.core.v1` package):
-- .NET: `Feather.Core.V1`
-- PHP: `Feather\Core\V1` (messages) and `Feather\Core\V1\GPBMetadata` (metadata)
+- .NET: `Feather.Contracts.Core.V1`
+- PHP: `Feather\Contracts\Core\V1` (messages) and `Feather\Contracts\Core\V1\GPBMetadata` (metadata)
## Install
@@ -46,7 +46,7 @@ dotnet add package Feather.Contracts
```
```fsharp
-open Feather.Core.V1
+open Feather.Contracts.Core.V1
let error = Error(Name = "NotFound", Message = "Instance not found")
```
@@ -73,7 +73,7 @@ composer require feather/contracts:dev-main
```
```php
-use Feather\Core\V1\Error;
+use Feather\Contracts\Core\V1\Error;
$error = (new Error())->setName('NotFound')->setMessage('Instance not found');
```
@@ -85,19 +85,19 @@ Add the BSR module as a dependency in your `buf.yaml`:
```yaml
version: v2
deps:
- - buf.build/feathertools/core
+ - buf.build/feathertools/contracts
```
-Then import and reference the `feather.core.v1` types:
+Then import and reference the `feather.contracts.core.v1` types:
```proto
syntax = "proto3";
-import "feather/core/v1/core.proto";
+import "feather/contracts/core/v1/core.proto";
message Envelope {
- feather.core.v1.CorrelationId correlation_id = 1;
- feather.core.v1.Error error = 2;
+ feather.contracts.core.v1.CorrelationId correlation_id = 1;
+ feather.contracts.core.v1.Error error = 2;
}
```
@@ -124,7 +124,7 @@ Common flags: `no-lint`, `no-clean` to skip the respective steps.
## Working with the Protobuf schema
-[`proto/feather/core/v1/core.proto`](proto/feather/core/v1/core.proto) is the source of truth. After editing it:
+[`proto/feather/contracts/core/v1/core.proto`](proto/feather/contracts/core/v1/core.proto) is the source of truth. After editing it:
1. **Lint** the schema:
@@ -132,23 +132,21 @@ Common flags: `no-lint`, `no-clean` to skip the respective steps.
buf lint
```
-2. **.NET** classes are generated automatically at build time by `Grpc.Tools` (see [`Contracts.csproj`](Contracts.csproj)) — just run `./build.sh`.
-
-3. **PHP** classes (and the C# reference output) are regenerated with Buf using the remote plugins in [`buf.gen.yaml`](buf.gen.yaml):
+2. **.NET** and **PHP** classes are regenerated with Buf using the remote plugins in [`buf.gen.yaml`](buf.gen.yaml):
```sh
buf generate
```
- This produces PHP message, client and RoadRunner server classes under [`gen/php/`](gen/php/) (namespace `Feather\Core\V1`) and the C# under [`gen/csharp/`](gen/csharp/); both are committed to the repository. `buf build` only compiles the schema to an in-memory image; use `buf generate` to emit code.
+ This produces C# under [`gen/csharp/`](gen/csharp/) (namespace `Feather.Contracts.Core.V1`, compiled by [`Contracts.csproj`](Contracts.csproj)) and PHP message, client and RoadRunner server classes under [`gen/php/`](gen/php/) (namespace `Feather\Contracts\Core\V1`); both are committed to the repository. `buf build` only compiles the schema to an in-memory image; use `buf generate` to emit code.
> **Before opening a PR**, run `buf generate` and commit the regenerated `gen/` files so they stay in sync with the schema in git.
-4. **Publish** the module to the Buf Schema Registry:
+3. **Publish** the module to the Buf Schema Registry:
```sh
buf registry login # first time only
- buf push # publishes buf.build/feathertools/core
+ buf push # publishes buf.build/feathertools/contracts
```
### Proto conventions
@@ -160,15 +158,15 @@ Common flags: `no-lint`, `no-clean` to skip the respective steps.
## Repository layout
```
-proto/feather/core/v1/core.proto # Source-of-truth Protobuf schema
-buf.yaml # Buf module (buf.build/feathertools/core), lint & breaking config
-buf.gen.yaml # Buf code generation (managed mode, remote plugins)
-Contracts.csproj # .NET package (Feather.Contracts), compiles gen/csharp
-composer.json # PHP package (feather/contracts), autoloads gen/php
-gen/csharp/ # Generated C# classes (committed, compiled by Contracts.csproj)
-gen/php/ # Generated PHP classes (committed, autoloaded by composer)
-build/ # FAKE build project (F#)
-.github/workflows/ # CI: net-tests, php-tests, proto-lint, net-publish, bsr-publish, pr-check
+proto/feather/contracts/core/v1/core.proto # Source-of-truth Protobuf schema
+buf.yaml # Buf module (buf.build/feathertools/contracts), lint & breaking config
+buf.gen.yaml # Buf code generation (managed mode, remote plugins)
+Contracts.csproj # .NET package (Feather.Contracts), compiles gen/csharp
+composer.json # PHP package (feather/contracts), autoloads gen/php
+gen/csharp/ # Generated C# classes (committed, compiled by Contracts.csproj)
+gen/php/ # Generated PHP classes (committed, autoloaded by composer)
+build/ # FAKE build project (F#)
+.github/workflows/ # CI: net-tests, php-tests, proto-lint, net-publish, bsr-publish, pr-check
```
## Releasing
diff --git a/buf.yaml b/buf.yaml
index 8b13a62..6160f7b 100644
--- a/buf.yaml
+++ b/buf.yaml
@@ -1,7 +1,7 @@
version: v2
modules:
- path: proto
- name: buf.build/feathertools/core
+ name: buf.build/feathertools/contracts
lint:
use:
- STANDARD
diff --git a/composer.json b/composer.json
index 4402127..85f9983 100644
--- a/composer.json
+++ b/composer.json
@@ -16,7 +16,7 @@
},
"autoload": {
"psr-4": {
- "Feather\\Core\\V1\\": "gen/php/Feather/Core/V1/"
+ "Feather\\Contracts\\Core\\V1\\": "gen/php/Feather/Contracts/Core/V1/"
}
},
"archive": {
diff --git a/gen/csharp/Core.cs b/gen/csharp/Core.cs
index 3a4139c..5de1abd 100644
--- a/gen/csharp/Core.cs
+++ b/gen/csharp/Core.cs
@@ -1,6 +1,6 @@
//
// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: feather/core/v1/core.proto
+// source: feather/contracts/core/v1/core.proto
//
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
@@ -9,13 +9,13 @@
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
-namespace Feather.Core.V1 {
+namespace Feather.Contracts.Core.V1 {
- /// Holder for reflection information generated from feather/core/v1/core.proto
+ /// Holder for reflection information generated from feather/contracts/core/v1/core.proto
public static partial class CoreReflection {
#region Descriptor
- /// File descriptor for feather/core/v1/core.proto
+ /// File descriptor for feather/contracts/core/v1/core.proto
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
@@ -24,29 +24,31 @@ public static partial class CoreReflection {
static CoreReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChpmZWF0aGVyL2NvcmUvdjEvY29yZS5wcm90bxIPZmVhdGhlci5jb3JlLnYx",
- "IjUKBUVycm9yEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHbWVzc2FnZRgCIAEo",
- "CVIHbWVzc2FnZSIfCg1Db3JyZWxhdGlvbklkEg4KAmlkGAEgASgJUgJpZCIy",
- "CglUaW1lc3RhbXASJQoOdW5peF90aW1lc3RhbXAYASABKANSDXVuaXhUaW1l",
- "c3RhbXAiMgoEU3BvdBISCgR6b25lGAEgASgJUgR6b25lEhYKBmJ1Y2tldBgC",
- "IAEoCVIGYnVja2V0IiYKCEluc3RhbmNlEhoKCGluc3RhbmNlGAEgASgJUghp",
- "bnN0YW5jZSJnCgNCb3gSNQoIaW5zdGFuY2UYASABKAsyGS5mZWF0aGVyLmNv",
- "cmUudjEuSW5zdGFuY2VSCGluc3RhbmNlEikKBHNwb3QYAiABKAsyFS5mZWF0",
- "aGVyLmNvcmUudjEuU3BvdFIEc3BvdCIxChVTZXJpYWxpemVkRm9yQ2h1bmtp",
- "bmcSGAoHY29udGVudBgBIAEoDFIHY29udGVudEJ+ChNjb20uZmVhdGhlci5j",
- "b3JlLnYxQglDb3JlUHJvdG9QAaICA0ZDWKoCD0ZlYXRoZXIuQ29yZS5WMcoC",
- "D0ZlYXRoZXJcQ29yZVxWMeICG0ZlYXRoZXJcQ29yZVxWMVxHUEJNZXRhZGF0",
- "YeoCEUZlYXRoZXI6OkNvcmU6OlYxYgZwcm90bzM="));
+ "CiRmZWF0aGVyL2NvbnRyYWN0cy9jb3JlL3YxL2NvcmUucHJvdG8SGWZlYXRo",
+ "ZXIuY29udHJhY3RzLmNvcmUudjEiNQoFRXJyb3ISEgoEbmFtZRgBIAEoCVIE",
+ "bmFtZRIYCgdtZXNzYWdlGAIgASgJUgdtZXNzYWdlIh8KDUNvcnJlbGF0aW9u",
+ "SWQSDgoCaWQYASABKAlSAmlkIjIKCVRpbWVzdGFtcBIlCg51bml4X3RpbWVz",
+ "dGFtcBgBIAEoA1INdW5peFRpbWVzdGFtcCIyCgRTcG90EhIKBHpvbmUYASAB",
+ "KAlSBHpvbmUSFgoGYnVja2V0GAIgASgJUgZidWNrZXQiJgoISW5zdGFuY2US",
+ "GgoIaW5zdGFuY2UYASABKAlSCGluc3RhbmNlInsKA0JveBI/CghpbnN0YW5j",
+ "ZRgBIAEoCzIjLmZlYXRoZXIuY29udHJhY3RzLmNvcmUudjEuSW5zdGFuY2VS",
+ "CGluc3RhbmNlEjMKBHNwb3QYAiABKAsyHy5mZWF0aGVyLmNvbnRyYWN0cy5j",
+ "b3JlLnYxLlNwb3RSBHNwb3QiMQoVU2VyaWFsaXplZEZvckNodW5raW5nEhgK",
+ "B2NvbnRlbnQYASABKAxSB2NvbnRlbnRCsQEKHWNvbS5mZWF0aGVyLmNvbnRy",
+ "YWN0cy5jb3JlLnYxQglDb3JlUHJvdG9QAaICA0ZDQ6oCGUZlYXRoZXIuQ29u",
+ "dHJhY3RzLkNvcmUuVjHKAhlGZWF0aGVyXENvbnRyYWN0c1xDb3JlXFYx4gIl",
+ "RmVhdGhlclxDb250cmFjdHNcQ29yZVxWMVxHUEJNZXRhZGF0YeoCHEZlYXRo",
+ "ZXI6OkNvbnRyYWN0czo6Q29yZTo6VjFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.Error), global::Feather.Core.V1.Error.Parser, new[]{ "Name", "Message" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.CorrelationId), global::Feather.Core.V1.CorrelationId.Parser, new[]{ "Id" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.Timestamp), global::Feather.Core.V1.Timestamp.Parser, new[]{ "UnixTimestamp" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.Spot), global::Feather.Core.V1.Spot.Parser, new[]{ "Zone", "Bucket" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.Instance), global::Feather.Core.V1.Instance.Parser, new[]{ "Instance_" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.Box), global::Feather.Core.V1.Box.Parser, new[]{ "Instance", "Spot" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Core.V1.SerializedForChunking), global::Feather.Core.V1.SerializedForChunking.Parser, new[]{ "Content" }, null, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.Error), global::Feather.Contracts.Core.V1.Error.Parser, new[]{ "Name", "Message" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.CorrelationId), global::Feather.Contracts.Core.V1.CorrelationId.Parser, new[]{ "Id" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.Timestamp), global::Feather.Contracts.Core.V1.Timestamp.Parser, new[]{ "UnixTimestamp" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.Spot), global::Feather.Contracts.Core.V1.Spot.Parser, new[]{ "Zone", "Bucket" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.Instance), global::Feather.Contracts.Core.V1.Instance.Parser, new[]{ "Instance_" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.Box), global::Feather.Contracts.Core.V1.Box.Parser, new[]{ "Instance", "Spot" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Feather.Contracts.Core.V1.SerializedForChunking), global::Feather.Contracts.Core.V1.SerializedForChunking.Parser, new[]{ "Content" }, null, null, null, null)
}));
}
#endregion
@@ -68,7 +70,7 @@ public sealed partial class Error : pb::IMessage
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Feather.Core.V1.CoreReflection.Descriptor.MessageTypes[0]; }
+ get { return global::Feather.Contracts.Core.V1.CoreReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -303,7 +305,7 @@ public sealed partial class CorrelationId : pb::IMessage
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Feather.Core.V1.CoreReflection.Descriptor.MessageTypes[1]; }
+ get { return global::Feather.Contracts.Core.V1.CoreReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -501,7 +503,7 @@ public sealed partial class Timestamp : pb::IMessage
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Feather.Core.V1.CoreReflection.Descriptor.MessageTypes[2]; }
+ get { return global::Feather.Contracts.Core.V1.CoreReflection.Descriptor.MessageTypes[2]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -702,7 +704,7 @@ public sealed partial class Spot : pb::IMessage
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Feather.Core.V1.CoreReflection.Descriptor.MessageTypes[3]; }
+ get { return global::Feather.Contracts.Core.V1.CoreReflection.Descriptor.MessageTypes[3]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -937,7 +939,7 @@ public sealed partial class Instance : pb::IMessage
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Feather.Core.V1.CoreReflection.Descriptor.MessageTypes[4]; }
+ get { return global::Feather.Contracts.Core.V1.CoreReflection.Descriptor.MessageTypes[4]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1135,7 +1137,7 @@ public sealed partial class Box : pb::IMessage
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Feather.Core.V1.CoreReflection.Descriptor.MessageTypes[5]; }
+ get { return global::Feather.Contracts.Core.V1.CoreReflection.Descriptor.MessageTypes[5]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1168,10 +1170,10 @@ public Box Clone() {
/// Field number for the "instance" field.
public const int InstanceFieldNumber = 1;
- private global::Feather.Core.V1.Instance instance_;
+ private global::Feather.Contracts.Core.V1.Instance instance_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public global::Feather.Core.V1.Instance Instance {
+ public global::Feather.Contracts.Core.V1.Instance Instance {
get { return instance_; }
set {
instance_ = value;
@@ -1180,10 +1182,10 @@ public Box Clone() {
/// Field number for the "spot" field.
public const int SpotFieldNumber = 2;
- private global::Feather.Core.V1.Spot spot_;
+ private global::Feather.Contracts.Core.V1.Spot spot_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public global::Feather.Core.V1.Spot Spot {
+ public global::Feather.Contracts.Core.V1.Spot Spot {
get { return spot_; }
set {
spot_ = value;
@@ -1290,13 +1292,13 @@ public void MergeFrom(Box other) {
}
if (other.instance_ != null) {
if (instance_ == null) {
- Instance = new global::Feather.Core.V1.Instance();
+ Instance = new global::Feather.Contracts.Core.V1.Instance();
}
Instance.MergeFrom(other.Instance);
}
if (other.spot_ != null) {
if (spot_ == null) {
- Spot = new global::Feather.Core.V1.Spot();
+ Spot = new global::Feather.Contracts.Core.V1.Spot();
}
Spot.MergeFrom(other.Spot);
}
@@ -1321,14 +1323,14 @@ public void MergeFrom(pb::CodedInputStream input) {
break;
case 10: {
if (instance_ == null) {
- Instance = new global::Feather.Core.V1.Instance();
+ Instance = new global::Feather.Contracts.Core.V1.Instance();
}
input.ReadMessage(Instance);
break;
}
case 18: {
if (spot_ == null) {
- Spot = new global::Feather.Core.V1.Spot();
+ Spot = new global::Feather.Contracts.Core.V1.Spot();
}
input.ReadMessage(Spot);
break;
@@ -1354,14 +1356,14 @@ public void MergeFrom(pb::CodedInputStream input) {
break;
case 10: {
if (instance_ == null) {
- Instance = new global::Feather.Core.V1.Instance();
+ Instance = new global::Feather.Contracts.Core.V1.Instance();
}
input.ReadMessage(Instance);
break;
}
case 18: {
if (spot_ == null) {
- Spot = new global::Feather.Core.V1.Spot();
+ Spot = new global::Feather.Contracts.Core.V1.Spot();
}
input.ReadMessage(Spot);
break;
@@ -1391,7 +1393,7 @@ public sealed partial class SerializedForChunking : pb::IMessagefeather.contracts.core.v1.Box
+ */
+class Box extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field .feather.contracts.core.v1.Instance instance = 1 [json_name = "instance"];
+ */
+ protected $instance = null;
+ /**
+ * Generated from protobuf field .feather.contracts.core.v1.Spot spot = 2 [json_name = "spot"];
+ */
+ protected $spot = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Feather\Contracts\Core\V1\Instance $instance
+ * @type \Feather\Contracts\Core\V1\Spot $spot
+ * }
+ */
+ public function __construct($data = NULL) {
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field .feather.contracts.core.v1.Instance instance = 1 [json_name = "instance"];
+ * @return \Feather\Contracts\Core\V1\Instance|null
+ */
+ public function getInstance()
+ {
+ return $this->instance;
+ }
+
+ public function hasInstance()
+ {
+ return isset($this->instance);
+ }
+
+ public function clearInstance()
+ {
+ unset($this->instance);
+ }
+
+ /**
+ * Generated from protobuf field .feather.contracts.core.v1.Instance instance = 1 [json_name = "instance"];
+ * @param \Feather\Contracts\Core\V1\Instance $var
+ * @return $this
+ */
+ public function setInstance(\Feather\Contracts\Core\V1\Instance|null $var)
+ {
+ $this->instance = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field .feather.contracts.core.v1.Spot spot = 2 [json_name = "spot"];
+ * @return \Feather\Contracts\Core\V1\Spot|null
+ */
+ public function getSpot()
+ {
+ return $this->spot;
+ }
+
+ public function hasSpot()
+ {
+ return isset($this->spot);
+ }
+
+ public function clearSpot()
+ {
+ unset($this->spot);
+ }
+
+ /**
+ * Generated from protobuf field .feather.contracts.core.v1.Spot spot = 2 [json_name = "spot"];
+ * @param \Feather\Contracts\Core\V1\Spot $var
+ * @return $this
+ */
+ public function setSpot(\Feather\Contracts\Core\V1\Spot|null $var)
+ {
+ $this->spot = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/gen/php/Feather/Core/V1/CorrelationId.php b/gen/php/Feather/Contracts/Core/V1/CorrelationId.php
similarity index 83%
rename from gen/php/Feather/Core/V1/CorrelationId.php
rename to gen/php/Feather/Contracts/Core/V1/CorrelationId.php
index 5d5f9ca..4071ff8 100644
--- a/gen/php/Feather/Core/V1/CorrelationId.php
+++ b/gen/php/Feather/Contracts/Core/V1/CorrelationId.php
@@ -1,16 +1,16 @@
feather.core.v1.CorrelationId
+ * Generated from protobuf message feather.contracts.core.v1.CorrelationId
*/
class CorrelationId extends \Google\Protobuf\Internal\Message
{
@@ -29,7 +29,7 @@ class CorrelationId extends \Google\Protobuf\Internal\Message
* }
*/
public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
parent::__construct($data);
}
diff --git a/gen/php/Feather/Core/V1/Error.php b/gen/php/Feather/Contracts/Core/V1/Error.php
similarity index 89%
rename from gen/php/Feather/Core/V1/Error.php
rename to gen/php/Feather/Contracts/Core/V1/Error.php
index 6877c2e..6ebb3e2 100644
--- a/gen/php/Feather/Core/V1/Error.php
+++ b/gen/php/Feather/Contracts/Core/V1/Error.php
@@ -1,16 +1,16 @@
feather.core.v1.Error
+ * Generated from protobuf message feather.contracts.core.v1.Error
*/
class Error extends \Google\Protobuf\Internal\Message
{
@@ -34,7 +34,7 @@ class Error extends \Google\Protobuf\Internal\Message
* }
*/
public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
parent::__construct($data);
}
diff --git a/gen/php/Feather/Contracts/Core/V1/GPBMetadata/Core.php b/gen/php/Feather/Contracts/Core/V1/GPBMetadata/Core.php
new file mode 100644
index 0000000..1ab87c8
--- /dev/null
+++ b/gen/php/Feather/Contracts/Core/V1/GPBMetadata/Core.php
@@ -0,0 +1,25 @@
+internalAddGeneratedFile(
+ "\x0A\x95\x05\x0A\$feather/contracts/core/v1/core.proto\x12\x19feather.contracts.core.v1\"5\x0A\x05Error\x12\x12\x0A\x04name\x18\x01 \x01(\x09R\x04name\x12\x18\x0A\x07message\x18\x02 \x01(\x09R\x07message\"\x1F\x0A\x0DCorrelationId\x12\x0E\x0A\x02id\x18\x01 \x01(\x09R\x02id\"2\x0A\x09Timestamp\x12%\x0A\x0Eunix_timestamp\x18\x01 \x01(\x03R\x0DunixTimestamp\"2\x0A\x04Spot\x12\x12\x0A\x04zone\x18\x01 \x01(\x09R\x04zone\x12\x16\x0A\x06bucket\x18\x02 \x01(\x09R\x06bucket\"&\x0A\x08Instance\x12\x1A\x0A\x08instance\x18\x01 \x01(\x09R\x08instance\"{\x0A\x03Box\x12?\x0A\x08instance\x18\x01 \x01(\x0B2#.feather.contracts.core.v1.InstanceR\x08instance\x123\x0A\x04spot\x18\x02 \x01(\x0B2\x1F.feather.contracts.core.v1.SpotR\x04spot\"1\x0A\x15SerializedForChunking\x12\x18\x0A\x07content\x18\x01 \x01(\x0CR\x07contentB\xB1\x01\x0A\x1Dcom.feather.contracts.core.v1B\x09CoreProtoP\x01\xA2\x02\x03FCC\xAA\x02\x19Feather.Contracts.Core.V1\xCA\x02\x19Feather\\Contracts\\Core\\V1\xE2\x02%Feather\\Contracts\\Core\\V1\\GPBMetadata\xEA\x02\x1CFeather::Contracts::Core::V1b\x06proto3"
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/gen/php/Feather/Core/V1/Instance.php b/gen/php/Feather/Contracts/Core/V1/Instance.php
similarity index 84%
rename from gen/php/Feather/Core/V1/Instance.php
rename to gen/php/Feather/Contracts/Core/V1/Instance.php
index b822cc1..eb2e763 100644
--- a/gen/php/Feather/Core/V1/Instance.php
+++ b/gen/php/Feather/Contracts/Core/V1/Instance.php
@@ -1,16 +1,16 @@
feather.core.v1.Instance
+ * Generated from protobuf message feather.contracts.core.v1.Instance
*/
class Instance extends \Google\Protobuf\Internal\Message
{
@@ -29,7 +29,7 @@ class Instance extends \Google\Protobuf\Internal\Message
* }
*/
public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
parent::__construct($data);
}
diff --git a/gen/php/Feather/Core/V1/SerializedForChunking.php b/gen/php/Feather/Contracts/Core/V1/SerializedForChunking.php
similarity index 84%
rename from gen/php/Feather/Core/V1/SerializedForChunking.php
rename to gen/php/Feather/Contracts/Core/V1/SerializedForChunking.php
index 7999aaa..4e47e61 100644
--- a/gen/php/Feather/Core/V1/SerializedForChunking.php
+++ b/gen/php/Feather/Contracts/Core/V1/SerializedForChunking.php
@@ -1,9 +1,9 @@
feather.core.v1.SerializedForChunking
+ * Generated from protobuf message feather.contracts.core.v1.SerializedForChunking
*/
class SerializedForChunking extends \Google\Protobuf\Internal\Message
{
@@ -31,7 +31,7 @@ class SerializedForChunking extends \Google\Protobuf\Internal\Message
* }
*/
public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
parent::__construct($data);
}
diff --git a/gen/php/Feather/Core/V1/Spot.php b/gen/php/Feather/Contracts/Core/V1/Spot.php
similarity index 89%
rename from gen/php/Feather/Core/V1/Spot.php
rename to gen/php/Feather/Contracts/Core/V1/Spot.php
index 1ac64b1..d68c4dc 100644
--- a/gen/php/Feather/Core/V1/Spot.php
+++ b/gen/php/Feather/Contracts/Core/V1/Spot.php
@@ -1,16 +1,16 @@
feather.core.v1.Spot
+ * Generated from protobuf message feather.contracts.core.v1.Spot
*/
class Spot extends \Google\Protobuf\Internal\Message
{
@@ -34,7 +34,7 @@ class Spot extends \Google\Protobuf\Internal\Message
* }
*/
public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
parent::__construct($data);
}
diff --git a/gen/php/Feather/Core/V1/Timestamp.php b/gen/php/Feather/Contracts/Core/V1/Timestamp.php
similarity index 86%
rename from gen/php/Feather/Core/V1/Timestamp.php
rename to gen/php/Feather/Contracts/Core/V1/Timestamp.php
index a84cd3a..078be35 100644
--- a/gen/php/Feather/Core/V1/Timestamp.php
+++ b/gen/php/Feather/Contracts/Core/V1/Timestamp.php
@@ -1,16 +1,16 @@
feather.core.v1.Timestamp
+ * Generated from protobuf message feather.contracts.core.v1.Timestamp
*/
class Timestamp extends \Google\Protobuf\Internal\Message
{
@@ -32,7 +32,7 @@ class Timestamp extends \Google\Protobuf\Internal\Message
* }
*/
public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
+ \Feather\Contracts\Core\V1\GPBMetadata\Core::initOnce();
parent::__construct($data);
}
diff --git a/gen/php/Feather/Core/V1/Box.php b/gen/php/Feather/Core/V1/Box.php
deleted file mode 100644
index e8ede40..0000000
--- a/gen/php/Feather/Core/V1/Box.php
+++ /dev/null
@@ -1,104 +0,0 @@
-feather.core.v1.Box
- */
-class Box extends \Google\Protobuf\Internal\Message
-{
- /**
- * Generated from protobuf field .feather.core.v1.Instance instance = 1 [json_name = "instance"];
- */
- protected $instance = null;
- /**
- * Generated from protobuf field .feather.core.v1.Spot spot = 2 [json_name = "spot"];
- */
- protected $spot = null;
-
- /**
- * Constructor.
- *
- * @param array $data {
- * Optional. Data for populating the Message object.
- *
- * @type \Feather\Core\V1\Instance $instance
- * @type \Feather\Core\V1\Spot $spot
- * }
- */
- public function __construct($data = NULL) {
- \Feather\Core\V1\GPBMetadata\Core::initOnce();
- parent::__construct($data);
- }
-
- /**
- * Generated from protobuf field .feather.core.v1.Instance instance = 1 [json_name = "instance"];
- * @return \Feather\Core\V1\Instance|null
- */
- public function getInstance()
- {
- return $this->instance;
- }
-
- public function hasInstance()
- {
- return isset($this->instance);
- }
-
- public function clearInstance()
- {
- unset($this->instance);
- }
-
- /**
- * Generated from protobuf field .feather.core.v1.Instance instance = 1 [json_name = "instance"];
- * @param \Feather\Core\V1\Instance $var
- * @return $this
- */
- public function setInstance(\Feather\Core\V1\Instance|null $var)
- {
- $this->instance = $var;
-
- return $this;
- }
-
- /**
- * Generated from protobuf field .feather.core.v1.Spot spot = 2 [json_name = "spot"];
- * @return \Feather\Core\V1\Spot|null
- */
- public function getSpot()
- {
- return $this->spot;
- }
-
- public function hasSpot()
- {
- return isset($this->spot);
- }
-
- public function clearSpot()
- {
- unset($this->spot);
- }
-
- /**
- * Generated from protobuf field .feather.core.v1.Spot spot = 2 [json_name = "spot"];
- * @param \Feather\Core\V1\Spot $var
- * @return $this
- */
- public function setSpot(\Feather\Core\V1\Spot|null $var)
- {
- $this->spot = $var;
-
- return $this;
- }
-
-}
-
diff --git a/gen/php/Feather/Core/V1/GPBMetadata/Core.php b/gen/php/Feather/Core/V1/GPBMetadata/Core.php
deleted file mode 100644
index e1f83c9..0000000
--- a/gen/php/Feather/Core/V1/GPBMetadata/Core.php
+++ /dev/null
@@ -1,25 +0,0 @@
-internalAddGeneratedFile(
- "\x0A\xB9\x04\x0A\x1Afeather/core/v1/core.proto\x12\x0Ffeather.core.v1\"5\x0A\x05Error\x12\x12\x0A\x04name\x18\x01 \x01(\x09R\x04name\x12\x18\x0A\x07message\x18\x02 \x01(\x09R\x07message\"\x1F\x0A\x0DCorrelationId\x12\x0E\x0A\x02id\x18\x01 \x01(\x09R\x02id\"2\x0A\x09Timestamp\x12%\x0A\x0Eunix_timestamp\x18\x01 \x01(\x03R\x0DunixTimestamp\"2\x0A\x04Spot\x12\x12\x0A\x04zone\x18\x01 \x01(\x09R\x04zone\x12\x16\x0A\x06bucket\x18\x02 \x01(\x09R\x06bucket\"&\x0A\x08Instance\x12\x1A\x0A\x08instance\x18\x01 \x01(\x09R\x08instance\"g\x0A\x03Box\x125\x0A\x08instance\x18\x01 \x01(\x0B2\x19.feather.core.v1.InstanceR\x08instance\x12)\x0A\x04spot\x18\x02 \x01(\x0B2\x15.feather.core.v1.SpotR\x04spot\"1\x0A\x15SerializedForChunking\x12\x18\x0A\x07content\x18\x01 \x01(\x0CR\x07contentB~\x0A\x13com.feather.core.v1B\x09CoreProtoP\x01\xA2\x02\x03FCX\xAA\x02\x0FFeather.Core.V1\xCA\x02\x0FFeather\\Core\\V1\xE2\x02\x1BFeather\\Core\\V1\\GPBMetadata\xEA\x02\x11Feather::Core::V1b\x06proto3"
- , true);
-
- static::$is_initialized = true;
- }
-}
-
diff --git a/proto/feather/core/v1/core.proto b/proto/feather/contracts/core/v1/core.proto
similarity index 94%
rename from proto/feather/core/v1/core.proto
rename to proto/feather/contracts/core/v1/core.proto
index 4666e42..e907576 100644
--- a/proto/feather/core/v1/core.proto
+++ b/proto/feather/contracts/core/v1/core.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
-package feather.core.v1;
+package feather.contracts.core.v1;
// Generic types