echocat / gradle-golang-plugin

Gradle plugin to build, test and do other stuff of Golang projects.
https://github.com/echocat/gradle-golang-plugin
Mozilla Public License 2.0
44 stars 8 forks source link

`Could not download dependency` when dependency shouldn't be downloaded #14

Open checketts opened 7 years ago

checketts commented 7 years ago

Attempting to build or run tests tries to download code for the project it is building.

In my build.gradle my group is set like so:

group 'git.gofun.com/Development/prometheus_sidebar'

git.gofun.com is my internal git repo. This project will be checked in there eventually. But not yet. The build should be able to build based on the code it has available locally.

 ✘  ~/gocode/src/git.gofun.com/Development/prometheus_sidebar   master ●✚  gw clean build -i -s
Run Gradle /Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/gradlew ...
Initialized native services in: /Users/clintchecketts/.gradle/native
Connected to daemon DaemonInfo{pid=62788, address=[1f29071a-db12-408b-9db1-37533b344d50 port:64697, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1480983533193, context=DefaultDaemonContext[uid=032aca57-fba2-412d-a8bb-82cf5cd17e83,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home,daemonRegistryDir=/Users/clintchecketts/.gradle/daemon,pid=62788,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]}. Dispatching request Build{id=b30e8578-6519-403e-a69f-c3c249dc7bb6.1, currentDir=/Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar}.
Received result org.gradle.launcher.daemon.protocol.BuildStarted@6aa61224 from daemon DaemonInfo{pid=62788, address=[1f29071a-db12-408b-9db1-37533b344d50 port:64697, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1480983533193, context=DefaultDaemonContext[uid=032aca57-fba2-412d-a8bb-82cf5cd17e83,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home,daemonRegistryDir=/Users/clintchecketts/.gradle/daemon,pid=62788,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be starting).
The client will now receive all logging from the daemon (pid: 62788). The daemon log file: /Users/clintchecketts/.gradle/daemon/3.1/daemon-62788.out.log
Starting 19th build in daemon [uptime: 44 mins 29.01 secs, performance: 100%, no major garbage collections]
Executing build with daemon context: DefaultDaemonContext[uid=032aca57-fba2-412d-a8bb-82cf5cd17e83,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home,daemonRegistryDir=/Users/clintchecketts/.gradle/daemon,pid=62788,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]
Starting Build
Settings evaluated using settings file '/master/settings.gradle'.
Projects loaded. Root project using build file '/Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/build.gradle'.
Included projects: [root project 'prometheus_sidebar']
Evaluating root project 'prometheus_sidebar' using build file '/Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/build.gradle'.
All projects evaluated.
Selected primary task 'clean' from project :
Selected primary task 'build' from project :
Tasks to be executed: [task ':baseValidate', task ':validate', task ':baseClean', task ':clean', task ':prepareToolchain', task ':baseGetTools', task ':getTools', task ':basePrepareSources', task ':prepareSources', task ':baseTest', task ':test', task ':baseBuild', task ':build']
In-memory cache of /Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/.gradle/3.1/taskArtifacts/fileHashes.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of /Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/.gradle/3.1/taskArtifacts/fileSnapshots.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of /Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/.gradle/3.1/taskArtifacts/taskArtifacts.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
:baseValidate (Thread[Daemon worker Thread 12,5,main]) started.
:baseValidate
Executing task ':baseValidate' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
Package:          git.gofun.com/Development/prometheus_sidebar
Platforms:        linux-amd64, darwin-amd64
Host:             darwin-amd64
Go version:       go1.7.4
GOROOT:           /Users/clintchecketts/.go/sdk/go1.7.4
GOROOT_BOOTSTRAP: /Users/clintchecketts/.go/sdk/bootstrap
GOPATH:           /Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/build/gopath
:baseValidate (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.0 secs.
:validate (Thread[Daemon worker Thread 12,5,main]) started.
:validate
Executing task ':validate' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:validate (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.0 secs.
:baseClean (Thread[Daemon worker Thread 12,5,main]) started.
:baseClean
Executing task ':baseClean' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:baseClean (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.003 secs.
:clean (Thread[Daemon worker Thread 12,5,main]) started.
:clean
Executing task ':clean' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:clean (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.001 secs.
:prepareToolchain (Thread[Daemon worker Thread 12,5,main]) started.
:prepareToolchain
Executing task ':prepareToolchain' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:prepareToolchain UP-TO-DATE
:prepareToolchain (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.449 secs.
:baseGetTools (Thread[Daemon worker Thread 12,5,main]) started.
:baseGetTools
Executing task ':baseGetTools' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:baseGetTools UP-TO-DATE
:baseGetTools (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.001 secs.
:getTools (Thread[Daemon worker Thread 12,5,main]) started.
:getTools
Executing task ':getTools' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:getTools (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.0 secs.
:basePrepareSources (Thread[Daemon worker Thread 12,5,main]) started.
:basePrepareSources
Executing task ':basePrepareSources' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
Prepare GOPATH (/Users/clintchecketts/gocode/src/git.gofun.com/Development/prometheus_sidebar/build/gopath)...
:basePrepareSources (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.024 secs.
:prepareSources (Thread[Daemon worker Thread 12,5,main]) started.
:prepareSources
Executing task ':prepareSources' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:prepareSources (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.001 secs.
:baseTest (Thread[Daemon worker Thread 12,5,main]) started.
:baseTest
Executing task ':baseTest' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
:baseTest FAILED
:baseTest (Thread[Daemon worker Thread 12,5,main]) completed. Took 0.005 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':baseTest'.
> Could not download dependency: git.gofun.com/Development/prometheus_sidebar

* Try:
Run with --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':baseTest'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:233)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:74)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:55)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:186)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:183)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:33)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:112)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:92)
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:79)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:51)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:59)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.HintGCAfterBuild.execute(HintGCAfterBuild.java:44)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:293)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.RuntimeException: Could not download dependency: git.gofun.com/Development/prometheus_sidebar
        at org.echocat.gradle.plugins.golang.DependencyHandler.get(DependencyHandler.java:95)
        at org.echocat.gradle.plugins.golang.tasks.TestTask.run(TestTask.java:73)
        at org.echocat.gradle.plugins.golang.tasks.GolangTaskSupport.runBare(GolangTaskSupport.java:99)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:136)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:129)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:118)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:623)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:606)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 68 more

BUILD FAILED

Total time: 1.442 secs
Received result Failure[value=org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':baseTest'.] from daemon DaemonInfo{pid=62788, address=[1f29071a-db12-408b-9db1-37533b344d50 port:64697, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1480983533193, context=DefaultDaemonContext[uid=032aca57-fba2-412d-a8bb-82cf5cd17e83,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home,daemonRegistryDir=/Users/clintchecketts/.gradle/daemon,pid=62788,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be done).
blaubaer commented 7 years ago

Hi @checketts!

Thank for your report. You are right. Currently there are no other repositories as the default ones supported. To implement this as fast as possible could you provide me access to a comparable repository like yours? So I can be sure that it worked like expected.

Thanks!

arlo-skyport commented 7 years ago

I actually just ran into this as well. I was trying out a simple "from the ground up" to learn more golang and gradle. I started out with an empty directory that contained the gradle wrapper and a simple "hello world" golang file. When running ./gradlew build I hit the same error mentioned above.

For my own curiosity, is it not supported to use this plugin to build a project that is not checked into a repo?

maxaramus commented 7 years ago

I'm also having this issue. I've got a layout like so:

rootProject directory
-Go project directory
--some packages
---package1
----1.go
----2.go
---package2
----1.go
----2.go
--build.gradle
-build.gradle

When I run the root build.gradle with "gradlew build", it gets into the Go project and fails when trying to download dependencies for the Go project. I haven't specified any dependencies in build.gradle. Those packages have files that reference each other by package name, but I don't understand why it's trying to download those dependencies and not just running go test and go build

simonfoilen commented 7 years ago

I am getting the same issue. I see you asked for a repository like that. I can give you one if you still need it. Let me know where I can send you the details.

Thanks

blaubaer commented 7 years ago

@provirus I'am very happy to get access to such repository. But I need only read access with already a sample go project that can be used as a library in it.

blaubaer commented 7 years ago

I implemented a base version of this that currently does only support explicit configured 3rd party VCS Repository Providers and released this under 0.1.16.

Here an excerpt from the README.md

        // Method to register other VCS Repository provider that are not already supported by this plugin.
        // vcsType:           One of 'git', 'bzr', 'hg' or 'svn'
        // prefix:            Dependency prefix that identifies this provider.
        //                    IMPORTANT: Add a slash as suffix.
        // name:              Name of this provider for display in logs etc.
        // dependencyPattern: Regular expression (Java compatible) that should match the whole dependency and
        //                    provides a submatch named <root> which matches the base of the dependency
        //                    and another submatch named <subPath> that matches potential sub paths.
        vcsRepositoryProvider('<vcsType>', '<prefix>', '<name>', '<dependencyPattern>')
        // Example:
        // vcsRepositoryProvider('git', 'github.com/', 'GitHub', '^(?<root>github\\.com/[A-Za-z0-9_.\\-]+/[A-Za-z0-9_.\\-]+)(?<subPath>/[A-Za-z0-9_.\\-]+)*\$')
blaubaer commented 7 years ago

I have to discover if a full automatic discovery like in Go build in mechanism is a good idea because in this context it could be very resource expensive (without caching etc.).

simonfoilen commented 7 years ago

Hi. I see you replied 2 days ago, but GitHub sent me a notification only 1 hour ago.

I created the sample project with plugin 0.1.15 .

git clone https://gitlab.foilen.com/provirus/simple-project.git
cd simple-project/
./gradlew build
    :baseValidate
    :validate
    :prepareToolchain
    :baseGetTools
    :getTools
    :basePrepareSources
    :prepareSources
    :baseTest FAILED

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':baseTest'.
    > Could not download dependency: gitlab.foilen.com/provirus/simple-project

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 3.564 secs
simonfoilen commented 7 years ago

If I change for 0.1.16, I am getting the new expected error:

> Don't know how to handle dependency 'gitlab.foilen.com/provirus/simple-project' because there VCS Repository Provider that could handle it.
                Try register it under golang.dependencies with vcsRepositoryProvider(...).

Since that is not a dependency (it is the current project and the current "group"), I don't see why another config would be needed. There is nothing to download at all.

Thanks

blaubaer commented 7 years ago

@provirus: This is not a dependency directly referenced by your code but minimum referenced by a dependency you referenced. 😉 Because of this the dependency manager is still required to download it. And like a mentioned above currently every dependency in the whole tree should have a VCS Repository provider and since every of these providers have different ways how their paths are structured the plugin is required to explicitly know it or guess it (like also go get will do it). Currently there is no guessing is implemented and does also have not a good impact on the performance (but I'am on it) you need do explicitly define it at first.

In your case please try:

vcsRepositoryProvider('git', 'gitlab.foilen.com/', 'GitLab Community Edition', '^(?<root>gitlab\\.foilen\\.com/[A-Za-z0-9_.\\-]+/[A-Za-z0-9_.\\-]+)(?<subPath>/[A-Za-z0-9_.\\-]+)*\$')
simonfoilen commented 7 years ago

I am pretty new with "go" so I cannot really get your joke

This is not a dependency directly referenced by your code but minimum referenced by a dependency you referenced

I didn't need to use go get yet (since I don't need any dependencies). Looking at what go get does: "download and install packages and dependencies", I really have no use of that yet.

In the case of this project:

The way I see it:

But the more I think and read what you wrote, I think the issue here is that given the "group" (which is a full url path), you think that the folder structure could be different than the URL in the "group" depending on the VCS provider. Is that right? E.g for group "gitlab.foilen.com/provirus/simple-project", the temp folder structure could be: "gitlab.foilen.com/provirus/simple-project" or "gitlab.foilen.com/provirus_simple-project" ?