Re: [Banshee-List] Google Summer of Code and Banshee



On Wed, Mar 24, 2010 at 12:04 PM, Gabriel Burt <gabriel burt gmail com> wrote:

> I think one of the main things we did wrong was with rewriting the
> Podcast plugin and Migo library, instead of modifying them in place.

I shouldn't have used re-write, it's the wrong word.

It's important to remember that the work is composed of incremental
improvements to the current plugin and Migo library.  It's more of a
re-org / re-mix than a hard reboot.  Very, very little code was
actually dumped and written from scratch.  Bug fixes and features from
master were integrated as code was written.  If it had been integrated
as developed, it would have appeared to be a gradual evolutionary
process to end users .

> I think using one big branch for the whole summer was probably a bad
> procedure too.  Instead, we could have said outright that you'd use
> maybe 4 branches during the summer, and have hard deadlines for each
> to be merged back into master - enforcing smaller, easily reviewable
> changesets.  However, if I'd just spent more time keeping up with your
> changes, reviewing it, etc, maybe none of that would really be
> necessary.  In my defense, you were prolific!

I agree.  This was a very different project when the summer started,
and the practices that made sense in May, broke down in June and there
wasn't much time for reflection.

> I feel like Banshee is getting to a more stable, mature place.  Part
> of that is the incremental changes we make - each component has years
> of tiny niggly bug fixes in it now, and part of it is Aaron's
> cultivated and my growing risk aversion.  I'd be more comfortable
> trying to replace Migo/Podcasting incrementally -- is that possible to
> do w/ your changes (even if it might be quite a bit more work)?

It's possible to install the old and new plugins side by side.  The
newer plugin could eventually be released as an optional package, and
as confidence is gained we could phase out the old plugin.

Migo, as released, has some very nasty bugs.  Its architecture makes
adding new features to, or fixing bugs in, the current plugin very
difficult.  Compare 'Migo.Syndication' to
'Banshee.Paas.Aether.SyndicationClient', they're composed of almost
the exact same code, but, BPAS is considerably cleaner.

While it's never going to be perfect, the updated code addresses many
of these issues (and would close man bugs in the tracker,) provides
new components that can be used across Banshee (e.g. a download
manager) and paves the way for new functionality.  Personally, I'd
like to see a transmission / monsoon like torrent management source.
Creating something this would be trivial using Migo2.

If there's interest in getting this released, even provisionally, I'd
be happy to do Saturday hackfests in #banshee.  I would starting say,
April 3rd and continuing until it's done.

~Mike


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]