From 7431075ca1f7d285301a88a835e65a5d87fd2156 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Fri, 9 Dec 2022 14:18:06 +0300
Subject: [PATCH 01/60] Rename go package names
Signed-off-by: Evgenii Stratonikov
---
accounting/service.proto | 2 +-
accounting/types.proto | 2 +-
acl/types.proto | 2 +-
audit/types.proto | 2 +-
container/service.proto | 2 +-
container/types.proto | 2 +-
lock/types.proto | 2 +-
netmap/service.proto | 2 +-
netmap/types.proto | 2 +-
object/service.proto | 2 +-
object/types.proto | 2 +-
refs/types.proto | 2 +-
reputation/service.proto | 2 +-
reputation/types.proto | 2 +-
session/service.proto | 2 +-
session/types.proto | 2 +-
status/types.proto | 2 +-
storagegroup/types.proto | 2 +-
subnet/types.proto | 2 +-
tombstone/types.proto | 2 +-
20 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/accounting/service.proto b/accounting/service.proto
index bc44b5b..154382a 100644
--- a/accounting/service.proto
+++ b/accounting/service.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.accounting;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/accounting/grpc;accounting";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/accounting/grpc;accounting";
option csharp_namespace = "Neo.FileStorage.API.Accounting";
import "accounting/types.proto";
diff --git a/accounting/types.proto b/accounting/types.proto
index f1facbf..af16f84 100644
--- a/accounting/types.proto
+++ b/accounting/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.accounting;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/accounting/grpc;accounting";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/accounting/grpc;accounting";
option csharp_namespace = "Neo.FileStorage.API.Accounting";
// Standard floating point data type can't be used in NeoFS due to inexactness
diff --git a/acl/types.proto b/acl/types.proto
index 2bf5f23..95b18b5 100644
--- a/acl/types.proto
+++ b/acl/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.acl;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/acl/grpc;acl";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/acl/grpc;acl";
option csharp_namespace = "Neo.FileStorage.API.Acl";
import "refs/types.proto";
diff --git a/audit/types.proto b/audit/types.proto
index 8a9bb72..156a31b 100644
--- a/audit/types.proto
+++ b/audit/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.audit;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/audit/grpc;audit";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/audit/grpc;audit";
option csharp_namespace = "Neo.FileStorage.API.Audit";
import "refs/types.proto";
diff --git a/container/service.proto b/container/service.proto
index 69d96a3..249bfb1 100644
--- a/container/service.proto
+++ b/container/service.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.container;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/container/grpc;container";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
option csharp_namespace = "Neo.FileStorage.API.Container";
import "acl/types.proto";
diff --git a/container/types.proto b/container/types.proto
index a710a4b..a735f74 100644
--- a/container/types.proto
+++ b/container/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.container;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/container/grpc;container";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
option csharp_namespace = "Neo.FileStorage.API.Container";
import "netmap/types.proto";
diff --git a/lock/types.proto b/lock/types.proto
index da811b8..a2eb833 100644
--- a/lock/types.proto
+++ b/lock/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.lock;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/lock/grpc;lock";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/lock/grpc;lock";
option csharp_namespace = "Neo.FileStorage.API.Lock";
import "refs/types.proto";
diff --git a/netmap/service.proto b/netmap/service.proto
index 1898b3a..922cc3e 100644
--- a/netmap/service.proto
+++ b/netmap/service.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.netmap;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc;netmap";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/netmap/grpc;netmap";
option csharp_namespace = "Neo.FileStorage.API.Netmap";
import "netmap/types.proto";
diff --git a/netmap/types.proto b/netmap/types.proto
index 6163687..e4b5e6d 100644
--- a/netmap/types.proto
+++ b/netmap/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.netmap;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc;netmap";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/netmap/grpc;netmap";
option csharp_namespace = "Neo.FileStorage.API.Netmap";
import "refs/types.proto";
diff --git a/object/service.proto b/object/service.proto
index 853ce00..7170b31 100644
--- a/object/service.proto
+++ b/object/service.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.object;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/object/grpc;object";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/object/grpc;object";
option csharp_namespace = "Neo.FileStorage.API.Object";
import "object/types.proto";
diff --git a/object/types.proto b/object/types.proto
index 82d9b9a..78ed3c5 100644
--- a/object/types.proto
+++ b/object/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.object;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/object/grpc;object";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/object/grpc;object";
option csharp_namespace = "Neo.FileStorage.API.Object";
import "refs/types.proto";
diff --git a/refs/types.proto b/refs/types.proto
index 729fc1b..07659f3 100644
--- a/refs/types.proto
+++ b/refs/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.refs;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/refs/grpc;refs";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc;refs";
option csharp_namespace = "Neo.FileStorage.API.Refs";
// Objects in NeoFS are addressed by their ContainerID and ObjectID.
diff --git a/reputation/service.proto b/reputation/service.proto
index c430c5e..ecdb60f 100644
--- a/reputation/service.proto
+++ b/reputation/service.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.reputation;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/reputation/grpc;reputation";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/reputation/grpc;reputation";
option csharp_namespace = "Neo.FileStorage.API.Reputation";
import "reputation/types.proto";
diff --git a/reputation/types.proto b/reputation/types.proto
index 627008d..11915ae 100644
--- a/reputation/types.proto
+++ b/reputation/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.reputation;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/reputation/grpc;reputation";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/reputation/grpc;reputation";
option csharp_namespace = "Neo.FileStorage.API.Reputation";
import "refs/types.proto";
diff --git a/session/service.proto b/session/service.proto
index 98c2ca4..355d3fc 100644
--- a/session/service.proto
+++ b/session/service.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.session;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/session/grpc;session";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/session/grpc;session";
option csharp_namespace = "Neo.FileStorage.API.Session";
import "refs/types.proto";
diff --git a/session/types.proto b/session/types.proto
index d00e99f..71c0e54 100644
--- a/session/types.proto
+++ b/session/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.session;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/session/grpc;session";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/session/grpc;session";
option csharp_namespace = "Neo.FileStorage.API.Session";
import "refs/types.proto";
diff --git a/status/types.proto b/status/types.proto
index 1b4a9fc..4c1eb1d 100644
--- a/status/types.proto
+++ b/status/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.status;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/status/grpc;status";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/status/grpc;status";
option csharp_namespace = "Neo.FileStorage.API.Status";
// Declares the general format of the status returns of the NeoFS RPC protocol.
diff --git a/storagegroup/types.proto b/storagegroup/types.proto
index c54c741..1522f1f 100644
--- a/storagegroup/types.proto
+++ b/storagegroup/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.storagegroup;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/storagegroup/grpc;storagegroup";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/storagegroup/grpc;storagegroup";
option csharp_namespace = "Neo.FileStorage.API.StorageGroup";
import "refs/types.proto";
diff --git a/subnet/types.proto b/subnet/types.proto
index aa69bba..6fe5f36 100644
--- a/subnet/types.proto
+++ b/subnet/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.subnet;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/subnet/grpc;subnet";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/subnet/grpc;subnet";
option csharp_namespace = "Neo.FileStorage.API.Subnet";
import "refs/types.proto";
diff --git a/tombstone/types.proto b/tombstone/types.proto
index 5a94d3b..70ff8db 100644
--- a/tombstone/types.proto
+++ b/tombstone/types.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
package neo.fs.v2.tombstone;
-option go_package = "github.com/nspcc-dev/neofs-api-go/v2/tombstone/grpc;tombstone";
+option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/tombstone/grpc;tombstone";
option csharp_namespace = "Neo.FileStorage.API.Tombstone";
import "refs/types.proto";
From 90be159ed474b7d6ea1aca3bafed0397e475934b Mon Sep 17 00:00:00 2001
From: Stanislav Bogatyrev
Date: Sun, 8 Jan 2023 10:35:08 +0300
Subject: [PATCH 02/60] Change logo
Signed-off-by: Stanislav Bogatyrev
---
.github/logo.svg | 197 +++++++++++++++++------------------------------
1 file changed, 69 insertions(+), 128 deletions(-)
diff --git a/.github/logo.svg b/.github/logo.svg
index b4da076..148c359 100644
--- a/.github/logo.svg
+++ b/.github/logo.svg
@@ -1,129 +1,70 @@
-
-
- FrostFS API language-agnostic protocol definitions
+ FrostFS API language-agnostic protocol definitions
---
-
-
+
## Overview
FrostFS-API repository is the basis for language-specific libraries, e.g.:
-- [frostfs-api-go](https://github.com/TrueCloudLab/frostfs-api-go)
+- [frostfs-api-go](https://git.frostfs.info/TrueCloudLab/frostfs-api-go)
Those libraries contain compiled protocol buffers definitions, wrapped with
language-specific code. Use them to integrate applications with FrostFS.
diff --git a/doc/release_instructions.md b/doc/release_instructions.md
index 853b08a..28834e4 100644
--- a/doc/release_instructions.md
+++ b/doc/release_instructions.md
@@ -1,6 +1,6 @@
# Release instructions
-This documents outlines the neofs-api release process and can be used as a TODO
+This documents outlines the frostfs-api release process and can be used as a TODO
list for a new release.
## Pre-release checks
From 83f2fc594413cfe1c4efa1f812e3a61427fc2e61 Mon Sep 17 00:00:00 2001
From: Vitaliy Potyarkin
Date: Wed, 11 Sep 2024 15:56:26 +0300
Subject: [PATCH 48/60] [#65] Remove reference to NeoFS spec
Can't update it anymore.
Will eventually be superseded by docsite
Signed-off-by: Vitaliy Potyarkin
---
doc/release_instructions.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/doc/release_instructions.md b/doc/release_instructions.md
index 28834e4..e7f8af2 100644
--- a/doc/release_instructions.md
+++ b/doc/release_instructions.md
@@ -60,4 +60,3 @@ releases.
* Close corresponding X.Y.Z Github milestone
* Make announcements in Matrix and Discord channels
-* Update [NeoFS Technical Specification](https://github.com/nspcc-dev/neofs-spec)
From b2f5205976250851af2c7da9bcf98101cd11b080 Mon Sep 17 00:00:00 2001
From: Aleksey Savchuk
Date: Thu, 12 Sep 2024 21:44:19 +0300
Subject: [PATCH 49/60] [#66] .forgejo: Make 'fmt' job fail on changed files
Signed-off-by: Aleksey Savchuk
---
.forgejo/workflows/fmt.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.forgejo/workflows/fmt.yaml b/.forgejo/workflows/fmt.yaml
index d56bcf1..ddd50a7 100644
--- a/.forgejo/workflows/fmt.yaml
+++ b/.forgejo/workflows/fmt.yaml
@@ -12,4 +12,6 @@ jobs:
apt update
apt install -y clang-format
- name: Run fmt
- run: make fmt
+ run: |
+ make fmt
+ git diff --exit-code --quiet
From 5bfbd249bcc666bf53bc4ff729fcc14d8d42025b Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 14:14:02 +0300
Subject: [PATCH 50/60] [#67] container: Remove unused import
Fix warning from protoc:
`container/grpc/service.proto:8:1: warning: Import acl/grpc/types.proto
is unused.`
Refs #60
Signed-off-by: Evgenii Stratonikov
---
container/service.proto | 1 -
1 file changed, 1 deletion(-)
diff --git a/container/service.proto b/container/service.proto
index f1f22de..493b08e 100644
--- a/container/service.proto
+++ b/container/service.proto
@@ -5,7 +5,6 @@ package neo.fs.v2.container;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
option csharp_namespace = "Neo.FileStorage.API.Container";
-import "acl/types.proto";
import "container/types.proto";
import "refs/types.proto";
import "session/types.proto";
From 4c51a9b9d63e53ca0b430d9e4aa6d7e692465821 Mon Sep 17 00:00:00 2001
From: Vitaliy Potyarkin
Date: Wed, 6 Nov 2024 12:50:32 +0300
Subject: [PATCH 51/60] [#71] Stop using obsolete .github directory
This commit is a part of multi-repo cleanup effort:
https://git.frostfs.info/TrueCloudLab/frostfs-infra/issues/136
Signed-off-by: Vitaliy Potyarkin
---
.../ISSUE_TEMPLATE/bug_report.md | 0
.../ISSUE_TEMPLATE/config.yml | 0
.../ISSUE_TEMPLATE/feature_request.md | 0
{.github => .forgejo}/logo.svg | 0
{.github => .forgejo}/markdown.tmpl | 0
.github/CODEOWNERS | 1 -
.github/workflows/buf.yml | 36 -------------------
.github/workflows/dco.yml | 21 -----------
CODEOWNERS | 1 +
CONTRIBUTING.md | 2 +-
Makefile | 2 +-
README.md | 2 +-
doc/release_instructions.md | 10 +++---
13 files changed, 9 insertions(+), 66 deletions(-)
rename {.github => .forgejo}/ISSUE_TEMPLATE/bug_report.md (100%)
rename {.github => .forgejo}/ISSUE_TEMPLATE/config.yml (100%)
rename {.github => .forgejo}/ISSUE_TEMPLATE/feature_request.md (100%)
rename {.github => .forgejo}/logo.svg (100%)
rename {.github => .forgejo}/markdown.tmpl (100%)
delete mode 100644 .github/CODEOWNERS
delete mode 100644 .github/workflows/buf.yml
delete mode 100644 .github/workflows/dco.yml
create mode 100644 CODEOWNERS
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.forgejo/ISSUE_TEMPLATE/bug_report.md
similarity index 100%
rename from .github/ISSUE_TEMPLATE/bug_report.md
rename to .forgejo/ISSUE_TEMPLATE/bug_report.md
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.forgejo/ISSUE_TEMPLATE/config.yml
similarity index 100%
rename from .github/ISSUE_TEMPLATE/config.yml
rename to .forgejo/ISSUE_TEMPLATE/config.yml
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.forgejo/ISSUE_TEMPLATE/feature_request.md
similarity index 100%
rename from .github/ISSUE_TEMPLATE/feature_request.md
rename to .forgejo/ISSUE_TEMPLATE/feature_request.md
diff --git a/.github/logo.svg b/.forgejo/logo.svg
similarity index 100%
rename from .github/logo.svg
rename to .forgejo/logo.svg
diff --git a/.github/markdown.tmpl b/.forgejo/markdown.tmpl
similarity index 100%
rename from .github/markdown.tmpl
rename to .forgejo/markdown.tmpl
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 29c4211..0000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1 +0,0 @@
-* @alexvanin @realloc @fyrchik @anatoly-bogatyrev
diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml
deleted file mode 100644
index 5d9d740..0000000
--- a/.github/workflows/buf.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-name: Buf lint
-
-on:
- pull_request:
- branches:
- - master
-
-jobs:
- lint:
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v2
- - uses: wizhi/setup-buf@v1
- with:
- version: 0.20.5
- - run: buf check lint
-
- breaking:
- runs-on: ubuntu-20.04
- steps:
- - name: Setup buf
- uses: wizhi/setup-buf@v1
- with:
- version: 0.20.5
- - name: Check out ref code
- uses: actions/checkout@v2
- with:
- ref: ${{ github.base_ref }}
- path: baseref
- - run: cd baseref && buf image build -o image.bin
-
- - name: Check out code
- uses: actions/checkout@v2
- with:
- path: prclone
- - run: cd prclone && buf check breaking --against-input ../baseref/image.bin
diff --git a/.github/workflows/dco.yml b/.github/workflows/dco.yml
deleted file mode 100644
index 40ed8fc..0000000
--- a/.github/workflows/dco.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: DCO check
-
-on:
- pull_request:
- branches:
- - master
-
-jobs:
- commits_check_job:
- runs-on: ubuntu-latest
- name: Commits Check
- steps:
- - name: Get PR Commits
- id: 'get-pr-commits'
- uses: tim-actions/get-pr-commits@master
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- - name: DCO Check
- uses: tim-actions/dco@master
- with:
- commits: ${{ steps.get-pr-commits.outputs.commits }}
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..4690d7e
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1 @@
+.* @alexvanin @realloc @fyrchik @a.bogatyrev
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b6ecdf5..1ca386f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -87,7 +87,7 @@ $ git push origin feature/123-something_awesome
```
### Create a Pull Request
-Pull requests can be created via GitHub. Refer to [this
+Pull requests can be created via git.frostfs.info. Refer to [this
document](https://help.github.com/articles/creating-a-pull-request/) for
detailed steps on how to create a pull request. After a Pull Request gets peer
reviewed and approved, it will be merged.
diff --git a/Makefile b/Makefile
index c08d609..6173f5c 100755
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ doc:
@for f in `find . -type f -name '*.proto' -exec dirname {} \; | sort -u `; do \
echo "⇒ Documentation for $$(basename $$f)"; \
protoc \
- --doc_opt=.github/markdown.tmpl,$${f}.md \
+ --doc_opt=.forgejo/markdown.tmpl,$${f}.md \
--proto_path=.:/usr/local/include \
--doc_out=proto-docs/ $${f}/*.proto; \
done
diff --git a/README.md b/README.md
index 561995d..5447b7b 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
FrostFS API language-agnostic protocol definitions
diff --git a/doc/release_instructions.md b/doc/release_instructions.md
index e7f8af2..d4fb9d4 100644
--- a/doc/release_instructions.md
+++ b/doc/release_instructions.md
@@ -20,7 +20,7 @@ Add an entry to the CHANGELOG.md following the style established there.
Add a codename for releases with the new major version, version and release date in
the heading. Write a paragraph describing the most significant changes done in
this release. Then add sections with what has been added, changed and removed,
-describing each change briefly with a reference to GitHub issues, where
+describing each change briefly with a reference to issues, where
available.
## Release commit
@@ -38,7 +38,7 @@ Release v2.9.0 - Anmyeondo (안면도, 安眠島)
Use `vX.Y.Z` tag following the semantic versioning standard. For pre-release
versions use `vX.Y.Z-rc.N` scheme.
-## Push changes and release tag to Github
+## Push changes and release tag to repository
This step should bypass the default PR mechanism to get a correct result (so
that releasing requires admin privileges for the project), both the `master`
@@ -48,9 +48,9 @@ branch update and tag must be pushed simultaneously like this:
$ git push origin master v2.7.0
```
-## Make a proper Github release
+## Make a proper release
-Edit an automatically-created release on Github.
+Edit an automatically-created release on git.frostfs.info
Release title has to follow ` ( )` scheme for major releases and just `` for regular point
@@ -58,5 +58,5 @@ releases.
## Post-release actions
-* Close corresponding X.Y.Z Github milestone
+* Close corresponding X.Y.Z milestone
* Make announcements in Matrix and Discord channels
From 1a6bb369ec4cdf262e01be533973e0865a4ae1bb Mon Sep 17 00:00:00 2001
From: Ekaterina Lebedeva
Date: Wed, 16 Oct 2024 17:36:52 +0300
Subject: [PATCH 52/60] [#70] container: Add ListStream method
Signed-off-by: Ekaterina Lebedeva
---
container/service.proto | 52 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/container/service.proto b/container/service.proto
index 493b08e..ff79fcb 100644
--- a/container/service.proto
+++ b/container/service.proto
@@ -61,6 +61,17 @@ service ContainerService {
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
// container list access denied.
rpc List(ListRequest) returns (ListResponse);
+
+ // Returns all owner's containers from `Container` smart contract' storage
+ // via stream.
+ //
+ // Statuses:
+ // - **OK** (0, SECTION_SUCCESS): \
+ // container list has been successfully read;
+ // - Common failures (SECTION_FAILURE_COMMON);
+ // - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
+ // container list access denied.
+ rpc ListStream(ListStreamRequest) returns (stream ListStreamResponse);
}
// New FrostFS Container creation request
@@ -245,3 +256,44 @@ message ListResponse {
// transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
}
+
+// List containers stream
+message ListStreamRequest {
+ // List containers stream request body.
+ message Body {
+ // Identifier of the container owner.
+ neo.fs.v2.refs.OwnerID owner_id = 1;
+ }
+ // Body of list containers stream request message.
+ Body body = 1;
+
+ // Carries request meta information. Header data is used only to regulate
+ // message transport and does not affect request execution.
+ neo.fs.v2.session.RequestMetaHeader meta_header = 2;
+
+ // Carries request verification information. This header is used to
+ // authenticate the nodes of the message route and check the correctness of
+ // transmission.
+ neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
+}
+
+// List containers stream
+message ListStreamResponse {
+ // List containers stream response body.
+ message Body {
+ // List of `ContainerID`s belonging to the requested `OwnerID`
+ repeated refs.ContainerID container_ids = 1;
+ }
+
+ // Body of list containers stream response message.
+ Body body = 1;
+
+ // Carries response meta information. Header data is used only to regulate
+ // message transport and does not affect request execution.
+ neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
+
+ // Carries response verification information. This header is used to
+ // authenticate the nodes of the message route and check the correctness of
+ // transmission.
+ neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
+}
From 8540f0d18d5d26fd32ead801478e8405b8fbaaaf Mon Sep 17 00:00:00 2001
From: Ekaterina Lebedeva
Date: Wed, 13 Nov 2024 15:39:21 +0300
Subject: [PATCH 53/60] [#70] container: Fix wrong tick in comments
Signed-off-by: Ekaterina Lebedeva
---
container/service.proto | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/container/service.proto b/container/service.proto
index ff79fcb..a9a33d2 100644
--- a/container/service.proto
+++ b/container/service.proto
@@ -52,7 +52,7 @@ service ContainerService {
// access to container is denied.
rpc Get(GetRequest) returns (GetResponse);
- // Returns all owner's containers from 'Container` smart contract' storage.
+ // Returns all owner's containers from `Container` smart contract storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS): \
@@ -62,7 +62,7 @@ service ContainerService {
// container list access denied.
rpc List(ListRequest) returns (ListResponse);
- // Returns all owner's containers from `Container` smart contract' storage
+ // Returns all owner's containers from `Container` smart contract storage
// via stream.
//
// Statuses:
From 2ed394d380a3e40f490a56c478814fb65907f686 Mon Sep 17 00:00:00 2001
From: Vitaliy Potyarkin
Date: Tue, 10 Dec 2024 15:42:13 +0300
Subject: [PATCH 54/60] [#73] Refine CODEOWNERS settings
Signed-off-by: Vitaliy Potyarkin
---
CODEOWNERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CODEOWNERS b/CODEOWNERS
index 4690d7e..e72ee14 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1 +1,3 @@
.* @alexvanin @realloc @fyrchik @a.bogatyrev
+.forgejo/.* @potyarkin
+Makefile @potyarkin
From e33194282c0035bed8fcc652175f5a3dabd902a8 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Thu, 26 Dec 2024 14:17:07 +0300
Subject: [PATCH 55/60] [#75] CODEOWNERS: Add SDK developers team
Signed-off-by: Evgenii Stratonikov
---
CODEOWNERS | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CODEOWNERS b/CODEOWNERS
index e72ee14..854e751 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,3 +1,3 @@
-.* @alexvanin @realloc @fyrchik @a.bogatyrev
+.* @alexvanin @realloc @fyrchik @a.bogatyrev @TrueCloudLab/storage-sdk-developers
.forgejo/.* @potyarkin
Makefile @potyarkin
From 52e5bc646f1093be42581362a58e245734bdd8ac Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Thu, 26 Dec 2024 14:06:59 +0300
Subject: [PATCH 56/60] [#74] Use edition directive instead of syntax
https://go.dev/blog/protobuf-opaque
Signed-off-by: Evgenii Stratonikov
---
accounting/service.proto | 2 +-
accounting/types.proto | 2 +-
acl/types.proto | 2 +-
ape/types.proto | 2 +-
apemanager/service.proto | 2 +-
container/service.proto | 2 +-
container/types.proto | 2 +-
lock/types.proto | 2 +-
netmap/service.proto | 2 +-
netmap/types.proto | 2 +-
object/service.proto | 2 +-
object/types.proto | 2 +-
refs/types.proto | 2 +-
session/service.proto | 2 +-
session/types.proto | 2 +-
status/types.proto | 2 +-
tombstone/types.proto | 2 +-
17 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/accounting/service.proto b/accounting/service.proto
index eedd4ce..cd49b4d 100644
--- a/accounting/service.proto
+++ b/accounting/service.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.accounting;
diff --git a/accounting/types.proto b/accounting/types.proto
index 5dd9b50..7f5e89c 100644
--- a/accounting/types.proto
+++ b/accounting/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.accounting;
diff --git a/acl/types.proto b/acl/types.proto
index fdaffd4..78f247a 100644
--- a/acl/types.proto
+++ b/acl/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.acl;
diff --git a/ape/types.proto b/ape/types.proto
index 3a97e60..2cbc5a9 100644
--- a/ape/types.proto
+++ b/ape/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package frostfs.v2.ape;
diff --git a/apemanager/service.proto b/apemanager/service.proto
index 166ba4d..64c2565 100644
--- a/apemanager/service.proto
+++ b/apemanager/service.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package frostfs.v2.apemanager;
diff --git a/container/service.proto b/container/service.proto
index a9a33d2..72b3789 100644
--- a/container/service.proto
+++ b/container/service.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.container;
diff --git a/container/types.proto b/container/types.proto
index d133a45..d114205 100644
--- a/container/types.proto
+++ b/container/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.container;
diff --git a/lock/types.proto b/lock/types.proto
index 2fdafa5..dc55276 100644
--- a/lock/types.proto
+++ b/lock/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.lock;
diff --git a/netmap/service.proto b/netmap/service.proto
index dce43f4..c21fb53 100644
--- a/netmap/service.proto
+++ b/netmap/service.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.netmap;
diff --git a/netmap/types.proto b/netmap/types.proto
index 969790c..b76b3c1 100644
--- a/netmap/types.proto
+++ b/netmap/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.netmap;
diff --git a/object/service.proto b/object/service.proto
index e6ab5e0..f1ac927 100644
--- a/object/service.proto
+++ b/object/service.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.object;
diff --git a/object/types.proto b/object/types.proto
index 6e9469b..f1df067 100644
--- a/object/types.proto
+++ b/object/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.object;
diff --git a/refs/types.proto b/refs/types.proto
index fe12ec6..2464c34 100644
--- a/refs/types.proto
+++ b/refs/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.refs;
diff --git a/session/service.proto b/session/service.proto
index 544556b..c9a7948 100644
--- a/session/service.proto
+++ b/session/service.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.session;
diff --git a/session/types.proto b/session/types.proto
index c5bb695..1e5b9db 100644
--- a/session/types.proto
+++ b/session/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.session;
diff --git a/status/types.proto b/status/types.proto
index d3e09fd..60fd312 100644
--- a/status/types.proto
+++ b/status/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.status;
diff --git a/tombstone/types.proto b/tombstone/types.proto
index ccf1257..aac19b0 100644
--- a/tombstone/types.proto
+++ b/tombstone/types.proto
@@ -1,4 +1,4 @@
-syntax = "proto3";
+edition = "2023";
package neo.fs.v2.tombstone;
From b337e61e98705d79b01d55a3aeb22997fc5870de Mon Sep 17 00:00:00 2001
From: Aleksey Savchuk
Date: Wed, 5 Feb 2025 13:43:36 +0300
Subject: [PATCH 57/60] [#78] status: Introduce `RESOURCE_EXHAUSTED` common
status
Signed-off-by: Aleksey Savchuk
---
status/types.proto | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/status/types.proto b/status/types.proto
index 60fd312..6a98f84 100644
--- a/status/types.proto
+++ b/status/types.proto
@@ -109,6 +109,10 @@ enum CommonFail {
// request parameter as the client sent it incorrectly, then this code should
// be used.
INVALID_ARGUMENT = 4;
+
+ // [**1029**] Resource exhausted failure. This code should be used
+ // if the operation cannot be performed due to a lack of resources.
+ RESOURCE_EXHAUSTED = 5;
}
// Section of statuses for object-related operations.
From a9eaff2fd6f6f4a12e519890bba7c59deefd1600 Mon Sep 17 00:00:00 2001
From: Ori Bruk
Date: Tue, 11 Mar 2025 18:41:01 +0300
Subject: [PATCH 58/60] [#82] Update documentation info
Signed-off-by: Ori Bruk
---
object/service.proto | 4 +++
proto-docs/container.md | 70 ++++++++++++++++++++++++++++++++++++++++-
proto-docs/object.md | 5 ++-
proto-docs/status.md | 1 +
4 files changed, 78 insertions(+), 2 deletions(-)
diff --git a/object/service.proto b/object/service.proto
index f1ac927..8ee955a 100644
--- a/object/service.proto
+++ b/object/service.proto
@@ -124,6 +124,9 @@ service ObjectService {
// returned. If `main_only` request field is set, the short header with only
// the very minimal information will be returned instead.
//
+ // Max header size is currently not limited by this API, but may be restricted
+ // on the service level. By default, gRPC uses a message size of 4 MiB.
+ //
// Extended headers can change `Head` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
@@ -570,6 +573,7 @@ message HeadResponse {
ShortHeader short_header = 2;
// Meta information of split hierarchy.
+ // Indicates that the object is virtual, manual assembly is required.
SplitInfo split_info = 3;
// Meta information for EC object assembly.
diff --git a/proto-docs/container.md b/proto-docs/container.md
index 76cc115..7ee5dab 100644
--- a/proto-docs/container.md
+++ b/proto-docs/container.md
@@ -20,6 +20,10 @@
- [ListRequest.Body](#neo.fs.v2.container.ListRequest.Body)
- [ListResponse](#neo.fs.v2.container.ListResponse)
- [ListResponse.Body](#neo.fs.v2.container.ListResponse.Body)
+ - [ListStreamRequest](#neo.fs.v2.container.ListStreamRequest)
+ - [ListStreamRequest.Body](#neo.fs.v2.container.ListStreamRequest.Body)
+ - [ListStreamResponse](#neo.fs.v2.container.ListStreamResponse)
+ - [ListStreamResponse.Body](#neo.fs.v2.container.ListStreamResponse.Body)
- [PutRequest](#neo.fs.v2.container.PutRequest)
- [PutRequest.Body](#neo.fs.v2.container.PutRequest.Body)
- [PutResponse](#neo.fs.v2.container.PutResponse)
@@ -58,6 +62,7 @@ rpc Put(PutRequest) returns (PutResponse);
rpc Delete(DeleteRequest) returns (DeleteResponse);
rpc Get(GetRequest) returns (GetResponse);
rpc List(ListRequest) returns (ListResponse);
+rpc ListStream(ListStreamRequest) returns (stream ListStreamResponse);
```
@@ -113,7 +118,7 @@ Statuses:
| Get | [GetRequest](#neo.fs.v2.container.GetRequest) | [GetResponse](#neo.fs.v2.container.GetResponse) |
#### Method List
-Returns all owner's containers from 'Container` smart contract' storage.
+Returns all owner's containers from `Container` smart contract storage.
Statuses:
- **OK** (0, SECTION_SUCCESS): \
@@ -125,6 +130,21 @@ Statuses:
| Name | Input | Output |
| ---- | ----- | ------ |
| List | [ListRequest](#neo.fs.v2.container.ListRequest) | [ListResponse](#neo.fs.v2.container.ListResponse) |
+#### Method ListStream
+
+Returns all owner's containers from `Container` smart contract storage
+via stream.
+
+Statuses:
+- **OK** (0, SECTION_SUCCESS): \
+ container list has been successfully read;
+- Common failures (SECTION_FAILURE_COMMON);
+- **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
+ container list access denied.
+
+| Name | Input | Output |
+| ---- | ----- | ------ |
+| ListStream | [ListStreamRequest](#neo.fs.v2.container.ListStreamRequest) | [ListStreamResponse](#neo.fs.v2.container.ListStreamResponse) |
@@ -276,6 +296,54 @@ List containers response body.
| container_ids | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | repeated | List of `ContainerID`s belonging to the requested `OwnerID` |
+
+
+### Message ListStreamRequest
+List containers stream
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| body | [ListStreamRequest.Body](#neo.fs.v2.container.ListStreamRequest.Body) | | Body of list containers stream request message. |
+| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
+| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
+
+
+
+
+### Message ListStreamRequest.Body
+List containers stream request body.
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the container owner. |
+
+
+
+
+### Message ListStreamResponse
+List containers stream
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| body | [ListStreamResponse.Body](#neo.fs.v2.container.ListStreamResponse.Body) | | Body of list containers stream response message. |
+| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
+| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
+
+
+
+
+### Message ListStreamResponse.Body
+List containers stream response body.
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| container_ids | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | repeated | List of `ContainerID`s belonging to the requested `OwnerID` |
+
+
### Message PutRequest
diff --git a/proto-docs/object.md b/proto-docs/object.md
index dd30ede..14b9ae6 100644
--- a/proto-docs/object.md
+++ b/proto-docs/object.md
@@ -223,6 +223,9 @@ Returns the object Headers without data payload. By default full header is
returned. If `main_only` request field is set, the short header with only
the very minimal information will be returned instead.
+Max header size is currently not limited by this API, but may be restricted
+on the service level. By default, gRPC uses a message size of 4 MiB.
+
Extended headers can change `Head` behaviour:
* [ __SYSTEM__NETMAP_EPOCH ] \
(`__NEOFS__NETMAP_EPOCH` is deprecated) \
@@ -728,7 +731,7 @@ Object HEAD response body
| ----- | ---- | ----- | ----------- |
| header | [HeaderWithSignature](#neo.fs.v2.object.HeaderWithSignature) | | Full object's `Header` with `ObjectID` signature |
| short_header | [ShortHeader](#neo.fs.v2.object.ShortHeader) | | Short object header |
-| split_info | [SplitInfo](#neo.fs.v2.object.SplitInfo) | | Meta information of split hierarchy. |
+| split_info | [SplitInfo](#neo.fs.v2.object.SplitInfo) | | Meta information of split hierarchy. Indicates that the object is virtual, manual assembly is required. |
| ec_info | [ECInfo](#neo.fs.v2.object.ECInfo) | | Meta information for EC object assembly. |
diff --git a/proto-docs/status.md b/proto-docs/status.md
index 76534fb..b00d000 100644
--- a/proto-docs/status.md
+++ b/proto-docs/status.md
@@ -102,6 +102,7 @@ Section of failed statuses independent of the operation.
| SIGNATURE_VERIFICATION_FAIL | 2 | [**1026**] Signature verification failure. |
| NODE_UNDER_MAINTENANCE | 3 | [**1027**] Node is under maintenance. |
| INVALID_ARGUMENT | 4 | [**1028**] Invalid argument error. If the server fails on validation of a request parameter as the client sent it incorrectly, then this code should be used. |
+| RESOURCE_EXHAUSTED | 5 | [**1029**] Resource exhausted failure. This code should be used if the operation cannot be performed due to a lack of resources. |
From 9c7730b67bbe2163e8d1ea82de48e488c9dd0bff Mon Sep 17 00:00:00 2001
From: Airat Arifullin
Date: Tue, 4 Mar 2025 16:50:03 +0300
Subject: [PATCH 59/60] [#81] object: Extend `PatchRequest.Body` with
`new_split_header` field
* This field updates object's split header.
Signed-off-by: Airat Arifullin
---
object/service.proto | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/object/service.proto b/object/service.proto
index 8ee955a..c5e4fc7 100644
--- a/object/service.proto
+++ b/object/service.proto
@@ -891,6 +891,10 @@ message PatchRequest {
// key, then it just replaces it while merging the lists.
bool replace_attributes = 3;
+ // New split header for the object. This defines how the object will relate
+ // to other objects in a split operation.
+ neo.fs.v2.object.Header.Split new_split_header = 5;
+
// The patch for the object's payload.
message Patch {
// The range of the source object for which the payload is replaced by the
From 6ea41833977464d82e9bf96394254271f34ea68d Mon Sep 17 00:00:00 2001
From: Roman Loginov
Date: Wed, 5 Feb 2025 13:32:45 +0300
Subject: [PATCH 60/60] [#77] object: Add a refinement to description on the
FileName attribute
Signed-off-by: Roman Loginov
---
object/types.proto | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/object/types.proto b/object/types.proto
index f1df067..62a6792 100644
--- a/object/types.proto
+++ b/object/types.proto
@@ -141,7 +141,8 @@ message Header {
// * Name \
// Human-friendly name
// * FileName \
- // File name to be associated with the object on saving
+ // File name to be associated with the object on saving. FileName must not
+ // contain the delimiting symbol '/'.
// * FilePath \
// Full path to be associated with the object on saving. Should start with a
// '/' and use '/' as a delimiting symbol. Trailing '/' should be