[Scummvm-devel] Crazy idea about convenient bug status tracking

Alex Bevilacqua alexbevi at gmail.com
Thu Sep 16 17:17:52 CEST 2010


oops, minor logic error in the last version ;)

require 'rubygems'

require 'hpricot'

require 'open-uri'


> class SourceForgeIssue



  attr_reader :title, :priority, :status, :submitted_by, :resolution

  attr_reader :assigned_to, :category, :group, :visibility



  def initialize(issue_id)

    doc = Hpricot(open("
> http://sourceforge.net/tracker/?func=detail&aid=#{issue_id}&group_id=#{GROUP_ID}&atid=#{ATID}
> "))

    header =
> doc/"//div[@class='view_artifact']/div[@class='inner-bd']/div[@class='yui-t6']/div[@id='yui-main']/div[@class='yui-gc
> box']/div[@class='yui-u first]/span/strong"



    assign("title", header[1])



    details_left =
> doc/"//div[@class='view_artifact']/div[@class='inner-bd']/div[@class='yui-t6']/div[@id='yui-main']/div[@class='yui-g
> box']/div[@class='yui-u first']/p"



    assign("resolution", details_left[3])

    assign("status", details_left[2])

    assign("priority", details_left[1])

    assign("submitted_by", details_left[0])


>     details_right =
> doc/"//div[@class='view_artifact']/div[@class='inner-bd']/div[@class='yui-t6']/div[@id='yui-main']/div[@class='yui-g
> box']/div[@class='yui-u']/p"



    assign("assigned_to", details_right[0])

    assign("category", details_right[1])

    assign("group", details_right[2])

    assign("visibility", details_right[3])

  end


>   private



  ATID     = 418820

  GROUP_ID = 37116



  def assign(target, value)

    case target

    when "title"

      @title = strip(value)

      @title = @title[0.. at title.length - 15]

    when "priority"

      @priority = strip(value)

    when "resolution"

      @resolution = strip(value)

    when "status"

      @status = strip(value)

    when "submitted_by"

      @submitted_by = strip(value)

    when "assigned_to"

      @assigned_to = strip(value)

    when "category"

      @category = strip(value)

    when "group"

      @group = strip(value)

    when "visibility"

      @visibility = strip(value)



    end



  end



  def strip(s)

    s.to_s.gsub(/<\/?[^>]*>/, "")

  end


> end


> critical = [

  3061578, 3038424, 3049515, 3053104, 3060480,

  3032758, 3052804, 3032772, 3032763

  ]


> nice_to_fix= [

  3054184, 3032379, 3018770, 3017908, 3049346, 3049336, 3049515,

  3064655, 3022067, 2820025, 2721332, 2952298, 2951521, 2843146,

  3011646, 3011639, 3011638, 3011635, 2842432, 3000876, 3008511,

  2997464, 2969913, 2880939, 2879793, 2879791, 2628056

]


> puts "Release Critical"

critical.each do |c|

  i = SourceForgeIssue.new(c)

  puts c.to_s + ": " + i.title

end


> puts "Nice to Have Fixed"

nice_to_fix.each do |n|

  i = SourceForgeIssue.new(n)

  puts n.to_s + ": " + i.title

end


On Thu, Sep 16, 2010 at 11:13 AM, Alex Bevilacqua <alexbevi at gmail.com>wrote:

> Max,
>
> This is just something I whipped up in Ruby that mimics the list that
> Eugene sends out. It's pretty basic, but could be extended to spit out HTML
> if need be ;)
>
> require 'rubygems'
>
> require 'hpricot'
>
> require 'open-uri'
>
>
>> class SourceForgeIssue
>
>
>
>   attr_reader :title, :priority, :status, :submitted_by, :resolution
>
>   attr_reader :assigned_to, :category, :group, :visibility
>
>
>
>   def initialize(issue_id)
>
>     doc = Hpricot(open("
>> http://sourceforge.net/tracker/?func=detail&aid=#{issue_id}&group_id=#{GROUP_ID}&atid=#{ATID}
>> "))
>
>      header =
>> doc/"//div[@class='view_artifact']/div[@class='inner-bd']/div[@class='yui-t6']/div[@id='yui-main']/div[@class='yui-gc
>> box']/div[@class='yui-u first]/span/strong"
>
>
>
>     assign("title", header[1])
>
>
>
>     details_left =
>> doc/"//div[@class='view_artifact']/div[@class='inner-bd']/div[@class='yui-t6']/div[@id='yui-main']/div[@class='yui-g
>> box']/div[@class='yui-u first']/p"
>
>
>
>     assign("resolution", details_left[3])
>
>     assign("status", details_left[2])
>
>     assign("priority", details_left[1])
>
>     assign("submitted_by", details_left[0])
>
>
>>     details_right =
>> doc/"//div[@class='view_artifact']/div[@class='inner-bd']/div[@class='yui-t6']/div[@id='yui-main']/div[@class='yui-g
>> box']/div[@class='yui-u']/p"
>
>
>
>     assign("assigned_to", details_right[0])
>
>     assign("category", details_right[1])
>
>     assign("group", details_right[2])
>
>     assign("visibility", details_right[3])
>
>   end
>
>
>>   private
>
>
>
>   ATID     = 418820
>
>   GROUP_ID = 37116
>
>
>
>   def assign(target, value)
>
>     case target
>
>     when "title"
>
>       @title = strip(value)
>
>     when "priority"
>
>       @priority = strip(value)
>
>     when "resolution"
>
>       @resolution = strip(value)
>
>     when "status"
>
>       @status = strip(value)
>
>     when "submitted_by"
>
>       @submitted_by = strip(value)
>
>     when "assigned_to"
>
>       @assigned_to = strip(value)
>
>     when "category"
>
>       @category = strip(value)
>
>     when "group"
>
>       @group = strip(value)
>
>     when "visibility"
>
>       @visibility = strip(value)
>
>
>
>     end
>
>
>
>   end
>
>
>
>    def strip(s)
>
>     tmp = s.to_s.gsub(/<\/?[^>]*>/, "")
>
>     tmp[0..tmp.length - 15]
>
>   end
>
>
>> end
>
>
>> critical = [
>
>   3061578, 3038424, 3049515, 3053104, 3060480,
>
>   3032758, 3052804, 3032772, 3032763
>
>   ]
>
>
>> nice_to_fix= [
>
>   3054184, 3032379, 3018770, 3017908, 3049346, 3049336, 3049515,
>
>   3064655, 3022067, 2820025, 2721332, 2952298, 2951521, 2843146,
>
>   3011646, 3011639, 3011638, 3011635, 2842432, 3000876, 3008511,
>
>   2997464, 2969913, 2880939, 2879793, 2879791, 2628056
>
> ]
>
>
>> puts "Release Critical"
>
> critical.each do |c|
>
>   i = SourceForgeIssue.new(c)
>
>   puts c.to_s + ": " + i.title
>
> end
>
>
>> puts "Nice to Have Fixed"
>
> nice_to_fix.each do |n|
>
>   i = SourceForgeIssue.new(n)
>
>   puts n.to_s + ": " + i.title
>
> end
>
>
> Hopefully this helps you guys.
>
> Alex
>
> On Wed, Sep 15, 2010 at 7:57 AM, Lars Persson <larspp at hotmail.com> wrote:
>
>>  Hi!
>> I think this sounds like a very excellent idea. Not exactly my cup of
>> development, but I would really use it if available. :-D
>>
>> Cheers
>> Lars
>>
>> > From: max at quendi.de
>> > Date: Sun, 12 Sep 2010 16:49:37 +0200
>> > To: scummvm-devel at lists.sourceforge.net
>> > Subject: [Scummvm-devel] Crazy idea about convenient bug status tracking
>>
>> >
>> > Hi there,
>> >
>> > at times I say to myself: Would it be handy if one could take the list
>> of bugs that must/should be fixed for a ScummVM bugs from Eugene's email,
>> feed them into a tool, and get a quick overview of them all, including
>> whether the bug is still open or not, whether it is assigned to anybody, and
>> a clickable URL...
>> >
>> >
>> > How cool would it be if somebody did the following: Write a simple HTML
>> + JavaScript page which takes a list of SF.net bug ids, and turns them into
>> a HTML table, with columns for id, artifact type, name, status, etc... and
>> of course a link to the actual bug report.
>> > Kind of replicating what SF.net shows on its bug browser, only that it
>> is filtered by a specific set of bug ids (which SF.net does not allow), and
>> maybe looks a bit differently (e.g. distinguish closed and open bugs
>> visually by color or so, and strongly).
>> >
>> > Initially I'd be happy to only list ScummVM bugs, but at some point,
>> also RFEs and items from other projects could be listed.
>> >
>> > To use it, one could initially just modify the HTML file and insert the
>> list of bug ids (possibly with tracker & project ids added in, too; though
>> those can be discovered by the script). A more advanced version would of
>> course offer buttons for adding and removing items from the table, sorting
>> by different columns, refresh at certain intervals, etc. (and maybe encode
>> the bug ids in the URL, to make it bookmarkable)?
>> >
>> > Even cooler would be to turn this into a website, or widget (for Apple
>> DashBoard or Yahoo Widget, etc.). There is such a widget for Bugzilla &
>> Yahoo Widgets (never tried it myself, though): BugMon <
>> http://widgets.yahoo.com/widgets/bugmon>.
>> > If one wants to be really, *really* cool, of course it would allow
>> tracking and mixing bugs from SF.net trackers, Trac, Bugzilla, Google Code,
>> Mantis, github... but now I am getting really wild... ;)
>> >
>> > Anybody interested in hacking on something like that? Maybe I should
>> propose a bounty for that or something... :)
>> >
>> > Cheers,
>> > Max
>> >
>> ------------------------------------------------------------------------------
>> > Start uncovering the many advantages of virtual appliances
>> > and start using them to simplify application deployment and
>> > accelerate your shift to cloud computing
>> > http://p.sf.net/sfu/novell-sfdev2dev
>> > _______________________________________________
>> > Scummvm-devel mailing list
>> > Scummvm-devel at lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/scummvm-devel
>>
>>
>> ------------------------------------------------------------------------------
>> Start uncovering the many advantages of virtual appliances
>> and start using them to simplify application deployment and
>> accelerate your shift to cloud computing.
>> http://p.sf.net/sfu/novell-sfdev2dev
>> _______________________________________________
>> Scummvm-devel mailing list
>> Scummvm-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/scummvm-devel
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20100916/d331f79d/attachment.html>


More information about the Scummvm-devel mailing list