Difference between revisions of "User:Ashughes/BirdTorrent"

From CDOT Wiki
Jump to: navigation, search
(Project Contributor(s))
(Project News)
 
(67 intermediate revisions by 2 users not shown)
Line 12: Line 12:
  
 
== Project Contributor(s) ==
 
== Project Contributor(s) ==
AaronMT, johpan - Provided test results for 0.1pre
+
[http://zenit.senecac.on.ca/wiki/index.php/User:AaronMT AaronMT], [http://zenit.senecac.on.ca/wiki/index.php/User:Johpan johpan], [http://zenit.senecac.on.ca/wiki/index.php/User:edazkiel ezadkiel], [http://zenit.senecac.on.ca/wiki/index.php/User:Sid Sid] - Provided test results for 0.1pre
  
 
'''Want to help out?'''
 
'''Want to help out?'''
  
 +
<strike>
 
I have tested my 0.1pre on Ubuntu 8.04 32-bit and Mac OS X 10.5.5 i686.   
 
I have tested my 0.1pre on Ubuntu 8.04 32-bit and Mac OS X 10.5.5 i686.   
  
Line 23: Line 24:
  
 
'''NOTE:''' I will be canvasing for Windows testers in the upcoming days.  Stay tuned.
 
'''NOTE:''' I will be canvasing for Windows testers in the upcoming days.  Stay tuned.
 +
</strike>
 +
 +
This contribution opportunity is over since I am no longer using a static library.
 +
 +
 +
<strike>'''Survey''' - I need to know what torrent sites people use the most for the upcoming 0.2 release.  Please [http://ashughes.com/?q=node/64 vote].</strike>
 +
 +
<strike>'''Server''' - I need a torrent server set up in CDOT and populated with some test data.  This will be used to both test and demonstrate while on the school network.</strike><br />
 +
Big thanks to [http://zenit.senecac.on.ca/wiki/index.php/User:Jatinder.singh Jatinder] for attempting to get this working in CDOT.  After running into considerable technical difficulties, I was able to set up a tracker with seeding locally on my laptop.  This will be used for demos as an alternative to the CDOT server.
  
 
== Project Details ==
 
== Project Details ==
 +
=== 1.0 Milestone ===
 +
''<strike>Expected Release Date: April 24, 2009</strike>'' Released April 23, 2009
 +
 +
The following is what I expect to do with this release:
 +
* <strike>Clean up the code</strike>
 +
* <strike>Seek to integrate UI better</strike> UI is now cleaner, but still needs better interaction (post-1.0)
 +
* Fix as many of the bugs below as possible
 +
 +
Depending on time, I would like to get some bug fixes in place (in order of precedence):
 +
* Fix: Download UI does not update if Tag errors exist
 +
* Fix: Downloading multiple torrents results in torrent::initialize() error
 +
* Fix: Can't download more than one torrent
 +
* Fix: Can't resume downloads
 +
 +
=== 0.9 Milestone ===
 +
<strike>''Expected Release Date: April 10, 2009''</strike> Released April 8, 2009
 +
 +
I want to get files imported into the library in this release.
 +
 +
Depending on time, I would like to get some bug fixes in place (in order of precedence):
 +
* Fix: Downloading multiple torrents results in torrent::initialize() error
 +
* Fix: Can't download more than one torrent
 +
* Fix: Can't resume downloads
 +
 +
=== 0.8 Milestone ===
 +
<strike>''Expected Release Date: March 27, 2009''</strike> Released April 1, 2009
 +
 +
The goal of this milestone is to get some bug fixes in place (in order of precedence):
 +
* <strike>Fix: Quit application while downloading does not kill download</strike> FIXED
 +
* Fix: Downloading multiple torrents results in torrent::initialize() error
 +
* Fix: Can't download more than one torrent
 +
* Fix: Can't resume downloads
 +
 +
=== 0.7 Milestone ===
 +
The goal of this milestone is to get Songbird to download torrents via command line
 +
 +
<strike>''Expected Release Date: March 13, 2009''</strike> Released March 15, 2009
 +
 +
Expected Results:
 +
* Get some information displaying in UI
 +
* Fix the following if I have time:
 +
** Fix: Downloading multiple torrents results in torrent::initialize() error
 +
** Fix: Closing Songbird while downloading causes TrackerManager Exception
 +
** Fix: Can't download more than one torrent
 +
** Fix: Can't resume downloads
 +
 +
=== 0.6 Milestone ===
 +
Released February 20, 2009<br />
 +
Download the XPI [http://ashughes.com/Projects/Development/Songbird/Add-ons/Birdtorrent/birdtorrent-0.6.0-linux32.xpi here]<br />
 +
0.5 introduced quite a few bugs.  I want to fix these bugs in this release:
 +
 +
* Download does not start if partial files exist already
 +
* <strike>Duplicate Bookmark node on restart</strike> FIXED
 +
* <strike>Bookmarks not cleaned up after uninstall</strike> FIXED
 +
* <strike>Crash when download complete</strike> FIXED
 +
* <strike>Closing Songbird does not halt download</strike> FIXED
 +
* <strike>After a crash, torrents cannot be downloaded</strike> WONT FIX
 +
* Downloading multiple torrents results in torrent::initialize() error
 +
* Closing Songbird while downloading causes TrackerManager Exception
 +
 +
=== 0.5 Milestone ===
 +
The goal of this milestone is to fix the lock-up issue created with Birdtorrent 0.4.0
 +
 +
<strike>''Expected Release Date: Feb 6, 2009''</strike> Released Feb 5, 2009
 +
 +
=== 0.4 Milestone ===
 +
The goal of this milestone is to get Songbird to download torrents via command line
 +
 +
<strike>''Expected Release Date: Jan 23, 2009''</strike> Released Jan 24, 2009
 +
 +
Download the XPI [http://ashughes.com/Projects/Development/Songbird/Add-ons/Birdtorrent/birdtorrent-0.4.0-linux32.xpi here]
 +
 +
Expected Results:
 +
* Torrents download
 +
* Feedback given via terminal, not UI
 +
* Songbird must be run from terminal to see feedback
 +
* Downloading torrents locks Songbird until the download is complete (Fixed in 0.5.0)
 +
 +
=== 0.3 Milestone ===
 +
The goal of this milestone is to get Songbird to treat .torrent files differently than passing said file to the Download Manager.
 +
 +
<strike>''Expected Release Date: January 12, 2009''</strike>
 +
Released December 16, 2008.
 +
 +
Download the XPI: [http://ashughes.com/Projects/Development/Songbird/Add-ons/Birdtorrent/birdtorrent-0.3.0-linux32.xpi here]
 +
 +
Expected Results:
 +
* The user can search for a torrent file by the bookmarks or search engines integrated into Songbird
 +
* If they click on a download link for a torrent, they should be prompted with a congratulatory message
 +
 +
=== 0.2 Milestone ===
 +
The goal of this milestone is to create some of the basic UI elements (bookmarks, search engines) and to post a design document in an effort to get feedback from the community.
 +
 +
<strike>''Expected Release Date: November 14, 2008''</strike>
 +
 +
''Released: November 13, 2008'' - you can get the xpi [http://ashughes.com/Songbird/Birdtorrent/birdtorrent-0.2-linux32.xpi here].
 +
 +
'''Tasks'''
 +
* <strike>Conduct a survey to determine top 5 torrent sites</strike>
 +
* <strike>Create standard set of bookmarks</strike>
 +
* <strike>Create standard set of search engines</strike>
 +
* <strike>Post design documentation</strike>
  
 
=== 0.1 Milestone ===
 
=== 0.1 Milestone ===
 +
The goal of this milestone is to get libtorrent compiled as a static library and be able to wrap it into an XPCOM component.  To demonstrate the proof of this working, I plan to inject a simple HelloWorld alert statement into one of the libtorrent functions.
  
The goal of this milestone is to get libtorrent compiled as a static library and be able to wrap it into an XPCOM component. To demonstrate the proof of this working, I plan to inject a simple HelloWorld alert statement into one of the libtorrent functions.
+
''Expected Release Date: <strike>Oct 17, 2008</strike> Released as Shared Library instead of Static''
  
''Expected Release DateOct 17, 2008''
+
For the purposes of DPS909, get the unofficial 0.1 [http://ashughes.com/Songbird/Birdtorrent/birdtorrent-0.1pre-linux32.xpi here]. It is the static implementation and only works on Linux 32-bit.
  
 
'''Tasks'''
 
'''Tasks'''
 +
* '''Go back to the drawing board'''
 
* <strike>Compile Libtorrent as a static library</strike>
 
* <strike>Compile Libtorrent as a static library</strike>
 
* <strike>Compile Songbird's XPCOM HelloWorld Addon</strike>
 
* <strike>Compile Songbird's XPCOM HelloWorld Addon</strike>
Line 40: Line 154:
 
* <strike>Improve previous to alert() from a menu option in the UI</strike>
 
* <strike>Improve previous to alert() from a menu option in the UI</strike>
 
* <strike>Clean up the code to make the addon my own (renaming sbHelloWorld -> birdTorrent)</strike>
 
* <strike>Clean up the code to make the addon my own (renaming sbHelloWorld -> birdTorrent)</strike>
* <strike>Blog about the battle</strike>
+
* Resolve errors running Birdtorrent with Libtorrent as a shared lib
 +
* Blog about the battle
 
* Post a design doc
 
* Post a design doc
 
* <strike>Set up Mac build environment</strike>
 
* <strike>Set up Mac build environment</strike>
 
* <strike>Build Songbird on Mac</strike>
 
* <strike>Build Songbird on Mac</strike>
 
* <strike>Build Libtorrent on Mac</strike>
 
* <strike>Build Libtorrent on Mac</strike>
* <strike>Build XPI on Mac</strike>
+
* Build XPI on Mac
* <strike>Test XPI on Mac</strike>
+
* Test XPI on Mac
 
* Set up Win32 build environment
 
* Set up Win32 build environment
 
* Build Songbird on Win32
 
* Build Songbird on Win32
Line 54: Line 169:
  
 
== Project News ==
 
== Project News ==
 +
'''23 - April - 2009'''
 +
* Birdtorrent 1.0 Released
 +
* http://ashughes.com/?q=node/95
 +
 +
'''14 - April - 2009'''
 +
* New UI launched: http://ashughes.com/?q=node/93
 +
 +
'''8 - April - 2009'''
 +
* Birdtorrent 0.9 released
 +
* Posted 1.0 Milestone
 +
 +
'''7 - April - 2009'''
 +
* FireTorrent ported to Songbird.  See [http://ashughes.com/?q=node/91 blog post].
 +
* Functionality to automatically import media via watch folders in place
 +
 +
'''1 - April - 2009'''
 +
* Birdtorrent 0.8 released
 +
* 0.9 milestone targets posted
 +
 +
'''15 - March - 2009'''
 +
* Birdtorrent 0.7 released with blog post
 +
* Wiki page updated with 0.8 milestone expectations
 +
 +
'''14 - March - 2009'''
 +
* [http://ashughes.com/?q=node/87 Posted] to blog about the first Birdtorrent demo, release to come tomorrow
 +
 +
'''13 - March - 2009'''
 +
* [http://ashughes.com/?q=node/86 Posted] to blog about setting up OpenTracker locally
 +
* Posted [http://ashughes.com/?q=node/85 HOWTO] article on my blog about how to set up a local tracker
 +
 +
'''12 - March - 2009'''
 +
* Successfully demonstrated Birdtorrent 0.7
 +
 +
'''21 - February - 2009'''
 +
* Set up local torrent track for demos on my laptop
 +
 +
'''20 - February - 2009'''
 +
* Release Birdtorrent 0.6.0
 +
* Implemented proper disable/uninstall code
 +
* Posted 0.7 milestone
 +
 +
'''12 - February - 2009'''
 +
* Fixed one bug, found another
 +
 +
'''11 - February - 2009'''
 +
* Fixed crasher bug
 +
* Fixed duplicate bookmark node bug
 +
 +
'''5 - February - 2009'''
 +
* Birdtorrent 0.5.0 released
 +
* Torrents can now be downloaded
 +
* Several new bugs introduced that should be fixed in 0.6: [http://ashughes.com/?q=node/80]
 +
 +
'''4 - February - 2009'''
 +
* Birdtorrent 0.5.0pre released
 +
* Put download process on it's own thread
 +
* Users can now download torrents without affecting other Songbird tasks
 +
* Plan to test for a couple days and release on Friday
 +
 +
'''24 - January - 2009'''
 +
* Posted Birdtorrent 0.4.0 release
 +
* Added 0.5 milestone
 +
 +
'''19 - January - 2009'''
 +
* Posted new contribution opportunity: [[Contrib_Opportunities|CDOT Torrent Server]]
 +
* Discovered that SeneNET poses serious hurdles for testing/demoing torrent downloads
 +
* Got torrent downloads working in Songbird via command line
 +
** '''Serious Bug: makes app appear locked until download complete'''
 +
** Need to investigate asynchronous or thread-safe way to implement
 +
 +
'''15 - January - 2009'''
 +
* Posted a 0.4 -> 1.0 Project plan via [http://ashughes.com/?q=node/75 blog]
 +
 +
'''16 - December - 2008'''
 +
* Released [http://ashughes.com/Projects/Development/Songbird/Add-ons/Birdtorrent/birdtorrent-0.3.0-linux32.xpi Birdtorrent 0.3.0]
 +
* Congratulates the user that they have tried to download a torrent
 +
* Blog post coming shortly about the journey
 +
 +
'''4 - December - 2008'''
 +
* Currently doing research/reverse engineering around ns/sb Content Listeners
 +
* Posted my initial 0.3 objectives
 +
 +
'''13 - November - 2008'''
 +
* Survey complete
 +
* Birdtorrent bookmarks added to the UI
 +
* Birdtorrent search engines added
 +
* Birdtorrent 0.2 posted
 +
 +
'''8 - November - 2008'''
 +
* Birdtorrent design documentation [http://ashughes.com/?q=node/54 posted].
 +
 +
'''6 - November - 2008'''
 +
* Birdtorrent working as a shared library (Linux Only)
 +
* Posted 0.2 milestone requirements
 +
 +
'''17 - October - 2008'''
 +
* Defeated...
 +
* Back to the drawing board
 +
 
'''13 - October - 2008'''
 
'''13 - October - 2008'''
 
* Created [http://zenit.senecac.on.ca/wiki/index.php/User:Ashughes/BirdTorrent/TestResults Test Results] page
 
* Created [http://zenit.senecac.on.ca/wiki/index.php/User:Ashughes/BirdTorrent/TestResults Test Results] page

Latest revision as of 20:10, 23 April 2009

Project Name

BirdTorrent -- Torrent support for Songbird!

Project Description

The goal of this project is to create an add-on that allows Songbird to handle .torrent files. The basic idea is to cut out the middle man, allowing users to download music from torrent sites directly to their library.

Project Leader(s)

Anthony Hughes [ashughes] - This is me!

Project Contributor(s)

AaronMT, johpan, ezadkiel, Sid - Provided test results for 0.1pre

Want to help out?

I have tested my 0.1pre on Ubuntu 8.04 32-bit and Mac OS X 10.5.5 i686.

It would be helpful to get results from other people using Mac and other Linux distros.

Please click HERE to help test Birdtorrent 0.1pre.

NOTE: I will be canvasing for Windows testers in the upcoming days. Stay tuned.

This contribution opportunity is over since I am no longer using a static library.


Survey - I need to know what torrent sites people use the most for the upcoming 0.2 release. Please vote.

Server - I need a torrent server set up in CDOT and populated with some test data. This will be used to both test and demonstrate while on the school network.
Big thanks to Jatinder for attempting to get this working in CDOT. After running into considerable technical difficulties, I was able to set up a tracker with seeding locally on my laptop. This will be used for demos as an alternative to the CDOT server.

Project Details

1.0 Milestone

Expected Release Date: April 24, 2009 Released April 23, 2009

The following is what I expect to do with this release:

  • Clean up the code
  • Seek to integrate UI better UI is now cleaner, but still needs better interaction (post-1.0)
  • Fix as many of the bugs below as possible

Depending on time, I would like to get some bug fixes in place (in order of precedence):

  • Fix: Download UI does not update if Tag errors exist
  • Fix: Downloading multiple torrents results in torrent::initialize() error
  • Fix: Can't download more than one torrent
  • Fix: Can't resume downloads

0.9 Milestone

Expected Release Date: April 10, 2009 Released April 8, 2009

I want to get files imported into the library in this release.

Depending on time, I would like to get some bug fixes in place (in order of precedence):

  • Fix: Downloading multiple torrents results in torrent::initialize() error
  • Fix: Can't download more than one torrent
  • Fix: Can't resume downloads

0.8 Milestone

Expected Release Date: March 27, 2009 Released April 1, 2009

The goal of this milestone is to get some bug fixes in place (in order of precedence):

  • Fix: Quit application while downloading does not kill download FIXED
  • Fix: Downloading multiple torrents results in torrent::initialize() error
  • Fix: Can't download more than one torrent
  • Fix: Can't resume downloads

0.7 Milestone

The goal of this milestone is to get Songbird to download torrents via command line

Expected Release Date: March 13, 2009 Released March 15, 2009

Expected Results:

  • Get some information displaying in UI
  • Fix the following if I have time:
    • Fix: Downloading multiple torrents results in torrent::initialize() error
    • Fix: Closing Songbird while downloading causes TrackerManager Exception
    • Fix: Can't download more than one torrent
    • Fix: Can't resume downloads

0.6 Milestone

Released February 20, 2009
Download the XPI here
0.5 introduced quite a few bugs. I want to fix these bugs in this release:

  • Download does not start if partial files exist already
  • Duplicate Bookmark node on restart FIXED
  • Bookmarks not cleaned up after uninstall FIXED
  • Crash when download complete FIXED
  • Closing Songbird does not halt download FIXED
  • After a crash, torrents cannot be downloaded WONT FIX
  • Downloading multiple torrents results in torrent::initialize() error
  • Closing Songbird while downloading causes TrackerManager Exception

0.5 Milestone

The goal of this milestone is to fix the lock-up issue created with Birdtorrent 0.4.0

Expected Release Date: Feb 6, 2009 Released Feb 5, 2009

0.4 Milestone

The goal of this milestone is to get Songbird to download torrents via command line

Expected Release Date: Jan 23, 2009 Released Jan 24, 2009

Download the XPI here

Expected Results:

  • Torrents download
  • Feedback given via terminal, not UI
  • Songbird must be run from terminal to see feedback
  • Downloading torrents locks Songbird until the download is complete (Fixed in 0.5.0)

0.3 Milestone

The goal of this milestone is to get Songbird to treat .torrent files differently than passing said file to the Download Manager.

Expected Release Date: January 12, 2009 Released December 16, 2008.

Download the XPI: here

Expected Results:

  • The user can search for a torrent file by the bookmarks or search engines integrated into Songbird
  • If they click on a download link for a torrent, they should be prompted with a congratulatory message

0.2 Milestone

The goal of this milestone is to create some of the basic UI elements (bookmarks, search engines) and to post a design document in an effort to get feedback from the community.

Expected Release Date: November 14, 2008

Released: November 13, 2008 - you can get the xpi here.

Tasks

  • Conduct a survey to determine top 5 torrent sites
  • Create standard set of bookmarks
  • Create standard set of search engines
  • Post design documentation

0.1 Milestone

The goal of this milestone is to get libtorrent compiled as a static library and be able to wrap it into an XPCOM component. To demonstrate the proof of this working, I plan to inject a simple HelloWorld alert statement into one of the libtorrent functions.

Expected Release Date: Oct 17, 2008 Released as Shared Library instead of Static

For the purposes of DPS909, get the unofficial 0.1 here. It is the static implementation and only works on Linux 32-bit.

Tasks

  • Go back to the drawing board
  • Compile Libtorrent as a static library
  • Compile Songbird's XPCOM HelloWorld Addon
  • Research Make for how to wrap libtorrent
  • Get sbHelloWorld and libtorrent built into one xpi
  • Inject torrent::version() into sbHelloWorld() constructor to print libtorrent version to console
  • Improve previous to alert() from a menu option in the UI
  • Clean up the code to make the addon my own (renaming sbHelloWorld -> birdTorrent)
  • Resolve errors running Birdtorrent with Libtorrent as a shared lib
  • Blog about the battle
  • Post a design doc
  • Set up Mac build environment
  • Build Songbird on Mac
  • Build Libtorrent on Mac
  • Build XPI on Mac
  • Test XPI on Mac
  • Set up Win32 build environment
  • Build Songbird on Win32
  • Build Libtorrent on Win32
  • Build XPI on Win32
  • Test XPI on Win32

Project News

23 - April - 2009

14 - April - 2009

8 - April - 2009

  • Birdtorrent 0.9 released
  • Posted 1.0 Milestone

7 - April - 2009

  • FireTorrent ported to Songbird. See blog post.
  • Functionality to automatically import media via watch folders in place

1 - April - 2009

  • Birdtorrent 0.8 released
  • 0.9 milestone targets posted

15 - March - 2009

  • Birdtorrent 0.7 released with blog post
  • Wiki page updated with 0.8 milestone expectations

14 - March - 2009

  • Posted to blog about the first Birdtorrent demo, release to come tomorrow

13 - March - 2009

  • Posted to blog about setting up OpenTracker locally
  • Posted HOWTO article on my blog about how to set up a local tracker

12 - March - 2009

  • Successfully demonstrated Birdtorrent 0.7

21 - February - 2009

  • Set up local torrent track for demos on my laptop

20 - February - 2009

  • Release Birdtorrent 0.6.0
  • Implemented proper disable/uninstall code
  • Posted 0.7 milestone

12 - February - 2009

  • Fixed one bug, found another

11 - February - 2009

  • Fixed crasher bug
  • Fixed duplicate bookmark node bug

5 - February - 2009

  • Birdtorrent 0.5.0 released
  • Torrents can now be downloaded
  • Several new bugs introduced that should be fixed in 0.6: [1]

4 - February - 2009

  • Birdtorrent 0.5.0pre released
  • Put download process on it's own thread
  • Users can now download torrents without affecting other Songbird tasks
  • Plan to test for a couple days and release on Friday

24 - January - 2009

  • Posted Birdtorrent 0.4.0 release
  • Added 0.5 milestone

19 - January - 2009

  • Posted new contribution opportunity: CDOT Torrent Server
  • Discovered that SeneNET poses serious hurdles for testing/demoing torrent downloads
  • Got torrent downloads working in Songbird via command line
    • Serious Bug: makes app appear locked until download complete
    • Need to investigate asynchronous or thread-safe way to implement

15 - January - 2009

  • Posted a 0.4 -> 1.0 Project plan via blog

16 - December - 2008

  • Released Birdtorrent 0.3.0
  • Congratulates the user that they have tried to download a torrent
  • Blog post coming shortly about the journey

4 - December - 2008

  • Currently doing research/reverse engineering around ns/sb Content Listeners
  • Posted my initial 0.3 objectives

13 - November - 2008

  • Survey complete
  • Birdtorrent bookmarks added to the UI
  • Birdtorrent search engines added
  • Birdtorrent 0.2 posted

8 - November - 2008

  • Birdtorrent design documentation posted.

6 - November - 2008

  • Birdtorrent working as a shared library (Linux Only)
  • Posted 0.2 milestone requirements

17 - October - 2008

  • Defeated...
  • Back to the drawing board

13 - October - 2008

10 - October - 2008

  • Mac build system set up
  • Songbird/Libtorrent/Birdtorrent building on Mac
  • Birdtorrent tested OK on Mac
  • Linux Regression test passed

3 - October - 2008

  • Updated 0.1 Milestone
  • Addon + Libtorrent build together
  • Addon + Libtorrent work together
  • Addon is compiling and working as expected
  • Need to clean up code and blog

25 - September - 2008

  • Posted 0.1 Milestone goal
  • Detailed first tasks for 0.1 Milestone

18 - September - 2008

  • Successfully built Songbird
  • Build time was approximately 5m21s

16 - September - 2008

  • Successfully set up build environment
  • Successfully built Songbird XPCOM_HelloWorld add-on
  • Successfully built libtorrent as a static library
  • Need to read documentation for MAKE to put the two above together

Bugs

The following is a list of bugs related to my project

bug 9164 - Torrent support and direct importing to playlist