why phpbb has failed the open source movement
fork from https://gist.github.com/damianb/1515305
current phpBB version: 3.2.8
issues
-
contributing
pain to contribute due to systems being heavily fractured
patch process:
-
(proposed change, RFC only) discuss the need for the RFC on phpbb.com
-
(RFC only) discuss the RFC, specific implementation issues, design, etc. on area51 patch can be mired in political BS for absurdly long, causing frustration for the contributor and eventually abandonment
-
create a topic branch on their own fork on github
-
format commits with [phpbb3-ticketid1234] and so on for the topic branch
why not link to the issue you're trying to fix directly? the commit should summarize changes /of the commit/, not reiterate the issue you're working on
-
link to the topic branch on the JIRA bugtracker
yet another system to login into constantly unresponsive, slow ignores already provided systems (github issues) which is already integrated and supports most of the features necessary for contribution count it. three, or even four separate services to log into, post stuff on, commit to, open new issues on, etc. to just open a patch which fixes a small issue. the contributor is likely to say "screw this" and find something else more worth their own time.
-
-
design
-
organization (or lack thereof)
includes/functions.php - that's all. speaks well enough for itself. it's 2019 now, phpBB still use the old classic
mysqli
extension and does not usePDO
at all it's 2019 now and phpBB even can not store php session data into redis due tohardcoded
session handler functions must have access to database -
efficiency
lazy-loading, dependency injection, and autoloading are not very well leveraged for minimizing memory use and processing
it is also impractical to lazy-load+autoload due to the lack of an organized codebase javascript, css files are not provided in both a minified and unminified state, requiring more bandwidth+server time to transmit a bunch of comments and whitespace that no average user actually cares about style.php for serving css dynamically. y u no generate static css files and serve that instead. seriously, let's pack on the sql queries.
-
vcs usage problem
phpBB put an
composer.phar
into it's source repo and update it frequently which make the small repo bigger and bigger, this is totally wrong way to use git❯ du -sh ./.git 77M ./.git
❯ git-show-big-files.sh All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file. size SHA location 1395 f3f9a256d7b5c19a3dbbb76afe3f29a699d75db9 phpBB/includes/utf/data/recode_cjk.php 937 1e9ca731cdc54c4d739ea83f24603ba9368bd578 composer.phar 645 fca2a8d72dd02c9e5025a760b940b5fd46e06d93 composer.phar 564 4311ebfe6384ab4ed86fbd11aee9be534074c743 phpBB/docs/CHANGELOG.html 542 6b97e80724084e24758f9a9ecb15382caf22500f phpBB/docs/CHANGELOG.html 531 97998e7d00bb5b28447c78415aa54e35ac98816d phpBB/docs/CHANGELOG.html 521 8b6eddbf21a06da1b6cc983749e5f3a755c674d5 composer.phar 487 3572477546e40a03179dda19e93507477060dd3c composer.phar 471 3e1b2b1af1e0f5c06193af91fdebebbc809ad8c8 package-lock.json 354 a8c17567437c1a67cab9d6d80297ceb4e256ac73 phpBB/includes/captcha/fonts/genr102.ttf 347 6fd19abcb9ec83a925f17e9db1d44ad3fe2699b3 phpBB/assets/fonts/fontawesome-webfont.svg 341 96fa2df7bdbe24e62d2435a043fd8d5e6228d4a4 composer.phar 278 ed4b0abd80884426f6ef67e5fc43659af31a0167 tests/functional/fixtures/files/too-large.png 267 508f9cf274be7a7526630f9ef01c183e6b17612f composer.phar 261 20b7166a6717aa5b904859fc1ffe3b32106d55a8 vendor/goutte.phar 225 a035fdc91138d039ed9e006066c774bb270080e3 composer.phar 213 f6e710c552752ade5bc09b0ded7a016d28673c05 package-lock.json 211 083566fe867bd04a3ca937bbe09ecc15910fcabb phpBB/docs/CHANGELOG.html 190 3b149fd116a1326d87a6f59b408c3fc4c969f334 package-lock.json 162 a3bd28e4f4bba88d50989f74a84d25d49e06bc07 composer.phar 161 e9f60ca953f93e35eab4108bd414bc02ddcf3928 phpBB/assets/fonts/fontawesome-webfont.eot 155 b2e82574e08e5b204ff4ba282fe8a40e6d038d5a phpBB/includes/functions.php 155 b3d1d96b6e4b79a3fe561328eaa6eed61be38235 phpBB/includes/functions.php 154 97f25cc701524de1d61189ad8a80f28b80308a9c phpBB/includes/functions.php 149 dbf6c0f459158fbaaf223b80125ce0f537b84b0e phpBB/includes/utf/data/search_indexer.php 141 7826664865dabb5885c297db58ace43cc69a9ae5 composer.phar 134 d7994e13086b1ac1a216bd754c93e1bccd65f237 phpBB/assets/fonts/fontawesome-webfont.ttf 134 e150053a402f659bc7fab3fcc5eb943ef1e08102 phpBB/language/en/admin.php 131 401ec0f36e4f73b8efa40bd6f604fe80d286db70 phpBB/assets/fonts/FontAwesome.otf 129 b00eef5a3ee0172ab013caf4e95c0ad2b461c1bc composer.phar
-
user friendliness
the ok button in APC is just to small and very hard to click, feels like you need to aim it like shooting something moderator control panel lacks a lot of functionality for mitigating spam - cannot dump all of a user's posts, remove a signature, clear profile details, etc. without an administrator doing so (which proliferates forum spam) constant functionality duplication in ACP generic confirmation messages. "Would you like to continue with this action?" == "Okay, I've deleted fifteen thousand posts just now. I hope you enjoy the panic attack that will occur in three minutes, because you weren't provided with a useful confirmation message that would let you figure out that you clicked something you did NOT want to click)
-
-
community
- generic ego-ridden project full of chest thumping "developers" that do very little to contribute, and demand that they be treated with respect because they are a volunteer
said developers will then pick and choose things they want to work on, and ignore everything else. this is the attitude of a contributor, not a developer. if you do not wish to work on the boring stuff, resign your position and just send pull requests in.
- internal politics is given greater priority than getting things done. less drama, more work.
Maybe someday there'll be a decent bulletin board software that's free and open source that we all can use. Until then, we sadly have to "make do" with either the open source software that is already available, or go with paid+proprietary solutions.
Wonderful way to paint open source.