Joomla uses Github to manage the development of the CMS. To assure a high degree of quality, all changes are organised as so called pull requests, which combine all requested changes for a feature into one testable thing. I have created here a list of all the pull requests that I provided to the Joomla project over the years. The work from before Joomla switched to Github is not listed here.
- #17887 Add strings for day and month to en-GB.ini
 - This makes the language files more consistent.
 - #16461 Contact page does not load proper com_user.profile XML
 - Contact forms were unable to be extended via a plugin, which this fixes.
 - #14792 Joomla 4.0: Fixing fatal error in admin template
 - Fixing an error that was introduced while refactoring for Joomla 4.0
 - #14323 Removing error surpressing @ in com_finder router
 - A minor fix.
 - #14322 Fixing missing alias in URLs
 - This is part of the router modernisation effort.
 - #14031 Fixing URLs for orphaned articles
 - This is part of the router modernisation effort.
 - #13021 Joomla 4.0: Removing modern SEF option
 - Cleaning up for Joomla 4.0
 - #12897 Joomla 4.0: Fixing double columns in session query
 - Cleaning up for Joomla 4.0
 - #12875 Joomla 4.0: Cleaning up routers from 3.7
 - Cleaning up for Joomla 4.0
 - #12629 Fixing Contact urls for linked authors (New)
 - Again a fix to routing.
 - #12482 Removing unnecessary code from com_search router
 - Cleaning up the search router.
 - #12434 Routing: Fixing notice for non-existing views
 - This is part of the routing modernisation effort.
 - #12336 Trying to fix some of the HHVM unittests
 - Making unittests work on HHVM.
 - #12328 Joomla 4.0: Fixing autoloader for JCategoryNode
 - Cleaning up for Joomla 4.0.
 - #12305 Joomla 4.0: Removing JNode and JTree
 - Cleaning up for Joomla 4.0
 - #12276 Joomla 4.0: Moving Models and Controllers from /libraries/legacy to /libraries/cms
 - Cleaning up for Joomla 4.0.
 - #12275 Joomla 4.0: Fixing JApplicationWeb::getMessageQueue()
 - Cleaning up for Joomla 4.0.
 - #12272 Joomla 4.0: Removing calls to JError::raiseError()
 - Cleaning up for Joomla 4.0
 - #12267 Joomla 4.0: Removing deprecated code from JUser* classes
 - Cleaning up for Joomla 4.0.
 - #12264 Joomla 4.0: Move legacy formfields
 - Cleaning up for Joomla 4.0.
 - #12263 Joomla 4.0: Removing deprecated code from JViewLegacy
 - Cleaning up for Joomla 4.0.
 - #12262 Joomla 4.0: Move legacy tables to cms tables
 - Cleaning up for Joomla 4.0.
 - #12259 Joomla 4.0: Removing JTableSession
 - Cleaning up for Joomla 4.0.
 - #12257 Joomla 4.0: Removing JFactory::getAcl()
 - Cleaning up for Joomla 4.0.
 - #12255 Joomla 4.0: Removing JSimplepieFactory and JFactory::getFeedParser()
 - Cleaning up for Joomla 4.0.
 - #12168 Joomla 4.0: Routing changes
 - This is part of the routing modernisation effort for Joomla 4.0.
 - #12165 Deprecating modes in JRouter
 - Improving routing for Joomla 4.0
 - #11936 Fixing missing getItems in mock JMenu for (routing) unittests
 - Improving unittests further.
 - #11910 Properly setting up JFormFieldEmail test
 - More unittests.
 - #11320 Routing: Remove IDs from SEF URLs (new)
 - This is part of the routing modernisation effort.
 - #11035 Run SEF plugin also when SEF URLs are not enabled
 - This is part of the routing modernisation effort.
 - #9204 Improving JTableNested::delete()
 - This is a performance improvement to the nested set implementation in Joomla.
 - #8864 Optimizing JMenu::getItems()
 - A small performance improvement.
 - #8863 Optimizing menu item parent calculation
 - This is a major performance improvement.
 - #8256 Routing: New URL routing for Joomla
 - This is part of the routing modernisation effort.
 - #7303 Having a multilang-site should not override the options of JCategories
 - No comment on this one...
 - #6844 Fixing JToolbarHelper::back()-Button
 - This adds back in the icon to the back button.
 - #6671 Updating comment on JModelLegacy to allow for code completion
 - Just a minor fix.
 - #6653 Updating comment on JModelLegacy to allow for code completion
 - Just a minor fix.
 - #6563 Adding codeCoverageIgnore to deprecated method in JPathway
 - A minor fix.
 - #6550 Improving JPluginHelper unittests
 - By adding more unittests, Joomla can provide higher quality code.
 - #6546 Improving JComponentHelper::getComponent tests
 - More unittests.
 - #6513 Removing obsolete file check in JEditor
 - This removed code from Joomla 1.5 in the JEditor plugin system.
 - #6504 Unittests for Notequals rule
 - Additional unittests for increased code quality.
 - #6500 Improving JHelp unittests
 - Adding additional unittests for JHelp
 - #6492 Improving JModuleHelper::getModule() test
 - Added additional unittests for JModuleHelper here.
 - #6483 Undefined variable lang_code in plugins/system/languagefilter/languagefilter.php on line 297
 - Another small fix.
 - #6480 Simplifying JPagination unittests
 - This removes a series of junk-unittests.
 - #6477 Fix dataprovider of JPagination unittest
 - This fixes the unittests of JPagination.
 - #6458 Fixing notice in languagefilter
 - Just a minor fix.
 - #6400 Checking if the lang_code was already set in POST
 - This is the first of several PRs to fix the languagefilter plugin.
 - #6399 Allow the language to be overriden via a query variable
 - See the description in the PR for details.
 - #6307 Fixing JTableAsset::rebuild()
 - After this change, the asssets table was able to be rebuild again.
 - #6278 Remove usage of JRouter from Languagefilter Plugin constructor
 - There were issues with the router of Joomla being created to early in the startup of the system, which this fixes and allows for more flexibility for developers.
 - #6254 Missing URL information breaks menu alias routing
 - This is again part of the languagefilter plugin rewrite.
 - #6101 Fixing JDEBUG usage in JModuleHelper
 - This makes the usage of JDEBUG in JModuleHelper consistent.
 - #6100 Fixing JDEBUG usage in JError
 - This makes the usage of JDEBUG in JError consistent.
 - #6044 Removing unnecessary routing code for SEF mode
 - mod_menu and the pathway had code that thought it was necessary to distinguish between SEF mode being turned on or off and which could simply be removed.
 - #6034 Optimizing mod_login helper
 - Again optimizations for routing code in a module.
 - #6032 Cleaning up the checks in Modules renderer for performance
 - A small performance improvement.
 - #6030 No need to get JFilterInput instance for each cycle in the loop
 - A performance improvement when rendering modules.
 - #5952 Refactoring helper of mod_languages
 - This provides some performance improvements for the language module.
 - #5950 [REFACTORING] Removing unnecessary trim in mod_languages
 - Another code cleanup. Sometimes you just have to remove unnecessary code...
 - #5683 Sort menus in the backend menu alphabetically
 - A nice UX improvement in the backend.
 - #5682 Sort Template positions in module template positions dropdown
 - And another PR to improve the UI.
 - #5510 Cleaning up the router of com_wrapper
 - What the title says.
 - #5444 Routing: Implementing JComponentRouterAdvanced
 - This is part of the routing modernisation effort.
 - #5423 Fix notice in content search plugin
 - I introduced an error in the content search plugin and fixed it with this PR.
 - #5364 Fixing broken language indexing in com_finder
 - Again a fix to Finder.
 - #5347 Fixing tag routing
 - Yet another routing fix. The routing of tags is still not right though, but fixing that was out of the scope of this PR.
 - #5338 JModelAdmin: Batch optimizations
 - By removing a lot of duplicate code, maintaining the code got a lot easier in the future.
 - #5317 Fixing notice when doing batch copy and language change
 - Repairs an error in batch handling of items.
 - #5316 Removing unnecessary code from JModelAdmin
 - Code Cleanup
 - #5276 ContentHelperRoute::getArticleRoute needs to be called with catid and language
 - Again an attempt at improving the uniformity of the URLs generated in the Joomla core extensions.
 - #5264 Routing: Implementing routing stages
 - This is part of the routing modernisation effort.
 - #5234 Updating JComponentRouterRulesInterface
 - This is part of the project to modernise the routing of Joomla.
 - #5173 JRouterInstallation::parse() made compatible with the interface
 - A minor fix.
 - #5168 Routing: using the dependency injected $app and $menu in the core routers
 - The component routers have an application and a menu object available now, so we should use ithem.
 - #5140 Routing/Language: Refactoring the language system to simplify the code
 - The routing for the different languages was a long standing issue in Joomla and quite convoluted and broken. This PR fixed a lot of smaller issues by making the code more consistent. It should speak for itself that almost 200 lines of code could be removed while also improving the overall experience.
 - #5135 Initial codereview of languagefilter plugin
 - Next PR to fix the languagefilter plugin
 - #5134 Fixing notice in categories finder plugin
 - Just a minor fix
 - #5124 Optimizing JComponentHelper::getComponent
 - This is a substantial performance improvement.
 - #5120 Improving query to use indexes better. Fixes #5101
 - This is a general performance improvement.
 - #5108 JModelLegacy: Don't try to use "fast" count method for queries with union
 - Again, see the discussion in this PR for details.
 - #5107 Fix for: Banners matched only by tags results in SQL error
 - See the discussion in this PR for details.
 - #5105 Tags: Fixing routing
 - And more routing fixes.
 - #5104 Finder: Fallback for routing is called with wrong parameters
 - And another fix to the routing in Finder.
 - #5086 Implementing a clearAccessRights method
 - The permissions system in Joomla had the bad habit of caching the current permissions of a user per session, making it near impossible to implement changes to user roles properly. This PR made that easier. All of this was superseded by a fundamental change to JUser which made all of this unnecessary.
 - #4991 Reverting #3972 and implementing clearAccessRíghts
 - No comment on this one...
 - #4849 Routing: Implementing an interface for component router rules
 - This is part of the routing modernisation effort by me
 - #4848 Routing: Adding application and menu objects to component routers
 - This is part of the project to modernise the routing of Joomla.
 - #4614 Removing unnecessary run of JRouter::parse()
 - And another PR to improve performance by properly used routing methods.
 - #4612 Fixing canonical in SEF plugin
 - This changes the canonical tag in Joomla further towards the definition of Google.
 - #4176 [#32200] Removing false error_reporting setting in the installer
 - See the discussion in this PR for details.
 - #3880 Fixing several unittests on Windows
 - The unittests on Windows were very buggy in the past. These changes fixed a lot of issues.
 - #3759 Routing: Introducing unittests for core app router classes
 - This was part of the routing modernisation effort. I introduced a lot of unittests in order to raise the code quality.
 - #3303 Fixing validate-uncompressed.js
 - The change makes the validation script play nicely with the jQuery compatibility mode.
 - #3288 [#33463] Fixing problem in com_messages with double brackets
 - Another one of those...
 - #3251 [2.5.x] Fixing version comparison for database schema
 - This fixes the version comparison for the database schema for Joomla 2.5.
 - #3249 Fixing version comparison for database schema
 - Yet another version comparison fix.
 - #3233 [#30197] class hide-phone for active numeric pagination items
 - Another minor fix. (This was all in an attempt of cleaning up the old Joomlacode tracker.)
 - #3220 $app->registeredurlparams is not defined
 - Another minor fix
 - #3219 [#32441] Fix divison by 0 issue in debug plugin
 - A minor fix.
 - #3165 Implementing class based component routers
 - This is part of the routing modernisation efforts.
 - #3164 Optimizations for JRoute and JRouter 2. Try
 - This is part of the routing modernisation efforts.
 - #3068 [#32639] [2.5.x] If banned list contains "word;" it rejects every message
 - The above fix for Joomla 2.5
 - #3067 Making link clickable for Twofactor Auth
 - Just a minor fix.
 - #3066 [#32639] If banned list contains "word;" it rejects every message
 - Another minor fix.
 - #3065 [#32544] Fixing Contact routing in search
 - This fixes the URLs for the search results for contacts.
 - #2795 Query-fix in com_content article modal
 - See discussion in PR for details.
 - #2789 Implementing caching for getRootId() to save queries
 - Yet another performance improvement. This time in the permission management of Joomla.
 - #2785 [3.3] Implementing bcrypt for password hashing into Joomla as default method
 - Adding bcrypt hashing for passwords in Joomla to 3.x
 - #2636 Fixing broken URL creation when categories are trashed or unpublished
 - Fixing URLs for categories
 - #2631 Fixing broken routing due to missing language parameter.
 - Fixing URLs for multi-language websites
 - #2589 BCrypt fixes
 - Fixing password hashing that was broken in Joomla 3.2.0
 - #2546 Making Finder plugins language aware
 - The change adds the language of the item into the index of com_finder
 - #2543 Content items have to be deletable even when their asset entry is missing
 - Allows to delete content items to be deleted without an asset entry
 - #2147 Fixing com_installer database view version compare
 - Repairs a bug with update notices for Joomla 2.5.
 - #2146 com_installer version compare for database schema fixed
 - Repairs a bug with update notices for Joomla.
 - #1839 JText: Changed conditional to make it easier to read
 - This is mostly a code-cleanup to make this better readable.
 - #1708 Fixing *HelperRoute classes
 - Fixing URL creation for core components
 - #1560 Fixing routing bug in Joomla 3.1
 - This was a giant performance improvement by caching the language data in routing.