forked from kevadesu/forgejo
[GITEA] Vendor rupture dependency
- The [rupture](https://github.com/ethantkoenig/rupture) dependency was
essentially outdated in the sense it was using old version of
dependencies.
- The usage by Forgejo was rather a small portion, so that portion is
now vendored (with its tests).
- Removes old dependencies from go.sum (less dependencies is better for
reviewing what the heck we're importing). Just to note that they were
likely not being used by Go's build process (according to
https://go.dev/ref/mod#minimal-version-selection), so it's really a
matter of formal cleaning up dependencies we don't use and therefor
don't want to download and be in our go.sum.
(cherry picked from commit aa72a5f009
)
Conflicts:
go.sum
https://codeberg.org/forgejo/forgejo/pulls/2148
This commit is contained in:
parent
2f80066217
commit
fbe8d65f0b
7 changed files with 85 additions and 70 deletions
|
@ -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,7 +68,7 @@ func (i *Indexer) Init(_ context.Context) (bool, error) {
|
|||
return false, err
|
||||
}
|
||||
|
||||
if err = rupture.WriteIndexMetadata(i.indexDir, &rupture.IndexMetadata{
|
||||
if err = writeIndexMetadata(i.indexDir, &IndexMetadata{
|
||||
Version: i.version,
|
||||
}); err != nil {
|
||||
return false, err
|
||||
|
|
55
modules/indexer/internal/bleve/metadata.go
Normal file
55
modules/indexer/internal/bleve/metadata.go
Normal file
|
@ -0,0 +1,55 @@
|
|||
// Copyright 2024 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// Copied and modified from https://github.com/ethantkoenig/rupture (MIT License)
|
||||
|
||||
package bleve
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"code.gitea.io/gitea/modules/json"
|
||||
)
|
||||
|
||||
const metaFilename = "rupture_meta.json"
|
||||
|
||||
func indexMetadataPath(dir string) string {
|
||||
return filepath.Join(dir, metaFilename)
|
||||
}
|
||||
|
||||
// IndexMetadata contains metadata about a bleve index.
|
||||
type IndexMetadata struct {
|
||||
// The version of the data in the index. This can be useful for tracking
|
||||
// schema changes or data migrations.
|
||||
Version int `json:"version"`
|
||||
}
|
||||
|
||||
// readIndexMetadata returns the metadata for the index at the specified path.
|
||||
// If no such index metadata exists, an empty metadata and a nil error are
|
||||
// returned.
|
||||
func readIndexMetadata(path string) (*IndexMetadata, error) {
|
||||
meta := &IndexMetadata{}
|
||||
metaPath := indexMetadataPath(path)
|
||||
if _, err := os.Stat(metaPath); os.IsNotExist(err) {
|
||||
return meta, nil
|
||||
} else if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
metaBytes, err := os.ReadFile(metaPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return meta, json.Unmarshal(metaBytes, &meta)
|
||||
}
|
||||
|
||||
// writeIndexMetadata writes metadata for the index at the specified path.
|
||||
func writeIndexMetadata(path string, meta *IndexMetadata) error {
|
||||
metaBytes, err := json.Marshal(meta)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return os.WriteFile(indexMetadataPath(path), metaBytes, 0o644)
|
||||
}
|
27
modules/indexer/internal/bleve/metadata_test.go
Normal file
27
modules/indexer/internal/bleve/metadata_test.go
Normal file
|
@ -0,0 +1,27 @@
|
|||
// Copyright 2024 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// Copied and modified from https://github.com/ethantkoenig/rupture (MIT License)
|
||||
|
||||
package bleve
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestMetadata(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
|
||||
meta, err := readIndexMetadata(dir)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, &IndexMetadata{}, meta)
|
||||
|
||||
meta.Version = 24
|
||||
assert.NoError(t, writeIndexMetadata(dir, meta))
|
||||
|
||||
meta, err = readIndexMetadata(dir)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 24, meta.Version)
|
||||
}
|
|
@ -12,7 +12,6 @@ import (
|
|||
|
||||
"github.com/blevesearch/bleve/v2"
|
||||
"github.com/blevesearch/bleve/v2/index/upsidedown"
|
||||
"github.com/ethantkoenig/rupture"
|
||||
)
|
||||
|
||||
// openIndexer open the index at the specified path, checking for metadata
|
||||
|
@ -26,7 +25,7 @@ func openIndexer(path string, latestVersion int) (bleve.Index, int, error) {
|
|||
return nil, 0, err
|
||||
}
|
||||
|
||||
metadata, err := rupture.ReadIndexMetadata(path)
|
||||
metadata, err := readIndexMetadata(path)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue