Loading...
 
Skip to main content

How to pick a software library

"Picking your team is 90 percent of the battle" — Stewart R. Levine


As seen at Open Hub, 90% of the code used to power Tiki comes from the larger PHP and JavaScript Open Source ecosystem.

Tiki is the FLOSS Web Application with the most built in features and to do so in a sustainable way, it uses over 150 software libraries and avoids duplication. This permits more and better functionality, while limiting the complexity and the quantity of work (technical debt). Please see Composer.

Related concept:
Not invented here.

Given that

it is very important to take the necessary time to analyze and decide on the right component to integrate.

General steps

  1. Scope the need in a wiki page on dev.tiki.org
  2. Add some options with some pros and cons
  3. Inform the Dev Mailing List of this process and invite anyone interested to participate
  4. Complete a thorough analysis
  5. Inform the Dev Mailing List of the options
  6. A community discussion ensues and a strategy is picked
  7. Implement the solution
  8. Be proud that the process was thorough and gave us the best possible chance of a smooth future for this functionality! 😊

  1. Note that jQuery-UI is no longer being developed and we are trying to eliminate the existing dependencies.
  2. Even jQuery dependencies are being removed from other projects (Bootstrap 5 for instance) so although Tiki will need it for quite a few years yet adding more jQuery based projects is not ideal.
  3. The long term plan for the user interface is to use Vue.js where possible (hopefully one day replacing plugins and modules so please consider Vue 3 components if available.

Some examples

Past

Future

Types of libs

Perhaps we should have an adaptable policy depending on the type of lib? As discussed during Roundtable-Meeting-2024-10

  • Widgets (ex.: Select 2)
  • Complex integration and too big for us to maintain. Ex.: CKEditor
  • Architectural: MariaDB, Manticore, etc.
  • Abstracts a standard: SabreDAV
  • etc.

Technology

  • Our ideal situation is to pick a PHP lib available from https://packagist.org/ and works on standard PHP shared hosting.
  • The Tiki 27 plus Build System adds a dependency on Node.js to build Tiki, but not to run Tiki
  • If some functionality is realistically not practical or possible with PHP shared hosting, we can require a specific server configuration (and thus root access).


Image

Stats of Tiki dependencies




Compare Tiki vs Tiki dependencies: https://openhub.net/p/_compare?project_0=Tiki+dependencies&project_1=Tiki+Wiki+CMS+Groupware

Some analysis: Open Hub

Show PHP error messages