|
2 | 2 |
|
3 | 3 | All notable changes to this project are documented in this file.
|
4 | 4 |
|
| 5 | +## 0.32.0 |
| 6 | + |
| 7 | +**Release date:** 2022-11-17 |
| 8 | + |
| 9 | +This prerelease comes with a major refactoring of the controller's Git operations. |
| 10 | +The `go-git` implementation now supports all Git servers, including |
| 11 | +Azure DevOps, which previously was only supported by `libgit2`. |
| 12 | + |
| 13 | +This version initiates the soft deprecation of the `libgit2` implementation. |
| 14 | +The motivation for removing support for `libgit2` being: |
| 15 | +- Reliability: over the past months we managed to substantially reduce the |
| 16 | +issues users experienced, but there are still crashes happening when the controller |
| 17 | +runs over longer periods of time, or when under intense GC pressure. |
| 18 | +- Performance: due to the inherit nature of `libgit2` implementation, which |
| 19 | +is a C library called via CGO through `git2go`, it will never perform as well as |
| 20 | +a pure Go implementations. At scale, memory pressure insues which then triggers |
| 21 | +the reliability issues above. |
| 22 | +- Lack of Shallow Clone Support. |
| 23 | +- Maintainability: supporting two Git implementations is a big task, even more |
| 24 | +so when one of them is in a complete different tech stack. Given its nature, to |
| 25 | +support `libgit2`, we have to maintain an additional repository. Statically built |
| 26 | +`libgit2` libraries need to be cross-compiled for all our supported platforms. |
| 27 | +And a lot of "unnecessary" code has to be in place to make building, testing and |
| 28 | +fuzzing work seamlessly. |
| 29 | + |
| 30 | +As a result the field `spec.gitImplementation` is ignored and the |
| 31 | +reconciliations will use `go-git`. To opt-out from this behaviour, start |
| 32 | +the controller with: `--feature-gates=ForceGoGitImplementation=false`. |
| 33 | + |
| 34 | +Users having any issues with `go-git` should report it to the Flux team, |
| 35 | +so any issues can be resolved before support for `libgit2` is completely |
| 36 | +removed from the codebase. |
| 37 | + |
| 38 | +Improvements: |
| 39 | +- Refactor Git operations and introduce go-git support for Azure DevOps and AWS CodeCommit |
| 40 | + [#944](https://github.com/fluxcd/source-controller/pull/944) |
| 41 | +- Use Flux Event API v1beta1 |
| 42 | + [#952](https://github.com/fluxcd/source-controller/pull/952) |
| 43 | +- gogit: Add new ForceGoGitImplementation FeatureGate |
| 44 | + [#945](https://github.com/fluxcd/source-controller/pull/945) |
| 45 | +- Remove nsswitch.conf creation from Dockerfile |
| 46 | + [#958](https://github.com/fluxcd/source-controller/pull/958) |
| 47 | +- Update dependencies |
| 48 | + [#960](https://github.com/fluxcd/source-controller/pull/960) |
| 49 | + [#950](https://github.com/fluxcd/source-controller/pull/950) |
| 50 | + [#959](https://github.com/fluxcd/source-controller/pull/959) |
| 51 | +- Upgrade to azure-sdk-for-go/storage/azblob v0.5.1 |
| 52 | + [#931](https://github.com/fluxcd/source-controller/pull/931) |
| 53 | + |
5 | 54 | ## 0.31.0
|
6 | 55 |
|
7 | 56 | **Release date:** 2022-10-21
|
|
0 commit comments