playframework / playframework/play-ws

play-ws and play-ws-standalone conflict on play.api.libs.ws{package$, package}

Open
#185 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status:backlog
Dominant language
Scala
Stars
224
Forks
92
Avg merge
1d 19h
Merged PRs (30d)
28

Description

Are you looking for help?

A project depending on "com.typesafe.play" %% "play-ws" % "2.6.3" brings in transitively

[info]   +-com.typesafe.play:play-ws_2.12:2.6.3 [S]
[info]   | +-com.typesafe.play:play-ws-standalone-json_2.12:1.0.4 [S]
...
[info]   | | +-com.typesafe.play:play-ws-standalone_2.12:1.0.4 [S]

which causes sbt-assembly to fail because play-ws and play-ws-standalone both define the aformentioned classes, with different contents in at least one case for the versions mentioned.

Play WS Version (2.5.x / etc)

2.6.3 / 1.0.4 (standalone)

Expected Behavior

Expected to be able to package my code using play-ws using sbt-assembly.

Actual Behavior
[error] 2 errors were encountered during merge
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/root/.ivy2/cache/com.typesafe.play/play-ws_2.12/jars/play-ws_2.12-2.6.3.jar:play/api/libs/ws/package$.class
/root/.ivy2/cache/com.typesafe.play/play-ws-standalone_2.12/jars/play-ws-standalone_2.12-1.0.4.jar:play/api/libs/ws/package$.class
deduplicate: different file contents found in the following:
/root/.ivy2/cache/com.typesafe.play/play-ws_2.12/jars/play-ws_2.12-2.6.3.jar:play/api/libs/ws/package.class
/root/.ivy2/cache/com.typesafe.play/play-ws-standalone_2.12/jars/play-ws-standalone_2.12-1.0.4.jar:play/api/libs/ws/package.class

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the dependency graph for play-ws 2.6.3 and play-ws-standalone 1.0.4, then run sbt-assembly against the reported duplicate play/api/libs/ws/package classes. Inspect how these artifacts are published and packaged; done means the dependency combination can be assembled without conflicting class contents.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.