From Fedora Project Wiki
No edit summary
Line 1: Line 1:
[[category:Perl]]
[[category:Perl]]


= Version normalization =
== Version normalization ==


* After taking over Perl dependency generator
* After taking over Perl dependency generator
Line 12: Line 12:
** Teach [[Upstream_release_monitoring | Fedora upstream monitoring]] ''cnucnu(1)''
** Teach [[Upstream_release_monitoring | Fedora upstream monitoring]] ''cnucnu(1)''


= Dependency generator =
== Dependency generator ==


* Take over dependency generator. Assignee: [[User:jplesnik]], [[User:mmaslano]]
* Take over dependency generator. Assignee: [[User:jplesnik]], [[User:mmaslano]]
Line 21: Line 21:
** How many dependencies has Module-ScanDeps? Assignee: [[User:psabata]]
** How many dependencies has Module-ScanDeps? Assignee: [[User:psabata]]


= Fedora-Rebuild =
== Fedora-Rebuild ==
* Assignee: [[User:ppisar]]
* Assignee: [[User:ppisar]]
* Optimize pure-perl resolver
* Optimize pure-perl resolver
Line 36: Line 36:
** Requires YUM downloaded and metadata parser
** Requires YUM downloaded and metadata parser


= Continuous rebuilds =
== Continuous rebuilds ==


* [http://www.fedmsg.com/en/latest/ Fedmsg] binding to Perl
* [http://www.fedmsg.com/en/latest/ Fedmsg] binding to Perl
Line 44: Line 44:
* Use fedmsg to exclude retired packages
* Use fedmsg to exclude retired packages


= Dependency cycle breaker =
== Dependency cycle breaker ==


* YUM repository reader
* YUM repository reader
Line 52: Line 52:
* Semi-automated recommendation for cycle break-points
* Semi-automated recommendation for cycle break-points


= YUM repository parser =
== YUM repository parser ==


* [https://en.opensuse.org/openSUSE:Standards_Rpm_Metadata YUM metadata] downloader
* [https://en.opensuse.org/openSUSE:Standards_Rpm_Metadata YUM metadata] downloader
Line 59: Line 59:
* YUM package downloader
* YUM package downloader


= Macros for simplified packaging =
== Macros for simplified packaging ==


* Version normalizer
* Version normalizer
Line 76: Line 76:
* Mark POD files as documentation
* Mark POD files as documentation


= Spec file generator =
== Spec file generator ==


* Fork ''cpan2spec''
* Fork ''cpan2spec''
Line 90: Line 90:
** RPM package should not provide privately redefined modules
** RPM package should not provide privately redefined modules


= Fedora Upstream monitoring =
== Fedora Upstream monitoring ==


* Monitor upstream on our own if Fedora's system will not be improved
* Monitor upstream on our own if Fedora's system will not be improved
Line 97: Line 97:
** Update them before each mass rebuild
** Update them before each mass rebuild


= [[Features/DevelopersAssistant | Developer Assistant]] =
== [[Features/DevelopersAssistant | Developer Assistant]] ==


* Templates for standard build systems
* Templates for standard build systems
* Templates for web frameworks
* Templates for web frameworks


= Upstream monitoring =
== Upstream monitoring ==


* Not all packages are registered in [[Upstream_release_monitoring | Fedora Upstream Monitoring service]]
* Not all packages are registered in [[Upstream_release_monitoring | Fedora Upstream Monitoring service]]
Line 114: Line 114:
** Add the check into ''spectool(1)''. Assignee: [[User:ppisar]]
** Add the check into ''spectool(1)''. Assignee: [[User:ppisar]]


= Perl Next =
== Perl Next ==


* While perl is a base package, other CPAN code will go into server or workstation. We need to be ready and implement Next requirements
* While perl is a base package, other CPAN code will go into server or workstation. We need to be ready and implement Next requirements
* I propose to [https://lists.fedoraproject.org/pipermail/perl-devel/2014-March/085719.html delay perl 5.20 upgrade to Fedora 22]. Assignee: [[User:ppisar]] ✓
* I propose to [https://lists.fedoraproject.org/pipermail/perl-devel/2014-March/085719.html delay perl 5.20 upgrade to Fedora 22]. Assignee: [[User:ppisar]] ✓

Revision as of 14:12, 2 April 2014


Version normalization

  • After taking over Perl dependency generator
  • Macros for simplified packaging
    • the version translator
    • the perl() wrapper
    • common snippets for EU::MM, Module::Build, etc.
  • version->parse->normal normalization in macros and generator
  • Normalize RPM package version?

Dependency generator

  • Take over dependency generator. Assignee: User:jplesnik, User:mmaslano
  • Tests. Assignee: User:jplesnik
  • Support no, base, parent, Moose's with, POE's extensions, Test::Requires, other frameworks, see Module::ScanDeps::scan_chunk()
  • Receive explicit Requires from spec file to merge them with generated ones
  • Refactoring
    • How many dependencies has Module-ScanDeps? Assignee: User:psabata

Fedora-Rebuild

  • Assignee: User:ppisar
  • Optimize pure-perl resolver
    • Finished in git tree. ✓
    • Release new version.
  • Implement hawkey-based resolver
    • XS wrapper for hawkey
    • YUM repository filter for Fedora-Rebuild dependency filter
    • YUM repostory downloader
    • Augment Fedora-Rebuild to download YUM repository, filter it, and do hawkey queries over it.
  • Copr mode
    • Copr is missing way how to retrieve binary package made of only exact source package
    • Select binary packages from Copr's YUM repository
    • Requires YUM downloaded and metadata parser

Continuous rebuilds

  • Fedmsg binding to Perl
  • Use fedmsg to gather updated packages
    • I have already GIT based checker
  • Use fedmsg to include new packages
  • Use fedmsg to exclude retired packages

Dependency cycle breaker

  • YUM repository reader
    • repoquery --whatprovides is to slow due to reinitialization
  • Gather boot-strapped dependencies from local SRPMs
  • Use graph algorithms to identify cycles
  • Semi-automated recommendation for cycle break-points

YUM repository parser

  • YUM metadata downloader
  • YUM metadata reader
  • YUM metadata filter/writer
  • YUM package downloader

Macros for simplified packaging

  • Version normalizer
  • perl() wrapper
    • This will mask SCL modifications
  • Dependency filter abstraction
    • One syntax for Fedora and EPEL
    • One syntax for SCL
  • Provide standard EU::MM, Module::Build, Module::Bild::Tiny, &c. %build and %install implementations
  • Standard implementations for CPAN packages
    • URL
    • Sourece0
    • %prep
  • Pack files scriptlets editor
    • Allow Fatpacker and inc::Module::Build bundler to work on packaged modules
  • Mark POD files as documentation

Spec file generator

  • Fork cpan2spec
  • Static dependency analysis
  • Dynamic dependency analysis
  • Compare analyses against RPM package
    • Comment annotations in spec
    • Structured build-, run-, test- dependencies
  • Differences calculator
    • Useful when upgrading a package
  • False provides checker
    • RPM package should not provide privately redefined modules

Fedora Upstream monitoring

  • Monitor upstream on our own if Fedora's system will not be improved
    • The maintainer wants CPAN wildcard
  • Monitor all RPM packages
    • Update them before each mass rebuild

Developer Assistant

  • Templates for standard build systems
  • Templates for web frameworks

Upstream monitoring

  • Not all packages are registered in Fedora Upstream Monitoring service
  • Not all packagers upgrades
  • Monitor upstream on our own
    • Use CPAN
    • Adjust versions where done in Fedora
    • File bugs or do the upgrade directly or spam perl-devel mailing list
  • CPAN mirrors provides signed digests of CPAN distributions
    • Verify them against Fedora look-aside cache
    • Add the check into spectool(1). Assignee: User:ppisar

Perl Next