Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

DockerToActivationFileLogStore.scala contains code derived from Akka Sink.combine without attribution

Abierto Apto para principiantes
#265 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
scala

Línea de trabajo

Comienza con build/openwhisk/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala y el LICENSE de nivel superior. Compara OwSink.combine con Akka 2.6.12 Sink.combine y revisa el contexto relacionado en #260. Se considera terminado cuando el código derivado está correctamente atribuido con el texto de aviso aplicable, o cuando la implementación y el comentario copiados se han reemplazado de forma independiente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

build/openwhisk/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala (vendored from Apache OpenWhisk, shipped in the 0.9.0-incubating-RC7 source release) contains code that its own comment says was copied from Akka:

object OwSink {

  /**
   * Combines two sinks into one sink using the given strategy. The materialized value is a Tuple2 of the materialized
   * values of either sink. Code basically copied from {@code Sink.combine}
   */
  def combine[T, U, M1, M2](first: Sink[U, M1], second: Sink[U, M2])(
    strategy: Int => Graph[UniformFanOutShape[T, U], NotUsed]): Sink[T, (M1, M2)] = {
    Sink.fromGraph(GraphDSL.create(first, second)((_, _)) { implicit b => (s1, s2) =>
      import GraphDSL.Implicits._
      val d = b.add(strategy(2))

      d ~> s1
      d ~> s2

      SinkShape(d.in)
    })
  }
}

It is adapted from Sink.combine in Akka 2.6.12 (the version OpenWhisk builds against), akka-stream/src/main/scala/akka/stream/scaladsl/Sink.scala lines 315-330, Copyright (C) 2014-2021 Lightbend Inc.

Akka 2.6.x was released under the Apache License 2.0 (Akka moved to the BSL from 2.7.0), so there is no licence conflict, but the derived code is not attributed: the file only carries the ASF header, and the top-level LICENSE does not mention Akka.

Suggested fix, either:

  1. Add a LICENSE entry noting that OwSink.combine in this file is derived from Akka 2.6.12 Sink.combine (Apache-2.0, Copyright Lightbend Inc.), and carry any applicable Akka NOTICE text; or
  2. Rewrite OwSink.combine independently and drop the "copied from" comment. It is a small GraphDSL graph; alternatively, Apache Pekko (the ASF fork of Akka 2.6) has the same Sink.combine, and deriving from Pekko would make this ASF-to-ASF.

The same code is in upstream Apache OpenWhisk. Related: #260.

Lenguaje dominante
Python
Estrellas
576
Forks
29
Merge medio
3 h 26 min
PR fusionados (30 d)
12

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/openserverless

Todos los issues de apache/openserverless

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.