Skip to content

Commit 1a313b1

Browse files
authored
Build with buf (#216)
1 parent c39f90f commit 1a313b1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+282
-11557
lines changed

.drone.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ steps:
3737
- touch /root/.ssh/known_hosts
3838
- chmod 600 /root/.ssh/known_hosts
3939
- ssh-keyscan -H github.com > /etc/ssh/ssh_known_hosts 2> /dev/null
40-
- cs3apis-build -all -git-ssh # compile, build and publish all available languages
40+
- cs3apis-build -push-go -push-python -push-js -push-node -git-ssh # compile, build and publish all available languages
4141

4242
---
4343
kind: pipeline
@@ -61,4 +61,4 @@ steps:
6161
pull: always
6262
image: cs3org/cs3apis:latest
6363
commands:
64-
- cs3apis-build -only-build # compile, build and publish all available languages
64+
- cs3apis-build # compile, build and publish all available languages

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
prototool.yaml
22
build
3+
gen

CMakeLists.txt

Lines changed: 0 additions & 34 deletions
This file was deleted.

Makefile

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,11 @@
1-
.PHONY: build lint docs deps
2-
31
pwd = $(shell pwd)
4-
default: build
2+
default: gen
53

6-
pull:
7-
docker pull cs3org/cs3apis
4+
gen:
5+
docker run -v ${pwd}:/root/cs3apis hugo cs3apis-build
6+
#docker run -v ${pwd}:/root/cs3apis cs3org/cs3apis cs3apis-build
87

9-
build: pull
10-
docker run -v ${pwd}:/root/cs3apis cs3org/cs3apis cs3apis-build -build-proto
11-
# restore ownership of the `docs` folder as docker runs as root
12-
chown -R `ls -ld . | awk '{print $$3 ":" $$4}'` docs
13-
python: pull
14-
docker run -v ${pwd}:/root/cs3apis cs3org/cs3apis cs3apis-build -build-python
15-
go: pull
16-
docker run -v ${pwd}:/root/cs3apis cs3org/cs3apis cs3apis-build -build-go
17-
js: pull
18-
docker run -v ${pwd}:/root/cs3apis cs3org/cs3apis cs3apis-build -build-js
19-
node: pull
20-
docker run -v ${pwd}:/root/cs3apis cs3org/cs3apis cs3apis-build -build-node
218
clean:
229
rm -rf build/
10+
all: gen clean
2311

24-
all: build python go js node

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ You need to have Docker installed. The artifacts will be available under the bui
3333
```
3434
$ git clone https://github.com/cs3org/cs3apis
3535
$ cd cs3apis
36-
$ make build
37-
$ make go # generate go code
36+
$ make
3837
```
38+
The `build` folder will be generated. It will be owned by `root`.
3939

4040
See the Makefile to find all the available build options.
4141

buf.gen.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
version: v1
2+
plugins:
3+
- plugin: buf.build/protocolbuffers/go:v1.31.0
4+
out: build/go-cs3apis
5+
opt: paths=source_relative
6+
7+
- plugin: buf.build/grpc/go:v1.3.0
8+
out: build/go-cs3apis
9+
opt: paths=source_relative,require_unimplemented_servers=false
10+
11+
- plugin: buf.build/grpc/web:v1.5.0
12+
out: build/js-cs3apis
13+
opt: mode=grpcweb
14+
15+
- plugin: buf.build/protocolbuffers/js:v3.21.2
16+
out: build/js-cs3apis
17+
18+
- plugin: buf.build/grpc/python:v1.59.2
19+
out: build/python-cs3apis
20+
- plugin: buf.build/protocolbuffers/python:v25.0
21+
out: build/python-cs3apis
22+
23+
- plugin: buf.build/grpc/node:v1.12.4
24+
out: build/node-cs3apis
25+
26+
managed:
27+
enabled: true
28+
go_package_prefix:
29+
default: github.com/cs3org/go-cs3apis

buf.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Generated by buf. DO NOT EDIT.
2+
version: v1
3+
deps:
4+
- remote: buf.build
5+
owner: protocolbuffers
6+
repository: wellknowntypes
7+
commit: f17e05fe4a764a3482b8e033daec742e
8+
digest: shake256:886495c560d96bc48bef49e17e3d33430fa1f6c735b0cee40ef83161824b01c2d2f342d81ca02aadeed52aa3cf4a8273d5ab9584fbb595b71e7e44240caedb00

buf.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This is the official documention for the CS3APIs.

buf.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: v1
2+
name: buf.build/cs3org-buf/cs3apis
3+
deps:
4+
- buf.build/protocolbuffers/wellknowntypes:v21.12
5+
lint:
6+
use:
7+
- DEFAULT
8+
enum_zero_value_suffix: _INVALID
9+
service_suffix: API
10+
build:
11+
excludes:
12+
- docs
13+
- tools
14+

cs3/admin/group/v1beta1/group_api.proto

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ syntax = "proto3";
2020

2121
package cs3.admin.group.v1beta1;
2222

23+
import "cs3/identity/group/v1beta1/resources.proto";
24+
import "cs3/identity/user/v1beta1/resources.proto";
25+
import "cs3/rpc/v1beta1/status.proto";
26+
import "cs3/types/v1beta1/types.proto";
27+
2328
option csharp_namespace = "Cs3.Admin.Group.V1Beta1";
2429
option go_package = "groupv1beta1";
2530
option java_multiple_files = true;
@@ -28,11 +33,6 @@ option java_package = "com.cs3.admin.group.v1beta1";
2833
option objc_class_prefix = "CAG";
2934
option php_namespace = "Cs3\\Admin\\Group\\V1Beta1";
3035

31-
import "cs3/identity/group/v1beta1/resources.proto";
32-
import "cs3/identity/user/v1beta1/resources.proto";
33-
import "cs3/rpc/v1beta1/status.proto";
34-
import "cs3/types/v1beta1/types.proto";
35-
3636
// Provides a write only API for managing groups.
3737
service GroupAPI {
3838
// Create a group.

cs3/admin/user/v1beta1/user_api.proto

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ syntax = "proto3";
2020

2121
package cs3.admin.user.v1beta1;
2222

23+
import "cs3/identity/user/v1beta1/resources.proto";
24+
import "cs3/rpc/v1beta1/status.proto";
25+
import "cs3/types/v1beta1/types.proto";
26+
2327
option csharp_namespace = "Cs3.Admin.User.V1Beta1";
2428
option go_package = "userv1beta1";
2529
option java_multiple_files = true;
@@ -28,10 +32,6 @@ option java_package = "com.cs3.admin.user.v1beta1";
2832
option objc_class_prefix = "CAU";
2933
option php_namespace = "Cs3\\Admin\\User\\V1Beta1";
3034

31-
import "cs3/identity/user/v1beta1/resources.proto";
32-
import "cs3/rpc/v1beta1/status.proto";
33-
import "cs3/types/v1beta1/types.proto";
34-
3535
// Provides a write only API for managing users.
3636
service UserAPI {
3737
// Create a user account.

cs3/app/provider/v1beta1/provider_api.proto

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ syntax = "proto3";
2020

2121
package cs3.app.provider.v1beta1;
2222

23+
import "cs3/app/provider/v1beta1/resources.proto";
24+
import "cs3/rpc/v1beta1/status.proto";
25+
import "cs3/storage/provider/v1beta1/resources.proto";
26+
import "cs3/types/v1beta1/types.proto";
27+
2328
option csharp_namespace = "Cs3.App.Provider.V1Beta1";
2429
option go_package = "providerv1beta1";
2530
option java_multiple_files = true;
@@ -28,11 +33,6 @@ option java_package = "com.cs3.app.provider.v1beta1";
2833
option objc_class_prefix = "CAP";
2934
option php_namespace = "Cs3\\App\\Provider\\V1Beta1";
3035

31-
import "cs3/app/provider/v1beta1/resources.proto";
32-
import "cs3/rpc/v1beta1/status.proto";
33-
import "cs3/storage/provider/v1beta1/resources.proto";
34-
import "cs3/types/v1beta1/types.proto";
35-
3636
//import "cs3/appprovider/v1beta1/resources.proto";
3737

3838
// App Provider API

cs3/app/registry/v1beta1/registry_api.proto

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ syntax = "proto3";
2020

2121
package cs3.app.registry.v1beta1;
2222

23+
import "cs3/app/registry/v1beta1/resources.proto";
24+
import "cs3/rpc/v1beta1/status.proto";
25+
import "cs3/storage/provider/v1beta1/resources.proto";
26+
import "cs3/types/v1beta1/types.proto";
27+
2328
option csharp_namespace = "Cs3.App.Registry.V1Beta1";
2429
option go_package = "registryv1beta1";
2530
option java_multiple_files = true;
@@ -28,11 +33,6 @@ option java_package = "com.cs3.app.registry.v1beta1";
2833
option objc_class_prefix = "CAR";
2934
option php_namespace = "Cs3\\App\\Registry\\V1Beta1";
3035

31-
import "cs3/app/registry/v1beta1/resources.proto";
32-
import "cs3/rpc/v1beta1/status.proto";
33-
import "cs3/storage/provider/v1beta1/resources.proto";
34-
import "cs3/types/v1beta1/types.proto";
35-
3636
// App Registry API
3737
//
3838
// The App Registry API is meant to as registry that

cs3/app/registry/v1beta1/resources.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ syntax = "proto3";
2020

2121
package cs3.app.registry.v1beta1;
2222

23+
import "cs3/types/v1beta1/types.proto";
24+
2325
option csharp_namespace = "Cs3.App.Registry.V1Beta1";
2426
option go_package = "registryv1beta1";
2527
option java_multiple_files = true;
@@ -28,8 +30,6 @@ option java_package = "com.cs3.app.registry.v1beta1";
2830
option objc_class_prefix = "CAR";
2931
option php_namespace = "Cs3\\App\\Registry\\V1Beta1";
3032

31-
import "cs3/types/v1beta1/types.proto";
32-
3333
// Represents the information of the app provider.
3434
message ProviderInfo {
3535
// OPTIONAL.

cs3/auth/applications/v1beta1/applications_api.proto

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ syntax = "proto3";
2020

2121
package cs3.auth.applications.v1beta1;
2222

23+
import "cs3/auth/applications/v1beta1/resources.proto";
24+
import "cs3/auth/provider/v1beta1/resources.proto";
25+
import "cs3/identity/user/v1beta1/resources.proto";
26+
import "cs3/rpc/v1beta1/status.proto";
27+
import "cs3/types/v1beta1/types.proto";
28+
2329
option csharp_namespace = "Cs3.Auth.Applications.V1Beta1";
2430
option go_package = "applicationsv1beta1";
2531
option java_multiple_files = true;
@@ -28,12 +34,6 @@ option java_package = "com.cs3.auth.applications.v1beta1";
2834
option objc_class_prefix = "CAA";
2935
option php_namespace = "Cs3\\Auth\\Applications\\V1Beta1";
3036

31-
import "cs3/auth/applications/v1beta1/resources.proto";
32-
import "cs3/auth/provider/v1beta1/resources.proto";
33-
import "cs3/identity/user/v1beta1/resources.proto";
34-
import "cs3/rpc/v1beta1/status.proto";
35-
import "cs3/types/v1beta1/types.proto";
36-
3737
// Auth Applications API
3838
//
3939
// The Auth Applications API is meant to generate and manage authentication

cs3/auth/applications/v1beta1/resources.proto

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ syntax = "proto3";
2020

2121
package cs3.auth.applications.v1beta1;
2222

23+
import "cs3/auth/provider/v1beta1/resources.proto";
24+
import "cs3/identity/user/v1beta1/resources.proto";
25+
import "cs3/types/v1beta1/types.proto";
26+
2327
option csharp_namespace = "Cs3.Auth.Applications.V1Beta1";
2428
option go_package = "applicationsv1beta1";
2529
option java_multiple_files = true;
@@ -28,10 +32,6 @@ option java_package = "com.cs3.auth.applications.v1beta1";
2832
option objc_class_prefix = "CAA";
2933
option php_namespace = "Cs3\\Auth\\Applications\\V1Beta1";
3034

31-
import "cs3/auth/provider/v1beta1/resources.proto";
32-
import "cs3/identity/user/v1beta1/resources.proto";
33-
import "cs3/types/v1beta1/types.proto";
34-
3535
// AppPassword stores information about secondary passwords generated by users
3636
// to be used with third-party applications.
3737
message AppPassword {

cs3/auth/provider/v1beta1/provider_api.proto

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ syntax = "proto3";
2020

2121
package cs3.auth.provider.v1beta1;
2222

23+
import "cs3/auth/provider/v1beta1/resources.proto";
24+
import "cs3/identity/user/v1beta1/resources.proto";
25+
import "cs3/rpc/v1beta1/status.proto";
26+
import "cs3/types/v1beta1/types.proto";
27+
2328
option csharp_namespace = "Cs3.Auth.Provider.V1Beta1";
2429
option go_package = "providerv1beta1";
2530
option java_multiple_files = true;
@@ -28,11 +33,6 @@ option java_package = "com.cs3.auth.provider.v1beta1";
2833
option objc_class_prefix = "CAP";
2934
option php_namespace = "Cs3\\Auth\\Provider\\V1Beta1";
3035

31-
import "cs3/auth/provider/v1beta1/resources.proto";
32-
import "cs3/identity/user/v1beta1/resources.proto";
33-
import "cs3/rpc/v1beta1/status.proto";
34-
import "cs3/types/v1beta1/types.proto";
35-
3636
// Auth Provider API
3737
//
3838
// The Auth Provider API is meant to authenticate a client.

cs3/auth/provider/v1beta1/resources.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ syntax = "proto3";
2020

2121
package cs3.auth.provider.v1beta1;
2222

23+
import "cs3/types/v1beta1/types.proto";
24+
2325
option csharp_namespace = "Cs3.Auth.Provider.V1Beta1";
2426
option go_package = "providerv1beta1";
2527
option java_multiple_files = true;
@@ -28,8 +30,6 @@ option java_package = "com.cs3.auth.provider.v1beta1";
2830
option objc_class_prefix = "CAP";
2931
option php_namespace = "Cs3\\Auth\\Provider\\V1Beta1";
3032

31-
import "cs3/types/v1beta1/types.proto";
32-
3333
// Scope defines role-based permissions for various resources.
3434
message Scope {
3535
// REQUIRED.

cs3/auth/registry/v1beta1/registry_api.proto

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ syntax = "proto3";
2020

2121
package cs3.auth.registry.v1beta1;
2222

23+
import "cs3/auth/registry/v1beta1/resources.proto";
24+
import "cs3/rpc/v1beta1/status.proto";
25+
import "cs3/types/v1beta1/types.proto";
26+
2327
option csharp_namespace = "Cs3.Auth.Registry.V1Beta1";
2428
option go_package = "registryv1beta1";
2529
option java_multiple_files = true;
@@ -28,10 +32,6 @@ option java_package = "com.cs3.auth.registry.v1beta1";
2832
option objc_class_prefix = "CAR";
2933
option php_namespace = "Cs3\\Auth\\Registry\\V1Beta1";
3034

31-
import "cs3/auth/registry/v1beta1/resources.proto";
32-
import "cs3/rpc/v1beta1/status.proto";
33-
import "cs3/types/v1beta1/types.proto";
34-
3535
// Auth Registry API
3636
//
3737
// The Auth Registry API is meant to as registry to obtain
@@ -84,7 +84,6 @@ message ListAuthProvidersRequest {
8484
// Opaque information.
8585
cs3.types.v1beta1.Opaque opaque = 1;
8686
// TODO(labkode): maybe add some filter?
87-
8887
}
8988

9089
message ListAuthProvidersResponse {

0 commit comments

Comments
 (0)