exasol / project-keeper

This maven plugin checks and unifies a project's structure according to the Exasol integration team's repository standards.
MIT License
3 stars 1 forks source link

Fix failure for removed GitHub release in golang dependencies of former version #583

Open ckunki opened 1 month ago

ckunki commented 1 month ago

When running pk fix in a go project, then PK generates dependency changes.

PK retrieves the (go) dependencies of the previous version as denoted by the latest git tag and compares these to the current dependencies.

PK fails if the previous version was using a go dependency referring to a GitHub release, that has been removed.

See the following sample stack trace for project exasol-rest-api. In this case, the dependency github.com/veraison/go-cose previously referred to version v1.2.0 that is no longer available on GitHub.

❯ pk fix 
Running .github/workflows/project-keeper.sh fix
Running Project Keeper 4.3.3 with mode fix from /home/chku/.m2/repository/com/exasol/project-keeper-cli/4.3.3/project-keeper-cli-4.3.3.jar
2024-08-16 09:05:03.012 [FINEST ] Executing command 'go list -f {{if not .Indirect}}{{.}}{{end}} -m all' in working dir '/home/chku/git/rest-api'... 
Exception in thread "main" java.lang.IllegalStateException: E-PK-CORE-157: 
Failed to list direct dependencies. Run 'go mod tidy' and try again.
    at com.exasol.projectkeeper.sources.analyze.golang.GolangServices.getModuleInfo(GolangServices.java:147)
    at com.exasol.projectkeeper.sources.analyze.golang.GolangSourceAnalyzer.analyzeSource(GolangSourceAnalyzer.java:42)
    at com.exasol.projectkeeper.sources.analyze.golang.GolangSourceAnalyzer.lambda$analyze$0(GolangSourceAnalyzer.java:36)
    at com.exasol.projectkeeper.sources.analyze.golang.GolangSourceAnalyzer.analyze(GolangSourceAnalyzer.java:36)
    at com.exasol.projectkeeper.sources.SourceAnalyzer.analyzeSources(SourceAnalyzer.java:68)
    at com.exasol.projectkeeper.sources.SourceAnalyzer.analyze(SourceAnalyzer.java:59)
    at com.exasol.projectkeeper.ProjectKeeper.phase2AnalyzeSources(ProjectKeeper.java:137)
    at com.exasol.projectkeeper.ProjectKeeper.runValidationPhases(ProjectKeeper.java:276)
    at com.exasol.projectkeeper.ProjectKeeper.fix(ProjectKeeper.java:260)
    at com.exasol.projectkeeper.cli.ProjectKeeperLauncher.runProjectKeeper(ProjectKeeperLauncher.java:73)
    at com.exasol.projectkeeper.cli.ProjectKeeperLauncher.start(ProjectKeeperLauncher.java:67)
    at com.exasol.projectkeeper.cli.ProjectKeeperLauncher.main(ProjectKeeperLauncher.java:61)
Caused by: java.lang.IllegalStateException: 
E-PK-CORE-126: Failed to run command 'go list -f {{if not .Indirect}}{{.}}{{end}} -m all' 
in '/home/chku/git/rest-api', exit code was 1 after PT0.43473546S. Output:
''
Error output:
'go: github.com/veraison/go-cose@v1.2.0: invalid version: unknown revision v1.2.0'
    at com.exasol.projectkeeper.sources.analyze.generic.SimpleProcess.waitUntilFinished(SimpleProcess.java:102)
    at com.exasol.projectkeeper.sources.analyze.golang.GolangServices.getModuleInfo(GolangServices.java:143)
    ... 18 more