Skip to content

Commit cf83ae9

Browse files
committed
Merge upstream/main into fix/nodejs-referenced-import-search
Resolved conflict in nodejs/service_client.go by keeping the import-based search implementation which supersedes the previous file batching optimization from PR konveyor#970. The import-based search provides better semantic accuracy by: - Finding imports first (regex scan) - Using LSP definitions to locate symbols - Using LSP references to find all usages This is fundamentally different from and more accurate than the workspace/symbol approach that was being optimized in the upstream changes. Signed-off-by: Todd Sanders <[email protected]> Signed-off-by: tsanders <[email protected]>
2 parents c4c672f + a1377e5 commit cf83ae9

File tree

163 files changed

+17816
-3527
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+17816
-3527
lines changed

.github/workflows/benchmark.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,35 @@ jobs:
3737
go install golang.org/x/perf/cmd/benchstat@latest
3838
go mod tidy
3939
GOMAXPROCS=2 go test -run=^$ -bench=. -benchmem -count=6 $(go list ./... | grep -v 'event') |\
40-
sed -e 's/cpu:.*/cpu:/g' -e 's/goarch:.*/goarch:/g' > benchmark_results
40+
sed -e 's/cpu:.*/cpu:/g' -e 's/goarch:.*/goarch:/g' > benchmark_results.${{ matrix.os.name }}
4141
4242
- name: Display Benchstat results
4343
shell: bash
4444
run: |
45-
benchstat ./benchmarks/${{ matrix.os.name }} benchmark_results > benchmark.diff
45+
benchstat ./benchmarks/${{ matrix.os.name }} benchmark_results.${{ matrix.os.name }} > benchmark.diff
4646
./benchmarks/compare.sh benchmark.diff
47+
48+
- name: Upload benchmark results
49+
uses: actions/upload-artifact@v4
50+
if: always()
51+
with:
52+
name: benchmark-results-${{ matrix.os.name }}
53+
path: benchmark_results.${{ matrix.os.name }}
54+
55+
combine-results:
56+
runs-on: ubuntu-latest
57+
needs: benchmark
58+
if: always()
59+
60+
steps:
61+
- name: Download all benchmark results
62+
uses: actions/download-artifact@v4
63+
with:
64+
pattern: benchmark-results-*
65+
merge-multiple: true
66+
67+
- name: Upload combined benchmark results
68+
uses: actions/upload-artifact@v4
69+
with:
70+
name: benchmark-results-all
71+
path: benchmark_results.*

.github/workflows/image-build.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ jobs:
102102
shell: bash
103103
run: |
104104
TAG=${GITHUB_REF_NAME/main/latest}
105-
IMAGE_NAME=quay.io/konveyor/analyzer-lsp:${TAG}-windowsservercore-ltsc2022
105+
IMAGE_NAME=quay.io/konveyor/analyzer-lsp:${TAG}-windowsservercore-ltsc2025
106106
docker build -t ${IMAGE_NAME} -f ./Dockerfile.windows .
107107
docker push ${IMAGE_NAME}
108108
@@ -122,7 +122,7 @@ jobs:
122122
shell: bash
123123
run: |
124124
TAG=${GITHUB_REF_NAME/main/latest}
125-
IMAGE_NAME=quay.io/konveyor/dotnet-external-provider:${TAG}-windowsservercore-ltsc2022
125+
IMAGE_NAME=quay.io/konveyor/dotnet-external-provider:${TAG}-windowsservercore-ltsc2025
126126
docker build -t ${IMAGE_NAME} -f ./external-providers/dotnet-external-provider/Dockerfile.windows .
127127
docker push ${IMAGE_NAME}
128128
@@ -136,7 +136,7 @@ jobs:
136136
run: |
137137
podman manifest create temp
138138
podman manifest add temp --all quay.io/konveyor/analyzer-lsp:${tag}
139-
podman manifest add temp --all quay.io/konveyor/analyzer-lsp:${tag}-windowsservercore-ltsc2022
139+
podman manifest add temp --all quay.io/konveyor/analyzer-lsp:${tag}-windowsservercore-ltsc2025
140140
podman tag temp quay.io/konveyor/analyzer-lsp:${tag}
141141
- name: Push manifest to Quay
142142
uses: redhat-actions/push-to-registry@main
@@ -159,7 +159,7 @@ jobs:
159159
run: |
160160
podman manifest create temp
161161
podman manifest add temp --all quay.io/konveyor/dotnet-external-provider:${tag}
162-
podman manifest add temp --all quay.io/konveyor/dotnet-external-provider:${tag}-windowsservercore-ltsc2022
162+
podman manifest add temp --all quay.io/konveyor/dotnet-external-provider:${tag}-windowsservercore-ltsc2025
163163
podman tag temp quay.io/konveyor/dotnet-external-provider:${tag}
164164
- name: Push manifest to Quay
165165
uses: redhat-actions/push-to-registry@main

.github/workflows/pr-testing.yml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,46 @@ jobs:
3030
with:
3131
go-version: '1.23.9'
3232

33-
- name: Test
33+
- name: Setup Java
34+
uses: actions/setup-java@v4
35+
with:
36+
distribution: 'temurin'
37+
java-version: 17
38+
cache: maven
39+
40+
- name: Setup Gradle
41+
uses: gradle/actions/setup-gradle@v5
42+
43+
- name: Test Main
3444
run: go test -v ./...
3545

46+
- name: Test Java External Provider
47+
if: ${{ startsWith(matrix.goos, 'linux') }}
48+
run: |
49+
make extract-maven-index-files
50+
cd external-providers/java-external-provider/
51+
go test -v ./...
52+
53+
- name: Test Java External Provider
54+
if: ${{ !startsWith(matrix.goos, 'linux') }}
55+
run: |
56+
cd external-providers/java-external-provider/
57+
go test -timeout=20m -v -skip 'TestConstructArtifactFromSHA' ./...
58+
3659
- name: Build binaries
3760
env:
3861
GOOS: ${{ matrix.goos }}
3962
GOARCH: ${{ matrix.goarch }}
4063
run: make build
41-
64+
4265
- name: Archive binaries (linux & mac)
4366
if: ${{ !startsWith(matrix.goos, 'windows') }}
4467
env:
4568
OS: ${{ matrix.goos }}
4669
OS_ARCH: ${{ matrix.goarch }}
4770
run: |
4871
zip -j analyzer-lsp-binaries.${{ env.OS }}-${{ env.OS_ARCH }}.zip build/*
49-
72+
5073
- name: Archive binaries (windows)
5174
if: ${{ startsWith(matrix.goos, 'windows') }}
5275
env:
@@ -64,4 +87,3 @@ jobs:
6487
name: analyzer-lsp-binaries.${{ env.OS }}-${{ env.OS_ARCH }}.zip
6588
path: analyzer-lsp-binaries.${{ env.OS }}-${{ env.OS_ARCH }}.zip
6689
retention-days: 30
67-

.gitignore

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,11 @@ external-providers/generic-external-provider/debug/
2626
external-providers/dotnet-external-provider/bin/*
2727
external-providers/dotnet-external-provider/examples/HelloWorld/HelloWorld/bin/*
2828
external-providers/dotnet-external-provider/examples/HelloWorld/HelloWorld/obj/*
29-
maven-index.txt
30-
maven-index.idx
29+
external-providers/java-external-provider/pkg/java_external_provider/dependency/testdata/maven-index.idx
30+
external-providers/java-external-provider/pkg/java_external_provider/dependency/testdata/maven-index.txt
31+
.gradle/
32+
33+
# Go test coverage files
34+
coverage.out
35+
*.coverprofile
36+
...

Dockerfile.windows

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.22-windowsservercore-ltsc2022 as builder
1+
FROM golang:1.25-windowsservercore-ltsc2025 as builder
22
WORKDIR /analyzer-lsp
33

44
COPY cmd /analyzer-lsp/cmd
@@ -17,7 +17,7 @@ COPY go.sum /analyzer-lsp/go.sum
1717

1818
RUN go build -o konveyor-analyzer.exe ./cmd/analyzer/main.go
1919

20-
FROM mcr.microsoft.com/windows/servercore:ltsc2022
20+
FROM mcr.microsoft.com/windows/servercore:ltsc2025
2121

2222
# Set the working directory inside the container
2323
WORKDIR C:/app

Makefile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ run-external-providers-pod:
104104
podman build -f demo-local.Dockerfile -t localhost/testing:latest
105105

106106
run-demo-image:
107-
podman run --entrypoint /usr/local/bin/konveyor-analyzer --pod=analyzer -v test-data:/analyzer-lsp/examples$(MOUNT_OPT) -v $(PWD)/demo-dep-output.yaml:/analyzer-lsp/demo-dep-output.yaml:Z -v $(PWD)/demo-output.yaml:/analyzer-lsp/output.yaml:Z localhost/testing:latest --rules=/analyzer-lsp/rule-example.yaml --provider-settings=/analyzer-lsp/provider_settings.json --output-file=/analyzer-lsp/output.yaml --dep-output-file=/analyzer-lsp/demo-dep-output.yaml
107+
podman run --entrypoint /usr/local/bin/konveyor-analyzer --pod=analyzer -v test-data:/analyzer-lsp/examples$(MOUNT_OPT) -v $(PWD)/demo-dep-output.yaml:/analyzer-lsp/demo-dep-output.yaml:Z -v $(PWD)/demo-output.yaml:/analyzer-lsp/output.yaml:Z localhost/testing:latest --output-file=/analyzer-lsp/output.yaml --dep-output-file=/analyzer-lsp/demo-dep-output.yaml --dep-label-selector='!konveyor.io/dep-source=open-source'
108108

109109
stop-external-providers-pod: stop-external-providers
110110
podman pod kill analyzer
@@ -113,10 +113,9 @@ stop-external-providers-pod: stop-external-providers
113113

114114
extract-maven-index-files:
115115
podman run --name temp-jdtls -d quay.io/konveyor/jdtls-server-base:latest
116-
podman cp temp-jdtls:/usr/local/etc/maven-index.txt $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/testdata/
117-
podman cp temp-jdtls:/usr/local/etc/maven-index.idx $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/testdata/
116+
podman cp temp-jdtls:/usr/local/etc/maven-index.txt $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/dependency/testdata/
118117
podman stop temp-jdtls || true
119118
podman rm temp-jdtls || true
120119

121120
run-index-benchmark:
122-
cd $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/ && go test -bench=BenchmarkConstructArtifactFromSHA -benchmem -benchtime=5s
121+
cd $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/dependency/ && go test -bench=. -benchmem -benchtime=5s

0 commit comments

Comments
 (0)