Releases: PyLink/PyLink
PyLink 0.8-alpha4
Major changes in this snapshot release:
- SECURITY: Forbid SSLv2 and SSLv3 in SSL socket creation (0fbf9e1)
- Configurable nicks for services (per-net and global, #220, #229)
- Resolve server hostnames when connecting (#158).
- protocols/ts6: fix incorrect WHOIS syntax causing connection abort (6060a88)
- protocols/nefarious: fix bad
/join 0handling causing connection abort (b1e138d) - relay: forbid linking two channels on the same network (e47738c)
- protocols: various fixes for mode definitions, including missing
+ihandling on ts6 and unreal (26df48c, 3e19e9c) - Consistent defaults to ping frequency and timeout (now 90 and 180 seconds respectively)
- Example conf: fix various typos (0edb516, cd4bf55) and be more clear about link blocks only being examples
- Various freezes and crash bugs fixed (dd08c01, 1ad8b2e, 504a9be, 5f2da1c)
Full diff: 0.8-alpha3...0.8-alpha4
PyLink 0.8-alpha3
- relay: support relaying a few more channel modes (flood, joinflood, freetarget, noforwards, and noinvite)
- Introduce a new (WIP) API to create simple service bots (#216).
- The main PyLink client now spawns itself with hideoper whenever available, to avoid filling up
/lusersand/stats P/p. (#194) - The
fantasyplugin now supports per-bot prefixes; see example conf for details. - Purge c_ and u_ prefixes from PyLink's internal named modes definitions (#217).
- Various documentation updates.
- New
gamesplugin, currently implementing eightball, dice, and fml. - Various fixes to the Nefarious protocol module (89ed92b...c82cc9d, #209, #210).
PyLink 0.8-alpha2
- protocols/nefarious: fix incorrect decoding of IPv6 addresses (0e0d96e)
- protocols/(hybrid|nefarious): add missing BURST/SJOIN->JOIN hook mappings, fixing problems with relay missing users after a netjoin
- protocols/unreal: fix JOIN handling storing channels with the wrong case (b78b911)
- protocols/inspircd: fix wrong username being sent when formatting KILL text
- commands: Fix
loglevelcommand being ineffective (#208) - relay: Fix various race conditions, especially when multiple networks happen to lose connection simultaneously
- API changes: many commands from
utilswere split into eitherIrc()or a newstructuresmodule (#199)
PyLink 0.8-alpha1
PyLink 0.7.2-dev
Bug fix release:
- Support mixed Unreal 3.2/4.0 networks (#193)
- More complete APIs for checking channel access (#168)
- New servprotect plugin for KILL/SAVE flood protection. This was split out of relay due to expiringdict not being installable via pip.
- Documentation update (protocol module variables, mention new WHOIS, VERSION hooks)
- Minor fixes for Windows support. (#183)
- SIGTERM should now shut down the daemon cleanly. (#179)
8ee64d5 readme: mention why expiringdict is broken in pip3
528dfdb pmodule-spec: mention cmodes, umodes, prefixmodes variables
cb3187c ts6_common: do reverse nick lookup for KICK targets
55afa1b unreal: log instances of PUID manging to debug
75984c3 ts6_common: add abstraction to convert UIDs->outgoing nicks
9f20f8f unreal: update SJOIN matching regex
4157cb5 ts6_common: use a better variable name for _getSid()
e687bb0 unreal: remove outfilter hack, this doesn't handle text including PUIDs properly
0136ff2 example conf: mention using spaces to indent
86781d3 README: fix typo
9fde35f relay: handle server name conflicts more correctly
c01b449 relay: treat network names case-sensitively
02ec508 unreal: fix super() syntax in SQUIT handling
16779aa classes: remove lower() call when storing netname
6acfbb4 unreal: case-desensitize legacy server names when handling user introductions from them
62da384 README: unreal 3.2 mixed networks are supported now, sorta
5d0f450 Merge branches 'master' and 'devel' into devel+unreal32
9561675 unreal: add warnings & more descriptive errors regarding mixed_link
f3ceefe unreal: initialize legacy users on the right server
efd13d2 example-conf: add sample unreal block, documenting mixed_link
44b102f networks: allow all opers to run 'autoconnect'
13e9717 docs: Add a PyLink oper guide
c4273e6 unreal: fix for Python 3.4 support
4f08894 unreal: typofix
10be962 unreal: actually return the hook data for NICK & KILL
44dc856 unreal: use an awful outFilter hack to convert PUIDs->nicks when sending outgoing commands
74ee1de unreal: Start work on some really hacky Unreal 3.2 compat code (#193)
3e7255e classes: remove ts6-specific hack in Protocol.removeClient
5140728 README: mention the implications of #193
fd32bbf unreal: fix typo in last commit
efcc30c unreal: don't confuse legacy SERVER introductions from our uplink with protocol negotiation
fab404f Merge branches 'master' and 'wip/relay-fixes' into devel
3a8b0aa relay: catch OSError too when loading DB
1bcadbe Use more flexible shebangs (/usr/bin/env python3)
9e33081 relay: fix typo in comment
d213443 relay: experimental fix for #183
8b7a9f6 Merge pull request #189 from DanielOaks/devel+ignore-env
d287a22 gitignore: Ignore env folder for virtualenvs
5851901 coreplugin: modularize shutdown routines, handle SIGTERM->shutdown
b100f30 fantasy: break if IRC object isn't ready
cf36343 pylink: use abspath() to get the source directory
662d1ce inspircd: warn that inspircd 2.2 support is experimental
4a0ee6f relay: be more thread-safe via dict.copy()
305db9f utils: also don't crash in applyModes for bad mode targets
e70dfb0 Merge branch 'master' into devel
08c3b99 relay: fix ambiguous logging in KICK blocking
4125ff3 pylink: prettier "Loaded plugins" log message on start
d5d3c24 inspircd: define minimum & target protocol versions instead of hardcoding them
70b9bde unreal: fix a little typo
ad517f8 unreal: bump protocol version to 4000
19ac5b5 protocols: drop underscores from pre-defined opertypes
c71d2bf coreplugin: sync opertype changes in handle_operup
9278e56 coreplugin: normalize WHOIS output format
44083cc core: Store opertype info in all IrcUser objects
bdbc102 Merge branch 'master' into devel
fbd8659 classes: spawn PyLink clients with a custom opertype
a91fa46 Regenerate pydoc documentation
c8a3514 hooks-reference: add VERSION and WHOIS
f618b96 inspircd: add VERSION handling
00552a4 Move detailed version string generation to utils
23056e9 protocols & coreplugin: add handlers for VERSION requests
45c2abd Irc: run initVars() on connect too
aedb056 relay: actually, just kill handle_spawnmain
b2b04c8 classes: really ignore errors when shutting down sockets
ce3d3cf relay: check to make sure network is ready before handling spawnmain
0bb54d8 New servprotect plugin (anti-KILL/SAVE flood)
9fe3373 relay: get rid of kill/save protection
75ec95b Merge branch 'master' into devel
03b53ae Merge branch 'staging' into devel
e183078 protocols: Remove "secret" testing channel name
6962f3b ts6: unset has_eob correctly on reconnects
c176c90 coreplugin: use IrcChannel.getPrefixModes in whois replies
f5f0df5 classes: raise KeyError, not return KeyError...
c86a02e relay: use IrcChannel.getPrefixModes
e948db5 classes: support looking at older versions of prefix modes mappings
d84cfbc utils: simplify prefix modes handling in applyModes
e8b0018 classes: Implement IrcChannel.is(Voice|Halfop|Op)Plus (#168)
ed333a6 classes: implement IrcChannel.isOp, isVoice, getPrefixmodes, etc
8135f3a core: Depluralize prefixmodes mappings (#168)
1d4350c classes: provide IrcChannel objects with their own name using KeyedDefaultdict
544d6e1 utils: add KeyedDefaultdict
PyLink 0.7.1-dev
Bugfix release. Lingering errata which you may still encounter: #183.
0fd0936 utils: don't crash when mode target is invalid
1930739 Revert "Irc: don't call initVars() on IRC object initialization"
2b16f25 classes.Irc: clear state on disconnect, not on connect
a4395ed log: respect child loggers' levels if they are lower than the main one's
46922ce relay: remove dead networks' servers from the servers index unconditionally
f2a2114 Irc: run initVars() on connect too
9cd1635 unreal: fix wrong variable name in handle_umode2
2169a9b utils: actually abort when mode target is invalid
PyLink 0.7.0-dev
Changes from 0.6.1-dev:
d12e70d ts6: unset has_eob correctly on reconnects
5b2c9c5 Add .mailmap
abce18a log: split multi-line channel logs into multiple PRIVMSGs
a8303d0 commands: sort channel list in 'showuser' output
0dd8b80 docs/t: use rawgit links to serve HTML
506ae01 Update autogenerated docs (adding a script to do this now)
d8e5202 world: use a better module description
2adb67d runtests: remove .py extension, only run tests when ran as a script
da7bd64 conf: fix testconf missing the logging: section
557efc3 docs/t: mark hooks-reference as finished in README
9d0fcb5 docs: finish off hooks-reference (#113)
15b35f1 ts6: support charybdis +T mode (closes #173)
359bfcd bots: map 'msg' command to 'say' too
b6889fb irc: fix spacing in certificate fingerprint logging
7f5bc52 relay: fix errors in KILL handling when target isn't in any relay channels
3527960 coreplugin: tell plugins to exit cleanly before closing connections
9b0db81 changehost: modularize, add a command to apply cloaks now, match IPs too
14388d9 utils.getHostmask: add option to return IP address
5fed462 networks: remove networks with autoconnect off in 'disconnect'
8ac5436 relay: allow admins to destroy channels hosted on other networks
4df027c coreplugin: ignore services' attempts to send accountname before user introduction
1ce2725 bots: update help for 'msg' command (reflect changes made for #161)
54dc51a bots: make source client names optional (Closes #161)
34ca973 relay: cleanup, consistently include the function in log.debug calls
a740163 relay: implement DB exporting using threading.Timer, similar to classes.Irc.schedulePing
d531201 Merge branch 'master' into devel
ae8f369 relay: only show networks that are actually connected in LINKED
de1a9a7 relay: various cleanup
eec8e0d log: attempt to remedy #164 (more testing needed)
40d76c8 coreplugin: demote successful oper-up messages to debug
df23b79 commands: reformat 'showuser' output, and show services login info (#25)
decdf14 unreal: don't use updateClient to update hostname of clients internally
2ebdb4b unreal: support services account tracking (#25), fix handle_SVSMODE applying modes on the wrong target
cabdb11 inspircd: implement services account tracking (#25)
0fff91e ts6: implement services account tracking (#25)
cf15bed classes: add services_account field in IrcUser (#25), default 'identified' attribute to empty string instead of None
584f952 conf: check to make sure logging block exists in config
5877031 Merge branch 'master' into devel
21167e8 example conf: use 1 "#" without trailing space for commented-out options
0d4655c core: support multiple channel loggers with DIFFERENT log levels & fix example conf (#83)
669e889 Support configurable SSL fingerprint hash types (Closes #157)
08fd50d Logging improvements, including support for custom file targets (#83)
de84a5b log: default level should be INFO, not DEBUG
cf1de08 commands: support rehashing channel loggers
2503bd3 commands: In rehash, use irc.disconnect() to disconnect networks removed from conf
14efb27 Initial experimental support for logging to channels (#83)
4b939ea ts6: rewrite end-of-burst code (EOB is literally just a PING in ts6)
5a68dc1 Irc: don't call initVars() on IRC object initialization
PyLink 0.6.1-dev
PyLink 0.6.0-dev
Notable changes in this release:
- New "opercmds" plugin:
- This merges some functionality from the bots plugin, but also adds new commands such as
jupe,kill,topic, andcheckban.
- This merges some functionality from the bots plugin, but also adds new commands such as
- New "changehost" plugin - Automated configurable vHost setting on connect.
- Some core changes will break protocol modules and plugins written for older PyLink versions:
- Some functions have been renamed:
utils.nickToUid(irc, nick)->irc.nickToUid(nick)utils.isInternalClient(irc, uid)->irc.isInternalClient(uid)utils.isInternalServer(irc, uid)->irc.isInternalServer(uid)utils.clientToServer(irc, uid)->utils.getServer(uid)utils.getProtoModule(...)->utils.getProtocolModule(...)
- Protocol specification is rewritten, with "Client" and "Server" dropped from the suffix of most outgoing commands: see acdd7db...2fd0a8a.
- Some functions have been renamed:
- exec plugin: add
injectandrawcommands (4e7396b). - exec plugin: support newline (and other) escapes in
exec(375dbe8). - protocols: allow changing remote users' hosts in updateClient (741fed9).
- Speed up and clean up shutdown sequence, fixing hangs due to sockets not shutting down cleanly (#152).
- protocols/unreal: Support cloaking with user mode
+x(#136). - Various bug fixes - see 0.5-dev...0.6.0-dev for a full diff.
PyLink 0.5-dev
The "We're getting somewhere..." release.
Changes
- Bug fixes, all the bug fixes.
Core
- Support IPv6 connections in config.
- The offending hook data is now logged whenever a hook function errors, for more convenient debugging.
- Add sanity checks for autoconnect - delay has to be at least 1 second now, to prevent connect floods that go on without any delay in between!
- Add
irc.reply()to send command replies to callers in the right context (channel or PM). - More base commands are in
coreplugininstead ofcommands.pynow, making the latter reloadable without restart. - Don't crash when REHASH loads a config file that's invalid.
- utils: Replace imp (deprecated) with importlib.
Plugins
- commands: Add a command to set log level (#124).
- commands: Update
irc.botdata(bot:data in config) in REHASH. - fantasy: Support nick prefixes (e.g.
PyLink: help), along with a configurable prefix.
Protocols
- protocols/TS6: Fix SQUIT handling and introduction of SID-less servers (i.e. atheme's
/os JUPE) (#119) - protocols/unreal: Add (experimental) support for UnrealIRCd 4.0.x!
- plugins: More complete INFO logging: plugin loading/unloading, unknown commands called, successful operups
Full diff:0.4.6-dev...0.5-dev