From e80aaa11d942522305d5371cadbdbbdd246d53f0 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) --- 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 94dd98985..78c505656 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", 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 140a96f9e..f887bfd4f 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 3313cae0e..10c54fec0 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