Skip to content

utilizing apm agent in a project that utilizes godog directly causes import errors #922

@adam-stokes

Description

@adam-stokes

Describe the bug
We are utilizing godog and the go apm agent code directly in our project https://github.com/elastic/e2e-testing. When attempting to get our modules in sync we get an import error:

[adam:~/Projects/e2e-testing] master(+23/-1058)* 1 ± go mod tidy
go: finding module for package github.com/cucumber/godog/gherkin
github.com/elasticsearch/e2e-testing/cli/services imports
        go.elastic.co/apm tested by
        go.elastic.co/apm.test imports
        go.elastic.co/apm/internal/apmgodog imports
        github.com/cucumber/godog/gherkin: module github.com/cucumber/godog@latest found (v0.11.0), but does not contain package github.com/cucumber/godog/gherkin

I believe it is due to the fact that the dependencies defined here are pinned to v0.8.1 where the gherkin package was part of the godog module but has since been extracted out (see https://github.com/cucumber/godog/blob/master/release-notes/v0.9.0.md)

Pinning our module dependency to 0.8.1 does get around this issue but we have some requirements related to junit that are avaialable in a newer version of godog.

To Reproduce
Steps to reproduce the behavior:

  1. git clone https://github.com/elastic/e2e-testing
  2. git checkout gh-fix-557
  3. go mod tidy
[adam:~/Projects/e2e-testing] master(+23/-1058)* 1 ± go mod tidy
go: finding module for package github.com/cucumber/godog/gherkin
github.com/elasticsearch/e2e-testing/cli/services imports
        go.elastic.co/apm tested by
        go.elastic.co/apm.test imports
        go.elastic.co/apm/internal/apmgodog imports
        github.com/cucumber/godog/gherkin: module github.com/cucumber/godog@latest found (v0.11.0), but does not contain package github.com/cucumber/godog/gherkin

I did attempt to use the exclude parameter in go.mod but didn't have any success. Was curious if anything could be done or if you know of any potential workarounds to allowing us to use this module and godog directly?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions