Releases: devfeel/dotweb
dotweb v1.8.3 Release, includes Redis client migration, security updates, and bug fixes
dotweb v1.8.3 Release Notes
Overview
dotweb v1.8.3 is now available! This release includes Redis client migration, security updates, and bug fixes.
What's Changed
New Features
Redis Client Migration (v1.8.2)
| Item | Old | New |
|---|---|---|
| Redis Client | redigo (deprecated) | go-redis/v9 |
Impact: Internal implementation changed, API fully compatible
// No code changes required
// New features:
// - Connection pool management (MinIdleConns, PoolSize)
// - Context supportSecurity Updates (v1.8.2)
Fixed 12 Go standard library vulnerabilities:
| CVE | Component |
|---|---|
| GO-2026-4341 | net/url |
| GO-2026-4340 | crypto/tls |
| GO-2026-4337 | crypto/tls |
| GO-2025-4175 | crypto/x509 |
| GO-2025-4155 | crypto/x509 |
| GO-2025-4013 | crypto/x509 |
| GO-2025-4012 | net/http |
| GO-2025-4011 | encoding/asn1 |
| GO-2025-4010 | net/url |
| GO-2025-4009 | encoding/pem |
| GO-2025-4008 | crypto/tls |
| GO-2025-4007 | crypto/x509 |
Bug Fixes (v1.8.3)
| Fix | Description |
|---|---|
| Incr/Decr lock leak | Use defer Unlock to prevent deadlock |
| Race conditions | Passed race detection tests |
CI/CD Enhancements
| Item | Change |
|---|---|
| golangci-lint | Added code quality checks |
| Security scan | Added weekly security scanning workflow |
Breaking Changes
| Change | Impact |
|---|---|
| Go minimum version | 1.22 - 1.24 |
WARNING: Warning: Go < 1.24 contains known vulnerabilities
Upgrade Guide
1. Update Go Version
# Minimum required: Go 1.24
go version # Ensure >= 1.242. Update Dependency
go get -u github.com/devfeel/dotweb3. Update Redis Dependency (if needed)
// Remove old dependency (deprecated)
// github.com/garyburd/redigo v1.6.0
// New dependency (included in dotweb)
github.com/redis/go-redis/v9 v9.18.04. Verify
go build ./...
go test ./...Compatibility
| Type | Compatibility |
|---|---|
| Public API | Fully compatible |
| Redis Cache | Compatible with existing config |
| Session Store | Compatible with existing config |
| Config Files | No changes needed |
Notes
- Go Version Required: Must use Go 1.24+
- Security Warning: Go < 1.24 has known vulnerabilities
- Redis Config: If using external Redis, ensure network accessibility
Related Links
v1.8.1 - Quality Improvement Release
v1.8.1 - Quality Improvement Release
🎯 Summary
This release focuses on test coverage** and **documentation improvements.
✨ Highlights
Test Coverage: Improved from 16.9% to 20.7% (+3.8%)
Examples: 10 new focused example projects
Documentation: Comprehensive example README and GoDoc improvements
📦 What's Changed
Test Coverage
Added comprehensive tests for uploadfile module
Fixed test race conditions
Improved CI/CD reliability
Examples
New examples: quickstart, bind, config, file-upload, json-api, middleware, mock, router, routing, session, websocket
Restructured: Single-purpose examples for better learning
Documentation: Added comprehensive example README
Bug Fixes
Fixed test race conditions
Fixed example compilation errors
📝 Pull Requests
#297: Test coverage improvements and example refactoring
#299: Version bump to 1.8.1
🔄 Migration
No breaking changes. Fully backward compatible with v1.8.0.
v1.8: Go 1_21 Upgrade + Dependency Updates + Fix go vet warnings + pprof production security hardening
v1.8 Release Notes
Highlights
Go 1_21 Upgrade + Dependency Updates + Fix go vet warnings + pprof production security hardening
⬆️ Upgrade
- Go version upgraded to 1_21
- golang_org/x/net upgraded to v0_23_0
🐛 Bug Fixes
| Issue | Description |
|---|---|
| #276 | Resolve go vet warnings across codebase |
| - | Fix loop variable capture in cache_runtime_test_go |
| - | Fix sync_Pool copy warning in server_test_go |
| - | Remove unreachable code in session/session_go |
🔒 Security
| Change | Description |
|---|---|
| - | pprof is now only enabled in development mode |
⚠️ Breaking Change: pprof is no longer available in production by default. To enable, explicitly setRunMode = "development".
// Enable pprof (development only)
app_SetDevelopmentMode()
app_SetPProfConfig(true, 8080)🔧 Improvements
- Use keyed fields for HideReaddirFS struct in router_go
- Improve code clarity and reduce warnings
Full Changelog: v1_7.22...v1_7.23\
**2026.03.02 at ShangHai.
add HttpContext.DestorySession() to delete all contents of the session and set the sessionId to empty
####Version 1.7.21
- feature: add SessionManager.RemoveSessionState to delete the session state associated with a specific session ID
- feature: add HttpContext.DestorySession() to delete all contents of the session and set the sessionId to empty
- For my birthday!
- 2023-04-15 16:00 at ShangHai
add SetReadTimeout\SetReadHeaderTimeout\SetIdleTimeoutSetWriteTimeout
####Version 1.7.19
- feature: add SetReadTimeout\SetReadHeaderTimeout\SetIdleTimeoutSetWriteTimeout func() in HttpServer
- 2021-04-20 13:00 at ShangHai
fix deepcopy middleware not success
####Version 1.7.18
- Bug fix: fix deepcopy middleware not success
- 2021-04-20 13:00 at ShangHai
####Version 1.7.17
- Bug fix: fix GetRandString return same result
- 2021-01-29 08:00 at ShangHai
replace *HttpContext to Context interface & fix middleware chain misbehaving in netsed groups
####Version 1.7.16
- Bug fix: fix middleware chain misbehaving in netsed groups
- Tips: for issue #234, thanks for @LiVe's code
- 2021-01-24 22:00 at ShangHai
####Version 1.7.15
- Tips: replace *HttpContext to Context interface,used to implementation custom Context in dotweb
- feature: add ContextCreater func() Context & HttpServer.SetContextCreater
- refactor: update *HttpContext to Context interface in HttpServer & Middleware & Request
- refactor: add defaultContextCreater used to create Context with HttpContext when HttpServer.ServeHTTP
- example code: example/main.go
- How to use SetContextCreater:
// define
type testContext struct {
dotweb.HttpContext
TestInfo string
}
func testContextCreater() dotweb.Context {
return &testContext{TestInfo:"Test"}
}
// set into dotweb
app.HttpServer.SetContextCreater(testContextCreater)
// use in router
func OutputTestInfo(ctx dotweb.Context) error {
return ctx.WriteString(ctx.(*testContext).TestInfo)
}- 2021-01-24 18:00 at ShangHai
fixed can not set redis maxIdle & maxActive when use redis session, fix for issue #236
Version 1.7.14
- fix: fixed can not set redis maxIdle & maxActive when use redis session, fix for issue #236
- refactor: add StoreConfig.MaxIdle & StoreConfig.MaxActive set redis maxIdle & maxActive
- refactor: add redisutil.GetDefaultRedisClient to returns the RedisClient of specified address
- refactor: update redisutil.GetRedisClient returns the RedisClient of specified address & maxIdle & maxActive
- opt: set defaultMaxIdle=10, defaultMaxActive=50 when use default redis config
- How to set redis maxIdle & maxActive when use redis session:
sessionConf := session.NewDefaultRedisConfig("redis://xx.xx.xx.xx:6379/0")
sessionConf.BackupServerUrl = "redis://xx.xx.xx.xx:6379/0"
sessionConf.CookieName = "dotweb-example.SessionID"
sessionConf.MaxIdle = 20
sessionConf.MaxActive = 100- 2020-12-19 21:00 at ShangHai
fixed can not get correct Path which in Post requests
Version 1.7.13
- fix: fixed can not get correct Path which in Post requests
- 2020-08-11 18:00 at ShangHai
Happy 6.1 print and fix error when set HttpServer.SetEnabledGzip(true)
####Version 1.7.12
- fix: fix error when set HttpServer.SetEnabledGzip(true)
- add Happy 6.1 print
- 2020-06-01 23:00 at ShangHai