Skip to content

Releases: eggheads/eggdrop

*** Eggdrop v1.10.0 STABLE ***

14 Oct 01:55
Compare
Choose a tag to compare

Greetings, Eggheads!

After a long year and a half, we have finalized another release of Eggdrop- this one is big enough to warrant rolling over to the next version series, 1.10! What makes it so big, you may ask? We'll tell you!

By far, the biggest improvement is something people have been asking for a long time- the inclusion of a Python module! Thanks to a herculean effort by thommey, Eggdrop now comes with a Python module that has full access to the existing Tcl API, so it is feature complete. It requires Python >= 3.8 and supports both threads and async Python allowing it run in parallel to Eggdrop.

One important "feature" notification for python- we're still struggling to correctly handle the bind table in this version, so if you do a '.rehash', you may find that binds are duplicated. Check out the example script 'greet.py' in the python module directory and look at one possible example on how to code unloading binds after a rehash. And for all your other inquiries, please take a look at the examples in the src/mod/python.mod/scripts directory and documentation in doc/PYTHON for an introduction.

Also, we we know there is not a lot of sample material to pull from like there is from the last (gasp) thirty years of Tcl scripts, @thommey has put together a slightly more advanced script to look at. Check out https://github.com/thommey/eggdrop-github-py for a Python script that interacts with GitHub to announce various GitHub events like Commits, Pull Requests, etc. It is still a work in progress but may serve as a solid foundation to create your own python scripting adventures!

We also added a new capability called "autoscripts"- by loading autoscripts.tcl in your config file, you can now download, activate, and configure specially-configured Tcl scripts from the partyline. Responding to user feedback that it is hard to find "Tcl scripts that work", we are working to curate and maintain a repository of commonly-used scripts that can be fully administered from the partyline. Please read doc/AUTOSCRIPTS for all the details and feel free to submit suggestions (and scripts) via #eggdrop on Libera. This is an evolving capability and we welcome your feedback (and bugfinds) on it.

Another big improvement is Eggdrop's ability to identify users based on their IRC server accounts, not just their hostnames. If Eggdrop is on a server that supports WHOX and the IRCv3 capability of account-tracking and extended-join are enabled, Eggdrop can now use the IRC server account a user is logged into as a basis to do things like trigger Tcl binds and auto-op, etc.

One more small "gotcha" change for compiling- Eggdrop now requires openssl development libraries to be installed by default. If you don't have openssl and aren't able to get it installed, you can bypass this check by using ./configure --disable-tls, but of course we don't recommend this. Other changes include the addition of the IRCv3 userhost-in-names and standard-replies capabilities, added a "hidden-host" EVNT bind type that triggers when the bot's own host is successfully hidden via the +x usermode, a got-chanlist EVNT bind that runs once Eggdrop finishes getting the member list of a channel when it joins, and some more documentation and tutorials to help.

We'd like to also thank DasBrain for his work updating code to be Tcl 9 compliant. Tcl 9 was finally released after much anticipation! To the best of our knowledge, these changes make Eggdrop 1.10.0 compliant with Tcl 9. These changes are "under the hood" and are not expected to break existing scripts. The good news though- this should fix the default handling of Emoji and other UTF-8 characters that have previously caused issues with some scripts!

Lastly, in an effort to help new users with the install process, we are hosting an installation file at https://geteggdrop.com/install.sh . Running this file will walk a user through the compilation process, starting by checking for required libraries, then compiling and installing Eggdrop, and finally setting up a basic configuration file to use. We're not quite ready to include it with the core install files yet, but you can easily download it with curl -L geteggdrop.com/install.sh and then run it.

Wow - that's quite the list. You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

Many thanks to those in the community that continue to contribute new ideas and identify areas for improvement- user feedback is very important to us as we continue to drive development in a direction most useful to our users. We invite everyone to idle in #eggdrop on Libera or, even better, participate in the conversation! Thank you for continuing to make this project so rewarding to both us the developers and the IRC community at large!

*** Eggdrop v1.10.0 Release Candidate 2 ***

08 Sep 18:55
Compare
Choose a tag to compare

Thanks so much to the community for testing the release candidate! Among a few other small typos and formatting issues, @michaelortmann discovered an issue with how lookups on accountnames are done, @DasBrain found an issue on how we check user records at join, and Village helped us troubleshoot an issue with correctly detecting the Python version. We've seen several people successfully using this release candidate now, and hopefully we'll have a stable release ready to go soon! In the meantime, please checkout this release candidate and give it a good shake-down for any other hidden bugs that remain. Thanks!

*** Eggdrop v1.10.0 Release Candidate 1 ***

08 Aug 14:06
Compare
Choose a tag to compare

Greetings, Eggheads!

After a long year and a half, we have finalized another release of Eggdrop- this one is big enough to warrant rolling over to the next version series, 1.10! What makes it so big, you may ask? We'll tell you!

By far, the biggest improvement is something people have been asking for a long time- the inclusion of a Python module! Thanks to a herculean effort by thommey, Eggdrop now comes with a Python module that has full access to the existing Tcl API, so it is feature complete. It requires Python >= 3.8 and supports both threads and async Python allowing it run in parallel to Eggdrop. Take a look at the examples in scripts/ and documentation in doc/PYTHON for an introduction.

We also added a new capability called "autoscripts"- by loading autoscripts.tcl in your config file, you can now download, activate, and configure specially-configured Tcl scripts from the partyline. Responding to user feedback that it is hard to find "Tcl scripts that work", we are working to curate and maintain a repository of commonly-used scripts that can be fully administered from the partyline. Please read doc/AUTOSCRIPTS for all the details and feel free to submit suggestions (and scripts) via #eggdrop on Libera. This is an evolving capability and we welcome your feedback (and bugfinds) on it.

Another big improvement is Eggdrop's ability to identify users based on their IRC server accounts, not just their hostnames. If Eggdrop is on a server that supports WHOX and the IRCv3 capability of account-tracking and extended-join are enabled, Eggdrop can now use the IRC server account a user is logged into as a basis to do things like trigger Tcl binds and auto-op, etc.

One more small "gotcha" change for compiling- Eggdrop now requires openssl development libraries to be installed by default. If you don't have openssl and aren't able to get it installed, you can bypass this check by using ./configure --disable-tls, but of course we don't recommend this. Other changes include the addition of the IRCv3 userhost-in-names and standard-replies capabilities, added a "hidden-host" EVNT bind type that triggers when the bot's own host is successfully hidden via the +x usermode, a got-chanlist EVNT bind that runs once Eggdrop finishes getting the member list of a channel when it joins, and some more documentation and tutorials to help.

We'd like to also thank DasBrain for his work updating code to be Tcl 9 compliant. Tcl 9 is currently in beta 3 and will be released "soon" (Eggdrop is very familiar with that timeline). Eggdrop 1.10.0 is compliant with the changes made as of beta 3 and we hope nothing too major will change between now and the stable release, so we should be in good position to be compatible when it does.

Lastly, in an effort to help new users with the install process, we are hosting an installation file at https://geteggdrop.com/install.sh . Running this file will walk a user through the compilation process, starting by checking for required libraries, then compiling and installing Eggdrop, and finally setting up a basic configuration file to use. We're not quite ready to include it with the core install files yet, but you can easily download it with curl -L geteggdrop.com/install.sh and then run it.

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

Many thanks to those in the community that continue to contribute new ideas and identify areas for improvement- user feedback is very important to us as we continue to drive development in a direction most useful to our users. We invite everyone to idle in #eggdrop on Libera or, even better, participate in the conversation! Thank you for continuing to make this project so rewarding to both us the developers and the IRC community at large!

Eggdrop Release v1.9.5 *STABLE*

11 Mar 20:45
Compare
Choose a tag to compare

Well, we've done it again- a new stable release for Eggdrop! This is going to be a "bug fix" version- there isn't a whole lot in the way of new user-facing features here, but there has been a LOT of work done "under the hood". We particularly wanted to push this out sooner rather than later in order to address a few bugs that have been popping up lately. As a quick summary of what we covered:

  • Updated minimum Tcl version from 8.3 to 8.5. This was done mainly to take advantage of the implementation of dicts in Tcl 8.5. We also have been using dicts since 1.9.0 which means this requirement has been in place for almost two years and just forgot to tell you, But now we have!
  • Implemented a workaround to better handle how upstream Tcl parses Emojis by default (A herculean and long-coming effort from thommey)
  • Reverted a change to default bind flags that broke some scripts that parse the [binds] Tcl command. The .binds partyline command will still display "*" as the 'any' flag instead of "-".
  • Some documentation updates
  • Tons of small bug fixes that you probably never would have encountered, and now definitely will not

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

As always, thank you to all the Eggheads who continue to use and support the Eggdrop community. We encourage you to join us on Libera in #eggdrop, where you can ask questions, troubleshoot issues, or just generally hang out with other users. Also, we ask that if you enjoy using Eggdrop, please give this repository a star! Thank you for support, and we look forward to the next Eggdrop release.

You can follow development and report bugs on https://github.com/eggheads/eggdrop and/or visit us on #eggdrop on the Libera IRC Network.

Happy compiling,
Eggheads Development Team

Downloads:

PGP key: https://www.eggheads.org/gpg/eggheads.pub

Thanks for all the help getting us to the 1.9.5 release!

Eggdrop Release v1.9.5 Release Candidate 1

14 Feb 02:58
Compare
Choose a tag to compare

πŸ’Ÿ Happy Valentines Day, Eggheads! πŸ’Ÿ

We wanted to reaffirm our love for you by giving you this Valentine's Day treat- not quite as delicious as some fine Belgian Chocolates, but it's a pretty close second- a new release candidate for Eggdrop! This is going to be a "bug fix" version- there isn't a whole lot in the way of new user-facing features here, but there has been a LOT of work done "under the hood". We particularly wanted to push this out sooner rather than later in order to address a few bugs that have been popping up lately. As a quick summary of what we covered:

  • Updated minimum Tcl version from 8.3 to 8.5. This was done mainly to take advantage of the implementation of dicts in Tcl 8.5. We also have been using dicts since 1.9.0 which means this requirement has been in place for almost two years and just forgot to tell you, But now we have!
  • Implemented a workaround to better handle how upstream Tcl parses Emojis by default (A herculean and long-coming effort from thommey)
  • Reverted a change to default bind flags that broke some scripts that parse the [binds] Tcl command. The .binds partyline command will still display "*" as the 'any' flag instead of "-".
  • Some documentation updates
  • Tons of small bug fixes that you probably never would have encountered, and now definitely will not

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

As this is an RC, there is still time to find a few bugs that may be hiding; we're depending on you to help us find those last few bugs before we declare 1.9.5 as stable. Please use it and report any bugs you find to https://github.com/eggheads/eggdrop/issues . We plan on leaving this comment period open for several weeks. Thanks for all the help getting us to the 1.9.5 release!

Eggdrop Release v1.9.4 *STABLE*

14 Dec 02:32
Compare
Choose a tag to compare

Ho Ho Ho, Eggheads! πŸŽ… πŸŽ„ 🎁

Looks like you got an early Christmas present this year! On the tail of 1.9.3, we're already putting out 1.9.4! We wanted to get this out quickly because, as some of you noticed, we inadvertently moved some internal functionality that affected advanced Tcl scripts. Additionally, we FINALLY tracked down one of our most notorious bug, an issue where an improperly tracked DNS lookup would sometimes cause Eggdrop to stop responding to telnet connections.

One last big addition for 1.9.4: Eggdrop finally has a systemd service installer! @PeGaSuS-Coder contributed a service file that we incorporated into the autobotchk script. To install the service, use the autobotchk script and add simply add the β€œ-systemd” flag to the end of the command. This will install a systemd job that can be controlled with the start, stop, restart, reload, enable, and disable commands (and as we’re trying to point out everywhere we can, the systemd β€˜reload’ command will actually run a β€˜rehash’ on the Eggdrop, not a reload. Please don’t get confused!). This feature is still considered beta and will possibly/likely change again prior to the next stable release, but this has been a highly-requested item for quite some time and we wanted to provide it to you as quickly as possible.

PLEASE BE AWARE: If you are upgrading an existing instance of Eggdrop, you will need to manually copy autobotck from the source directory into the installation directory (β€˜make install’ will not overwrite an existing copy).

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

As always, thank you to all the Eggheads who continue to use and support the Eggdrop community. We encourage you to join us on Libera in #eggdrop, where you can ask questions, troubleshoot issues, or just generally hang out with other users. Also, we ask that if you enjoy using Eggdrop, please give this repository a star! Thank you for support, and we look forward to the next Eggdrop release.

You can follow development and report bugs on https://github.com/eggheads/eggdrop and/or visit us on #eggdrop on the Libera IRC Network.

Happy compiling,
Eggheads Development Team

Downloads:

PGP key: https://www.eggheads.org/gpg/eggheads.pub

Eggdrop Release v1.9.4 Release Candidate 1

11 Nov 12:44
Compare
Choose a tag to compare

Greetings, Eggheads!

On the tail of 1.9.3, we're already putting out 1.9.4! We wanted to get this out quickly because, as some of you noticed, we inadvertently moved some internal functionality that affected advanced Tcl scripts. Additionally, we FINALLY tracked down one of our most notorious bug, an issue where an improperly tracked DNS lookup would sometimes cause Eggdrop to stop responding to telnet connections.

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

As this is an RC, there is still time to find a few bugs that may be hiding; we're depending on you to help us find those last few bugs before we declare 1.9.3 as stable. Please use it and report any bugs you find to https://github.com/eggheads/eggdrop/issues . We plan on leaving this comment period open for several weeks. Thanks for all the help getting us to the 1.9.4 release!

Eggdrop Release v1.9.3 *STABLE*

11 Aug 01:50
Compare
Choose a tag to compare

Greetings, Eggheads!

We're excited to announce that Eggdrop version 1.9.3 is now available for download! We patched up a few (embarrassing) compile-time bugs from v1.9.2 that prevented Eggdrop from compiling on some BSD systems, and without TLS libraries present. For sure, no release can be done single handedly- in addition a host of small but important backend updates to code courtesy of mortmann, we focused this release around the first phase of the largest feature update since CAP support- account tracking! And thanks to @eryg-kai for catching (AND FIXING!) an issue with SASL PLAIN authentication when TLS libraries were not present.

First, we have to caveat, account tracking depends on Eggdrop connecting to a server that supports WHOX requests, and can negotiate the extended-join (https://ircv3.net/specs/extensions/extended-join) and account-tracking (https://ircv3.net/specs/extensions/account-notify) capabilities. Without these three features enabled, reliable and fully accurate account tracking is not possible with Eggdrop (or any client!). However, when they ARE enabled, Eggdrop can now detect the service account names that users on channels are logged into (or not logged in at all). This gives way to a whole new host of possibilities for Eggdrop to interact and authenticate users on channels.

For 1.9.3, the focus was integrating foundational storage and Tcl-specific support for account tracking. This means that Eggdrop can now associate a service account name with a handle via the .+account command, track what users on a channel are currently logged into service accounts, and use the Tcl interface to query handles to obtain associated accounts. Once we ensure this capability is stable and properly implemented, the next version of Eggdrop plans to integrate full account support into the core Eggdrop functionality- this means Eggdrop will be able to perform functions like auto-op, auto-voice, flood control, etc based on if the account name of a user in a channel matches the account name associated to a handle stored on the bot (in addition to continuing the use of the current host-based matching method). Tcl commands such as nick2hand will also be updated to use service account information as a method to correlate online users to handles stored by Eggdrop.

We didn't want to limit this release to features you can just count on one hand- we also introduced the ability to custom-name timers created by the Tcl timer and utimer commands, and added the function "accounttracking" that checks if all the features necessary to support account tracking are present and enabled, to make scripts utilizing account tracking easier to write. Finally, we fixed a 'feature' in the uptime module that caused it to cache the IP resolved for the uptime hostname- this caused a large number of Eggdrops to fall off the uptime contest page after an infrastructure change until their next restart, and we deeply regret this happened.

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

Many thanks to those in the community that continue to contribute new ideas and identify areas for improvement- user feedback is very important to us as we continue to drive development in a direction most useful to our users. We invite everyone to idle in #eggdrop on Libera or, even better, participate in the conversation! Thank you for continuing to make this project so rewarding to both us the developers and the IRC community at large!

Eggdrop Release v1.9.3 Release Candidate 1

12 Jul 19:38
Compare
Choose a tag to compare

Greetings, Eggheads!

We're excited to announce the first release candidate for Eggdrop version 1.9.3 is available for download and testing! We patched up a few (embarrassing) compile-time bugs from v1.9.2 that prevented Eggdrop from compiling on some BSD systems, and without TLS libraries present. For sure, no release can be done single handedly- in addition a host of small but important backend updates to code courtesy of mortmann, we focused this release around the first phase of the largest feature update since CAP support- account tracking!

First, we have to caveat, account tracking depends on Eggdrop connecting to a server that supports WHOX requests, and can negotiate the extended-join (https://ircv3.net/specs/extensions/extended-join) and account-tracking (https://ircv3.net/specs/extensions/account-notify) capabilities. Without these three features enabled, reliable and fully accurate account tracking is not possible with Eggdrop (or any client!). However, when they ARE enabled, Eggdrop can now detect the service account names that users on channels are logged into (or not logged in at all). This gives way to a whole new host of possibilities for Eggdrop to interact and authenticate users on channels.

For 1.9.3, the focus was integrating foundational storage and Tcl-specific support for account tracking. This means that Eggdrop can now associate a service account name with a handle via the .+account command, track what users on a channel are currently logged into service accounts, and use the Tcl interface to query handles to obtain associated accounts. Once we ensure this capability is stable and properly implemented, the next version of Eggdrop plans to integrate full account support into the core Eggdrop functionality- this means Eggdrop will be able to perform functions like auto-op, auto-voice, flood control, etc based on if the account name of a user in a channel matches the account name associated to a handle stored on the bot (in addition to continuing the use of the current host-based matching method). Tcl commands such as nick2hand will also be updated to use service account information as a method to correlate online users to handles stored by Eggdrop.

We didn't want to limit this release to features you can just count on one hand- we also introduced the ability to custom-name timers created by the Tcl timer and utimer commands, and added the function "accounttracking" that checks if all the features necessary to support account tracking are present and enabled, to make scripts utilizing account tracking easier to write. Finally, we fixed a 'feature' in the uptime module that caused it to cache the IP resolved for the uptime hostname- this caused a large number of Eggdrops to fall off the uptime contest page after an infrastructure change until their next restart, and we deeply regret this happened.

You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise

As this is an RC, there is still time to find a few bugs that may be hiding; we're depending on you to help us find those last few bugs before we declare 1.9.3 as stable. Please use it and report any bugs you find to https://github.com/eggheads/eggdrop/issues . We plan on leaving this comment period open for several weeks. We raise a hand in salute to the amazing help we've received to get 1.9.3 ready for release!

Eggdrop Release v1.9.2 *STABLE*

06 Mar 00:59
Compare
Choose a tag to compare

Aloha fellow Eggheads! We are happy to announce the release of our latest stable version of Eggdrop, 1.9.2! We have continued to add new capabilities and fix old bugs, and Eggdrop v1.9.2 has lots of goodies for you to play with. Just a few of the many updates include:

  • Full CAP 302 support
  • Asynchronous DNS requests moved to core code, enabled by default
  • New Tcl commands (monitor, isircbot, server list) and a new Twitch bind
  • New CAP capabilities (monitor, cap-notify, and SASL 3.2)

We made a few updates to the config as well:

  • We added the 'extended-join' setting, to enable the extended-join CAP capability
  • The DNS-related settings were moved out of the modules section and into the core config area
  • The (now-deprecated) DNS module is no longer loaded by default

You can read about all of the enhancements and fixes in the NEWS file included with the source- seriously, check it out!

As an added bonus, we're coupling this release with an update of the official Eggdrop webpage (https://www.eggheads.org) as well as the return of EggWiki, now located at https://wiki.eggheads.org. We've redone EggWiki from scratch, and are attempting to focus on adding scenario and walkthrough-focused articles. If you have a suggestion (or better yet, want to contribute!) find us on Libera in #eggdrop and let us know!

We want to again make sure to thank everyone who contributed bug reports and fixes, especially working with the Release Candidates- tuvok, ldm, and Lord255 helped us identify and troubleshoot a few issues that we missed in our testing and certainly would have caused trouble without their help. As always, we can't do this without you, and we are so thankful for the support we continue to receive after all this time. THANK YOU!