refactor: drop two unmaintained dependencies, rename the byte size helpers (#39083)

This commit is contained in:
silverwind
2026-08-27 17:31:20 +02:00
committed by GitHub
parent 3b6ce586a7
commit 66c672d0b7
33 changed files with 197 additions and 180 deletions
+1 -4
View File
@@ -12,7 +12,6 @@ import (
"github.com/blevesearch/bleve/v2"
"github.com/blevesearch/bleve/v2/mapping"
"github.com/ethantkoenig/rupture"
)
var _ internal.Indexer = &Indexer{}
@@ -69,9 +68,7 @@ func (i *Indexer) Init(_ context.Context) (bool, error) {
return false, err
}
if err = rupture.WriteIndexMetadata(i.indexDir, &rupture.IndexMetadata{
Version: i.version,
}); err != nil {
if err = writeIndexMetadataVersion(i.indexDir, i.version); err != nil {
return false, err
}
+31 -5
View File
@@ -6,21 +6,47 @@ package bleve
import (
"errors"
"os"
"path/filepath"
"unicode"
"gitea.dev/modules/json"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
"github.com/blevesearch/bleve/v2"
unicode_tokenizer "github.com/blevesearch/bleve/v2/analysis/tokenizer/unicode"
"github.com/blevesearch/bleve/v2/index/upsidedown"
"github.com/ethantkoenig/rupture"
)
const (
maxFuzziness = 2
maxFuzziness = 2
indexMetadataFilename = "rupture_meta.json" // named after the former "rupture" dependency, renaming it would force a reindex
)
type indexMetadata struct {
Version int `json:"version"`
}
func readIndexMetadataVersion(path string) (int, error) {
data, err := os.ReadFile(filepath.Join(path, indexMetadataFilename))
if errors.Is(err, os.ErrNotExist) {
return 0, nil
} else if err != nil {
return 0, err
}
var metadata indexMetadata
if err := json.Unmarshal(data, &metadata); err != nil {
return 0, err
}
return metadata.Version, nil
}
func writeIndexMetadataVersion(path string, version int) error {
data, _ := json.Marshal(indexMetadata{Version: version}) // marshalling a single int cannot fail
return os.WriteFile(filepath.Join(path, indexMetadataFilename), data, 0o666)
}
// openIndexer open the index at the specified path, checking for metadata
// updates and bleve version updates. If index needs to be created (or
// re-created), returns (nil, nil)
@@ -32,14 +58,14 @@ func openIndexer(path string, latestVersion int) (bleve.Index, int, error) {
return nil, 0, err
}
metadata, err := rupture.ReadIndexMetadata(path)
version, err := readIndexMetadataVersion(path)
if err != nil {
return nil, 0, err
}
if metadata.Version < latestVersion {
if version < latestVersion {
// the indexer is using a previous version, so we should delete it and
// re-populate
return nil, metadata.Version, os.RemoveAll(path)
return nil, version, os.RemoveAll(path)
}
index, err := bleve.Open(path)
@@ -5,14 +5,33 @@ package bleve
import (
"fmt"
"os"
"path/filepath"
"testing"
"gitea.dev/modules/setting"
"gitea.dev/modules/test"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestIndexMetadataVersion(t *testing.T) {
indexDir := t.TempDir()
version, err := readIndexMetadataVersion(indexDir)
require.NoError(t, err)
assert.Zero(t, version)
require.NoError(t, writeIndexMetadataVersion(indexDir, 42))
data, err := os.ReadFile(filepath.Join(indexDir, indexMetadataFilename))
require.NoError(t, err)
assert.Equal(t, `{"version":42}`, string(data))
version, err = readIndexMetadataVersion(indexDir)
require.NoError(t, err)
assert.Equal(t, 42, version)
}
func TestBleveGuessFuzzinessByKeyword(t *testing.T) {
defer test.MockVariableValue(&setting.Indexer.TypeBleveMaxFuzzniess, 2)()