Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ttys3/604bc5fde0065cddf3120c3772b08dfd to your computer and use it in GitHub Desktop.
Save ttys3/604bc5fde0065cddf3120c3772b08dfd to your computer and use it in GitHub Desktop.
why phpbb has failed the open source movement

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 use PDO at all it's 2019 now and phpBB even can not store php session data into redis due to hardcoded 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment