collaboration upstream / downstream · recently found icu 56.1 breaks php-zendframework-zend-i18n...

23
Forum PHP 2015 - Paris Remi Collet Présenté par : Senior Software Engineer, Red Hat Inc. PHP developer. Licensed under Creative Commons Attribution Share Alike – CC-BY-SA Collaboration Upstream / Downstream

Upload: others

Post on 24-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Forum PHP 2015 - Paris

Remi ColletPrésenté par :

Senior Software Engineer, Red Hat Inc.PHP developer.

Licensed under Creative Commons Attribution Share Alike – CC-BY-SA

Collaboration Upstream / Downstream

Page 2: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Summary

1. Introduction

2. Downstream work

3. Upstream / Downstream

4. Koschei : Fedora CI

5. Questions

Page 3: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Introduction

Page 4: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

1998 : PHP 3.0 user2005 : Remi's RPM repository / LAMP

2006 : Fedora contributor (PHP stack)

2007 : Fedora PHP co-maintainer

2011 : PECL developer

2012 : Fedora / Red Hat PHP maintainer

2012 : PHP developer

=> http://fr.linkedin.com/in/remicollet

Remi Collet

Page 5: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Downstream work

Page 6: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Provide a usable PHP stackMaintain distribution consistency

Maintain stability => QA

Upstream first (Fedora policy)

Full featured

Developer tools

Goals

Page 7: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Who still build PHP from sources ?

Most extensionsPHP sources splitted in 35 packages

Using system libraries

=> Docker ?

PHP

Page 8: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Need development environment

phpize / configure / make test

pecl

=> pure PHP implementation

PHP Extensions / C

Page 9: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Web applications

wordpress, roundcubemail...

Developer tools

atoum, phpcd, phpunit, composer

Distribution integration

Filesystem Hierearchy Standard

/etc, /usr, /var

Security / SELinuxSystem libraries – no bundled libraries

Applications

Page 10: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Libraries used by applications

Frameworks

Symfony, Zend...

pear

composer / packagist

Libraries / pure PHP

Page 11: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Composer:

Install: generate auloader for all dependencies (explicit and implicit)

Update: change in dependencies tree=> re-generate the autoloader.

Packaged applications:

Each library provides its autoloader

Call each explicit dependency autoloader

Change in implicit dependencies tree are transparent

Autoloader

Page 12: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Downstream Upstream

Page 13: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Upstream to users

Tagged versions

Documentation

Users to upstream

Bug reports

Without downstream

Page 14: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Upstream does downstream work

.phar distribution

Downstream issues

Security issues

License issues

End user issues

Without downstream 2

Page 15: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Upstream => downstream

Sources and Versions

Downstream => Users

Packages

Users => downstream

Bug reports

Downstream => upstream

Bugs and patches

With downstream

Page 16: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Collaboration is win/win

Fewer bugs

More contribution

More QA

With downstream 2

Page 17: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Users and Downstream

Documented API changes

=> http://semver.org/Documented changes

=> http://keepachangelog.com/Documentation

Versions, LTS and Stability

Bug tracking

Test suite

Expectations

Page 18: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Upstream

Recent versions

Feedback

Contribution

Expectations 2

Page 19: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

KoscheiFedora CI

Page 20: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

CI often run by travis

Build raised by code changes

CI environment dependant

not debian, fedora, RHEL or any user used distribution

often late behind upstream

Classical QA / CI

Page 21: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

CI of the full PHP stack

Build raised by dependency changes

Run for fedora rawhide (dev. Version)

Most recent dependencies

RC versions

=> https://apps.fedoraproject.org/koschei/

Fedora QA / Koschei

Page 22: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Recently foundICU 56.1 breaks php-zendframework-zend-i18n

php-twig-1.23.0 breaks php-symfony-bridge-twig

php-twig-1.23.0 breaks php-twig-extensions

atoum methods inconsistency

glibc 2.21.90 breaks Horde_Util

regression in php-phpunit-PHPUnit-MockObjects 2.3.2

git 2.4 breaks php-gitter

rrdtool 1.5.x breaks php-pecl-rrd

libxml 2.9.2 breaks atoum

...

Koschei

Page 23: Collaboration Upstream / Downstream · Recently found ICU 56.1 breaks php-zendframework-zend-i18n php-twig-1.23.0 breaks php-symfony-bridge-twig php-twig-1.23.0 breaks php-twig-extensions

Questions?

Licensed under Creative Commons Attribution Share Alike – CC-BY-SA

[email protected]: