Age | Commit message (Collapse) | Author |
|
Now that we have a single distribution of git across all of GitLab's
official distributions of Gitaly, we are in a nicer position to add
custom patches to git. In order to ensure high standards and assert that
we won't ever start to diverge from upstream, this commit documents the
high bar we want to set ourselves for adding custom patches.
|
|
|
|
|
|
It wasn't clear from the existing checklist item added in
2d9d7f9c9 (Add roll out issue template, 2019-06-11) what the removal
steps are, and what "remove feature flag" meant.
Split this up into steps where we discuss the removal from the
codebase, and what changelog entries we expect there, and then discuss
how to remove the feature via chatops.
|
|
|
|
Amend the docs I added in 86c8480e8 (Feature flag rollout doc: expand
on post-100% steps, 2021-01-12) to mention the example of
0ff3ee285 (Remove on-by-default go_user_delete_{branch,tag} feature
flags, 2021-01-21) instead of fbc9f83ab (Remove Ruby code for 100% on
user_delete_{branch,tag} in Go feature, 2021-01-15).
As noted in 0ff3ee285 what I did in fbc9f83ab was wrong &
dangerous. Let's not recommend it.
|
|
I screwed this up in [1] and [2] and as a result the feature didn't
get enabled 100% on January 14th like I thought, but on January 27th
when the changes [3][4] to remove the feature flag itself went
live ([4] being the relevant change).
1. https://gitlab.com/gitlab-org/gitaly/-/issues/3412#note_485304117
2. https://gitlab.com/gitlab-org/gitaly/-/issues/3413#note_485303898
3. https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3035
4. https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3033
|
|
Re-flow a paragraph I added in 40f953069 (Feature flag rollout doc:
rewrite & make better use of template, 2020-12-15).
|
|
doc: Add documentation on object pools
See merge request gitlab-org/gitaly!3060
|
|
After long rounds of refactoring we finally can remove
git.NewCommand function.
The change also includes removal of the TODO left because
of the NewCommand usage with the global config.Config variable.
And as a final step the doc is updated and now mentions usage
of the git.CommandFactory interface instead of git.NewCommand().
Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
|
|
|
|
We do not have any documentation of our object pools. This commit adds
an initial document which details some aspects of how they work and what
problem they aim to solve.
|
|
|
|
You land on a 404 once you sign in, this is confusing, document it a
bit.
|
|
I added this because of a question @pks-t had in
https://gitlab.com/gitlab-org/gitaly/-/merge_requests/2995#note_484390302
It's easy to miss that we auto-add the featureflag::disabled flag
initially, let's cover that and provide handy links to the tracker to
see the status of each label.
|
|
Add more steps reflecting what we need to do after we have the feature
at 100%. Includes a paraphrased version of what I noted in my
a96949aef (Enable feature flag go_user_delete_{branch,tag} by default,
2021-01-12) as part of
https://gitlab.com/gitlab-org/gitaly/-/merge_requests/2994
|
|
I only found out about this today, or I would have added it in my
40f953069 (Feature flag rollout doc: rewrite & make better use of
template, 2020-12-15).
|
|
Beginners guide doc: markdown quote localhost:3000
See merge request gitlab-org/gitaly!3001
|
|
Back when we introduced the Git DSL, we still had conflicting sets of
safe and unsafe functions. Because of this legacy, our safe set of
functions is still has the "Safe" prefix.
This commit now ends that chapter and renames `SafeCmd()`. In alginment
with the preceding renames, this is being renamed to `NewCommand()`.
|
|
The rest of the "localhost:3000" occurrences are quoted, let's quote
this one too.
|
|
Rather than duplicating things between the issue template and process
doc, let's cross link the two.
Also elaborate on a lot of things I encountered when enabling my first
features. This is the result of feedback on the initial version of
this [1] and a video chat with @zj-gitlab this morning.
1. https://gitlab.com/gitlab-org/gitaly/-/merge_requests/2910
|
|
|
|
|
|
Clarify the recently added documentation in 2cbfe50d7 (docs: Explain
how to interact with Git in Gitaly, 2020-09-23) to not draw a hard
line on using non-plumbing. As the change being made here argues this
doesn't reflect reality on the ground.
As a practical matter we make plenty of use of non-plumbing,
e.g. "gc", "bundle", "log", "remote", "config", "worktree" etc. What
we actually care about is the sort of command use I altered in
61b9b30a5 (git.Remote: use "git remote" exit code instead of parsing
stderr, 2020-11-10). Let's try to make the docs reflect that.
I also sent a note to the git ML about the general issue:
https://public-inbox.org/git/878sa7xujm.fsf@evledraar.gmail.com/T/
|
|
This is mainly done in preparation for a follow-up change, to make the
diff easier to read.
|
|
This reverts commit ca8e2de58193775a62599b3a4de682c511046033 and
restores the feature flag for enabling/disabling reference transactions.
The main reason to revert the change is that there are currently still
some problems with TLS setups and injected Praefect server information,
where Gitaly may not be able to verify authenticity of Praefect servers
and thus fail to establish a connection.
This also removes the environment variable to disable transactions,
which was only added as a short-term fix to make GitLab setups work in
such environments again.
|
|
While use of the Git reference-transaction hook and thus for use of
transactions is universally enabled nowadays for our Go code, Ruby still
only conditionally uses the reference-transaction hook. Given that this
feature flag had been default-enabled for some time now, let's remove it
altogether.
|
|
|
|
|
|
Read-only mode documentation is outdated and refers to virtual
storage wide read-only mode from the first iteration. This commit
updates the documentation to describe the current situation.
|
|
featureflag: Remove reference transaction feature flag
See merge request gitlab-org/gitaly!2725
|
|
The Ruby reference transaction hook has been enabled by default in
303f10ed (featureflag: Enable Ruby reference transaction hooks by
default, 2020-10-29), but documentation wasn't adjusted accordingly.
Let's do so.
|
|
The reference transaction feature flag has been enabled by default since
commit a1102605 (featureflags: Default-enable primary-wins reference
transactions, 2020-08-11). This commit now removes it altogether.
|
|
This change is a quick update of the docs to remove condition language
required when the feature flags were around to migrate from Ruby to Go.
|
|
Remove primary-wins and reference-transaction-hook feature flags
See merge request gitlab-org/gitaly!2681
|
|
Update doc/beginners_guide.md
See merge request gitlab-org/gitaly!2684
|
|
|
|
|
|
doc: Point out rollout process for feature flags
See merge request gitlab-org/gitaly!2677
|
|
|
|
GitLab-Shell used to implement the Git hooks that performed
authorization and authentication. These were ported to Go, and since
61dcdf969231954c06f16a6222a7540460f4b4f0 these are merged, meaning that
the code this change removes isn't ever called. As such, we should
remove it.
Removing these files required updates to the Makefile as some make
targets are no longer needed as the gitlab-shell tests aren't executed
anymore.
|
|
Rolling out feature flags is a documented process involving multiple
steps. In order to improve visibility and make more use of that process,
this commit adds a link to the process documentation to our own
documents.
|
|
|
|
With the introduction of the Git reference-transaction hook, we
implemented voting on Praefect transaction via this new hook. In order
to keep any fallout of introducing a new hook low, we initially hid that
hook behind a feature flag. And sure enough there had been a bug in
Git's implementation which caused that hook to misbehave. The bug has
since been fixed and no more issues were observed in the last weeks
where it's been running without further incidents in production.
Let's thus remove this feature flag and always enable the new hook. As
there is still an equivalent for the Ruby side, we can't yet remove the
corresponding environment variable.
|
|
In order to ease the migration to reference transactions and reduce the
risk, initially all transactions used a primary-wins strategy: as long
as the primary node performed a vote, the transaction was guaranteed to
succeed. This was thus only a transitional feature flag, and given that
we've been running without for many weeks now without any issues we can
safely remove it now.
|
|
When interacting with Git repositories the Gitaly team contains a lot of
knowledge, but it's not written down. This makes it harder for
maintainers to spread their knowlegde, and would ease reviews if
contributors can learn what to do and not to do.
This would also allow maintainers to link to the docs during reviews
without explaining the full story, and speed them up.
|
|
Update the strong consistency documentation to reflect the current
implementation of transactions. This removes any mention of the
pre-receive hook in favor of voting via the reference-transaction hook
and updates the list of feature flags and metrics available.
|
|
Document transaction-related terminology
See merge request gitlab-org/gitaly!2477
|
|
There's quite a lof of different terms which we've started using in the
context of transactions, where some may not be as obvious as others. In
order to stop any confusion, this commit adds them to our documentation.
|
|
Documentation on tracking the state of a physical storage
See merge request gitlab-org/gitaly!2468
|