Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-17update module updater for v15jc-bump-gitaly-module-version-15.0John Cai
Update the documentation for the module updater to reflect v15
2022-05-17gitaly-git2go: Change the package name from v14 to v15John Cai
2022-05-17tools: Change major version number in package name from v14 to v15John Cai
2022-05-17proto: Update major package number in package nameJohn Cai
2022-05-17Update package name from v14->v15 for auth, client, cmd, internal packagesJohn Cai
This commit changes the package name from v14 to v15 in go and proto files in the internal, auth, client, cmd packages.
2022-05-17Update Makefile to bump major version to v15John Cai
Update the gitaly package name in the Makefile. Also update gitaly-git2go-v14 -> gitaly-git2go-v15. We need to keep gitaly-git2go-v14 for a release however, for zero downtime upgrades. This pulls directly from a sha that is v14.
2022-05-12Updating go.mod & go.sum with new module name v15John Cai
2022-05-12Merge branch 'wc-proto-contrib' into 'master'Patrick Steinhardt
doc: Update Protobuf verification docs See merge request gitlab-org/gitaly!4551
2022-05-12doc: Update Protobuf verification docswc-proto-contribWill Chandler
The 'Contributing' section of the Protobuf doc still references the old `gitaly-proto` project and incorrectly suggests that the source files generated by `protoc` may vary with Go version. This removes the outdated and incorrect information and adds a new section with details on the `make` targets for linting and validating protos.
2022-05-12Merge branch 'revert-pks-makefile-workaround' into 'master'John Cai
Revert "Merge branch 'pks-makefile-workaround-build-id-rebuilding' into 'master'" See merge request gitlab-org/gitaly!4550
2022-05-11Revert "Merge branch 'pks-makefile-workaround-build-id-rebuilding' into ↵John Cai
'master'" This reverts commit 94a955f7bac56cb8f524f43a7773038e6e341585, reversing changes made to 708408a8ad99f942c9cfd40f43ec11b961d31846.
2022-05-11Merge branch 'caw-downgrade-json-gem-to-match-gitlab' into 'master'Toon Claes
downgrade json gem to match gitlab version See merge request gitlab-org/gitaly!4547
2022-05-11Merge branch 'pks-makefile-workaround-build-id-rebuilding' into 'master'John Cai
Makefile: Fix rebuilding Go binaries in place to add GNU build ID See merge request gitlab-org/gitaly!4544
2022-05-11Merge branch 'bbodenmiller-master-patch-17975' into 'master'Patrick Steinhardt
Fix Default templates See merge request gitlab-org/gitaly!4545
2022-05-11Makefile: Move recipes to build Go binariesPatrick Steinhardt
We have roughly three sections in our Makefile: 1. The section declaring all variables and build options. 2. The section declaring phony targets like `build` and `install`. 3. The section declaring actual recipes to generate the artifacts. While we mostly abide by these sections, the recipes to build our Go binaries are intermixed into the phony-targets-section. Move them down so that they're together with all the other recipes.
2022-05-11Makefile: Fix rebuilding Go binaries in place to add GNU build IDPatrick Steinhardt
Back when we added support for GNU build IDs to our binaries we started building our Go binaries twice: the first time we do it so that we can derive a deterministic GNU build ID from the Go build ID, and the second time to embed that derived GNU build ID into the final binary. This has two problems: 1. We build the binary twice, and even though Go caches most of the build process this still significantly slows down incremental builds of our binaries. 2. We're rebuilding the binary in-place by overwriting the binary with no GNU build ID with the one that contains the GNU build ID. While I'm not a 100% sure, this seems to leads to issues from time to time where the resulting Go binary may be invalid when the build got cancelled at the wrong point in time. This then broke subsequent rebuilds of the binary. Ideally, we wouldn't have to care about generating a deterministic GNU build ID at all. But unfortunately, the only part of Go's build infra that supports them is `go build`, so we have no easy way to avoid the rebuild. Instead, we can use a very ugly workaround though: when building the binary, we embed a fixed GNU build ID with a known string and put this binary into an intermediate location. We now derive the GNU build ID from that intermediate binary, but instead of rebuilding it we simply replace the known GNU build ID with the derived GNU build ID. Like this we don't have to rebuild the binary but still get the same end result as before. This is implemented via a new naive Go tool that does this replacement for us. Note that we cannot use e.g. sed(1) for this, and we don't want to start depending on new tools like xxd(1). The tool is simple enough though and allows us to have some additional safeguards to verify that we are unlikely to wreak havoc on the binary.
2022-05-11Makefile: Simplify quoting for ldflagsPatrick Steinhardt
The quoting we're using to pass both `GO_LDFLAGS` as well as our GNU build ID to `-ldflags` is kind of awkward. Simplify it to instead just quote both parts.
2022-05-11Makefile: Specify Go binary paths directly instead of using GOBINPatrick Steinhardt
We're implicitly relying on the `GOBIN` environment variable to install our Go binaries into the correct location. Convert this to instead use `go build -o`, which is a more direct way of doing this.
2022-05-11Makefile: Use pattern rules to build Go binariesPatrick Steinhardt
We're using a phony `GITALY_EXECUTABLES` target to rebuild Gitaly executables. This usage pattern is quite hard to read given that this single target builds all binaries while not using any patterns at all. Convert the target to instead use pattern rules, which are easier to understand. Furthermore, instead of making these rules phony, let's instead use a `.FORCE` dependency to force rebuilding them every time.
2022-05-11Merge branch 'use-labkit-fips-mode' into 'master'Patrick Steinhardt
Use LabKit for FIPS mode check See merge request gitlab-org/gitaly!4535
2022-05-11Merge branch 'pks-proto-style-update' into 'master'Patrick Steinhardt
proto: Update documentation and modernize our style guide See merge request gitlab-org/gitaly!4539
2022-05-11downgrade json gem to match gitlab versioncaw-downgrade-json-gem-to-match-gitlabChad Woolley
- See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86061#note_942017961
2022-05-10Fix Default templatesbbodenmiller-master-patch-17975Ben Bodenmiller
2022-05-10Merge branch 'smh-disable-verifier-deletion' into 'master'John Cai
Disable deletions by default in background verifier Closes #4211 See merge request gitlab-org/gitaly!4527
2022-05-10Regenerate NOTICEuse-labkit-fips-modeStan Hu
Since the dependencies were updated, `make notice` needed to be run.
2022-05-10Use LabKit for FIPS mode checkStan Hu
https://gitlab.com/gitlab-org/labkit/-/merge_requests/158 abstracted the common pattern of checking for FIPS, so let's use that now. The `boringcrypto` build tag is enabled by the golang-fips compiler, but LabKit needs the `fips` build tag. Changelog: changed
2022-05-10Merge branch 'bbodenmiller-master-patch-98226' into 'master'Sami Hiltunen
Add Default templates See merge request gitlab-org/gitaly!4542
2022-05-10Add Default templatesBen Bodenmiller
2022-05-10Merge branch 'smh-log-routing-decisions' into 'master'Patrick Steinhardt
Log routing decisions in Praefect See merge request gitlab-org/gitaly!4540
2022-05-10Merge branch 'pks-contributing-wchandler-maintainer' into 'master'Patrick Steinhardt
CONTRIBUTING.md: Add Will Chandler as maintainer See merge request gitlab-org/gitaly!4543
2022-05-10Merge branch 'squash-using-merge' into 'master'Toon Claes
Use git2go merge for squashing Closes gitlab#352581 See merge request gitlab-org/gitaly!4514
2022-05-10Merge branch 'jc-fix-limithandler-flake' into 'master'Patrick Steinhardt
limithandler: Fix flaky TestStreamLimitHandler Closes #4195 See merge request gitlab-org/gitaly!4541
2022-05-10CONTRIBUTING.md: Add Will Chandler as maintainerPatrick Steinhardt
Will Chandler has recently joined the Gitaly team. Update our list of maintainers to reflect that.
2022-05-10Merge branch 'jc-cgroups-design-docs' into 'master'John Cai
docs: Cgroups per git process See merge request gitlab-org/gitaly!4461
2022-05-10limithandler: Fix flaky TestStreamLimitHandlerjc-fix-limithandler-flakeJohn Cai
The TestStreamLimitHandler test was relying on a hardcoded timeout. This caused flakiness in CI. We don't need to rely on a timeout however, since we have a concurrency queue limiter, we can utilize that to make this test synchronous.
2022-05-09Log routing decisions in Praefectsmh-log-routing-decisionsSami Hiltunen
Praefect currently doesn't log the routing decisions it makes. This commit adds logging for the routing decisions as they can be helpful in debugging various scenarios. Changelog: added
2022-05-09Merge branch 'jc-do-not-wrap-detailed-error' into 'master'John Cai
limithandler: Do not wrap errors from limithandler See merge request gitlab-org/gitaly!4537
2022-05-09Merge branch 'sh-update-grpc-go' into 'master'John Cai
Update grpc-go and protobuf See merge request gitlab-org/gitaly!4536
2022-05-09doc: Modernize our Protobuf documentationpks-proto-style-updatePatrick Steinhardt
Modernize our Protobuf documentation to clearly document our current architecture and changed style guidelines.
2022-05-09doc: Don't mention ancient gitaly-proto project anymorePatrick Steinhardt
In ancient times, Gitaly's Protobuf definitions had been living in a separate project. This is still mentioned in some of our documentation, even though it doesn't really play much of a role nowadays anymore. Stop mentioning this old project: it's a thing of the past, and I'd be surprised if anybody still needs information about it.
2022-05-09doc: Make Protobuf-related docs more discoverablePatrick Steinhardt
The Protobuf-related docs are currently hosted in the `proto/` directory due to historic reasons when `gitaly-proto` still had its own separate repository. Let's modernize this a bit: - `README.md` is moved into `doc/protobuf.md`. - `CONTRIBUTING.md` is removed. We already have such a file in the root directory. - `DEPRECATION.md` is merged into `doc/PROCESS.md`. This should hopefully help discoverability of this documentation.
2022-05-09editorconfig: Recommend line length for Protobuf definitionsPatrick Steinhardt
We don't enforce any line limits in our project, but we still set up some reasonable recommendations via our EditorConfig. Let's also recommend a line length of 100 characters for Protobuf definitions, which matches the line length we have specified for Go files.
2022-05-09protolint: Clarify comment why we don't want to enforce file commentsPatrick Steinhardt
The excluded `FILE_HAS_COMMENT` has an out-of-date explanation that still extends to all the other comment-linting-rules we had disabled. Update the comment to only explain why we don't enforce file comments.
2022-05-09protolint: Enforce new style for enumerationsPatrick Steinhardt
Our enumerations do not currently have any strict design guidelines. This brings two issues with it: 1. Enumeration values are scoped per-service. Consequentially, if two enumerations want to declare a value with the same name, the declarations will clash. 2. It is not possible to discern the case where a caller hasn't set the value of an enumeration at all versus the case where the field was explicitly set to its zero-value. The official Protobuf style guide thus says that enum values should always be prefixed with the name of the enum itself, and that the zero value should be called `UNSPECIFIED`. Let's enforce this style via protolint so that any new enumerations will follow this recommendation.
2022-05-09limithandler: Do not wrap errors from limithandlerJohn Cai
In the limithandlers, we are returning structured errors so upstream clients can interpret that a request limit took place. However, we are currently swallowing these details by wrapping it in another gRPC error. Instead, just return this error without wrapping it, since the structured error already provides enough context as to why the error happened. Changelog: changed
2022-05-09Merge branch 'pks-protolint-comments' into 'master'Patrick Steinhardt
proto: Enforce that definitions must have comments See merge request gitlab-org/gitaly!4517
2022-05-09Merge branch 'pks-git-v2.36.1' into 'master'Sami Hiltunen
Makefile: Upgrade bundled Git to v2.36.1 See merge request gitlab-org/gitaly!4538
2022-05-09proto: Enforce comment-linting for message fieldsPatrick Steinhardt
Enforce that message fields must have a comment and add a placeholder for all instances where such a comment is missing.
2022-05-09proto: Enforce comment-linting for enum fieldsPatrick Steinhardt
Enforce that enum fields must have a comment and add a placeholder for all instances where such a comment is missing.
2022-05-09proto: Enforce comment-linting for enum definitionsPatrick Steinhardt
Enforce that enum definitions must have a comment and add a placeholder for all instances where such a comment is missing.