(Created page with "<!-- Self Contained or System Wide Change Proposal? Use this guide to determine to which category your proposed change belongs to. Self Contained Changes are: * changes to is...") |
(Add tracker bug) |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 53: | Line 53: | ||
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | ||
--> | --> | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1084085 #1084085] | ||
== Detailed Description == | == Detailed Description == | ||
Line 59: | Line 59: | ||
Fedora has had a Scala package for some time, but the larger Scala ecosystem has been absent from Fedora. In fact, until very recently, Fedora included no packages that depended on Scala. The main obstacle to getting Scala ecosystem projects packaged for Fedora was the difficulty in packaging <code>sbt</code>, the Simple Build Tool, which many Scala projects use for build, dependency, and release management. Fedora 21 now includes <code>sbt</code> as well as several interesting and foundational Scala ecosystem projects, most notably: | Fedora has had a Scala package for some time, but the larger Scala ecosystem has been absent from Fedora. In fact, until very recently, Fedora included no packages that depended on Scala. The main obstacle to getting Scala ecosystem projects packaged for Fedora was the difficulty in packaging <code>sbt</code>, the Simple Build Tool, which many Scala projects use for build, dependency, and release management. Fedora 21 now includes <code>sbt</code> as well as several interesting and foundational Scala ecosystem projects, most notably: | ||
* akka, a toolkit for developing actor-based systems; | * [http://pkgs.fedoraproject.org/cgit/akka.git akka], a toolkit for developing actor-based systems; | ||
* json4s, a unified interface to JSON parsers and generators; | * [http://pkgs.fedoraproject.org/cgit/json4s.git json4s], a unified interface to JSON parsers and generators; | ||
* sbinary, a typed Scala interface for reading and writing binary formats; | * [http://pkgs.fedoraproject.org/cgit/sbinary.git sbinary], a typed Scala interface for reading and writing binary formats; | ||
* sbt, the simple build tool for Scala and Java projects; | * [http://pkgs.fedoraproject.org/cgit/sbt.git sbt], the simple build tool for Scala and Java projects; | ||
* scala-stm, a software transactional memory implementation for Scala; | * [http://pkgs.fedoraproject.org/cgit/scala-stm.git scala-stm], a software transactional memory implementation for Scala; | ||
* scalacheck, a property-based testing framework for Scala; and | * [http://pkgs.fedoraproject.org/cgit/scalacheck.git scalacheck], a property-based testing framework for Scala; and | ||
* scalaz, a set of extensions to the Scala standard library to facilitate functional programming. | * [http://pkgs.fedoraproject.org/cgit/scalaz.git scalaz], a set of extensions to the Scala standard library to facilitate functional programming. | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Line 117: | Line 117: | ||
Users who have had to rely upon third-party packages for essential Scala development infrastructure will now be able to install these from Fedora repositories. Developers who wish to package Scala projects for Fedora in a way consistent with the packaging guidelines now have a way to do. | Users who have had to rely upon third-party packages for essential Scala development infrastructure will now be able to install these from Fedora repositories. Developers who wish to package Scala projects for Fedora in a way consistent with the packaging guidelines now have a way to do. | ||
== Dependencies == | == Dependencies == | ||
<!-- What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this change depends? In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like the kernel (if this is not a kernel change)? --> | <!-- What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this change depends? In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like the kernel (if this is not a kernel change)? --> | ||
This change depends on the versions of Scala and several Java packages currently available in Fedora. It is possible that the introduction of [[Changes/Java8|Java 8]] would impact some of the packages in this change or their dependencies (in particular Scala and <code>sbt</code>), but we are of course monitoring the transition. | This change depends on the versions of Scala and several Java packages currently available in Fedora. It is possible that the introduction of [[Changes/Java8|Java 8]] would impact some of the packages in this change or their dependencies (in particular Scala and <code>sbt</code>), but we are of course monitoring the transition. Further <code>sbt</code> Fedora integration will be possible as a result of [[Changes/ImprovedIvyPackaging|improved Ivy metadata support in Fedora 21]]. | ||
== Contingency Plan == | == Contingency Plan == | ||
Line 136: | Line 135: | ||
<!-- Is there upstream documentation on this change, or notes you have written yourself? Link to that material here so other interested developers can get involved. --> | <!-- Is there upstream documentation on this change, or notes you have written yourself? Link to that material here so other interested developers can get involved. --> | ||
I've written some [[SIGs/bigdata/packaging/Scala|notes on packaging Scala projects for the Big Data SIG]]. I'll also be writing up some additional Fedora-specific documentation on using <code>sbt</code> more effectively by exploiting new XMvn fatures available in F21 and above. | I've written some [[SIGs/bigdata/packaging/Scala|notes on packaging Scala projects for the Big Data SIG]]. I'll also be writing up some additional Fedora-specific documentation on using <code>sbt</code> more effectively by exploiting [[Changes/ImprovedIvyPackaging|new XMvn fatures]] available in F21 and above. | ||
== Release Notes == | == Release Notes == | ||
Line 156: | Line 155: | ||
With these packages available in Fedora, Fedora has become an excellent environment for developing and distributing Scala projects. | With these packages available in Fedora, Fedora has become an excellent environment for developing and distributing Scala projects. | ||
[[Category: | [[Category:ChangeAcceptedF21]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> |
Latest revision as of 15:04, 3 April 2014
Improved Scala Ecosystem Support
Summary
Fedora now supports several essential parts of the Scala language ecosystem as well as building packages with sbt
, the de facto build tool for the Scala community.
Owner
- Name: William Benton
- Email:
willb@redhat.com
- Release notes owner:
Current status
Detailed Description
Fedora has had a Scala package for some time, but the larger Scala ecosystem has been absent from Fedora. In fact, until very recently, Fedora included no packages that depended on Scala. The main obstacle to getting Scala ecosystem projects packaged for Fedora was the difficulty in packaging sbt
, the Simple Build Tool, which many Scala projects use for build, dependency, and release management. Fedora 21 now includes sbt
as well as several interesting and foundational Scala ecosystem projects, most notably:
- akka, a toolkit for developing actor-based systems;
- json4s, a unified interface to JSON parsers and generators;
- sbinary, a typed Scala interface for reading and writing binary formats;
- sbt, the simple build tool for Scala and Java projects;
- scala-stm, a software transactional memory implementation for Scala;
- scalacheck, a property-based testing framework for Scala; and
- scalaz, a set of extensions to the Scala standard library to facilitate functional programming.
Benefit to Fedora
Scala is an interesting language that has attracted a lot of cool projects. This change will enable Fedora to be an excellent platform for Scala development and for distributing Scala software.
Scope
- Proposal owners: The change is complete as described; other ecosystem packages and additional Fedora-specific developer documentation will continue to become available.
- Other developers: N/A (not a System Wide Change)
- Release engineering: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
Upgrade/compatibility impact
N/A (not a System Wide Change)
How To Test
In general, the best way to test these new packages is to install them, use them, and build other packages with them. After running yum install sbt
, it should be possible to use sbt
to build arbitrary Scala packages under Fedora. Using sbt
for packaging is currently more involved; some initial details are available on the Big Data SIG page.
User Experience
Users who have had to rely upon third-party packages for essential Scala development infrastructure will now be able to install these from Fedora repositories. Developers who wish to package Scala projects for Fedora in a way consistent with the packaging guidelines now have a way to do.
Dependencies
This change depends on the versions of Scala and several Java packages currently available in Fedora. It is possible that the introduction of Java 8 would impact some of the packages in this change or their dependencies (in particular Scala and sbt
), but we are of course monitoring the transition. Further sbt
Fedora integration will be possible as a result of improved Ivy metadata support in Fedora 21.
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
- Blocks product? N/A <-- Applicable for Changes that blocks specific product release/Fedora.next -->
Documentation
I've written some notes on packaging Scala projects for the Big Data SIG. I'll also be writing up some additional Fedora-specific documentation on using sbt
more effectively by exploiting new XMvn fatures available in F21 and above.
Release Notes
Fedora now features dramatically improved support for the Scala ecosystem with the inclusion of sbt
version 0.13.1 and several other key Scala infrastructure packages, including:
- akka, a toolkit for developing actor-based systems;
- json4s, a unified interface to JSON parsers and generators;
- sbinary, a typed Scala interface for reading and writing binary formats;
- scala-stm, a software transactional memory implementation for Scala;
- scalacheck, a property-based testing framework for Scala; and
- scalaz, a set of extensions to the Scala standard library to facilitate functional programming.
With these packages available in Fedora, Fedora has become an excellent environment for developing and distributing Scala projects.