From 98ce1bfb1e61cd6151461e9bcfe68f1eb65c404a Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Fri, 16 Jan 2026 11:17:44 +0100 Subject: [PATCH 1/3] CROSSLINK-199 Move directory spec to top-level --- Makefile | 2 +- directory/Makefile | 27 +++++++++++++++++++ .../directory_api.yaml | 0 .../directory_config.yaml | 2 +- .../examples/directory.json | 0 directory/go.mod | 11 ++++++++ directory/go.sum | 21 +++++++++++++++ go.work | 1 + illmock/Makefile | 12 +-------- illmock/app/app_test.go | 2 +- illmock/dirmock/dirmock.go | 2 +- illmock/dirmock/dirmock_test.go | 2 +- illmock/go.mod | 2 ++ 13 files changed, 68 insertions(+), 16 deletions(-) create mode 100644 directory/Makefile rename {illmock/directory => directory}/directory_api.yaml (100%) rename {illmock/directory => directory}/directory_config.yaml (82%) rename {illmock/directory => directory}/examples/directory.json (100%) create mode 100644 directory/go.mod create mode 100644 directory/go.sum diff --git a/Makefile b/Makefile index 641c26a7..3744d86f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -SUBDIRS := iso18626 ncip sru marcxml httpclient illmock broker +SUBDIRS := iso18626 ncip directory sru marcxml httpclient illmock broker GOALS := $(or $(MAKECMDGOALS),all) .PHONY: $(GOALS) $(SUBDIRS) diff --git a/directory/Makefile b/directory/Makefile new file mode 100644 index 00000000..7418a81c --- /dev/null +++ b/directory/Makefile @@ -0,0 +1,27 @@ +GO ?= go +GIT ?= git +GOFMT ?= gofmt "-s" +OS ?= $(shell uname) + +OAPI_CFG = directory_config.yaml +OAPI_SPEC = directory_api.yaml +OAPI_GEN = directory_gen.go +COVERAGE=coverage.out + +.PHONY: all generate lint check clean + +all: generate + +generate: $(OAPI_GEN) + +$(OAPI_GEN): $(OAPI_CFG) $(OAPI_SPEC) + $(GO) run github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen -config ./$(OAPI_CFG) ./$(OAPI_SPEC) + +clean: + rm -f $(OAPI_GEN) $(COVERAGE) + +check: generate + $(GO) test -v -cover -coverpkg=./... -coverprofile=$(COVERAGE) ./... + +lint: generate + $(GO) run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest run diff --git a/illmock/directory/directory_api.yaml b/directory/directory_api.yaml similarity index 100% rename from illmock/directory/directory_api.yaml rename to directory/directory_api.yaml diff --git a/illmock/directory/directory_config.yaml b/directory/directory_config.yaml similarity index 82% rename from illmock/directory/directory_config.yaml rename to directory/directory_config.yaml index 4a8c624d..50ffd5db 100644 --- a/illmock/directory/directory_config.yaml +++ b/directory/directory_config.yaml @@ -1,5 +1,5 @@ package: directory -output: directory/directory_gen.go +output: directory_gen.go output-options: nullable-type: true generate: diff --git a/illmock/directory/examples/directory.json b/directory/examples/directory.json similarity index 100% rename from illmock/directory/examples/directory.json rename to directory/examples/directory.json diff --git a/directory/go.mod b/directory/go.mod new file mode 100644 index 00000000..21c7b30c --- /dev/null +++ b/directory/go.mod @@ -0,0 +1,11 @@ +module github.com/indexdata/crosslink/directory + +go 1.25 + +require github.com/oapi-codegen/runtime v1.1.2 + +require ( + github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect + github.com/google/uuid v1.5.0 // indirect + github.com/stretchr/testify v1.11.1 // indirect +) diff --git a/directory/go.sum b/directory/go.sum new file mode 100644 index 00000000..d14496ff --- /dev/null +++ b/directory/go.sum @@ -0,0 +1,21 @@ +github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= +github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= +github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= +github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= +github.com/oapi-codegen/runtime v1.1.2 h1:P2+CubHq8fO4Q6fV1tqDBZHCwpVpvPg7oKiYzQgXIyI= +github.com/oapi-codegen/runtime v1.1.2/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/go.work b/go.work index cae69aa5..f653d161 100644 --- a/go.work +++ b/go.work @@ -9,4 +9,5 @@ use ( ./marcxml ./ncip ./sru + ./directory ) diff --git a/illmock/Makefile b/illmock/Makefile index 2ad12200..328281bd 100644 --- a/illmock/Makefile +++ b/illmock/Makefile @@ -10,12 +10,6 @@ COMMIT_ID=commit.txt COVERAGE=coverage.out PROGRAMS := $(shell cd cmd; ls) -# OpenAPI -OAPI_DIR=directory -OAPI_CFG = $(OAPI_DIR)/directory_config.yaml -OAPI_SPEC = $(OAPI_DIR)/directory_api.yaml -OAPI_GEN = $(OAPI_DIR)/directory_gen.go - .PHONY: all check clean coverage docker fmt fmt-check generate run doc view-coverage all: $(PROGRAMS) @@ -23,10 +17,7 @@ all: $(PROGRAMS) docker: generate cd .. && $(DOCKER) build -t indexdata/$(MODULE):latest -f ./$(MODULE)/Dockerfile . -generate: $(COMMIT_ID) $(OAPI_GEN) - -$(OAPI_GEN): $(OAPI_CFG) $(OAPI_SPEC) - $(GO) run github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen -config ./$(OAPI_CFG) ./$(OAPI_SPEC) +generate: $(COMMIT_ID) $(COMMIT_ID): $(GIT) rev-parse --short HEAD | tr -d '\n' > $(COMMIT_ID) @@ -63,5 +54,4 @@ clean: rm -f $(PROGRAMS) rm -f $(COVERAGE) rm -f $(COMMIT_ID) - rm -f $(OAPI_GEN) rm -f README.html diff --git a/illmock/app/app_test.go b/illmock/app/app_test.go index e0938ac9..03ae6e8c 100644 --- a/illmock/app/app_test.go +++ b/illmock/app/app_test.go @@ -15,8 +15,8 @@ import ( "time" "github.com/google/uuid" + "github.com/indexdata/crosslink/directory" "github.com/indexdata/crosslink/httpclient" - "github.com/indexdata/crosslink/illmock/directory" "github.com/indexdata/crosslink/illmock/flows" "github.com/indexdata/crosslink/illmock/testutil" "github.com/indexdata/crosslink/iso18626" diff --git a/illmock/dirmock/dirmock.go b/illmock/dirmock/dirmock.go index 42ad91f8..7698ad86 100644 --- a/illmock/dirmock/dirmock.go +++ b/illmock/dirmock/dirmock.go @@ -12,7 +12,7 @@ import ( "strings" "github.com/indexdata/cql-go/cql" - "github.com/indexdata/crosslink/illmock/directory" + "github.com/indexdata/crosslink/directory" ) var _ directory.StrictServerInterface = (*DirectoryMock)(nil) diff --git a/illmock/dirmock/dirmock_test.go b/illmock/dirmock/dirmock_test.go index 69b6ee75..d52bc735 100644 --- a/illmock/dirmock/dirmock_test.go +++ b/illmock/dirmock/dirmock_test.go @@ -7,7 +7,7 @@ import ( "testing" "github.com/indexdata/cql-go/cql" - "github.com/indexdata/crosslink/illmock/directory" + "github.com/indexdata/crosslink/directory" "github.com/stretchr/testify/assert" ) diff --git a/illmock/go.mod b/illmock/go.mod index 945b03a1..6ee25f54 100644 --- a/illmock/go.mod +++ b/illmock/go.mod @@ -8,6 +8,7 @@ require ( github.com/indexdata/crosslink/marcxml v0.0.0 github.com/indexdata/crosslink/sru v0.0.0 github.com/indexdata/crosslink/ncip v0.0.0 + github.com/indexdata/crosslink/directory v0.0.0 ) replace ( @@ -16,6 +17,7 @@ replace ( github.com/indexdata/crosslink/marcxml => ../marcxml github.com/indexdata/crosslink/sru => ../sru github.com/indexdata/crosslink/ncip => ../ncip + github.com/indexdata/crosslink/directory => ../directory ) require ( From a6a9abb3e2e590f227965bb663812f233579ac8d Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Fri, 16 Jan 2026 11:20:49 +0100 Subject: [PATCH 2/3] Adjust api-lint paths --- .github/workflows/api-lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/api-lint.yml b/.github/workflows/api-lint.yml index 8ad18068..70176a1f 100644 --- a/.github/workflows/api-lint.yml +++ b/.github/workflows/api-lint.yml @@ -30,11 +30,11 @@ on: workflow_dispatch: push: paths: - - 'illmock/directory/**' + - 'directory/**' - 'broker/oapi/**' pull_request: paths: - - 'illmock/directory/**' + - 'directory/**' - 'broker/oapi/**' jobs: From 2bdb09a4d2b29c1f8c3a9379fe51b9a5e42718a9 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Fri, 16 Jan 2026 11:28:58 +0100 Subject: [PATCH 3/3] Looks like duplicate information --- .github/workflows/api-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/api-lint.yml b/.github/workflows/api-lint.yml index 70176a1f..ba57b8d3 100644 --- a/.github/workflows/api-lint.yml +++ b/.github/workflows/api-lint.yml @@ -22,7 +22,7 @@ name: api-lint env: API_TYPES: 'OAS' - API_DIRECTORIES: 'illmock/directory broker/oapi' + API_DIRECTORIES: 'directory broker/oapi' API_EXCLUDES: 'directory_config.yaml cfg.yaml' API_WARNINGS: false