Version 0.83.5 The minimum supported Python version has been bumped to 2.6. utils.str.perlVariableSubstitute is deprecated in favor of using Python's string.Template directly. perlVariableSubstitute will be removed in a future release. Factoids' config variable supybot.plugins.Factoids.factoidPrefix has been replaced by supybot.plugins.Factoids.format, which allows the user to determine exactly how replies to Factoid queries are formatted. supybot-botchk no longer runs supybot inside an instance of /bin/sh. Version 0.83.4.1 Simple bug-fix release for a couple changes that were introduced last minute before the previous release. No incompatibilities. Version 0.83.4 This release contains fixes for Python2.6 compability as well as a re-written Google plugin which uses the AJAX API. The re-written plugin gained a translate command and no longer needs an API key. ChannelLogger has a new config variable, supybot.plugins.ChannelLogger.enable, which can be used on a per-channel basis to determine whether that channel is logged. The RSS announce command has been restructured into the commands "announce list", "announce remove", and "announce add" in order to simplify the command's use. The supybot.directories.plugins config variable now determines its global directory dynamically instead of adding the directory to the value. This means values like '/usr/lib/python2.5/site-packages/supybot/plugins' can be removed from the variable. This should help ease transitioning a Supybot config from one Python release to another. Incompatibilities: supybot.plugins.Google.safeSearch has been renamed to supybot.plugins.Google.searchFilter supybot.plugins.Channel.banmask has been removed in favor of a new supybot.protocols.irc.banmask config variable. This general config variable is used by the various commands which would need to know what style of banmask to use. Version 0.83.3 Overdue bug fix and Python2.5-compatible release. No significant changes to worry about from the user perspective. Version 0.83.2 Mainly bug fix release. The most noticeable change being a value of 'default' for supybot.drivers.module will use Socket instead of Twisted. Version 0.83.1 No incompatibilities, just fixing an important bug with plugin loading. Version 0.83.0 This far overdue release contains mostly bug-fixes. Incompatibilities: Changed the prefixName keyword argument (which appears in various places in callbacks.py and the reply-related irc methods) to prefixNick. Version 0.83.0rc3 This release candidate contains mostly bug-fixes. Incompatibilities: utils.changeFunctionName was moved to utils.python.changeFunctionName Version 0.83.0rc2 This release candidate contains a few bug-fixes and some plugins we forgot in the last RC. Otherwise, everything is compatible. Version 0.83.0rc1 There have been some fairly significant changes since our last release. This means that you should uninstall your previous version before installing this version. First, plugins are now a directory of files rather than a single file. This makes it much easier for an individual plugin to supply any 3rd-party modules it may depend on and resolves some bugs we had with reloading plugins. supybot-plugin-create (nee supybot-newplugin) has been updated to reflect this. A side effect of using a directory-based plugin is that @load/@reload are now case-sensitive. "@load foo" is not the same as "@load Foo". As part of the conversion to the new plugin format, some plugins were broken up into more focused plugins. Also, not all of the plugins that we used to ship are part of this release. Some we moved to the supybot-plugins package and some others (which would be candidates for supybot-plugins) have yet to be converted to the new format. Second, we've updated the scripts that ship with Supybot. As noted in the previous section, supybot-newplugin is now named supybot-plugin-create. We've also added the following scripts: supybot-botchk - Handy script for starting the bot and keeping it running. Ideal for having cron automatically start the bot. supybot-plugin-doc - Generates documentation for the specified plugin(s). Currently, the documentation is generated using Structured TeXt so that it can easily be uploaded to our website. supybot-plugin-package - The beginning of a script to make a plugin package which can be uploaded to our website for general consumption. supybot-test - Runs a plugin's test suite. Third, we've broken supybot.utils into focused sub-modules. There's no longer a supybot.fix module and we now have the following modules: supybot.utils.file - utilities for dealing with files (e.g. the old supybot.utils.transactionalFile is now supybot.utils.file.AtomicFile) supybot.utils.iter - utilities for dealing with iterables (all, any, partition, groupBy, choice, etc) supybot.utils.gen - general purpose utilities which are imported into the supybot.utils namespace supybot.utils.net - utilities for dealing with the network supybot.utils.python - utilities for dealing with Python supybot.utils.seq - utilities for dealing with sequences supybot.utils.str - utilities for dealing with strings (including our new format() function) supybot.utils.structures - general purpose structures used in Supybot supybot.utils.web - utilities for dealing with the web (used to be supybot.webutils) Fourth, we've added source-nested plugins (using the class callbacks.Commands). This allows you to group similar commands together. Some examples are: Channel.{ban add,ban list,ban remove} User.{hostmask add,hostmask list,hostmask remove} Fifth, we've removed the privmsgs module. All of the functionality that was offered in that module is now available by using commands.wrap. Use of this is documented at: http://supybot.com/documentation/help/tutorial/wrap Sixth, we've renamed some plugin-related API changes. Some classes had their names changed. The old names are still available for backwards-compatibility. callbacks.Privmsg -> callbacks.Plugin callbacks.PrivmsgCommandAndRegexp -> callbacks.PluginRegexp callbacks.IrcObjectProxy -> callbacks.NestedCommandsIrcProxy callbacks.PrivmsgRegexp was removed since its functionality is covered by setting using PluginRegexp. Also, the prototype for a plugin's __init__ method changed: def __init__(self): -> def __init__(self, irc): Remember to pass the irc object on when you call the parent class's __init__ method. Version 0.80.0 We *finally* hit 0.80.0! This release is completely compatible with the last release candidate. An update to Babelfish may cause an error message to be displayed in the console when the bot is first run. The error message should be gone when the bot is restarted. We also have a new community website at http://www.supybot.com/ where our users can submit their own plugins, view/download other people's plugins and discuss all things Supybot-related. Version 0.80.0rc3 Another bugfix release. This one was pretty important as it actually makes supybot.database.plugins.channelSpecific work properly. Version 0.80.0rc2 supybot.databases.plugins.channelSpecific.channel was renamed to supybot.databases.plugins.channelSpecific.link. supybot.databases.plugins.channelSpecific.link.allow was added, which determines whether a channel will allow other channels to link to its database. Infobot is no longer deprecated and the following changes were made to its config variables: supybot.plugins.Infobot.answerUnaddressedQuestions was renamed to supybot.plugins.Infobot.unaddressed.answerQuestions. supybot.plugins.Infobot.snarfUnaddressedDefinitions was renamed to supybot.plugins.Infobot.unaddressed.snarfDefinitions. supybot.plugins.Infobot.unaddressed.replyExistingFactoid was added to determine whether the bot will reply when someone attempts to create a duplicate factoid. Version 0.80.0pre6 Another bugfix release. No incompatibilities known. The only registry change is that supybot.databases.users.hash has been removed. Version 0.80.0pre5 Completely bugfix release. No incompatibilies known. Version 0.80.0pre4 Mainly a bug fix release. This will likely be the last release before 0.80.0final, but we're gonna let it stew for a couple weeks to attempt to catch any lingering bugs. ansycoreDrivers is now deprecated in favor of socketDrivers or twistedDrivers. supybot.databases.plugins.channelSpecific.channel is now a channelValue so that you can link specific channels together (instead of all channels being linked together). For those of you that use eval and/or exec, they have been removed from the Owner plugin and are now in sandbox/Debug.py (which you'll have to grab from CVS). Version 0.80.0pre3 The database format for the Note plugin has changed to a flatfile format; use tools/noteConvert.py to convert it to the new format. Ditto that for the URL database. FunDB is deprecated and will be removed at the next major release; use tools/fundbConvert.py to convert your old FunDB databases to Lart and Praise databases. If you had turned off supybot.databases.plugins.channelSpecific, your non-channel-specific database files had gone directly into your data/ directory. We had some problems with poor interactions between that configuration variable and channel capabilities, though, so we changed the implementation so that non-channel-specific databases are considered databases of a single (configurable) channel (defaulting to "#"). This will also help others who are converting from channel-specific to non-channel-specific databases, but for you who've already made the switch, you'll need to move your database files again, from data/ to data/# (or whatever channel you might change that variable to). supybot.channels doesn't exist anymore; now the only list of channels to join is per-network, in supybot.networks..channels. We weren't serializing supybot.replies.* properly in older versions. Now we are, but the old, improperly serialized versions won't work properly. Remove from your configuration file all variables beginning with "supybot.replies" before you start the bot. The URL database has been changed again, but it will use a different filename so you shouldn't run into conflicts, just a newly-empty database. We upgraded the SOAP stuff in others; you may do well to do a setup.py install --clean this time around. Version 0.80.0pre2 Many more bugs have been fixed. A few more plugins have been updated to use our new-style database abstraction. If it seems like your databases are suddenly empty, look for a new database file named Plugin.dbtype.db. We've also added a few more configuration variables. Version 0.80.0pre1 Tons of bugs fixed, many features and plugins added. Everything should be entirely compatible; many more configuration variables have been added. Version 0.79.9999 Some more bugs fixed, added a few features and a couple configuration variabless. This should hopefully be the last release before 0.80.0, which will finally bring us to pure Beta status. Version 0.79.999 Some bugs fixed, but the ones that were fixed were pretty big. This is, of course, completely compatible with the last release. Version 0.79.99 Many bugs fixed, thanks to the users who reported them. We're getting asymptotically closer to 0.80.0 -- maybe this'll be the last one, maybe we'll have to release an 0.79.999 -- either way, we're getting close :) Check out the ChangeLog for the fixes and a few new features. Version 0.79.9 We've changed so much stuff in this release that we've given up on users upgrading their configuration files for the new release. So do a clean install (python2.3 setup.py install --clean), run the wizard again, and kick some butt. (It's rumored that you can save most of your old configuration by appending your new configuration at the end of your old configuration and running supybot with that new configuration file. This, of course, comes with no warranty or guarantee of utility -- try it if you want, but backup your original configuration file!) Version 0.77.2 This is a drop-in replacement for 0.77.1, with two exceptions. The configuration variable formerly known as "supybot.plugins.Services.password" is now known as "supybot.plugins.Services.NickServ.password", due to the fact that there might be different passwords for NickServ and ChanServ (and ChanServ passwords are per-channel, whereas NickServ passwords are global). If you're using the Services plugin, you'll need to make this change in order to continue identifying with services. The configuration variable formerly known as "supybot.plugins.Babelfish.disabledLanguages" is now known as "supybot.plugins.Babelfish.languages". The configuration variable now accepts the languages that *will* be translated as opposed to ones that are *not* translated. Tests and the developer sandbox are not longer delivered with our release tarballs. If you're a developer and you want these, you should either check out CVS or download one of our weekly CVS snapshots, available at http://supybot.sourceforge.net/snapshots/ . Version 0.77.1 This is a drop-in replacement for 0.77.0 -- no incompatibilities, to out knowledge. Simply install over your old installation and restart your bot :) Version 0.77.0 Setup.py will automatically remove your old installations for you, no need to worry about that yourself. Configuration has been *entirely* redone. Read the new GETTING_STARTED document to see how to work with configuration variables now. Your old botscripts from earlier versions *will not* work with the new configuration method. We'd appreciate it if you'd rerun the wizard in order for us to find any bugs that remain in it before we officially declare ourselves Beta. Note also that because of the new configuration method, the interface for plugins' configure function has changed: there are no longer any onStart or afterConnect arguments, so all configuration should be performed via the registry. Channel capabilities have been changed; rather than being #channel.capability, they're now #channel,capability. It's a bit uglier, we know, but dots can be valid in channel names, and we needed the dot for handling plugin.command capabilities. tools/ircdbConvert.py should update this for you. The on-disk format of the user/channel databases has changed to be far more readable. A conversion utility is included, as mentioned before: tools/ircdbConvert.py. Run this with no arguments to see the directions for using it. Uh, we were just kidding about the upgrade script in 0.76.0 :) It'll be a little while longer. We do have several little upgrade scripts, though. Version 0.76.1 Almost entirely bugfixes, just some minor (and some less minor) bugs that need to get in before we really start hacking on the next version. Should be *entirely* compatible with 0.76.0. Version 0.76.0 Major bugfix release. A great number of bugs fixed. This is the last release without an upgrade script. The only hiccup in the upgrade from 0.75.0 should be that you'll need to update your botscript to reflect the removal of the debug module. We'd rather you use supybot-wizard to generate a new botscript, of course, but if you insist on modifying your existing botscript, take a look at to see what you need to do. Version 0.75.0 Don't forget to reinstall (i.e., run "python setup.py install" as root). Sometimes it even does good to remove the old installation; $PYTHON/site-packages/supybot can be removed with no problems whatsoever. You will need to re-run supybot-wizard and generate a new botscript. The Infobot plugin has been removed from this release; it's not ready for prime time. If you're interested in getting it running (i.e., you want full Infobot compatibility and aren't satisfied with either MoobotFactoids or Factoids) then swing over to #supybot and we can discuss the tests. We simply don't know enough about Infobot to make sure our Infobot plugin is an exact replica, and need someone's help with making the changes necessary for that.