akka / akka/akka-http

Split package `akka.http.ccompat`

Open
#2,902 3 comments 0 reactions 0 assignees View on GitHub
1 - triaged binary-incompatible discuss help wanted nice-to-have (low-prio)
Dominant language
Scala
Stars
1.4k
Forks
584
Avg merge
14h 33m
Merged PRs (30d)
24

Description

_This is a follow-up to https://github.com/akka/akka/issues/28304#issuecomment-576360895._

The two artifacts `akka.parsing` and `akka.http.core`. both in version `10.1.11`, contain (disjunct) classes in the Java package `akka.http.ccompat`. A split package is considered bad practice, even in plain Java world. Split packages are even not possible when working with sealed packages/jars.

As we currently review the OSGi support for akka and akka-http in a separate project (as a consequence of https://github.com/akka/akka/issues/28304), we wanted to ask the purpose of the found split package. If this is "by accident", I'd like to propose one of the following fixes:

1. Move all classes to the same package into the same artifact
2. Rename one of the packages to avoid the split-package issue, preferably choosing a package name which shares the artifact name as it's prefix
3. Keep it as-is. I think this way should be avoided, but could be necessary e.g. when the packages are part of a public API. But even then, maybe 1. will also work.

Related to https://github.com/woq-blended/akka-osgi/issues/1

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the akka.parsing and akka.http.core artifacts and locating the classes in the akka.http.ccompat package. Read the linked OSGi discussion to determine whether the split is accidental or part of the public API; done means implementing an agreed package or artifact arrangement that removes the split, or documenting why it must remain.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.