Commit graph

74 commits

Author SHA1 Message Date
Joachim Bauch
d47c280d31
make: Run checklocks tool directly.
Running through "go vet" caused JSON output since switching to Go 1.26 and
doesn't fail the job on errors.
2026-02-12 10:24:50 +01:00
Joachim Bauch
de03ae2514
make: Use "GO" variable for checklocks. 2026-02-12 10:11:37 +01:00
Joachim Bauch
15d6e516bd
CI: No longer test with Golang 1.24 2026-02-12 09:03:13 +01:00
Joachim Bauch
ba482a544b
make: Only need "synctest" GOEXPERIMENT on go1.24 2026-02-12 08:39:15 +01:00
Joachim Bauch
124c37108b
Move SFU related code to separate packages.
With that move GRPC client code to "grpc" package to break dependencies.
Also introduce new "proxy" package with common proxy-related code.
2026-01-12 13:16:50 +01:00
Joachim Bauch
9bbc0588e3
Move code for commandline applications to "cmd" folder. 2026-01-12 13:16:49 +01:00
Joachim Bauch
ecc25c402f
Move async events code to "async/events" package. 2026-01-12 13:16:36 +01:00
Joachim Bauch
231f7c8af4
Move geo related code to "geoip" package.
With that, add dedicated types for "Country" and "Continent".
2026-01-12 13:16:33 +01:00
Joachim Bauch
6756520447
Move etcd client code to "etcd" package. 2026-01-12 13:16:30 +01:00
Joachim Bauch
179498f28b
Move signaling api types to api package. 2026-01-12 13:16:25 +01:00
Joachim Bauch
b7f8f83944
Move Talk capabilities to talk package. 2026-01-12 13:16:23 +01:00
Joachim Bauch
5f58e335c8
make: Include "version.txt" in tarball. 2025-12-03 09:31:32 +01:00
Joachim Bauch
855d2c8231
CI: Run benchmarks. 2025-11-24 12:36:01 +01:00
Joachim Bauch
cfd8cf6718
Use gvisor checklocks for static lock analysis.
Also fix locking issues found along the way.

See https://github.com/google/gvisor/tree/master/tools/checklocks for details.
2025-10-01 13:49:32 +02:00
Joachim Bauch
12c16bce61
make: Always test all packages. 2025-09-26 13:51:44 +02:00
Joachim Bauch
8ee19e3bcf
Use "testing/synctest" to simplify timing-dependent tests. 2025-09-09 11:33:32 +02:00
Joachim Bauch
ac69fa3a0c
CI: Add codecov configuration. 2025-07-31 08:55:45 +02:00
Joachim Bauch
b35d7e9c57
make: Remove (empty) easyjson files from optimization step. 2025-06-12 12:11:21 +02:00
Jean Kahrs
934422d05e Explicitly set TMPDIR to ensure that it is a path where go-installed utils (pe. easyjson-bootstrap) can be executed. Fixes #955 2025-04-01 15:43:59 +02:00
Joachim Bauch
58e484be9c
make: Optimize generated easyjson files. 2025-01-16 10:13:47 +01:00
Joachim Bauch
1de5f26ef8
make: Pin version of "google.golang.org/protobuf/cmd/protoc-gen-go". 2025-01-15 16:41:20 +01:00
Joachim Bauch
9aeb57d74e
Encode session ids using protobufs.
This will reduce their size and improve encoding / decoding performance.

Also fixes GO-2024-3106 (Stack exhaustion in Decoder.Decode in encoding/gob).
2024-10-28 14:47:46 +01:00
Joachim Bauch
761ba9c534
make: Improve dependency tracking. 2024-10-28 11:58:16 +01:00
Joachim Bauch
1230787eb7
make: Rename "distclean" target to "clean-generated".
This is to avoid potential problems with packaging systems that call
"make distclean" during their clean stage and with that remove the
generated files.
2024-09-03 14:58:00 +02:00
Joachim Bauch
052b3e28ed
CI: Always do a full build of generated files. 2024-08-05 09:13:02 +02:00
Joachim Bauch
05d50451c8
Omit version numbers from .proto generated files to help with diff. 2024-07-24 15:09:28 +02:00
Joachim Bauch
fd2ace0482
Keep generated files in the repository.
This reduces the OS dependencies to build a released version.
2024-07-24 15:09:27 +02:00
Joachim Bauch
26e3a39f12
make: No need to run "go mod tidy" before vendoring. 2024-06-03 09:51:22 +02:00
Joachim Bauch
224daa5efd
make: Don't update CLI tools before installing.
This makes sure the go.mod / go.sum files are not updated when generating
the "vendor" folder (which will generate common files and thus might update
the CLI tools). Mismatching "vendor" and "go.*" files will break building.
2024-06-03 09:49:46 +02:00
Joachim Bauch
ebb215c592
make: Don't run tests verbose by default. 2024-04-25 15:22:24 +02:00
Joachim Bauch
42005d97c4
make: Don't update dependencies but use pinned versions. 2024-03-06 08:27:46 +01:00
Joachim Bauch
f071a64797
make: Mark generated files as ".SECONDARY". 2024-02-07 13:08:42 +01:00
Joachim Bauch
6488ba1cf5
make: Fix "BINDIR" getting always created. 2024-02-07 13:08:42 +01:00
Joachim Bauch
b710d1704e
make: Mark "common" as ".PHONY". 2024-02-07 13:08:41 +01:00
Joachim Bauch
4a762a3264
make: Enable ".DELETE_ON_ERROR". 2024-02-07 13:08:41 +01:00
Joachim Bauch
55aee6e5dc
make: Keep generated easyjson files in variable. 2024-02-07 13:08:40 +01:00
Joachim Bauch
2b62c9e3c1
make: Automatically detect names of generated proto files. 2024-02-07 13:08:40 +01:00
Joachim Bauch
1a0e51499f
make: Split GRPC / regular PB file generation so it can be parallelized. 2024-02-07 13:08:39 +01:00
Joachim Bauch
2430421006
make: Update easyjson / prococ generators if dependencies changed. 2024-02-07 13:08:39 +01:00
Joachim Bauch
8db4068989
make: Quote regular expression of tests to run. 2024-01-30 17:03:44 +01:00
Joachim Bauch
84151b295a
Simplify vendoring.
Instead of manually copying files to vendor folder, try to get "go" to
detect dependencies instead.
2023-06-07 17:26:32 +02:00
Joachim Bauch
30a2fb134e
tarball: Copy more "google.golang.org/protobuf" modules to vendor.
This is required for the "protoc-gen-go" to be able to compile.
Auto-detection only works for modules that are imported by the main
module.
2023-03-13 10:08:25 +01:00
Joachim Bauch
c2182f0440
make: Ensure folder for protoc-gen-go-grpc command exists for tarball. 2023-03-06 10:24:13 +01:00
Joachim Bauch
43ad9b794b
Update protoc-gen-go-grpc to v1.3.0 2023-03-06 10:18:33 +01:00
Joachim Bauch
5843555f6f
vendor: Automatically vendor protobuf modules. 2022-08-05 10:20:56 +02:00
Joachim Bauch
3ae23f0336
make: Include vendored dependencies in tarball. 2022-07-27 17:28:18 +02:00
Joachim Bauch
deaa17acc5
Implement per-backend session limit for clusters. 2022-07-13 11:52:20 +02:00
Joachim Bauch
20cc51c2fe
grpc: Automatically detect if a target is the current server itself.
This allows configuring the same list of targets for all instances without
having to setup the "own" address differently for each server.
2022-06-30 11:35:35 +02:00
Joachim Bauch
25dabf910d
Allow configuring GRPC targets through etcd. 2022-06-30 11:35:32 +02:00
Joachim Bauch
a0d3af14e0
Add initial clustering support. 2022-06-30 11:35:28 +02:00