To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

ChangeLog/1.9.0: Difference between revisions

From ZNC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 18: Line 18:
* Don't send invalid 333 (RPL_TOPICWHOTIME) to client if topic owner is unknown {{GH|1889}}
* Don't send invalid 333 (RPL_TOPICWHOTIME) to client if topic owner is unknown {{GH|1889}}
* Fix build with SWIG 4.2.0
* Fix build with SWIG 4.2.0
* Fix handling of timezones when parsing server-time tags received from server {{GH|1857}} {{GH|1773}}


== Modules ==
== Modules ==
* Rewrite how modpython loads modules from <code>imp</code> to <code>importlib</code>: this adds support for Python 3.12, but bumps the minimum supported python version to 3.4. Also now it's possible to structure the module as a python package (a subdirectory with <code>__init__.py</code> and other .py files), however it no longer supports loading a C python extension through modpython - just write the module on C++ in such case instead of python. {{GH|1724}}
* Rewrite how modpython loads modules from <code>imp</code> to <code>importlib</code>: this adds support for Python 3.12, but bumps the minimum supported python version to 3.4. Also now it's possible to structure the module as a python package (a subdirectory with <code>__init__.py</code> and other .py files), however it no longer supports loading a C python extension through modpython - just write the module on C++ in such case instead of python. {{GH|1724}}
== Notes for package maintainers (TODO) ==
* cctz
* cmake
* libargon2
* python


== Internal ==
== Internal ==
* Document more functions.
* Document more functions.
* Use steady clock for cache map and for sockets to fix certain issues with leap seconds and DST


== TODO: to triage ==
== TODO: to triage ==
Line 45: Line 53:
* sAccount for consistency {{git|0a0ce543}}
* sAccount for consistency {{git|0a0ce543}}
* Add account to joins for the log module. {{git|47b815ae}}
* Add account to joins for the log module. {{git|47b815ae}}
* Don't duplicate the map of cap handlers per client {{git|50a3226b}}
* Move CClient constructor body to .cpp {{git|9eebb1ff}}
* Remove done todo {{git|64da93f7}}
* Show more details how exactly cctz is used {{git|3a5f8901}}
* Fix build with old cmake {{git|e6ffa045}}
* Switch to upstream cctz {{git|c5643d71}}
* cygwin qt doesn't know qsizetype yet {{git|d532dcbd}}
* cygwin qt doesn't know qsizetype yet {{git|d532dcbd}}
* Implement cap negotiation 3.2 on server side {{git|c15fc63c}}
* Make it possible for modules to send values in CAP LS {{git|d49168b9}}
* Send multiline CAP LS response for IRCv3.2 clients {{git|b57d794a}}
* Use patched cctz for now {{git|6f199ac0}}
* Add test for different timezones {{git|4fc9429d}}
* Add test for different timezones {{git|4fc9429d}}
* Upload tarball as artifact in CI {{git|87af1a1a}}
* Upload tarball as artifact in CI {{git|87af1a1a}}
* Build cctz as part of znclib when not found {{git|9de3f908}}
* Split dependencies of znclib target {{git|f9693e47}}
* Copy relevant parts of cctz to the tarball {{git|aaead6f1}}
* Use std::chrono and cctz instead of messing with TZ {{git|64359328}}
* Use steady clock for cache map {{git|c5befe3d}}
* Update Csocket submodule {{git|42fdf9b4}}
* Update Csocket submodule {{git|42fdf9b4}}
* CI: update comment {{git|7c6dc23f}}
* CI: update comment {{git|7c6dc23f}}

Revision as of 21:48, 8 February 2024

← 1.8.2 ZNC 1.9.0 git →



See https://github.com/znc/znc/compare/znc-1.9.0...master for a list of changes since 1.9.0 stable.

New

  • Require C++17 compiler. That is, GCC 8+ or Clang 5+. (#1887)
  • Remove autoconf, leave only CMake as the build system. The configure script is now merely a wrapper for CMake, and accepts mostly the same parameters as the old configure. Minimum supported CMake version is 3.13.
  • Update password hashing algorithm from SHA-256 to Argon2id (if libargon2 is installed). Existing passwords are transparently upgraded upon login. (#1879)
  • Support for capability negotiation 3.2 and cap-notify. ZNC now has API, using which modules can easily implement new capabilities: if server supports a cap, it will automatically be offered to clients which support cap-notify and ZNC will notify the module when the capability is enabled or disabled for server and for each client. (#1859)

Fixes

  • Don't send invalid 333 (RPL_TOPICWHOTIME) to client if topic owner is unknown (#1889)
  • Fix build with SWIG 4.2.0
  • Fix handling of timezones when parsing server-time tags received from server (#1857) (#1773)

Modules

  • Rewrite how modpython loads modules from imp to importlib: this adds support for Python 3.12, but bumps the minimum supported python version to 3.4. Also now it's possible to structure the module as a python package (a subdirectory with __init__.py and other .py files), however it no longer supports loading a C python extension through modpython - just write the module on C++ in such case instead of python. (#1724)

Notes for package maintainers (TODO)

  • cctz
  • cmake
  • libargon2
  • python

Internal

  • Document more functions.
  • Use steady clock for cache map and for sockets to fix certain issues with leap seconds and DST

TODO: to triage