From 2de8602855140a5addb8a1d12405e90da4fe0f69 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Thu, 20 Jul 2023 07:50:07 +0200 Subject: [PATCH] [GITEA] do not use deprecatedSettingFatal for cosmetic reasons It breaks existing instances that would otherwise work perfectly fine. Failing to start an instance should only happen when there is a compelling reason to do so, for instance if the `app.ini` could not be modified in a way that is backward compatible. If the only motivation is to remove the setting for cosmetic reason, it must not be fatal. (cherry picked from commit c09ef82e9a4a1f450adce46fe7adcf733d8cc9da) (cherry picked from commit e80aaa11d942522305d5371cadbdbbdd246d53f0) --- modules/setting/config_provider.go | 6 ------ modules/setting/lfs.go | 9 ++++++++- modules/setting/lfs_test.go | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/modules/setting/config_provider.go b/modules/setting/config_provider.go index 86712792a7..78c505656b 100644 --- a/modules/setting/config_provider.go +++ b/modules/setting/config_provider.go @@ -322,12 +322,6 @@ func deprecatedSetting(rootCfg ConfigProvider, oldSection, oldKey, newSection, n } } -func deprecatedSettingFatal(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) - } -} - // deprecatedSettingDB add a hint that the configuration has been moved to database but still kept in app.ini func deprecatedSettingDB(rootCfg ConfigProvider, oldSection, oldKey string) { if rootCfg.Section(oldSection).HasKey(oldKey) { diff --git a/modules/setting/lfs.go b/modules/setting/lfs.go index 140a96f9ed..f887bfd4fd 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 @@ -21,6 +21,30 @@ func Test_getStorageInheritNameSectionTypeForLFS(t *testing.T) { assert.EqualValues(t, "minio", LFS.Storage.Type) 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