testcontainers-java icon indicating copy to clipboard operation
testcontainers-java copied to clipboard

[Bug]: maven source artifact does not contain sources from shaded artifacts

Open asbachb opened this issue 3 years ago • 4 comments

Module

Core

Testcontainers version

1.17.3

Using the latest Testcontainers version?

Yes

Host OS

not related

Host Arch

not related

Docker version

not related

What happened?

The testcontainer maven source artifacts (e.g. https://repo1.maven.org/maven2/org/testcontainers/testcontainers/1.17.3/testcontainers-1.17.3-sources.jar) does not contain sources for shaded artifacts.

So any classes which are put into: org.testcontainers.shaded are missing.

Relevant log output

content of `testcontainers-1.17.3-sources.jar`:

./org
./org/testcontainers
./org/testcontainers/utility
./org/testcontainers/utility/RyukResourceReaper.java
./org/testcontainers/utility/LicenseAcceptance.java
./org/testcontainers/utility/Base58.java
./org/testcontainers/utility/TestcontainersConfiguration.java
./org/testcontainers/utility/JVMHookResourceReaper.java
./org/testcontainers/utility/DockerImageName.java
./org/testcontainers/utility/DefaultImageNameSubstitutor.java
./org/testcontainers/utility/LogUtils.java
./org/testcontainers/utility/DockerLoggerFactory.java
./org/testcontainers/utility/PathUtils.java
./org/testcontainers/utility/MountableFile.java
./org/testcontainers/utility/ClasspathScanner.java
./org/testcontainers/utility/CommandLine.java
./org/testcontainers/utility/ResourceReaper.java
./org/testcontainers/utility/DockerMachineClient.java
./org/testcontainers/utility/RegistryAuthLocator.java
./org/testcontainers/utility/Versioning.java
./org/testcontainers/utility/PrefixingImageNameSubstitutor.java
./org/testcontainers/utility/AuditLogger.java
./org/testcontainers/utility/ImageNameSubstitutor.java
./org/testcontainers/utility/DynamicPollInterval.java
./org/testcontainers/utility/ConfigurationFileImageNameSubstitutor.java
./org/testcontainers/utility/AuthConfigUtil.java
./org/testcontainers/utility/ComparableVersion.java
./org/testcontainers/utility/DockerStatus.java
./org/testcontainers/utility/ThrowingFunction.java
./org/testcontainers/utility/LazyFuture.java
./org/testcontainers/utility/RyukContainer.java
./org/testcontainers/utility/TestEnvironment.java
./org/testcontainers/images
./org/testcontainers/images/ImagePullPolicy.java
./org/testcontainers/images/DefaultPullPolicy.java
./org/testcontainers/images/ImageData.java
./org/testcontainers/images/LocalImagesCache.java
./org/testcontainers/images/AlwaysPullPolicy.java
./org/testcontainers/images/LoggedPullImageResultCallback.java
./org/testcontainers/images/TimeLimitedLoggedPullImageResultCallback.java
./org/testcontainers/images/AbstractImagePullPolicy.java
./org/testcontainers/images/RemoteDockerImage.java
./org/testcontainers/images/builder
./org/testcontainers/images/builder/Transferable.java
./org/testcontainers/images/builder/ImageFromDockerfile.java
./org/testcontainers/images/builder/dockerfile
./org/testcontainers/images/builder/dockerfile/statement
./org/testcontainers/images/builder/dockerfile/statement/KeyValuesStatement.java
./org/testcontainers/images/builder/dockerfile/statement/RawStatement.java
./org/testcontainers/images/builder/dockerfile/statement/MultiArgsStatement.java
./org/testcontainers/images/builder/dockerfile/statement/Statement.java
./org/testcontainers/images/builder/dockerfile/statement/SingleArgumentStatement.java
./org/testcontainers/images/builder/dockerfile/DockerfileBuilder.java
./org/testcontainers/images/builder/dockerfile/traits
./org/testcontainers/images/builder/dockerfile/traits/CopyStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/CmdStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/DockerfileBuilderTrait.java
./org/testcontainers/images/builder/dockerfile/traits/ExposeStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/LabelStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/RunStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/WorkdirStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/VolumeStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/UserStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/AddStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/FromStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/EnvStatementTrait.java
./org/testcontainers/images/builder/dockerfile/traits/EntryPointStatementTrait.java
./org/testcontainers/images/builder/traits
./org/testcontainers/images/builder/traits/ClasspathTrait.java
./org/testcontainers/images/builder/traits/DockerfileTrait.java
./org/testcontainers/images/builder/traits/BuildContextBuilderTrait.java
./org/testcontainers/images/builder/traits/StringsTrait.java
./org/testcontainers/images/builder/traits/FilesTrait.java
./org/testcontainers/images/ParsedDockerfile.java
./org/testcontainers/images/PullPolicy.java
./org/testcontainers/images/AgeBasedPullPolicy.java
./org/testcontainers/dockerclient
./org/testcontainers/dockerclient/NpipeSocketClientProviderStrategy.java
./org/testcontainers/dockerclient/RootlessDockerClientProviderStrategy.java
./org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategy.java
./org/testcontainers/dockerclient/HeadersAddingDockerHttpClient.java
./org/testcontainers/dockerclient/DockerClientConfigUtils.java
./org/testcontainers/dockerclient/DockerMachineClientProviderStrategy.java
./org/testcontainers/dockerclient/AuditLoggingDockerClient.java
./org/testcontainers/dockerclient/InvalidConfigurationException.java
./org/testcontainers/dockerclient/TransportConfig.java
./org/testcontainers/dockerclient/LogToStringContainerCallback.java
./org/testcontainers/dockerclient/UnixSocketClientProviderStrategy.java
./org/testcontainers/dockerclient/AuthDelegatingDockerClientConfig.java
./org/testcontainers/dockerclient/DockerClientProviderStrategy.java
./org/testcontainers/containers
./org/testcontainers/containers/ContainerState.java
./org/testcontainers/containers/DockerComposeContainer.java
./org/testcontainers/containers/ParsedDockerComposeFile.java
./org/testcontainers/containers/InternetProtocol.java
./org/testcontainers/containers/SocatContainer.java
./org/testcontainers/containers/PortForwardingContainer.java
./org/testcontainers/containers/DockerComposeFiles.java
./org/testcontainers/containers/FutureContainer.java
./org/testcontainers/containers/Network.java
./org/testcontainers/containers/output
./org/testcontainers/containers/output/FrameConsumerResultCallback.java
./org/testcontainers/containers/output/WaitingConsumer.java
./org/testcontainers/containers/output/OutputFrame.java
./org/testcontainers/containers/output/BaseConsumer.java
./org/testcontainers/containers/output/ToStringConsumer.java
./org/testcontainers/containers/output/Slf4jLogConsumer.java
./org/testcontainers/containers/ContainerFetchException.java
./org/testcontainers/containers/SelinuxContext.java
./org/testcontainers/containers/ComposeServiceWaitStrategyTarget.java
./org/testcontainers/containers/ContainerLaunchException.java
./org/testcontainers/containers/Container.java
./org/testcontainers/containers/BindMode.java
./org/testcontainers/containers/GenericContainer.java
./org/testcontainers/containers/ExecInContainerPattern.java
./org/testcontainers/containers/startupcheck
./org/testcontainers/containers/startupcheck/IndefiniteWaitOneShotStartupCheckStrategy.java
./org/testcontainers/containers/startupcheck/StartupCheckStrategy.java
./org/testcontainers/containers/startupcheck/MinimumDurationRunningStartupCheckStrategy.java
./org/testcontainers/containers/startupcheck/IsRunningStartupCheckStrategy.java
./org/testcontainers/containers/startupcheck/OneShotStartupCheckStrategy.java
./org/testcontainers/containers/FailureDetectingExternalResource.java
./org/testcontainers/containers/FixedHostPortGenericContainer.java
./org/testcontainers/containers/VncRecordingContainer.java
./org/testcontainers/containers/traits
./org/testcontainers/containers/traits/LinkableContainer.java
./org/testcontainers/containers/wait
./org/testcontainers/containers/wait/internal
./org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheck.java
./org/testcontainers/containers/wait/internal/ExternalPortListeningCheck.java
./org/testcontainers/containers/wait/strategy
./org/testcontainers/containers/wait/strategy/WaitAllStrategy.java
./org/testcontainers/containers/wait/strategy/WaitStrategy.java
./org/testcontainers/containers/wait/strategy/LogMessageWaitStrategy.java
./org/testcontainers/containers/wait/strategy/DockerHealthcheckWaitStrategy.java
./org/testcontainers/containers/wait/strategy/HttpWaitStrategy.java
./org/testcontainers/containers/wait/strategy/AbstractWaitStrategy.java
./org/testcontainers/containers/wait/strategy/Wait.java
./org/testcontainers/containers/wait/strategy/HostPortWaitStrategy.java
./org/testcontainers/containers/wait/strategy/WaitStrategyTarget.java
./org/testcontainers/DockerClientFactory.java
./org/testcontainers/DelegatingDockerClient.java
./org/testcontainers/UnstableAPI.java
./org/testcontainers/lifecycle
./org/testcontainers/lifecycle/Startables.java
./org/testcontainers/lifecycle/TestDescription.java
./org/testcontainers/lifecycle/TestLifecycleAware.java
./org/testcontainers/lifecycle/Startable.java
./org/testcontainers/Testcontainers.java


### Additional Information

_No response_

asbachb avatar Aug 11 '22 13:08 asbachb

TBH, I am not sure if there is something we can do about it.

kiview avatar Aug 11 '22 14:08 kiview

Seems to be unsupported by gradle shade plugin: https://github.com/johnrengelman/shadow/issues/41

asbachb avatar Aug 11 '22 14:08 asbachb

Hi @asbachb, shaded classes are "internal" and not supposed to be used by anyone. We also have a check that ensures that we never leak them to the public API. So it is "by design" in some sense.

bsideup avatar Aug 11 '22 14:08 bsideup

@bsideup sources are needed for debugging not for development. So from my understanding it does not matter if it's "internal" or not.

What's the point of publishing the sources if I cannot debug the "internals"?

asbachb avatar Aug 11 '22 14:08 asbachb