From 62c71109a47bac85bb5857d45cab08d58aaafe4e Mon Sep 17 00:00:00 2001 From: Michael McLoughlin Date: Sun, 8 May 2022 16:55:51 -0700 Subject: [PATCH] tests/thirdparty: use Suite type for configuration (#285) --- .github/workflows/thirdparty.yml | 2 +- internal/cmd/docgen/main.go | 16 +- internal/cmd/docgen/templates/adopters.tmpl | 2 +- internal/cmd/docgen/templates/readme.tmpl | 2 +- script/doc | 6 +- script/metadata | 2 +- tests/thirdparty/config.go | 56 +- tests/thirdparty/config_test.go | 36 +- tests/thirdparty/make_workflow.go | 16 +- tests/thirdparty/metadata_test.go | 14 +- tests/thirdparty/packages_test.go | 18 +- tests/thirdparty/projects.json | 833 ------------------- tests/thirdparty/suite.json | 835 ++++++++++++++++++++ 13 files changed, 927 insertions(+), 911 deletions(-) delete mode 100644 tests/thirdparty/projects.json create mode 100644 tests/thirdparty/suite.json diff --git a/.github/workflows/thirdparty.yml b/.github/workflows/thirdparty.yml index e66ef4b..6c2b5d1 100644 --- a/.github/workflows/thirdparty.yml +++ b/.github/workflows/thirdparty.yml @@ -25,4 +25,4 @@ jobs: persist-credentials: false - name: Run Third-Party Tests working-directory: tests/thirdparty - run: go test -net -prjs projects.json + run: go test -net -suite suite.json diff --git a/internal/cmd/docgen/main.go b/internal/cmd/docgen/main.go index 0fe1aa2..9d79574 100644 --- a/internal/cmd/docgen/main.go +++ b/internal/cmd/docgen/main.go @@ -30,10 +30,10 @@ func main() { } var ( - typ = flag.String("type", "", "documentation type") - tmpl = flag.String("tmpl", "", "explicit template file (overrides -type)") - output = flag.String("output", "", "path to output file (default stdout)") - prjsfilename = flag.String("prjs", "", "projects configuration") + typ = flag.String("type", "", "documentation type") + tmpl = flag.String("tmpl", "", "explicit template file (overrides -type)") + output = flag.String("output", "", "path to output file (default stdout)") + suitefilename = flag.String("suite", "", "third-party test suite configuration") ) func mainerr() (err error) { @@ -60,18 +60,18 @@ func mainerr() (err error) { } // Load third-party projects. - if *prjsfilename == "" { - return errors.New("missing projects configuration") + if *suitefilename == "" { + return errors.New("missing test suite configuration") } - prjs, err := thirdparty.LoadProjectsFile(*prjsfilename) + suite, err := thirdparty.LoadSuiteFile(*suitefilename) if err != nil { return err } // Execute. data := map[string]interface{}{ - "Projects": prjs, + "Suite": suite, } var buf bytes.Buffer diff --git a/internal/cmd/docgen/templates/adopters.tmpl b/internal/cmd/docgen/templates/adopters.tmpl index 67ee562..7cf8ccf 100644 --- a/internal/cmd/docgen/templates/adopters.tmpl +++ b/internal/cmd/docgen/templates/adopters.tmpl @@ -1,5 +1,5 @@ # Adopters -{{ range .Projects.Ranked }} +{{ range .Suite.Projects.Ranked }} {{ avatar .Repository.Owner 28 }} [{{ .Repository.Owner }} / **{{ .Repository.Name }}**]({{ .Repository.URL }}) {{ .Metadata.Description }} diff --git a/internal/cmd/docgen/templates/readme.tmpl b/internal/cmd/docgen/templates/readme.tmpl index 66ea5e2..89eda6a 100644 --- a/internal/cmd/docgen/templates/readme.tmpl +++ b/internal/cmd/docgen/templates/readme.tmpl @@ -105,7 +105,7 @@ Implementations of full algorithms: Popular projects using `avo`: -{{ range .Projects.Top 10 -}} +{{ range .Suite.Projects.Top 10 -}} {{ if lt .Metadata.Stars 100 }}{{break}}{{ end -}} {{ avatar .Repository.Owner 24 }} [{{ .Repository.Owner }} / **{{ .Repository.Name }}**]({{ .Repository.URL }}) :star: {{ stars .Metadata.Stars }} diff --git a/script/doc b/script/doc index 0216e0b..d353ed9 100755 --- a/script/doc +++ b/script/doc @@ -3,9 +3,9 @@ # Generate some specific files with docgen. go install ./internal/cmd/docgen -prjs="tests/thirdparty/projects.json" -docgen -prjs "${prjs}" -type readme -output README.md -docgen -prjs "${prjs}" -type adopters -output doc/adopters.md +suite="tests/thirdparty/suite.json" +docgen -suite "${suite}" -type readme -output README.md +docgen -suite "${suite}" -type adopters -output doc/adopters.md # Process simple file embeddings with embedmd. find . -name '*.md' | xargs embedmd -w diff --git a/script/metadata b/script/metadata index 3caae74..92c15b3 100755 --- a/script/metadata +++ b/script/metadata @@ -1,4 +1,4 @@ #!/bin/bash -ex # Run metadata test in update mode. -go test ./tests/thirdparty/ -v -run Metadata -args -update -prjs projects.json -net +go test ./tests/thirdparty/ -v -run Metadata -args -update -suite suite.json -net diff --git a/tests/thirdparty/config.go b/tests/thirdparty/config.go index c5dbc20..29746ba 100644 --- a/tests/thirdparty/config.go +++ b/tests/thirdparty/config.go @@ -353,44 +353,58 @@ func (p Projects) Top(n int) Projects { return top } -// LoadProjects loads a list of project configurations from JSON format. -func LoadProjects(r io.Reader) (Projects, error) { - var prjs Projects - d := json.NewDecoder(r) - d.DisallowUnknownFields() - if err := d.Decode(&prjs); err != nil { - return nil, err - } - prjs.defaults(true) - return prjs, nil +// Suite defines a third-party test suite. +type Suite struct { + Projects Projects `json:"projects"` } -// LoadProjectsFile loads a list of project configurations from a JSON file. -func LoadProjectsFile(filename string) (Projects, error) { +func (s *Suite) defaults(set bool) { + s.Projects.defaults(set) +} + +// Validate the test suite. +func (s *Suite) Validate() error { + return s.Projects.Validate() +} + +// LoadSuite loads a test suite from JSON format. +func LoadSuite(r io.Reader) (*Suite, error) { + var s *Suite + d := json.NewDecoder(r) + d.DisallowUnknownFields() + if err := d.Decode(&s); err != nil { + return nil, err + } + s.defaults(true) + return s, nil +} + +// LoadSuiteFile loads a test suite from a JSON file. +func LoadSuiteFile(filename string) (*Suite, error) { f, err := os.Open(filename) if err != nil { return nil, err } defer f.Close() - return LoadProjects(f) + return LoadSuite(f) } -// StoreProjects writes a list of project configurations in JSON format. -func StoreProjects(w io.Writer, prjs Projects) error { +// StoreSuite writes a test suite in JSON format. +func StoreSuite(w io.Writer, s *Suite) error { e := json.NewEncoder(w) e.SetIndent("", " ") - prjs.defaults(false) - err := e.Encode(prjs) - prjs.defaults(true) + s.defaults(false) + err := e.Encode(s) + s.defaults(true) return err } -// StoreProjectsFile writes a list of project configurations to a JSON file. -func StoreProjectsFile(filename string, prjs Projects) error { +// StoreSuiteFile writes a test suite to a JSON file. +func StoreSuiteFile(filename string, s *Suite) error { f, err := os.Create(filename) if err != nil { return err } defer f.Close() - return StoreProjects(f, prjs) + return StoreSuite(f, s) } diff --git a/tests/thirdparty/config_test.go b/tests/thirdparty/config_test.go index 990c00c..27a4e40 100644 --- a/tests/thirdparty/config_test.go +++ b/tests/thirdparty/config_test.go @@ -107,17 +107,17 @@ func TestValidateErrors(t *testing.T) { } } -func TestLoadProjectsBad(t *testing.T) { +func TestLoadSuiteBad(t *testing.T) { r := strings.NewReader(`[{"unknown_field": "value"}]`) - _, err := LoadProjects(r) + _, err := LoadSuite(r) if err == nil { t.Fatal("expected non-nil error") } } -func TestLoadProjectsFileNotExist(t *testing.T) { - prjs, err := LoadProjectsFile("does_not_exist") - if prjs != nil { +func TestLoadSuiteFileNotExist(t *testing.T) { + s, err := LoadSuiteFile("does_not_exist") + if s != nil { t.Fatal("expected nil return") } if err == nil { @@ -125,24 +125,24 @@ func TestLoadProjectsFileNotExist(t *testing.T) { } } -func TestProjectsFileValid(t *testing.T) { - prjs, err := LoadProjectsFile("projects.json") +func TestSuiteFileValid(t *testing.T) { + s, err := LoadSuiteFile("suite.json") if err != nil { t.Fatal(err) } - for _, prj := range prjs { + for _, prj := range s.Projects { t.Logf("read: %s", prj.ID()) } - if len(prjs) == 0 { + if len(s.Projects) == 0 { t.Fatal("no packages loaded") } - if err := prjs.Validate(); err != nil { + if err := s.Validate(); err != nil { t.Fatal(err) } } -func TestProjectsFileStepsValid(t *testing.T) { - prjs, err := LoadProjectsFile("projects.json") +func TestSuiteFileStepsValid(t *testing.T) { + suite, err := LoadSuiteFile("suite.json") if err != nil { t.Fatal(err) } @@ -150,7 +150,7 @@ func TestProjectsFileStepsValid(t *testing.T) { AvoDirectory: "avo", RepositoryDirectory: "repo", } - for _, prj := range prjs { + for _, prj := range suite.Projects { for _, pkg := range prj.Packages { for _, s := range pkg.Steps(c) { if err := s.Validate(); err != nil { @@ -161,25 +161,25 @@ func TestProjectsFileStepsValid(t *testing.T) { } } -func TestProjectsFileRoundtrip(t *testing.T) { - prjs, err := LoadProjectsFile("projects.json") +func TestSuiteFileRoundtrip(t *testing.T) { + s, err := LoadSuiteFile("suite.json") if err != nil { t.Fatal(err) } // Write and read back. buf := bytes.NewBuffer(nil) - if err := StoreProjects(buf, prjs); err != nil { + if err := StoreSuite(buf, s); err != nil { t.Fatal(err) } - roundtrip, err := LoadProjects(buf) + roundtrip, err := LoadSuite(buf) if err != nil { t.Fatal(err) } // Should be identical. - if !reflect.DeepEqual(prjs, roundtrip) { + if !reflect.DeepEqual(s, roundtrip) { t.Fatal("roundtrip mismatch") } } diff --git a/tests/thirdparty/make_workflow.go b/tests/thirdparty/make_workflow.go index 0ba391a..5da4d0b 100644 --- a/tests/thirdparty/make_workflow.go +++ b/tests/thirdparty/make_workflow.go @@ -16,8 +16,8 @@ import ( ) var ( - prjsfilename = flag.String("prjs", "", "projects configuration") - output = flag.String("output", "", "path to output file (default stdout)") + suitefilename = flag.String("suite", "", "third-party test suite configuration") + output = flag.String("output", "", "path to output file (default stdout)") ) func main() { @@ -29,13 +29,13 @@ func main() { func mainerr() error { flag.Parse() - // Read projects. - prjs, err := thirdparty.LoadProjectsFile(*prjsfilename) + // Read third-party test suite. + suite, err := thirdparty.LoadSuiteFile(*suitefilename) if err != nil { return err } - if err := prjs.Validate(); err != nil { + if err := suite.Validate(); err != nil { return err } @@ -51,7 +51,7 @@ func mainerr() error { } // Generate workflow file. - b, err := GenerateWorkflow(prjs) + b, err := GenerateWorkflow(suite) if err != nil { return err } @@ -64,7 +64,7 @@ func mainerr() error { return nil } -func GenerateWorkflow(prjs thirdparty.Projects) ([]byte, error) { +func GenerateWorkflow(s *thirdparty.Suite) ([]byte, error) { g := &prnt.Generator{} g.SetIndentString(" ") @@ -87,7 +87,7 @@ func GenerateWorkflow(prjs thirdparty.Projects) ([]byte, error) { // One job per test case. g.Linef("jobs:") g.Indent() - for _, t := range prjs.Tests() { + for _, t := range s.Projects.Tests() { g.Linef("%s:", t.ID()) g.Indent() diff --git a/tests/thirdparty/metadata_test.go b/tests/thirdparty/metadata_test.go index ae09cb4..0602d07 100644 --- a/tests/thirdparty/metadata_test.go +++ b/tests/thirdparty/metadata_test.go @@ -11,18 +11,18 @@ import ( var update = flag.Bool("update", false, "update project metadata") -func TestProjectsFileMetadata(t *testing.T) { +func TestSuiteFileMetadata(t *testing.T) { test.RequiresNetwork(t) ctx := context.Background() - prjs, err := LoadProjectsFile("projects.json") + s, err := LoadSuiteFile("suite.json") if err != nil { t.Fatal(err) } g := github.NewClient(github.WithTokenFromEnvironment()) - for _, prj := range prjs { + for _, prj := range s.Projects { // Fetch metadata. r, err := g.Repository(ctx, prj.Repository.Owner, prj.Repository.Name) if err != nil { @@ -50,23 +50,23 @@ func TestProjectsFileMetadata(t *testing.T) { } } - if err := StoreProjectsFile("projects.json", prjs); err != nil { + if err := StoreSuiteFile("suite.json", s); err != nil { t.Fatal(err) } } -func TestProjectsFileKnownIssues(t *testing.T) { +func TestSuiteFileKnownIssues(t *testing.T) { test.RequiresNetwork(t) ctx := context.Background() - prjs, err := LoadProjectsFile("projects.json") + s, err := LoadSuiteFile("suite.json") if err != nil { t.Fatal(err) } g := github.NewClient(github.WithTokenFromEnvironment()) - for _, prj := range prjs { + for _, prj := range s.Projects { // Skipped packages must refer to an open issue. if !prj.Skip() { continue diff --git a/tests/thirdparty/packages_test.go b/tests/thirdparty/packages_test.go index b0f9c85..fa5a7d6 100644 --- a/tests/thirdparty/packages_test.go +++ b/tests/thirdparty/packages_test.go @@ -10,29 +10,29 @@ import ( "github.com/mmcloughlin/avo/internal/test" ) -//go:generate go run make_workflow.go -prjs projects.json -output ../../.github/workflows/packages.yml +//go:generate go run make_workflow.go -suite suite.json -output ../../.github/workflows/packages.yml // Custom flags. var ( - prjsfilename = flag.String("prjs", "", "projects configuration") - preserve = flag.Bool("preserve", false, "preserve working directories") - latest = flag.Bool("latest", false, "use latest versions of each project") + suitefilename = flag.String("suite", "", "projects configuration") + preserve = flag.Bool("preserve", false, "preserve working directories") + latest = flag.Bool("latest", false, "use latest versions of each project") ) // TestPackages runs integration tests on all packages specified by projects // file given on the command line. func TestPackages(t *testing.T) { - // Load projects. - if *prjsfilename == "" { - t.Skip("no projects specified") + // Load suite. + if *suitefilename == "" { + t.Skip("no suite specified") } - prjs, err := LoadProjectsFile(*prjsfilename) + s, err := LoadSuiteFile(*suitefilename) if err != nil { t.Fatal(err) } - for _, tst := range prjs.Tests() { + for _, tst := range s.Projects.Tests() { tst := tst // scopelint t.Run(tst.ID(), func(t *testing.T) { if tst.Project.Skip() { diff --git a/tests/thirdparty/projects.json b/tests/thirdparty/projects.json deleted file mode 100644 index 521eb88..0000000 --- a/tests/thirdparty/projects.json +++ /dev/null @@ -1,833 +0,0 @@ -[ - { - "repository": { - "owner": "zeebo", - "name": "xxh3" - }, - "metadata": { - "description": "XXH3 algorithm in Go", - "stars": 240 - }, - "default_branch": "master", - "version": "v1.0.0-rc1", - "packages": [ - { - "module": "avo/go.mod", - "generate": [ - { - "dir": "avo", - "commands": [ - "go run . -avx -out ../accum_vector_avx_amd64.s", - "go run . -sse -out ../accum_vector_sse_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "dgryski", - "name": "go-sip13" - }, - "metadata": { - "description": "siphash 1-3", - "stars": 32 - }, - "default_branch": "master", - "version": "62edffca92457b3a66125c686137cc5f0fe81672", - "packages": [ - { - "module": "_avo/go.mod", - "setup": [ - { - "name": "Setup Root Module", - "commands": [ - "go mod init github.com/dgryski/go-sip13" - ] - }, - { - "name": "Setup Generator Module", - "dir": "_avo", - "commands": [ - "sed -i.bak '/+build ignore/d' asm.go", - "go mod init github.com/dgryski/go-sip13/_avo" - ] - } - ], - "generate": [ - { - "dir": "_avo", - "commands": [ - "go mod edit -modfile=go.mod -require=github.com/dgryski/go-sip13@v0.0.0-00010101000000-000000000000", - "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-sip13=../", - "go run . -out ../sip13_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "phoreproject", - "name": "bls" - }, - "metadata": { - "description": "Go implementation of the BLS12-381 pairing", - "stars": 81 - }, - "default_branch": "master", - "version": "a88a5ae26844d7293359422888d7c7f69f43c845", - "packages": [ - { - "module": "asm/go.mod", - "setup": [ - { - "name": "Setup Root Module", - "commands": [ - "go mod tidy" - ] - }, - { - "name": "Setup Generator Module", - "dir": "asm", - "commands": [ - "sed -i.bak '/+build ignore/d' asm.go", - "go mod init github.com/phoreproject/bls/asm" - ] - } - ], - "generate": [ - { - "dir": "asm", - "commands": [ - "go mod edit -modfile=go.mod -require=github.com/phoreproject/bls@v0.0.0-00010101000000-000000000000", - "go mod edit -modfile=go.mod -replace=github.com/phoreproject/bls=../", - "go mod download", - "go run . -out ../primitivefuncs_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "minio", - "name": "md5-simd" - }, - "metadata": { - "description": "Accelerate aggregated MD5 hashing performance up to 8x for AVX512 and 4x for AVX2. Useful for server applications that need to compute many MD5 sums in parallel.", - "stars": 111 - }, - "default_branch": "master", - "version": "30ad8af83f6868c2a30c615f3edf1a9366bf3f89", - "packages": [ - { - "module": "_gen/go.mod", - "generate": [ - { - "dir": "_gen", - "commands": [ - "go run gen.go -out ../md5block_amd64.s -stubs ../md5block_amd64.go -pkg md5simd" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "zeebo", - "name": "blake3" - }, - "metadata": { - "description": "Pure Go implementation of BLAKE3 with AVX2 and SSE4.1 acceleration", - "stars": 288 - }, - "default_branch": "master", - "version": "25dba572f0e78ec108f0dd79c9c15288f542d7d9", - "packages": [ - { - "module": "avo/go.mod", - "generate": [ - { - "dir": "avo", - "commands": [ - "go run ./avx2 -out ../avx2/impl.s", - "go run ./sse41 -out ../sse41/impl.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "klauspost", - "name": "reedsolomon" - }, - "metadata": { - "description": "Reed-Solomon Erasure Coding in Go", - "stars": 1444 - }, - "default_branch": "master", - "version": "922778284547557265cff0f903ab5f4c27e40ae9", - "packages": [ - { - "module": "_gen/go.mod", - "generate": [ - { - "dir": "_gen", - "commands": [ - "go run gen.go -out ../galois_gen_amd64.s -stubs ../galois_gen_amd64.go -pkg reedsolomon" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "orisano", - "name": "wyhash" - }, - "metadata": { - "description": "A pure-Go wyhash implementation.", - "stars": 24 - }, - "default_branch": "master", - "version": "32a3f7f6ba4797e2d87dab2969cc9dd63d39cce9", - "packages": [ - { - "module": "avo/go.mod", - "setup": [ - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "go mod init github.com/orisano/wyhash/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go run gen.go -out ../blocks_amd64.s -stubs ../blocks_amd64.go -pkg wyhash" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "klauspost", - "name": "compress" - }, - "metadata": { - "description": "Optimized Go Compression Packages", - "stars": 2894 - }, - "default_branch": "master", - "version": "2f236383d7c2faa8ef7e354ccecb926a5b47a24d", - "packages": [ - { - "pkg": "s2", - "module": "_generate/go.mod", - "generate": [ - { - "dir": "_generate", - "commands": [ - "go generate -v -x" - ] - } - ] - }, - { - "pkg": "zstd", - "module": "_generate/go.mod", - "generate": [ - { - "dir": "_generate", - "commands": [ - "go generate -v -x" - ] - } - ], - "test": [ - { - "commands": [ - "go test -short" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "dgryski", - "name": "go-bloomindex" - }, - "metadata": { - "description": "Bloom-filter based search index", - "stars": 111 - }, - "default_branch": "master", - "version": "0902316dce158c154b958ee5cfc706c62af29a42", - "packages": [ - { - "module": "avo/go.mod", - "setup": [ - { - "name": "Setup Root Module", - "commands": [ - "go mod init github.com/dgryski/go-bloomindex", - "go get github.com/dgryski/go-bits@v0.0.0-20180113010104-bd8a69a71dc2" - ] - }, - { - "name": "Create Generator Module", - "commands": [ - "mkdir avo", - "git mv asm.go avo" - ] - }, - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "sed -i.bak '/+build ignore/d' asm.go", - "go mod init github.com/dgryski/go-bloomindex/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go run asm.go -out ../query_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "dgryski", - "name": "go-marvin32" - }, - "metadata": { - "description": "Assembly-optimized Marvin32 hash function", - "stars": 12 - }, - "default_branch": "master", - "version": "7d18f4c6ea7c24b29d1c7a670f8ae40b0812f2e3", - "packages": [ - { - "module": "avo/go.mod", - "setup": [ - { - "name": "Setup Root Module", - "commands": [ - "go mod init github.com/dgryski/go-marvin32" - ] - }, - { - "name": "Create Generator Module", - "commands": [ - "mkdir avo", - "git mv asm.go avo" - ] - }, - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "sed -i.bak '/+build ignore/d' asm.go", - "go mod init github.com/dgryski/go-marvin32/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go mod edit -modfile=go.mod -require=github.com/dgryski/go-marvin32@v0.0.0-00010101000000-000000000000", - "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-marvin32=../", - "go run asm.go -out ../marvin_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "dgryski", - "name": "go-speck" - }, - "metadata": { - "description": "SPECK cipher", - "stars": 10 - }, - "default_branch": "master", - "version": "5b36d4c08d8840c352a153bf37281434ad550ec0", - "packages": [ - { - "module": "avo/go.mod", - "setup": [ - { - "name": "Setup Root Module", - "commands": [ - "go mod init github.com/dgryski/go-speck", - "go get github.com/dgryski/go-skipjack@v0.0.0-20150401095227-f3a984a142ab" - ] - }, - { - "name": "Create Generator Module", - "commands": [ - "mkdir avo", - "git mv asm.go avo" - ] - }, - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "sed -i.bak '/+build ignore/d' asm.go", - "go mod init github.com/dgryski/go-speck/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go mod edit -modfile=go.mod -require=github.com/dgryski/go-speck@v0.0.0-00010101000000-000000000000", - "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-speck=../", - "go run asm.go -out ../speck_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "dgryski", - "name": "go-chaskey" - }, - "metadata": { - "description": "go-chaskey: an implementation of chaskey, an efficient MAC for microcontrollers", - "stars": 8 - }, - "default_branch": "master", - "version": "ba454392bc5ab6daae103e15147185f8f4a27dcc", - "packages": [ - { - "module": "avo/go.mod", - "setup": [ - { - "name": "Setup Root Module", - "commands": [ - "go mod init github.com/dgryski/go-chaskey", - "go get github.com/dchest/siphash@v1.2.2" - ] - }, - { - "name": "Create Generator Module", - "commands": [ - "mkdir avo", - "git mv asm.go avo" - ] - }, - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "sed -i.bak '/+build ignore/d' asm.go", - "go mod init github.com/dgryski/go-chaskey/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go mod edit -modfile=go.mod -require=github.com/dgryski/go-chaskey@v0.0.0-00010101000000-000000000000", - "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-chaskey=../", - "go run asm.go -out ../core_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "lukechampine", - "name": "us" - }, - "metadata": { - "description": "An alternative interface to Sia", - "stars": 52 - }, - "default_branch": "master", - "version": "dff56a80f83653cb14eeeb57ba6ba3c3e942c412", - "packages": [ - { - "pkg": "merkle/blake2b", - "module": "avo/go.mod", - "setup": [ - { - "name": "Create Generator Module", - "commands": [ - "mkdir avo", - "git mv gen.go avo" - ] - }, - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "sed -i.bak '/+build ignore/d' gen.go", - "go mod init github.com/lukechampine/us/merkle/blake2b/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go run gen.go -out ../blake2b_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "segmentio", - "name": "asm" - }, - "metadata": { - "description": "Go library providing algorithms optimized to leverage the characteristics of modern CPUs", - "stars": 706 - }, - "default_branch": "main", - "version": "2bf3fdd47b1cdbe8fe020f032caf14891e10a85f", - "packages": [ - { - "module": "build/go.mod", - "generate": [ - { - "commands": [ - "make --always-make build" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "ericlagergren", - "name": "lwcrypto" - }, - "metadata": { - "description": "NIST Lightweight Cryptography finalists", - "stars": 4 - }, - "default_branch": "main", - "version": "0c42b05eddc34c58bf8e0cd4250c5cd2c256ea57", - "packages": [ - { - "pkg": "ascon", - "module": "asm/go.mod", - "generate": [ - { - "dir": "asm", - "commands": [ - "go mod edit -require=github.com/ericlagergren/lwcrypto@v0.0.0-00010101000000-000000000000", - "go generate -v -x" - ] - } - ] - }, - { - "pkg": "grain", - "module": "asm/go.mod", - "generate": [ - { - "dir": "asm", - "commands": [ - "go mod edit -require=github.com/ericlagergren/lwcrypto@v0.0.0-00010101000000-000000000000", - "go generate -v -x" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "oasisprotocol", - "name": "curve25519-voi" - }, - "metadata": { - "description": "High-performance Curve25519/ristretto255 for Go", - "stars": 46 - }, - "default_branch": "master", - "version": "d5a936accd94ef9da4c0fe9db0a6342dcdcfeadf", - "packages": [ - { - "module": "internal/asm/amd64/go.mod", - "generate": [ - { - "dir": "internal/asm/amd64", - "commands": [ - "bash -ex gen.sh" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "oasisprotocol", - "name": "deoxysii" - }, - "metadata": { - "description": "Go Deoxys-II-256-128", - "stars": 17 - }, - "default_branch": "master", - "version": "2091330c22b71dd4e04e15306498e68f3a1b3afc", - "packages": [ - { - "module": "internal/hardware/asm/go.mod", - "generate": [ - { - "dir": "internal/hardware/asm", - "commands": [ - "bash -ex gen.sh" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "golang", - "name": "crypto" - }, - "metadata": { - "description": "[mirror] Go supplementary cryptography libraries", - "homepage": "https://golang.org/x/crypto", - "stars": 2416 - }, - "default_branch": "master", - "version": "089bfa5675191fd96a44247682f76ebca03d7916", - "packages": [ - { - "pkg": "curve25519", - "module": "internal/field/_asm/go.mod", - "generate": [ - { - "dir": "internal/field/_asm", - "commands": [ - "go generate -v -x" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "FiloSottile", - "name": "edwards25519" - }, - "metadata": { - "description": "filippo.io/edwards25519 — A safer, faster, and more powerful low-level edwards25519 Go implementation.", - "homepage": "https://filippo.io/edwards25519", - "stars": 83 - }, - "default_branch": "main", - "version": "v1.0.0-rc.1", - "packages": [ - { - "module": "field/_asm/go.mod", - "generate": [ - { - "dir": "field/_asm", - "commands": [ - "go generate -v -x" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "lukechampine", - "name": "blake3" - }, - "metadata": { - "description": "A pure-Go implementation of the BLAKE3 cryptographic hash function", - "stars": 279 - }, - "default_branch": "master", - "version": "v1.1.7", - "packages": [ - { - "module": "avo/go.mod", - "setup": [ - { - "name": "Setup Generator Module", - "dir": "avo", - "commands": [ - "sed -i.bak '/build ignore/d' gen.go", - "go mod init github.com/lukechampine/blake3/avo" - ] - } - ], - "generate": [ - { - "dir": "avo", - "commands": [ - "go run gen.go -out ../blake3_amd64.s" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "mmcloughlin", - "name": "md4" - }, - "metadata": { - "description": "Assembly-optimized MD4 hash algorithm in Go", - "stars": 15 - }, - "default_branch": "main", - "version": "v0.1.2", - "packages": [ - { - "module": "asm/go.mod", - "generate": [ - { - "commands": [ - "go generate -v -x" - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "golang", - "name": "go" - }, - "metadata": { - "description": "The Go programming language", - "homepage": "https://go.dev", - "stars": 98831 - }, - "default_branch": "master", - "version": "go1.17.3", - "packages": [ - { - "module": "src/crypto/ed25519/internal/edwards25519/field/_asm/go.mod", - "setup": [ - { - "name": "Compile Go Toolchain", - "dir": "src", - "commands": [ - "./make.bash" - ] - } - ], - "generate": [ - { - "dir": "src/crypto/ed25519/internal/edwards25519/field/_asm", - "commands": [ - "go generate -v -x" - ] - } - ], - "test": [ - { - "commands": [ - "env --unset=GOROOT ./bin/go test crypto/ed25519/..." - ] - } - ] - } - ] - }, - { - "repository": { - "owner": "cloudflare", - "name": "circl" - }, - "metadata": { - "description": "CIRCL: Cloudflare Interoperable Reusable Cryptographic Library", - "homepage": "http://blog.cloudflare.com/introducing-circl", - "stars": 616 - }, - "default_branch": "master", - "version": "v1.1.0", - "packages": [ - { - "pkg": "sign/dilithium", - "module": "internal/common/asm/go.mod", - "generate": [ - { - "dir": "internal/common/asm", - "commands": [ - "go generate -v -x" - ] - } - ] - }, - { - "pkg": "pke/kyber", - "module": "internal/common/asm/go.mod", - "generate": [ - { - "dir": "internal/common/asm", - "commands": [ - "go generate -v -x" - ] - } - ] - }, - { - "pkg": "simd/keccakf1600", - "module": "internal/asm/go.mod", - "generate": [ - { - "dir": "internal/asm", - "commands": [ - "go generate -v -x" - ] - } - ] - } - ] - } -] diff --git a/tests/thirdparty/suite.json b/tests/thirdparty/suite.json new file mode 100644 index 0000000..352d83a --- /dev/null +++ b/tests/thirdparty/suite.json @@ -0,0 +1,835 @@ +{ + "projects": [ + { + "repository": { + "owner": "zeebo", + "name": "xxh3" + }, + "metadata": { + "description": "XXH3 algorithm in Go", + "stars": 240 + }, + "default_branch": "master", + "version": "v1.0.0-rc1", + "packages": [ + { + "module": "avo/go.mod", + "generate": [ + { + "dir": "avo", + "commands": [ + "go run . -avx -out ../accum_vector_avx_amd64.s", + "go run . -sse -out ../accum_vector_sse_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "dgryski", + "name": "go-sip13" + }, + "metadata": { + "description": "siphash 1-3", + "stars": 32 + }, + "default_branch": "master", + "version": "62edffca92457b3a66125c686137cc5f0fe81672", + "packages": [ + { + "module": "_avo/go.mod", + "setup": [ + { + "name": "Setup Root Module", + "commands": [ + "go mod init github.com/dgryski/go-sip13" + ] + }, + { + "name": "Setup Generator Module", + "dir": "_avo", + "commands": [ + "sed -i.bak '/+build ignore/d' asm.go", + "go mod init github.com/dgryski/go-sip13/_avo" + ] + } + ], + "generate": [ + { + "dir": "_avo", + "commands": [ + "go mod edit -modfile=go.mod -require=github.com/dgryski/go-sip13@v0.0.0-00010101000000-000000000000", + "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-sip13=../", + "go run . -out ../sip13_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "phoreproject", + "name": "bls" + }, + "metadata": { + "description": "Go implementation of the BLS12-381 pairing", + "stars": 81 + }, + "default_branch": "master", + "version": "a88a5ae26844d7293359422888d7c7f69f43c845", + "packages": [ + { + "module": "asm/go.mod", + "setup": [ + { + "name": "Setup Root Module", + "commands": [ + "go mod tidy" + ] + }, + { + "name": "Setup Generator Module", + "dir": "asm", + "commands": [ + "sed -i.bak '/+build ignore/d' asm.go", + "go mod init github.com/phoreproject/bls/asm" + ] + } + ], + "generate": [ + { + "dir": "asm", + "commands": [ + "go mod edit -modfile=go.mod -require=github.com/phoreproject/bls@v0.0.0-00010101000000-000000000000", + "go mod edit -modfile=go.mod -replace=github.com/phoreproject/bls=../", + "go mod download", + "go run . -out ../primitivefuncs_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "minio", + "name": "md5-simd" + }, + "metadata": { + "description": "Accelerate aggregated MD5 hashing performance up to 8x for AVX512 and 4x for AVX2. Useful for server applications that need to compute many MD5 sums in parallel.", + "stars": 111 + }, + "default_branch": "master", + "version": "30ad8af83f6868c2a30c615f3edf1a9366bf3f89", + "packages": [ + { + "module": "_gen/go.mod", + "generate": [ + { + "dir": "_gen", + "commands": [ + "go run gen.go -out ../md5block_amd64.s -stubs ../md5block_amd64.go -pkg md5simd" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "zeebo", + "name": "blake3" + }, + "metadata": { + "description": "Pure Go implementation of BLAKE3 with AVX2 and SSE4.1 acceleration", + "stars": 288 + }, + "default_branch": "master", + "version": "25dba572f0e78ec108f0dd79c9c15288f542d7d9", + "packages": [ + { + "module": "avo/go.mod", + "generate": [ + { + "dir": "avo", + "commands": [ + "go run ./avx2 -out ../avx2/impl.s", + "go run ./sse41 -out ../sse41/impl.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "klauspost", + "name": "reedsolomon" + }, + "metadata": { + "description": "Reed-Solomon Erasure Coding in Go", + "stars": 1444 + }, + "default_branch": "master", + "version": "922778284547557265cff0f903ab5f4c27e40ae9", + "packages": [ + { + "module": "_gen/go.mod", + "generate": [ + { + "dir": "_gen", + "commands": [ + "go run gen.go -out ../galois_gen_amd64.s -stubs ../galois_gen_amd64.go -pkg reedsolomon" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "orisano", + "name": "wyhash" + }, + "metadata": { + "description": "A pure-Go wyhash implementation.", + "stars": 24 + }, + "default_branch": "master", + "version": "32a3f7f6ba4797e2d87dab2969cc9dd63d39cce9", + "packages": [ + { + "module": "avo/go.mod", + "setup": [ + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "go mod init github.com/orisano/wyhash/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go run gen.go -out ../blocks_amd64.s -stubs ../blocks_amd64.go -pkg wyhash" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "klauspost", + "name": "compress" + }, + "metadata": { + "description": "Optimized Go Compression Packages", + "stars": 2894 + }, + "default_branch": "master", + "version": "2f236383d7c2faa8ef7e354ccecb926a5b47a24d", + "packages": [ + { + "pkg": "s2", + "module": "_generate/go.mod", + "generate": [ + { + "dir": "_generate", + "commands": [ + "go generate -v -x" + ] + } + ] + }, + { + "pkg": "zstd", + "module": "_generate/go.mod", + "generate": [ + { + "dir": "_generate", + "commands": [ + "go generate -v -x" + ] + } + ], + "test": [ + { + "commands": [ + "go test -short" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "dgryski", + "name": "go-bloomindex" + }, + "metadata": { + "description": "Bloom-filter based search index", + "stars": 111 + }, + "default_branch": "master", + "version": "0902316dce158c154b958ee5cfc706c62af29a42", + "packages": [ + { + "module": "avo/go.mod", + "setup": [ + { + "name": "Setup Root Module", + "commands": [ + "go mod init github.com/dgryski/go-bloomindex", + "go get github.com/dgryski/go-bits@v0.0.0-20180113010104-bd8a69a71dc2" + ] + }, + { + "name": "Create Generator Module", + "commands": [ + "mkdir avo", + "git mv asm.go avo" + ] + }, + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "sed -i.bak '/+build ignore/d' asm.go", + "go mod init github.com/dgryski/go-bloomindex/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go run asm.go -out ../query_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "dgryski", + "name": "go-marvin32" + }, + "metadata": { + "description": "Assembly-optimized Marvin32 hash function", + "stars": 12 + }, + "default_branch": "master", + "version": "7d18f4c6ea7c24b29d1c7a670f8ae40b0812f2e3", + "packages": [ + { + "module": "avo/go.mod", + "setup": [ + { + "name": "Setup Root Module", + "commands": [ + "go mod init github.com/dgryski/go-marvin32" + ] + }, + { + "name": "Create Generator Module", + "commands": [ + "mkdir avo", + "git mv asm.go avo" + ] + }, + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "sed -i.bak '/+build ignore/d' asm.go", + "go mod init github.com/dgryski/go-marvin32/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go mod edit -modfile=go.mod -require=github.com/dgryski/go-marvin32@v0.0.0-00010101000000-000000000000", + "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-marvin32=../", + "go run asm.go -out ../marvin_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "dgryski", + "name": "go-speck" + }, + "metadata": { + "description": "SPECK cipher", + "stars": 10 + }, + "default_branch": "master", + "version": "5b36d4c08d8840c352a153bf37281434ad550ec0", + "packages": [ + { + "module": "avo/go.mod", + "setup": [ + { + "name": "Setup Root Module", + "commands": [ + "go mod init github.com/dgryski/go-speck", + "go get github.com/dgryski/go-skipjack@v0.0.0-20150401095227-f3a984a142ab" + ] + }, + { + "name": "Create Generator Module", + "commands": [ + "mkdir avo", + "git mv asm.go avo" + ] + }, + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "sed -i.bak '/+build ignore/d' asm.go", + "go mod init github.com/dgryski/go-speck/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go mod edit -modfile=go.mod -require=github.com/dgryski/go-speck@v0.0.0-00010101000000-000000000000", + "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-speck=../", + "go run asm.go -out ../speck_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "dgryski", + "name": "go-chaskey" + }, + "metadata": { + "description": "go-chaskey: an implementation of chaskey, an efficient MAC for microcontrollers", + "stars": 8 + }, + "default_branch": "master", + "version": "ba454392bc5ab6daae103e15147185f8f4a27dcc", + "packages": [ + { + "module": "avo/go.mod", + "setup": [ + { + "name": "Setup Root Module", + "commands": [ + "go mod init github.com/dgryski/go-chaskey", + "go get github.com/dchest/siphash@v1.2.2" + ] + }, + { + "name": "Create Generator Module", + "commands": [ + "mkdir avo", + "git mv asm.go avo" + ] + }, + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "sed -i.bak '/+build ignore/d' asm.go", + "go mod init github.com/dgryski/go-chaskey/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go mod edit -modfile=go.mod -require=github.com/dgryski/go-chaskey@v0.0.0-00010101000000-000000000000", + "go mod edit -modfile=go.mod -replace=github.com/dgryski/go-chaskey=../", + "go run asm.go -out ../core_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "lukechampine", + "name": "us" + }, + "metadata": { + "description": "An alternative interface to Sia", + "stars": 52 + }, + "default_branch": "master", + "version": "dff56a80f83653cb14eeeb57ba6ba3c3e942c412", + "packages": [ + { + "pkg": "merkle/blake2b", + "module": "avo/go.mod", + "setup": [ + { + "name": "Create Generator Module", + "commands": [ + "mkdir avo", + "git mv gen.go avo" + ] + }, + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "sed -i.bak '/+build ignore/d' gen.go", + "go mod init github.com/lukechampine/us/merkle/blake2b/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go run gen.go -out ../blake2b_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "segmentio", + "name": "asm" + }, + "metadata": { + "description": "Go library providing algorithms optimized to leverage the characteristics of modern CPUs", + "stars": 706 + }, + "default_branch": "main", + "version": "2bf3fdd47b1cdbe8fe020f032caf14891e10a85f", + "packages": [ + { + "module": "build/go.mod", + "generate": [ + { + "commands": [ + "make --always-make build" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "ericlagergren", + "name": "lwcrypto" + }, + "metadata": { + "description": "NIST Lightweight Cryptography finalists", + "stars": 4 + }, + "default_branch": "main", + "version": "0c42b05eddc34c58bf8e0cd4250c5cd2c256ea57", + "packages": [ + { + "pkg": "ascon", + "module": "asm/go.mod", + "generate": [ + { + "dir": "asm", + "commands": [ + "go mod edit -require=github.com/ericlagergren/lwcrypto@v0.0.0-00010101000000-000000000000", + "go generate -v -x" + ] + } + ] + }, + { + "pkg": "grain", + "module": "asm/go.mod", + "generate": [ + { + "dir": "asm", + "commands": [ + "go mod edit -require=github.com/ericlagergren/lwcrypto@v0.0.0-00010101000000-000000000000", + "go generate -v -x" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "oasisprotocol", + "name": "curve25519-voi" + }, + "metadata": { + "description": "High-performance Curve25519/ristretto255 for Go", + "stars": 46 + }, + "default_branch": "master", + "version": "d5a936accd94ef9da4c0fe9db0a6342dcdcfeadf", + "packages": [ + { + "module": "internal/asm/amd64/go.mod", + "generate": [ + { + "dir": "internal/asm/amd64", + "commands": [ + "bash -ex gen.sh" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "oasisprotocol", + "name": "deoxysii" + }, + "metadata": { + "description": "Go Deoxys-II-256-128", + "stars": 17 + }, + "default_branch": "master", + "version": "2091330c22b71dd4e04e15306498e68f3a1b3afc", + "packages": [ + { + "module": "internal/hardware/asm/go.mod", + "generate": [ + { + "dir": "internal/hardware/asm", + "commands": [ + "bash -ex gen.sh" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "golang", + "name": "crypto" + }, + "metadata": { + "description": "[mirror] Go supplementary cryptography libraries", + "homepage": "https://golang.org/x/crypto", + "stars": 2416 + }, + "default_branch": "master", + "version": "089bfa5675191fd96a44247682f76ebca03d7916", + "packages": [ + { + "pkg": "curve25519", + "module": "internal/field/_asm/go.mod", + "generate": [ + { + "dir": "internal/field/_asm", + "commands": [ + "go generate -v -x" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "FiloSottile", + "name": "edwards25519" + }, + "metadata": { + "description": "filippo.io/edwards25519 — A safer, faster, and more powerful low-level edwards25519 Go implementation.", + "homepage": "https://filippo.io/edwards25519", + "stars": 83 + }, + "default_branch": "main", + "version": "v1.0.0-rc.1", + "packages": [ + { + "module": "field/_asm/go.mod", + "generate": [ + { + "dir": "field/_asm", + "commands": [ + "go generate -v -x" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "lukechampine", + "name": "blake3" + }, + "metadata": { + "description": "A pure-Go implementation of the BLAKE3 cryptographic hash function", + "stars": 279 + }, + "default_branch": "master", + "version": "v1.1.7", + "packages": [ + { + "module": "avo/go.mod", + "setup": [ + { + "name": "Setup Generator Module", + "dir": "avo", + "commands": [ + "sed -i.bak '/build ignore/d' gen.go", + "go mod init github.com/lukechampine/blake3/avo" + ] + } + ], + "generate": [ + { + "dir": "avo", + "commands": [ + "go run gen.go -out ../blake3_amd64.s" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "mmcloughlin", + "name": "md4" + }, + "metadata": { + "description": "Assembly-optimized MD4 hash algorithm in Go", + "stars": 15 + }, + "default_branch": "main", + "version": "v0.1.2", + "packages": [ + { + "module": "asm/go.mod", + "generate": [ + { + "commands": [ + "go generate -v -x" + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "golang", + "name": "go" + }, + "metadata": { + "description": "The Go programming language", + "homepage": "https://go.dev", + "stars": 98831 + }, + "default_branch": "master", + "version": "go1.17.3", + "packages": [ + { + "module": "src/crypto/ed25519/internal/edwards25519/field/_asm/go.mod", + "setup": [ + { + "name": "Compile Go Toolchain", + "dir": "src", + "commands": [ + "./make.bash" + ] + } + ], + "generate": [ + { + "dir": "src/crypto/ed25519/internal/edwards25519/field/_asm", + "commands": [ + "go generate -v -x" + ] + } + ], + "test": [ + { + "commands": [ + "env --unset=GOROOT ./bin/go test crypto/ed25519/..." + ] + } + ] + } + ] + }, + { + "repository": { + "owner": "cloudflare", + "name": "circl" + }, + "metadata": { + "description": "CIRCL: Cloudflare Interoperable Reusable Cryptographic Library", + "homepage": "http://blog.cloudflare.com/introducing-circl", + "stars": 616 + }, + "default_branch": "master", + "version": "v1.1.0", + "packages": [ + { + "pkg": "sign/dilithium", + "module": "internal/common/asm/go.mod", + "generate": [ + { + "dir": "internal/common/asm", + "commands": [ + "go generate -v -x" + ] + } + ] + }, + { + "pkg": "pke/kyber", + "module": "internal/common/asm/go.mod", + "generate": [ + { + "dir": "internal/common/asm", + "commands": [ + "go generate -v -x" + ] + } + ] + }, + { + "pkg": "simd/keccakf1600", + "module": "internal/asm/go.mod", + "generate": [ + { + "dir": "internal/asm", + "commands": [ + "go generate -v -x" + ] + } + ] + } + ] + } + ] +}