This release of PicoTorrent brings in the recently released 2.0 of Rasterbar-libtorrent and with that it supports v1, v2 and v1/v2 hybrid torrents. All this is handled transparently in PicoTorrent but we might move towards some kind of indicator to show whether a torrent is v1, v2 or a hybrid.
In the previous releases we've tracked the master branch, but for this one I moved to the v2.0 tag and I'm planning on following the release schedule instead. Most of this work took place in the following pull requests,
- Add support for v2 torrents
- Use the 2.0 release candidate for libtorrent instead of master
- Update libtorrent to the released 2.0 version
- Make PicoTorrent handle v1/v2 hybrid torrents
The reason for first moving to the 2.0 RC and then the actual 2.0 release is that 2.0 was released just after moving to the RC.
New in this version is that I've added GitVersion which is a magical tool when it comes to calculating versions just from your Git repository history. I use the default settings which works perfectly for PicoTorrent.
There are a multitude of configuration options and I can recommend the tool for anyone wanting to move away from situations like the one in PicoTorrent where I manually bumped a version number in a text file for every release.
Now I can just tag the commit and GitVersion automatically calculates the correct version number.
See Use GitVersion instead of VERSION.txt file for more details.
Bug fixes and regressions
One of the issues with rewriting the GUI parts is that you might forget to implement all features of the previous version. One such regression was activating torrents in the list view, which did nothing in v0.19. The solution was simple and effective - Activating a list item opens the selection in Explorer added the missing behaviour and also made it support multiple selections.
Other fixes includes,
- Add empty last column to list views to prevent stretching - an issue where wxWidgets automatically stretched the last column in the list view (all list views). Adding a simple dummy column was enough.
- Send size event when we restore the main window - restoring PicoTorrent from the taskbar sometimes did not correctly place the status bar. Sending a size event when activating it fixed that issue.
- Remove minimum size from list and details view - not a bug really, but I removed the minimum size requirements for the torrent list- and details view which makes the main window resizable to any size and not the one I had in mind. More power to the users!
- Fix display of cyrillic characters - what can I say... Unicode and Windows. Sometimes you miss all the places where unicode strings can appear. Easy enough to fix once you know where to apply the fix.
GitHub user birkoffe also put the work in to update the Russian translation. Awesome as usual, since my Russian skills are zero to none 🙃
I've begun verifying WebTorrent support. It has not landed in any official release of Rasterbar-libtorrent but is available in the master branch. There are some issues left but mostly it works, and as soon as it is fit for release we'll do a matching PicoTorrent release. It might not happen until next year though.
In the near future though I want to add IP filtering support. Both manually entered IP ranges and automatic downloading of the eMule
There has been a few feature requests reported over the years and there is real value to be had by adding it.
HTTP remote control
I want to add a simple HTTP server to PicoTorrent which would expose a basic JSONRPC API to control both torrents and settings. I have some experience with Beast and I don't think it would be very difficult to add.
It would definitely be a nice feature to have.
That's all for now. Don't hestitate to reach out on Twitter, either @viktorelofsson (me personally) or @picotorrent (also me, but different), or opening issues on GitHub, saying hi in #picotorrent on freenode.
If you like the work I put in, you can sponsor me on GitHub 🎈