From Fedora Project Wiki
(→‎Current status: mapserver done)
 
(253 intermediate revisions by 5 users not shown)
Line 2: Line 2:


== Summary ==
== Summary ==
Perl 5.16 brings a lot of changes. Details about them could be found at perl [[http://search.cpan.org/dist/perl-5.16.0/pod/perldelta.pod delta]]
Perl 5.16 brings a lot of changes. Details about them can be found in [http://search.cpan.org/dist/perl-5.16.0/pod/perldelta.pod 5.16.0 perldelta document].


== Owner ==
== Owner ==
* Name: [[User:Ppisar| Petr Písař]]
* Name: [[User:Ppisar| Petr Písař]]
* Email: <ppisarredhat.com>
* Email: <ppisar@redhat.com>


* Name: [[User:Jplesnik| Jitka Plesníková]]
* Name: [[User:Jplesnik| Jitka Plesníková]]
Line 12: Line 12:


== Current status ==
== Current status ==
* Targeted release: [[Releases/<number> | Fedora <number> ]]  
* Targeted release: [[Releases/18 | Fedora 18 ]]  
* Last updated: (DATE)
* Last updated: 2012-11-06
* Percentage of completion: XX%
* Percentage of completion: 100 %


<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
=== Completed items ===
* Get dedicated build-root from rel-engs (''f18-perl'')
* Define perl_bootstrap in perl-srpm-macros
* Build new perl 5.16 keeping old COMPAT Provides
* Rebuild packages needed for minimal build-root
* Rebuild dual-lived packages (otherwise yum recommends --skip-broken and fails)
* Rebuild packages needed for building source packages from git repository
* Remove old perl(:MODULE_COMPAT_5.14.*) from perl
* Rebuild other packages: Use Fedora::Rebuild dependency solver or ordered sets computed by Paul
* Undefine perl_bootstrap
* Rebuild packages having perl_bootstrap condition in spec file again
* Synchronize packages upgraded in ''f18'' build root
* Merge dedicated build-root to rawhide and remove the dedicated one [https://fedorahosted.org/rel-eng/ticket/5234 by rel-engs]
* Rebuilt Perl packages: 2115 of 2115 done (100.00 %)


== Detailed Description ==
== Detailed Description ==
<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
New perl is released every year and updates containing mainly bug fixes follow during the year. The release 5.16.0 should be stable release, but 5.16.1 should follow very soon fixing issues introduced in 5.16.0.


== Benefit to Fedora ==
== Benefit to Fedora ==
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
Fedora as bleeding edge distribution should be shipping new release of perl as one of the first distributions.


== Scope ==
== Scope ==
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
Every Perl package will be rebuilt in testing build root ''f18-perl'' against perl 5.16.0 and then if no major problem emerges the packages will be merged back to ''f18'' build root.


== How To Test ==
== How to Test ==
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.
Download packages from koji buildroot f18-perl or try building or using your packages with requirements related to perl.
 
Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
 
A good "how to test" should answer these four questions:
 
0. What special hardware / data / etc. is needed (if any)?
1. How do I prepare my system to test this feature? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the feature is
working like it's supposed to?
3. What are the expected results of those actions?
-->


== User Experience ==
== User Experience ==
Line 46: Line 47:


== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature 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 feature)? -->
<code>repoquery --whatrequires --alldeps 'perl(:MODULE_COMPAT_5.1?.?)' | sort -u</code>


== Contingency Plan ==
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->
Revert changes in ''perl'' git master branch before 5.16 upgrade commit and drop ''f18-perl'' koji build-root.


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
* changes between 5.14.0 and 5.16.x http://search.cpan.org/dist/perl-5.16.0/pod/perldelta.pod
*
* packaging guidelines http://fedoraproject.org/wiki/Packaging:Perl
* how to update modules and dual-lived modules: https://fedoraproject.org/wiki/Perl/updates
* new macros from rpm with different filter http://rpm.org/wiki/PackagerDocs/DependencyGenerator
* external generator of dependencies (outside of rpm) perl.{prov,req}


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
=== New Features ===
*
* Unicode 6.1
* More consistent ''eval'' controlled with ''unicode_eval'' and ''evalbytes'' feature
* 2- and 3-argument ''substr'' called in left-value context is evaluted even after changing original string
* New ''T_*REF_REFCOUNT_FIXED'' XS typemap fixing reference counter decremetion
* New ''is_utf8_char_buf'' XS-callable function replaces broken ''is_utf8_char'' function
* ''$$'' variable is writable
* Improved debugger: tracing mode can be restricted to certain level, breakpoints can be disabled temporarily, breakpoints can be set by file name
* ''sort'' subroutines can be autoloaded
* ''$['' variable is provided by ''arybase'' module
* mmaped PerlIO layer is now a separate module ''PerlIO::mmap''
 
=== Deprecated Features ===
* Accessing Unicode database files directly is deprecated now; use ''Unicode::UCD'' instead
* ''Version::Requirements'' is deprecated in favor of ''CPAN::Meta::Requirements''
 
=== Incompatible Changes ===
* Special blocks (e.g. ''BEGIN'') are called in void context
* Unoverloaded stringification of regular expression does not return the expression literal
* ''T_DATAUNIT'' and ''T_CALLBACK'' XS typemaps removed
* User defined case-changing has been removed in favor of ''Unicode::Casing''
* XSUB C functions are static now and they are not exported from their object files
* Read-only references cannot be weaken
* ''$$'',  ''$<'', ''$>'', ''$('', and ''$)'' do not cache their value
* ''Devel::DProf'', ''Shell'' have been removed from Perl core
* perl4 libraries removed: abbrev.pl, assert.pl, bigfloat.pl, bigint.pl, bigrat.pl, cacheout.pl, complete.pl, ctime.pl, dotsh.pl, exceptions.pl, fastcwd.pl, flush.pl, getcwd.pl, getopt.pl, getopts.pl, hostname.pl, importenv.pl, lib/find{,depth}.pl, look.pl, newgetopt.pl, open2.pl, open3.pl, pwd.pl, hellwords.pl, stat.pl, tainted.pl, termcap.pl, timelocal.pl


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/perl5.16]]
 


[[Category:FeaturePageIncomplete]]
[[Category:FeatureAcceptedF18]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 08:06, 6 November 2012

Perl 5.16

Summary

Perl 5.16 brings a lot of changes. Details about them can be found in 5.16.0 perldelta document.

Owner

Current status

  • Targeted release: Fedora 18
  • Last updated: 2012-11-06
  • Percentage of completion: 100 %

Completed items

  • Get dedicated build-root from rel-engs (f18-perl)
  • Define perl_bootstrap in perl-srpm-macros
  • Build new perl 5.16 keeping old COMPAT Provides
  • Rebuild packages needed for minimal build-root
  • Rebuild dual-lived packages (otherwise yum recommends --skip-broken and fails)
  • Rebuild packages needed for building source packages from git repository
  • Remove old perl(:MODULE_COMPAT_5.14.*) from perl
  • Rebuild other packages: Use Fedora::Rebuild dependency solver or ordered sets computed by Paul
  • Undefine perl_bootstrap
  • Rebuild packages having perl_bootstrap condition in spec file again
  • Synchronize packages upgraded in f18 build root
  • Merge dedicated build-root to rawhide and remove the dedicated one by rel-engs
  • Rebuilt Perl packages: 2115 of 2115 done (100.00 %)

Detailed Description

New perl is released every year and updates containing mainly bug fixes follow during the year. The release 5.16.0 should be stable release, but 5.16.1 should follow very soon fixing issues introduced in 5.16.0.

Benefit to Fedora

Fedora as bleeding edge distribution should be shipping new release of perl as one of the first distributions.

Scope

Every Perl package will be rebuilt in testing build root f18-perl against perl 5.16.0 and then if no major problem emerges the packages will be merged back to f18 build root.

How to Test

Download packages from koji buildroot f18-perl or try building or using your packages with requirements related to perl.

User Experience

Dependencies

repoquery --whatrequires --alldeps 'perl(:MODULE_COMPAT_5.1?.?)' | sort -u

Contingency Plan

Revert changes in perl git master branch before 5.16 upgrade commit and drop f18-perl koji build-root.

Documentation

Release Notes

New Features

  • Unicode 6.1
  • More consistent eval controlled with unicode_eval and evalbytes feature
  • 2- and 3-argument substr called in left-value context is evaluted even after changing original string
  • New T_*REF_REFCOUNT_FIXED XS typemap fixing reference counter decremetion
  • New is_utf8_char_buf XS-callable function replaces broken is_utf8_char function
  • $$ variable is writable
  • Improved debugger: tracing mode can be restricted to certain level, breakpoints can be disabled temporarily, breakpoints can be set by file name
  • sort subroutines can be autoloaded
  • $[ variable is provided by arybase module
  • mmaped PerlIO layer is now a separate module PerlIO::mmap

Deprecated Features

  • Accessing Unicode database files directly is deprecated now; use Unicode::UCD instead
  • Version::Requirements is deprecated in favor of CPAN::Meta::Requirements

Incompatible Changes

  • Special blocks (e.g. BEGIN) are called in void context
  • Unoverloaded stringification of regular expression does not return the expression literal
  • T_DATAUNIT and T_CALLBACK XS typemaps removed
  • User defined case-changing has been removed in favor of Unicode::Casing
  • XSUB C functions are static now and they are not exported from their object files
  • Read-only references cannot be weaken
  • $$, $<, $>, $(, and $) do not cache their value
  • Devel::DProf, Shell have been removed from Perl core
  • perl4 libraries removed: abbrev.pl, assert.pl, bigfloat.pl, bigint.pl, bigrat.pl, cacheout.pl, complete.pl, ctime.pl, dotsh.pl, exceptions.pl, fastcwd.pl, flush.pl, getcwd.pl, getopt.pl, getopts.pl, hostname.pl, importenv.pl, lib/find{,depth}.pl, look.pl, newgetopt.pl, open2.pl, open3.pl, pwd.pl, hellwords.pl, stat.pl, tainted.pl, termcap.pl, timelocal.pl

Comments and Discussion