Skip to content

Commit ec48a76

Browse files
ReneWerner87tokelo-12sixcolorsdependabot[bot]iredmail
authored
V2 to v3 merge (#2864)
* Update pull_request_template.md * Update v3-changes.md * Update CONTRIBUTING.md (#2752) Grammar correction. * chore(encryptcookie)!: update default config (#2753) * chore(encryptcookie)!: update default config docs(encryptcookie): enhance documentation and examples BREAKING CHANGE: removed the hardcoded "csrf_" from the Except. * docs(encryptcookie): reads or modifies cookies * chore(encryptcookie): csrf config example * docs(encryptcookie): md table spacing * build(deps): bump actions/setup-go from 4 to 5 (#2754) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 🩹 middleware/logger/: log client IP address by default (#2755) * middleware/logger: Log client IP address by default. * Update doc. * fix: don't constrain middlewares' context-keys to strings 🐛 (#2751) * Revert "Revert ":bug: requestid.Config.ContextKey is interface{} (#2369)" (#2742)" This reverts commit 28be17f. * fix: request ContextKey default value condition Should check for `nil` since it is `any`. * fix: don't constrain middlewares' context-keys to strings `context` recommends using "unexported type" as context keys to avoid collisions https://pkg.go.dev/github.com/gofiber/fiber/v2#Ctx.Locals. The official go blog also recommends this https://go.dev/blog/context. `fiber.Ctx.Locals(key any, value any)` correctly allows consumers to use unexported types or e.g. strings. But some fiber middlewares constrain their context-keys to `string` in their "default config structs", making it impossible to use unexported types. This PR removes the `string` _constraint_ from all middlewares, allowing to now use unexported types as per the official guidelines. However the default value is still a string, so it's not a breaking change, and anyone still using strings as context keys is not affected. * 📚 Update app.md for indentation (#2761) Update app.md for indentation * build(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0 (#2762) Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/google/uuid/releases) - [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md) - [Commits](google/uuid@v1.4.0...v1.5.0) --- updated-dependencies: - dependency-name: github.com/google/uuid dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github/codeql-action from 2 to 3 (#2763) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Changing default log output (#2730) changing default log output Closes #2729 * Update hooks.md fix wrong hooks signature * 🩹 Fix: CORS middleware should use the defined AllowedOriginsFunc config when AllowedOrigins is empty (#2771) * 🐛 [Bug]: Adaptator + otelfiber issue #2641 (#2772) * 🩹🚨 - fix for redirect with query params (#2748) * redirect with query params did not work, fix it and add test for it * redirect middleware - fix test typo * ♻️ logger/middleware colorize logger error message #2593 (#2773) * ✨ feat: add liveness and readiness checks (#2509) * ✨ feat: add liveness and readiness checkers * 📝 docs: add docs for liveness and readiness * ✨ feat: add options method for probe checkers * ✅ tests: add tests for liveness and readiness * ♻️ refactor: change default endpoint values * ♻️ refactor: change default value for liveness endpoint * 📝 docs: add return status for liveness and readiness probes * ♻️ refactor: change probechecker to middleware * 📝 docs: move docs to middleware session * ♻️ refactor: apply gofumpt formatting * ♻️ refactor: remove unused parameter * split config and apply a review * apply reviews and add testcases * add benchmark * cleanup * rename middleware * fix linter * Update docs and config values * Revert change to IsReady * Updates based on code review * Update docs to match other middlewares --------- Co-authored-by: Muhammed Efe Cetin <[email protected]> Co-authored-by: Juan Calderon-Perez <[email protected]> Co-authored-by: Juan Calderon-Perez <[email protected]> * prepare release v2.52.0 - add more Parser tests * fix healthcheck.md * configure workflows for V2 branch * configure workflows for V2 branch * Fix default value to false in docs of QueryBool (#2811) fix default value to false in docs of QueryBool * update queryParser config * Update ctx.md * Update routing.md * merge v2 in v3 * merge v2 in v3 * lint fixes * 📚 Doc: Fix code snippet indentation in /docs/api/middleware/keyauth.md Removes an an extra level of indentation in line 51 of `keyauth.md` [here](https://github.com/gofiber/fiber/blob/v2/docs/api/middleware/keyauth.md?plain=1#L51) * fix: healthcheck middleware not working with route group (#2863) * fix: healthcheck middleware not working with route group * perf: change verification method to improve perf * Update healthcheck_test.go * test: add not matching route test for strict routing * add more test cases * correct tests * correct test helpers * correct tests * correct tests --------- Co-authored-by: Juan Calderon-Perez <[email protected]> Co-authored-by: René Werner <[email protected]> * merge v2 in v3 * Merge pull request from GHSA-fmg4-x8pw-hjhg * Enforce Wildcard Origins with AllowCredentials check * Expand unit-tests, fix issues with subdomains logic, update docs * Update cors.md * Added test using localhost, ipv4, and ipv6 address * improve documentation markdown --------- Co-authored-by: René Werner <[email protected]> * Update app.go prepare release v2.52.1 * fix cors domain normalize * fix sync-docs workflow * test: fix failing tests * fix sync-docs workflow * test: cors middleware use testify require * chore: fix lint warnings * chore: revert test isolation. * fixed the fasthttp ctx race condition problem * Update middleware/cors/utils.go Co-authored-by: Renan Bastos <[email protected]> * fix sync_docs.sh * fix review comments/hints * fix review comments/hints * stabilize Test_Proxy_Timeout_Slow_Server test * stabilize Test_Proxy_.* tests * ignore bodyclose linter for tests use http.NoBody instead of nil * revert(tests): undo http.NoBody usage * fix(ctx pool): postpone the reset for some values shortly before the release in the pool * refactor(tests): use testify panic method instead of custom solution --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: tokelo-12 <[email protected]> Co-authored-by: Jason McNeil <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: iRedMail <[email protected]> Co-authored-by: Benjamin Grosse <[email protected]> Co-authored-by: Mehmet Firat KOMURCU <[email protected]> Co-authored-by: Bruno <[email protected]> Co-authored-by: Muhammad Kholid B <[email protected]> Co-authored-by: gilwo <[email protected]> Co-authored-by: Lucas Lemos <[email protected]> Co-authored-by: Muhammed Efe Cetin <[email protected]> Co-authored-by: Juan Calderon-Perez <[email protected]> Co-authored-by: Juan Calderon-Perez <[email protected]> Co-authored-by: Jongmin Kim <[email protected]> Co-authored-by: Giovanni Rivera <[email protected]> Co-authored-by: Renan Bastos <[email protected]>
1 parent 8c413d0 commit ec48a76

Some content is hidden

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

53 files changed

+1713
-811
lines changed

.github/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Titles always we must use prefix according to below:
1515
- 📚 Doc: Translate to Portuguese middleware redirect
1616
- 🎨 Style: Respected pattern Golint
1717

18-
All pull request that contains a feature or fix is mandatory to have unit tests. Your PR is only to be merged if you respect this flow.
18+
All pull requests that contain a feature or fix are mandatory to have unit tests. Your PR is only to be merged if you respect this flow.
1919

2020
# 👍 Contribute
2121

.github/ISSUE_TEMPLATE/feature-request-v3.yaml

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

.github/ISSUE_TEMPLATE/maintenance-task-v3.yaml

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

.github/PULL_REQUEST_TEMPLATE/v3-changes.md

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

.github/pull_request_template.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Please provide a clear and concise description of the changes you've made and th
44

55
Related to # (issue)
66

7-
## Changes Introduced
7+
## Changes introduced
88

99
List the new features or adjustments introduced in this pull request. Provide details on benchmarks, documentation updates, changelog entries, and if applicable, the migration guide.
1010

@@ -16,7 +16,7 @@ List the new features or adjustments introduced in this pull request. Provide de
1616
- [ ] API Longevity: Discuss the steps taken to ensure that the new or updated APIs are consistent and not prone to breaking changes.
1717
- [ ] Examples: Provide examples demonstrating the new features or changes in action.
1818

19-
## Type of Change
19+
## Type of change
2020

2121
Please delete options that are not relevant.
2222

@@ -39,6 +39,6 @@ Before you submit your pull request, please make sure you meet these requirement
3939
- [ ] Aimed for optimal performance with minimal allocations in the new code.
4040
- [ ] Provided benchmarks for the new code to analyze and improve upon.
4141

42-
## Commit Formatting
42+
## Commit formatting
4343

4444
Please use emojis in commit messages for an easy way to identify the purpose or intention of a commit. Check out the emoji cheatsheet here: [CONTRIBUTING.md](https://github.com/gofiber/fiber/blob/master/.github/CONTRIBUTING.md#pull-requests-or-commits)

.golangci.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,12 @@ linters-settings:
162162
issues:
163163
exclude-use-default: false
164164

165+
exclude-rules:
166+
# Exclude some linters from running on tests files.
167+
- path: _test\.go
168+
linters:
169+
- bodyclose
170+
165171
linters:
166172
disable:
167173
- spancheck # opentelemetry, irrelevant

app.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ func New(config ...Config) *App {
496496
// Create Ctx pool
497497
app.pool = sync.Pool{
498498
New: func() any {
499-
return app.NewCtx(&fasthttp.RequestCtx{})
499+
return app.newCtx()
500500
},
501501
}
502502

@@ -1071,9 +1071,7 @@ func (app *App) ErrorHandler(ctx Ctx, err error) error {
10711071
// errors before calling the application's error handler method.
10721072
func (app *App) serverErrorHandler(fctx *fasthttp.RequestCtx, err error) {
10731073
// Acquire Ctx with fasthttp request from pool
1074-
c := app.AcquireCtx()
1075-
c.Reset(fctx)
1076-
1074+
c := app.AcquireCtx(fctx)
10771075
defer app.ReleaseCtx(c)
10781076

10791077
var (

app_test.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// 🤖 Github Repository: https://github.com/gofiber/fiber
33
// 📌 API Documentation: https://docs.gofiber.io
44

5-
//nolint:bodyclose, goconst // Much easier to just ignore memory leaks in tests
5+
//nolint:goconst // Much easier to just ignore memory leaks in tests
66
package fiber
77

88
import (
@@ -314,7 +314,7 @@ func Test_App_serverErrorHandler_Internal_Error(t *testing.T) {
314314
t.Parallel()
315315
app := New()
316316
msg := "test err"
317-
c := app.NewCtx(&fasthttp.RequestCtx{}).(*DefaultCtx) //nolint:errcheck, forcetypeassert // not needed
317+
c := app.AcquireCtx(&fasthttp.RequestCtx{}).(*DefaultCtx) //nolint:errcheck, forcetypeassert // not needed
318318

319319
app.serverErrorHandler(c.fasthttp, errors.New(msg))
320320
require.Equal(t, string(c.fasthttp.Response.Body()), msg)
@@ -324,7 +324,7 @@ func Test_App_serverErrorHandler_Internal_Error(t *testing.T) {
324324
func Test_App_serverErrorHandler_Network_Error(t *testing.T) {
325325
t.Parallel()
326326
app := New()
327-
c := app.NewCtx(&fasthttp.RequestCtx{}).(*DefaultCtx) //nolint:errcheck, forcetypeassert // not needed
327+
c := app.AcquireCtx(&fasthttp.RequestCtx{}).(*DefaultCtx) //nolint:errcheck, forcetypeassert // not needed
328328

329329
app.serverErrorHandler(c.fasthttp, &net.DNSError{
330330
Err: "test error",
@@ -1400,8 +1400,7 @@ func Test_App_Next_Method(t *testing.T) {
14001400
func Benchmark_AcquireCtx(b *testing.B) {
14011401
app := New()
14021402
for n := 0; n < b.N; n++ {
1403-
c := app.AcquireCtx()
1404-
c.Reset(&fasthttp.RequestCtx{})
1403+
c := app.AcquireCtx(&fasthttp.RequestCtx{})
14051404

14061405
app.ReleaseCtx(c)
14071406
}
@@ -1612,7 +1611,7 @@ func Test_App_SmallReadBuffer(t *testing.T) {
16121611

16131612
go func() {
16141613
time.Sleep(500 * time.Millisecond)
1615-
req, err := http.NewRequestWithContext(context.Background(), MethodGet, "http://127.0.0.1:4006/small-read-buffer", http.NoBody)
1614+
req, err := http.NewRequestWithContext(context.Background(), MethodGet, "http://127.0.0.1:4006/small-read-buffer", nil)
16161615
require.NoError(t, err)
16171616
var client http.Client
16181617
resp, err := client.Do(req)
@@ -1736,7 +1735,7 @@ func Test_App_Test_no_timeout_infinitely(t *testing.T) {
17361735
return nil
17371736
})
17381737

1739-
req := httptest.NewRequest(MethodGet, "/", http.NoBody)
1738+
req := httptest.NewRequest(MethodGet, "/", nil)
17401739
_, err = app.Test(req, -1)
17411740
}()
17421741

@@ -1765,7 +1764,7 @@ func Test_App_SetTLSHandler(t *testing.T) {
17651764
app := New()
17661765
app.SetTLSHandler(tlsHandler)
17671766

1768-
c := app.NewCtx(&fasthttp.RequestCtx{})
1767+
c := app.AcquireCtx(&fasthttp.RequestCtx{})
17691768
defer app.ReleaseCtx(c)
17701769

17711770
require.Equal(t, "example.golang", c.ClientHelloInfo().ServerName)

0 commit comments

Comments
 (0)