Skip to content

Latest commit

 

History

History
207 lines (144 loc) · 12.4 KB

GDO7_CHANGELOG.md

File metadata and controls

207 lines (144 loc) · 12.4 KB

GDOv7 Changelog (and Roadmap)

Welcome to the GDOv7 changelog + combined roadmap.

The current version, v7.0.3, is quite far and in the finishings.

There is no keeping backwards compat, and the ABI/API might change here and there.

Please read this document upside down, from bottom to top, and sometimes again.

7.0.4 (All ToDo)

  • Support for HTTP2/3.
  • Idea: Support for prepared statements, so persistent clients like the websocket server and the gdo dog chatbot.
  • Support for GDT_Image with optional Thumbhash.
  • Support for CLI image rendering (would be just nice to have).
  • The Websocket methods will obey the gdo style better. @TODO auto-generate websocket commands from the normal methods and assign a cmdid logically, maybe just sequentiell. Exclusively use the new WS rendererer.
  • Auto Configured Websocket methods, just mark a method as gdoWebsocket():bool capable and the protocol will be auto generated as it's the case for CLI and config and settings already.
  • New Module Geo2City to detect a city by geoposition.
  • In CLI render mode, html()'d strings will be safer to use
  • In IRC mode, html() will strip colors and text style.
  • Support for PostGres DBMS
  • Created a composer.json for the GDOv7 core. It can be installed with composer require gizmore/phpgdo.
  • The gdo_test.sh fuzzer will only fuzz until the first valid value for a parameter. This is faster but misses conjunctured parameter problems.
  • New i18n utilites; Check unused lang file entries and report problems in lang files who differ from the englis. Also report untranslated keys in foreign files.
  • Make use of faster version of html() named htm(), which can only be used inside double quotes. It skips <>', down to 2 replacements, and never changes the string length. However, markup can be invalid... length.
  • New module W3CValidator
  • New Debug method: Debug::supressed(callable) - for supressing unit output pollution.

7.0.3-r2 (almost there)

  • New admin function to check and fix configurations and settings for a module.
  • New Config.php option: GDO_LOG_PROFILE, appending your xdebug trigger to urls generated with href($methodName, $moduleName, $app='').
  • gdo_test.sh now features several options. Easy to use are --all, --quick and --parents.
  • Classes marked as 7.0.3 are unit tested in at least fuzzing mode and pass all the GDOv7 Code Guidelines and Inspections in their StormPHP configuration far from it.
  • The Module_Docs module is operable and produces usable docs.
  • New Website Module Hydra to monitor services.
  • Methods and GDT can now be more easily debugged by overriding Method->isDebugging(). This triggers breakpoints at important spots.
  • The fuzzing unit tests do not crash the test application anymore when using gdo_test.sh --all. Until recently, most simple things turned the fuzzer quite useless to analyze a problem.
  • New unit test: assert number of unhandled exceptions is zero :)
  • All GDT_Field are now required to have an icon via a new unit test.

7.0.2-r2 26.Mar.2023

  • Methods can now have a meta image to display in Chat clients.
  • The permission level has been removed from permissions.
  • StormPHP support added.
  • Almost all, and plenty, unit tests are passing. (in progress)
  • SEO URLs now control their rendering mode via a file suffix like .txt, .html, .json and .xml. (thx spaceone)
  • A new Core module DBMS, which is provided by two packages now; phpgdo-mysql and phpgdo-sqlite.
  • A new utility in my automated toolchain for productive environments; php-preprocessor. This build step eliminates debug and profiler calls enabled via GDO_PREPROCESSOR for zero cost debugging.
  • New method Install.Website to generate configurations for various httpd.
  • The use of .htaccess is now discouraged for performance reasons. (untested)
  • the defaultName() method has been removed. The way for default names is to use ->name() in the constructor. (TODO)
  • Files versioned with 7.0.2 are fully type annotated. (TODO)
  • ACL settings for user settings are now stored more efficiently beside the settings data.
  • GDOs now feature a "softReplace", which is an INSERT ... ON DUPLICATE KEY UPDATE. This is a phpgdo sofware solution, so it should work on sqlite.
  • New LGPL Module_FFMpeg which offers MP3 encoding and ffmpeg wrappers.
  • Refurbished Module_Boostrap5 and [Module_Boostrap5Theme](https://github. com/gizmore/phpgdo-bootstrap5-theme). (In progress)
  • The automated todo generation is working again. (TODO)
  • The only core dependency was htmlpurifier. This has changed by moving it to phpgdo-html, which is a message provider using it. The core now simply htmlspecialchars() the input for the output. All more enhanced message providers, like CKEditor or Markdown, depend on html for security reasons.
  • Users may now switch their message editor. Implemented core.health for a phpgdo compatible endpoint that renders a health card. You can see it in action here: html json cli.
  • New Website Module KassiererCard - A website about local worker and customer bonus point systems. Demo

7.0.1 / released 01.Sep.2022

  • GDOv7.0.1 will try to convert all worthy gdo6 modules into the GDOv7 API. Quite accomplished now.

  • GDO_Country now tries to render UTF8 country flags in CLI mode.

  • Module_Perf now additionally utilizes PHP getrusage

  • Memcached now does a fallback to filecache API, if config.php GDO_MEMCACHED ist set to 2. GDO_MEMCACHED is now an INT from 0-2.

  • New Account settings with all module settings on one page.

  • New GDT_UserType, "link", to link various input sources together. It will be used to link accounts together.

  • A working website: HTTP/WWW support beside CLI and JSON. Write methods once and use them everywhere!

  • New demo sites, like Fineprint which is a web exploit hacking challenge.

  • Module_DOMPDF replaces Module_TCPDPF (which never got finished). We are now using a HTML to PDF strategy. New GDT render method renderPDF() which defaults renderHTML(). It's the first module to use composer as 3rd party library provider. (STALLED)

  • GDT_ACL is now a core GDT and has been moved to Module_User ... finally :)

  • AutomatedTests now test all GDO to be gdoSaveable() when initial + plugged.

  • AutomatedTests now test all rendering modes on all GDO + GDT automatically. Tests are performed With plugged and unplugged initials.

7.0.0 / released 22.May.2022 22:22:22, almost :)

A fresh restart of the GDO project.

GDOv7.0.0 comes with only the core modules, but all of them cleaned up and now unit tested. The goal for this release is a 100% test pass for the new shiny core.

  • New GDT GDT_Redirect. This makes [../GDO/Core/Website] only responsible for website page metadata.

  • GDO_User->displayNameLabel() and displayName() has both been renamed to renderUserName().

  • GDO->displayName() has been renamed to GDO->renderName().

  • Module_TestMethods has been merged into Module_Tests. This module features automated test case generation.

  • FileUtil is now settled to be in Core, as Module_File is not core anymore. (thx flederohr)

  • [GDO_Module]s(../GDO/Core/GDO_Module.php) can now have "Friendency" modules. Suggestions that would enhance the features of an installed module.

  • These GDTs have been removed: GDT_IconButton, GDT_HTML, GDT_DIV

  • Confusion resolved. RENDER_LIST is for

      and RENDER_OPTION is for .

    • New Domain: phpgdo.com :)

    • New protected/config.php variable. GDO_JSON_DEBUG toggles JSON_PRETTY_PRINT globally. Defaults to false.

    • Filewalker is an own package now, independent from any dependency.

    • Support for the bower package manager has been dropped.

    • GDO_User got these fields moved to separate modules via module setting engine; user_email, user_country, user_credits, user_gender, user_real_name, user_password and more...

    • Module_Tests is now a core module. See Module_TestMethods for auto-generated testing. All test cases now pass for the very core and testing modules.

    • Module_Cronjob is not a core module anymore.

    • Module_File is not a core module anymore. (thx flederohr)

    • Module_CSS is not a core module anymore.

    • Module_Javascript is not a core module anymore.

    • Module_Country is not a core module anymore.

    • Module_Mail is not a core module anymore.

    • Module_Admin is now a core module.

    • I am now making use of type annotations for scalar- and return values.

    • The core has been rewritten with better CLI and Chatbots in mind.

    • A slightly changed bunch of core modules. As their stuff is almost always needed anyway. These do not require an additional module repository.

    • [Module_Websocket](https://github.com/gizmore/phpgdo-websocket/Module Websocket.php) makes now use of the new rendering method renderBinary - seems perfect to fuse websocket szenarios with a binary GDT driven protocol.

    • There is no more global GDT_Response with hacks and quirks. Methods can return any GDT now. The response code is stored in Application.

    • Module_Mail now takes care of all email setting and configuration stuff. Users can approve emails on their behalf. No more email stuff in Module_Account or elsewhere. Similiar goes for other user settings like password or last activity.

    • Module_Mail now needs a Mailer Provider module to actually send mails. ( TODO). Planned is to use own mailer until i find time to write a better 3rd party module.

    • GDT start completely blank without any attributes now. This is important to be able to serve (P)lain(O)ld(O)bjects.

    • Methods may now return a GDT, a string or null/none.

    • GDO now inherits from GDT. This means you can return it as a result and call rendering on it.

    • New License! GDOv7 is now my exclusive own property. Of course you can still fork, use and enhance GDOv6.