Releases: sopel-irc/sopel
7.1.4
7.1.3
Changes between 7.1.2 and 7.1.3
Plugin changes
- announce: fix Python 3 compatibility [#2166]
- reddit: fix handling post links with parameters, e.g. sorting [#2163]
- reddit: silence PRAW update notices [#2171]
- tell: don't strip IRC formatting at message start [#2162]
- translate: better error handling in
.mangle[#2160] - wikipedia: skip messagebox template contents for cleaner snippets [#2159]
- wikipedia: improve handling of links to transcluded sections [#2168]
Core changes
- Fixed showing plugin information in
sopel-pluginsCLI tool even if loading
the plugin fails [#2135] - Stop warning about
parse == boolconfiguration settings in 7.x [#2164]- This warning will return in Sopel 8.0, a major release which will be a
more natural time for plugin maintainers to release compatibility updates.
- This warning will return in Sopel 8.0, a major release which will be a
- Fixed
requestsrequirement on Python 3.3 [#2172]
7.1.2
Accidentally tagged to the wrong branch at first, but corrected before any package was published to PyPI.
Changes between 7.1.1 and 7.1.2
Plugin changes
- invite: handle invalid arguments better [#2151]
- translate: handle failed API requests better [#2153]
- wikipedia: warn if deprecated
lang_per_channelsetting is used [#2143]
Core changes
7.1.1
Changes between 7.1.0 and 7.1.1
Plugin changes
- safety: fixed loading bad-domains list on py2 [#2103]
- tell: fixed hard-coded verb when trying to
.askthe bot [#2106] - tld: fixed
.tldcache clearcommand corrupting internal state [#2077]
Core changes
- Fixed
BooleanAttributewithdefault=True[#2084] - Ignore invalid URLs when triggering URL callbacks [#2086]
- Fixed infinite loop in WHO tracking on certain networks [#2091]
- Ignore problematic environment variables in tests [#2094]
- Improved MODE tracking even more [#2097, #2098]
- Updated, clarified, and expanded even more documentation [#2090,
#2096, #2105, #2108]
7.1.0
Changes between 7.0.7 and 7.1.0
Admittedly a few months later than originally intended, Sopel 7.1.0 is ready
to go. We've focused on polish this time around, both in documentation and
features. Lots of little fixes add up to make something good—over 140 pull
requests were merged for this release.
We will now begin work on Sopel 8.0, focusing primarily on
modernization—dropping the end-of-life Python versions that 7.x still
supports—and on unbundling the core plugins so they can be updated separately.
None of these plans are new, but we figured a reminder was in order as it's
been some months since they last came up in Sopel 7.0's release notes!
As always, you can keep up with development and give us feedback on
[GitHub][sopel-github], [IRC][sopel-irc], or [Twitter][sopel-twitter].
Important note: Sopel's IRC channel has moved from freenode to Libera Chat
([#2072][]). You will find us in #sopel as always, but at a new network
address: irc.libera.chat. At least some of the old guard will remain on
freenode for the foreseeable future, to guide anyone running an older Sopel
version to the new channel (and encourage them to update Sopel, too).
Plugin changes
- Removed
instagramplugin, as it was not possible to fix after changes to
the site [[#2000][]] - Merged
etymologyplugin functionality intowiktionaryplugin [#1178,
[#2064][]] - admin:
- adminchannel:
- announce: speed up by sending to multiple channels if the server supports it
[[#1859][], [#2048][]] - choose: safely handle formatted choices [[#1965][]]
- currency:
- emoticons: added
.smirkcommand & action responses [[#1899][]] - find: accept either
/or|as delimiter, and format replacement text as
bold so it's easier to see the correction [[#1993][], [#2014][],
[#2066][]] - find_updates:
- ip: querying by nickname is no longer case-sensitive [[#1915][]]
- isup: be more specific about what's wrong if the site looks down [[#1940][],
[#1950][], [#2063][]] - meetbot: tweaked handling of path settings [[#1959][]]
- ping: added
.pingcommand [[#1875][]] - pronouns: now understands two-word aliases for the full pronoun groups
[[#2069][]] - reddit:
- remind: added commands to count/forget reminders [[#2007][]]
- safety: switched away from obsolete list source [[#2012][]]
- tell: strip
@from the start of nicknames [[#1994][]] - tld: rewritten to be more robust [[#1939][], [#1949][], [#1968][],
[#1970][], [#1985][], [#2076][]] - url:
- tweaked to improve reliability of title fetching [[#1871][]]
- added a setting to control automatic titles [[#1897][]]
- adapted to upstream dependency changes [[#1989][]]
- add
.urlexclude/.urlallowcommands [[#2028][]] - auto-title now ignores URLs in any other command [[#2028][]]
- fixed showing an error when appropriate [[#2029][]]
- wikipedia:
- xkcd: show latest comic when base URL is linked [[#1858][]]
- Built-in plugins' output formats were checked for consistency [[#1937][]]
- Improved plugin documentation/help [[#1878][], [#1952][], [#1954][],
[#2002][], [#2035][]] - Updated some plugins to use new API features [[#1879][], [#1892][],
[#1894][], [#1995][]] - Minor code style fixes and cleanup [[#1856][], [#1880][], [#1910][],
[#1953][], [#1960][]]
Core changes
- Sopel's outbound flooding protection is now configurable [[#1929][]]
core.modessetting now only assumes+if no sign is included in its
value [[#1941][]]- Improved documentation of core configuration settings [[#1861][], [#1866][],
[#2006][]] - Documented use of environment variables to override parts of Sopel's
configuration [[#1901][]] - Improved command-line error messages [[#2047][]]
- Unexpected settings in config files will now generate warnings [[#1973][]]
- Improved SASL handling [[#1928][], [#1971][], [#1976][], [#1977][]]
- Change/recover in-use nick; fix
USERsyntax [[#1930][]] - Improved channel mode tracking [[#1980][]]
- Improved channel member tracking [[#1997][]]
- Reduced log spam from core
MODEhandling logic [[#1951][]] - Refactored the Rule system [[#1873][], [#1894][], [#1904][], [#2011][]]
- Reworked IRC connection timeout management [[#2041][]]
- Fixed loading callables that should be ignored from plugins [[#1936][]]
- Streamlined how the bot generates help text for plugin commands [[#2071][]]
- Fixed signal handling (e.g.
^C) if bot is not connected [[#1893][]] - Fixed crash if a plugin tries to
sys.exit()[[#1943][]] - Fixed crash if IRC backend is uninitialized and logging to a channel is
enabled [[#2020][]] - Improved scheduled job handling [[#1891][], [#1927][]]
- Improved test coverage [[#1983][], [#1984][]]
- Improved test infrastructure [[#1905][]]
- Minor code style fixes and refactoring [[#1864][], [#1890][], [#1933][],
[#1942][], [#1969][], [#1998][], [#2005][], [#2023][]]
API changes
- Moved plugin decorators to
sopel.plugin;sopel.moduleis now deprecated
[[#1898][], [#1906][], [#1924][], [#1967][]]- Decorators that are new in Sopel 7.1 or later will appear only in
sopel.plugin;sopel.modulecontains only a snapshot of what was
available in Sopel 7.0 and will not be updated - The old
sopel.moduleimports will be removed in Sopel 9.0
- Decorators that are new in Sopel 7.1 or later will appear only in
- The
intentdecorator is replaced byctcp, andtriggerobjects now have
actcpproperty [[#1975][]]- "Intents" were an IRCv3 spec idea that never took off, and the draft specs
for them are now long abandoned - See [#1683][] for the full deprecation and removal plan
- "Intents" were an IRCv3 spec idea that never took off, and the draft specs
sopel.toolsfunctions related to command patterns/regex are now deprecated
[[#1944][], [#2027][], [#2034][]]tools.get_inputis now deprecated [[#1872][]]bot.(un)register_url_callbackfunctions are deprecated [[#2049][]]- These are simply no longer necessary after the Rule system rewrite
test_toolssubmodule is now deprecated [[#2003][]]- Sopel now provides a
pytestplugin; use that instead
- Sopel now provides a
- The use of whitespace after
$nickplaceholders in plugin rules is now less
confusing [[#1920][]] - Sopel now explicitly supports running plugins' event handlers before/after
core has processed the event [[#2018][]] - Added more tools related to
tools.time.seconds_to_human[[#2026][]] - Added a warning when plugins use
bot.memory['url_callbacks'][[#2033][]] - Added
SopelIdentifierMemoryclass totools[[#1938][]]- This offers a less error-prone alternative to using a plain
SopelMemory,
which often requires manually casting user input to theIdentifiertype
- This offers a less error-prone alternative to using a plain
- New
plugin.require_bot_privilegedecorator andbot.has_channel_privilege
method [[#1982][]] - Added
plugin.findandplugin.searchdecorators [[#1881][]] - Added
plugin.rule_lazy,plugin.find_lazy, andplugin.search_lazy
decorators [[#2037][]]- These are for plugins to define rules that depend on the contents of
Sopel's settings object (bot.config)
- These are for plugins to define rules that depend on the contents of
bot.saynow allows even more control over variable-length content via
optionaltruncationandtrailingparameters [[#1958][], [#2050][]]bot.triggernow has aplainattribute, containing the received line with
formatting stripped [[#1918][]]Channelobjects now contain information about channel modes [[#1980][]]- Added a
BooleanAttributesetting type [[#2044][], [#2059][]]- Use of
ValidatedAttributewithparse=boolis now considered deprecated
so we can remove the monkey-patching in a future release, and will raise a
warning if used
- Use of
- Added a
SecretAttributesetting type, andis_secretparameter to
ValidatedAttribute[[#1879][]] plugin.examplenow supports running plugin tests with [VCR.py][pypi-vcrpy]
support [[#1853][]]bot.isupportwill return an emptyCHANMODESif unadvertised [[#2015][]]- Make
tools.timeandtools.websubmodules available with justfrom sopel import tools[[#1948][]] - Added new optional
warning_inandstack_frameparameters to the
tools.deprecateddecorator, which now outputs its warning via logging
[[#1872][], [#2046][], [#2058][]] MockIRCServermethods now block by default [[#2065][]]- Improved documentation for writing & testing plugins [[#1923][], [#1964][],
[#2013][], [#2067][]] - Improved documentation of various Sopel components:
- Tweaked documentation styles for easier readability [[#1932][]]
- Note: We plan to change the documentation theme entirely for Sopel 8, to
something much more modern
- Note: We plan to change the documentation theme entirely for Sopel 8, to
[#1763...
7.0.7
Changes between 7.0.6 and 7.0.7
Core changes
- Make sure Sopel continues to install smoothly on all of its supported Python
versions after November 2020 changes inurllib31.26 - Updated a few spots in tests and documentation to keep our 7.0.x maintenance
branch in tip-top shape