COSCUP 2023
Peter
2023/07/29
Collaborating the PHPBrew : past, now and future
Slide
About me
-
Peter, GitHub
-
Active open source contributor
-
Speaker
-
COSCUP、MOPCON......
-
-
An associate engineer
-
DevOps
-
Back-end
-
System Architecture Researching
-
Web Application Security
-
PHP, Python and JavaScript
-
-
Industrial Technology Research Institute
-
Smart Grid Technology (2017~2021)
-
-
Institute for Information Industry
-
Database, Data platform architecture (2021~)
-
Outlines
-
Survey (Have you heard or used PHPBrew?)
-
Short introduction about the PHPBrew
-
The past story of the PHPBrew. (The history of the PHPBrew)
-
Sharing collaborating/contributing stories (tips?)
-
Focusing on us!
-
Summary
Survey
Have you heard or used PHPBrew?
PHPBrew Introduction
Let me tell you a scenario...
Compiling the PHP from source
-
For tests
-
Including extension tests and version tests
-
-
For tests about contributing php-src
Building PHP-7.4 from source
# Example for Ubuntu, Linux distribution
# Install some required C/C++ libraries and C/C++ building tools
sudo apt-get update
sudo apt-get install build-essential
# Building the PHP-7.4 from source
cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
./configure --prefix=/opt/php-7.4 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--enable-gd \
--with-pgsql \
--disable-rpath
......
make -j 4 && make install
There'are many configuring options, right?
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
chmod +x phpbrew.phar
# Move phpbrew.phar to somewhere can be found by your $PATH
sudo mv phpbrew.phar /usr/local/bin/phpbrew
phpbrew init
# I assume you're using bash
echo "[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc" >> ~/.bashrc
# For the first-time installation, you don't have phpbrew shell function yet.
source ~/.phpbrew/bashrc
# Fetch the release list from official php site...
phpbrew update
# List available releases
phpbrew known
# List available variants
phpbrew variants
# Let's brew something out.
phpbrew --debug install --stdout 7.4 as 7.4-dev +default +intl
Making PHP compiling convenient
The past story of the PHPBrew
PHPConf 2013 Lightning talk - PHPBrew
The past story of the PHPBrew
The PHPBrew father–c9s
Let me tell the true story
One day...
One day...
In my Twitter profile
That's the reason why I become a collaborator
你不找別人,別人也會來找你
My collaborating story
Discussion
-
Talking with PHPBrew father in Twitter.
-
Resolving issues.
-
Building/Compiling problems.
-
Usage problems.
-
And so on.
-
-
Update documentations. (GitHub Wiki)
Update documentations
Update documentations
Getting some bugs
Does anyone fix it?
No. You only fix it by yourself.
My collaborating story
Resolving issues
-
Legacy codes/projects are everywhere.
-
PHP version compatibility is the challenge.
-
-
Dependencies issues are another challenge
-
"corneltek/pearx": "^1.3.5"
-
"corneltek/curlkit": "^1.0.11"
-
"corneltek/cliframework": "3.0.x-dev#01cee2d491085cfae63c677611b5e4604624771e"
-
corneltek/getoptionkit
-
My collaborating story
Resolving issues..."corneltek/cliframework"
-
Trying to fix some bugs....
-
Dependencies errors are coming...
-
It should fix dependency bug firstly...
-
PHP version compatibility issues
-
Instant Upgrades
-
PHPUnit, Symfony and other frameworks compatibility
-
-
Automated Refactoring
-
PHP 7.x, PHP 8.x versions upgrading compatibility
-
Rector is the great tool for resolving this issue
My collaborating story
Strange issues & dependencies
Tracing many dependency codes and funny talk...
My collaborating story
Strange issues/dependencies
Tracing many dependency codes...corneltek/getoptionkit
My collaborating story
-
Building or Compiling problems are coming...
- They're forwarded to our projects because it's convenient!
-
cannot install gd with php 8.1.12 on ubuntu 18.04
-
OpenSSL symbol(s) not found for architecture x86_64
-
PHP Installation fails on Ubuntu 22.04 WSL2
My collaborating story
Issues are not related to projects
PHP Extension installation issues
Features and Improvements
Benefits or sense of achievement?
Tracing codes makes your skill powerful
Collaborating with people
Tips?
When you want to contribute...
-
Basic
-
Read documentations.
-
Update documentations.
-
Trying to build, run and test it.
-
Trying to answer questions in issue tracking system.
-
Trying to submit/report issues.
-
-
Advanced
-
Trying to trace codes & find current problems/bugs.
-
Submit pull requests to resolve the issue.
-
Implementing features.
-
Improvements.
-
不要問為何沒有人接手,先承認你就是「沒有人」
The future of the project
-
Short term
-
Support PHP-8.2
-
Optimize PHPBrew Release workflow
-
Update the documentation
-
-
Long term
-
Containerize the PHPBrew
-
Making the PHPBrew building tool environment easy!
-
docker-phpbrew
-
-
Focusing on us!
Stickers are available!
Getting started with using the PHPBrew to manage multiple PHP versions!
Any Questions?
COSCUP 2023
By peter279k
COSCUP 2023
COSCUP 2023, Collaborating the PHPBrew : past, now and future
- 260