Product SiteDocumentation Site

4. Changes in Fedora for Developers

4.1. Development

4.1.1. Ruby on Rails 5.0

Developers will get support for a system-packaged Ruby on Rails of the latest version. The update to Rails 5.0 will bring:
  • Action Cable: A new framework that seamlessly integrates WebSockets in a Rails application.
  • API mode: Rails applications can be created by using rails new backend --api
  • Action Record attributes with a type on a model.
  • Exclusive use of Rails CLI over Rake.
  • Test Runner: enhanced abilities to run tests from Rails.
  • Sprockets 3
  • Turbolinks 5
A helpful guide for upgrading Ruby on Rails can be found at: http://guides.rubyonrails.org/upgrading_ruby_on_rails.html

4.1.2. Go 1.7

With Fedora 25, the golang packages, which include the Go programming language compiler, have been upgraded to upstream version 1.7, which provides a number of bug fixes and enhancements over the previous version. Notably, this update provides support for IBM System z, and significant performance improvements. For the full list of changes, see the Go 1.7 Release Notes upstream.

4.1.3. Rust

Fedora 25 provides the Rust compiler and its Cargo package management tool. Rust is a fast compiled programming language, which prevents segmentation faults, ensures thread safety, and supports both functional and imperative-procedural paradigms. For more information, see Rust upstream documentation.

4.1.4. The GNU C Library Version 2.24

The GNU C Library (glibc) is updated to version 2.24 in Fedora 25. This version provides increased performance, many bug fixes, improvements to POSIX compliance new locales, and other changes. See the NEWS at https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;hb=refs/heads/release/2.24/master for a full list of changes in this version.
This version is backwards compatible with the version shipped in Fedora 24. No packaging changes are necessary.

4.1.5. Erlang 19

The Erlang programming language is updated to version 19 in Fedora 25. Notable changes include:
  • A new state machine behavior: gen_statem
  • A new experimental plug-in to mnesia that allows use of external storage solutions such as leveldb: mnesia_ext
  • Improved dirty NIF schedulers (see the writeup at https://medium.com/@jlouis666/erlang-dirty-scheduler-overhead-6e1219dcc7)
  • Experimental support for Unix Domain Sockets, opening the door for native journaldy, systemd-notify, and DBus implementations
For full information about Erlang version 19, see the upstream release notes at http://www.erlang.org/news/105.
This change also aims to improve Erlang packaging (as well as the packaging guidelines at https://fedoraproject.org/wiki/User:Peter/Erlang_Packaging_Guidelines), making packagers' lives easier.

4.1.6. GHC 7.10

The GHC Haskell compiler is updated to a major new version 7.10.3 in Fedora 25. Notable changes include:
  • GHC has implemented the "Applicative Monad Proposal" and the "Burning Bridges Proposal", which may require some changes to code. See https://ghc.haskell.org/trac/ghc/wiki/Migration/7.10 for help on migrating to 7.10.
  • GHC now has support for 'partial type signatures', which give you the ability to add 'holes' to a type signature that the compiler can later infer.
For detailed information about GHC version 7.10, see the upstream release notes at http://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-1.html.

4.2. Development Tools

4.2.1. Unicode 9.0

Unicode is an international encoding standard. With each release Unicode adds support for new scripts and characters. The Unicode Version 9.0 update brings these capabilities to Fedora users and developers. Specifically Unicode Version 9.0 adds 7,500 characters, including six new scripts and 72 new emoji characters. Unicode Version 9.0 also adds support for new additional languages:
  • Osage
  • Nepal Bhasa
  • Fulani plus other additional African languages
  • The Bravanese dialect of Swahili
  • The Warsh orthography for Arabic
  • Tangut
For more information please visit the Unicode release notes for Unicode Version 9.0: http://unicode.org/versions/Unicode9.0.0/,