diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2023-07-26 11:53:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-26 03:53:37 +0000 |
commit | 5dc37ef97a30628027a723ee944225a33a6511f8 (patch) | |
tree | 20df347a0ce40be57fecb5a51e55a4d2dc1822c7 /modules/setting | |
parent | 915cdf8f87380bb6ea9cb518837726eb85c89fc7 (diff) | |
download | gitea-5dc37ef97a30628027a723ee944225a33a6511f8.tar.gz gitea-5dc37ef97a30628027a723ee944225a33a6511f8.zip |
Display deprecated warning in admin panel pages as well as in the log file (#26094)
This PR includes #26007 's changes but have a UI to prompt administrator
about the deprecated settings as well as the log or console warning.
Then users will have enough time to notice the problem and don't have
surprise like before.
<img width="1293" alt="图片"
src="https://github.com/go-gitea/gitea/assets/81045/c33355f0-1ea7-4fb3-ad43-cd23cd15391d">
---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'modules/setting')
-rw-r--r-- | modules/setting/config_provider.go | 13 | ||||
-rw-r--r-- | modules/setting/lfs.go | 9 | ||||
-rw-r--r-- | modules/setting/lfs_test.go | 24 |
3 files changed, 38 insertions, 8 deletions
diff --git a/modules/setting/config_provider.go b/modules/setting/config_provider.go index 86712792a7..d00164df9e 100644 --- a/modules/setting/config_provider.go +++ b/modules/setting/config_provider.go @@ -316,15 +316,14 @@ func mustMapSetting(rootCfg ConfigProvider, sectionName string, setting any) { } } -func deprecatedSetting(rootCfg ConfigProvider, oldSection, oldKey, newSection, newKey, version string) { - if rootCfg.Section(oldSection).HasKey(oldKey) { - log.Error("Deprecated fallback `[%s]` `%s` present. Use `[%s]` `%s` instead. This fallback will be/has been removed in %s", oldSection, oldKey, newSection, newKey, version) - } -} +// DeprecatedWarnings contains the warning message for various deprecations, including: setting option, file/folder, etc +var DeprecatedWarnings []string -func deprecatedSettingFatal(rootCfg ConfigProvider, oldSection, oldKey, newSection, newKey, version string) { +func deprecatedSetting(rootCfg ConfigProvider, oldSection, oldKey, newSection, newKey, version string) { if rootCfg.Section(oldSection).HasKey(oldKey) { - log.Fatal("Deprecated fallback `[%s]` `%s` present. Use `[%s]` `%s` instead. This fallback will be/has been removed in %s. Shutting down", oldSection, oldKey, newSection, newKey, version) + msg := fmt.Sprintf("Deprecated config option `[%s]` `%s` present. Use `[%s]` `%s` instead. This fallback will be/has been removed in %s", oldSection, oldKey, newSection, newKey, version) + log.Error("%v", msg) + DeprecatedWarnings = append(DeprecatedWarnings, msg) } } diff --git a/modules/setting/lfs.go b/modules/setting/lfs.go index 0e0f7b74e3..21a46a8cce 100644 --- a/modules/setting/lfs.go +++ b/modules/setting/lfs.go @@ -34,7 +34,14 @@ func loadLFSFrom(rootCfg ConfigProvider) error { // Specifically default PATH to LFS_CONTENT_PATH // DEPRECATED should not be removed because users maybe upgrade from lower version to the latest version // if these are removed, the warning will not be shown - deprecatedSettingFatal(rootCfg, "server", "LFS_CONTENT_PATH", "lfs", "PATH", "v1.19.0") + deprecatedSetting(rootCfg, "server", "LFS_CONTENT_PATH", "lfs", "PATH", "v1.19.0") + + if val := sec.Key("LFS_CONTENT_PATH").String(); val != "" { + if lfsSec == nil { + lfsSec = rootCfg.Section("lfs") + } + lfsSec.Key("PATH").MustString(val) + } var err error LFS.Storage, err = getStorage(rootCfg, "lfs", "", lfsSec) diff --git a/modules/setting/lfs_test.go b/modules/setting/lfs_test.go index 3313cae0eb..10c54fec0a 100644 --- a/modules/setting/lfs_test.go +++ b/modules/setting/lfs_test.go @@ -22,6 +22,30 @@ func Test_getStorageInheritNameSectionTypeForLFS(t *testing.T) { assert.EqualValues(t, "lfs/", LFS.Storage.MinioConfig.BasePath) iniStr = ` +[server] +LFS_CONTENT_PATH = path_ignored +[lfs] +PATH = path_used +` + cfg, err = NewConfigProviderFromData(iniStr) + assert.NoError(t, err) + assert.NoError(t, loadLFSFrom(cfg)) + + assert.EqualValues(t, "local", LFS.Storage.Type) + assert.Contains(t, LFS.Storage.Path, "path_used") + + iniStr = ` +[server] +LFS_CONTENT_PATH = deprecatedpath +` + cfg, err = NewConfigProviderFromData(iniStr) + assert.NoError(t, err) + assert.NoError(t, loadLFSFrom(cfg)) + + assert.EqualValues(t, "local", LFS.Storage.Type) + assert.Contains(t, LFS.Storage.Path, "deprecatedpath") + + iniStr = ` [storage.lfs] STORAGE_TYPE = minio ` |