From 6163470d97a4647ad86997d1ea62efa764a97a68 Mon Sep 17 00:00:00 2001 From: Roland Date: Tue, 25 Sep 2012 16:09:44 +0200 Subject: [PATCH] add akka-contrib area, see #2553 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - also add disclaimers to the of experimental modules’ POMs --- akka-contrib/README.md | 21 +++++++++++++++ project/AkkaBuild.scala | 57 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 akka-contrib/README.md diff --git a/akka-contrib/README.md b/akka-contrib/README.md new file mode 100644 index 0000000000..c01a24d7c8 --- /dev/null +++ b/akka-contrib/README.md @@ -0,0 +1,21 @@ +# External Contributions + +This subproject provides a home to modules contributed by external developers which may or may not move into the officially supported code base over time. The conditions under which this transition can occur include: + +* there must be enough interest in the module to warrant inclusion in the standard distribution, +* the module must be actively maintained and +* code quality must be good enough to allow efficient maintenance by the Akka core development team + +If a contributions turns out to not “take off” it may be removed again at a later time. + +## Caveat Emptor + +A module in this subproject doesn't have to obey the rule of staying binary compatible between minor releases. Breaking API changes may be introduced in minor releases without notice as we refine and simplify based on your feedback. A module may be dropped in any release without prior deprecation. The Typesafe subscription does not cover support for these modules. + +## Suggested Format of Contributions + +Each contribution should be a self-contained unit, consisting of one source file without dependencies to other modules in this subproject (it may depend on anything else in the Akka distribution, though). This ensures that contributions may be moved into the standard distribution individually. + +## Suggested Way of Using these Contributions + +Since the Akka team does not restrict updates to this subproject even during otherwise binary compatible releases, and modules may be removed without deprecation, it is suggested to copy the source files into your own code base, changing the package name. This way you can choose when to update or which fixes to include (to keep binary compatibility if needed) and later releases of Akka do not potentially break your application. \ No newline at end of file diff --git a/project/AkkaBuild.scala b/project/AkkaBuild.scala index 5e4ca5b912..a0881ef6ed 100644 --- a/project/AkkaBuild.scala +++ b/project/AkkaBuild.scala @@ -144,7 +144,18 @@ object AkkaBuild extends Build { }, scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, jvmOptions in MultiJvm := defaultMultiJvmOptions, - previousArtifact := akkaPreviousArtifact("akka-remote") + previousArtifact := akkaPreviousArtifact("akka-remote"), + description := """|This module of Akka is marked as + |experimental, which means that it is in early + |access mode, which also means that it is not covered + |by commercial support. An experimental module doesn't + |have to obey the rule of staying binary compatible + |between minor releases. Breaking API changes may be + |introduced in minor releases without notice as we + |refine and simplify based on your feedback. An + |experimental module may be dropped in major releases + |without prior deprecation. + |""".stripMargin ) ) configs (MultiJvm) @@ -161,7 +172,18 @@ object AkkaBuild extends Build { }, scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, jvmOptions in MultiJvm := defaultMultiJvmOptions, - previousArtifact := akkaPreviousArtifact("akka-remote") + previousArtifact := akkaPreviousArtifact("akka-remote"), + description := """|This module of Akka is marked as + |experimental, which means that it is in early + |access mode, which also means that it is not covered + |by commercial support. An experimental module doesn't + |have to obey the rule of staying binary compatible + |between minor releases. Breaking API changes may be + |introduced in minor releases without notice as we + |refine and simplify based on your feedback. An + |experimental module may be dropped in major releases + |without prior deprecation. + |""".stripMargin ) ) configs (MultiJvm) @@ -339,7 +361,18 @@ object AkkaBuild extends Build { extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src => (name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq }, - jvmOptions in MultiJvm := defaultMultiJvmOptions + jvmOptions in MultiJvm := defaultMultiJvmOptions, + description := """|This module of Akka is marked as + |experimental, which means that it is in early + |access mode, which also means that it is not covered + |by commercial support. An experimental module doesn't + |have to obey the rule of staying binary compatible + |between minor releases. Breaking API changes may be + |introduced in minor releases without notice as we + |refine and simplify based on your feedback. An + |experimental module may be dropped in major releases + |without prior deprecation. + |""".stripMargin ) ) configs (MultiJvm) @@ -372,6 +405,24 @@ object AkkaBuild extends Build { ) ) + lazy val contrib = Project( + id = "akka-contrib", + base = file("akka-contrib"), + dependencies = Seq(actor), + settings = defaultSettings ++ Seq( + description := """| + |This subproject provides a home to modules contributed by external + |developers which may or may not move into the officially supported code + |base over time. A module in this subproject doesn't have to obey the rule + |of staying binary compatible between minor releases. Breaking API changes + |may be introduced in minor releases without notice as we refine and + |simplify based on your feedback. A module may be dropped in any release + |without prior deprecation. The Typesafe subscription does not cover + |support for these modules. + |""".stripMargin + ) + ) + // Settings override lazy val settings =