-
maintains still some of the flat files in our system
-
that should increase speed
-
the flat files of our system
-
that my primary motivation
-
for giving a talk was
-
to try to force myself
-
into actually doing
to try to force myself
-
into actually doing
-
the work that I'm going
-
talk about in this talk [laughts]
-
????
-
lightly successful
-
so I may introduce you some of them, but???
-
become too much
-
of the professional procrastinator
-
to being influenced by even giving a talk
-
Let's see how this work out
-
The first couple of things I'm going to talk about
-
are just some general bugs statistics
-
I'll enjoy showing some plots
-
I'm going to introduce the basic arquitecture of debbugs
-
just to backup, debbug is
-
the system behind bugs are debian debug
-
so if you file the bug
-
you fix the bug
-
you wonder where bugs exists
-
you interact with that bugs
-
????
-
I'm going to talk about some of the new features
-
I'm going to talk about some planned features
-
specially features that won't happen If I suddenly
-
have two or three more people would help
-
and I hopefully would pleased with
-
of you or people who are missing
-
this talk online
-
or who may watch this talk recording later
-
to assist me in implementing some of these features
-
I'm a nice person
-
we are nice people
-
and I'd like to see any pro hackers
-
to see a css hacker or javascript hackers
-
or people who writes documentation helps
-
the goal of the BTS is to
-
report bugs
-
track the evolution of bugs
-
fix bugs
-
and hopefully reduce the impact of bugs
-
???
-
this is how many bugs do we have versus time
-
as you can see our bug growth is
-
roughly linear over time
-
and actually decreasing slowly but
-
that a huge number of bugs
-
people like to track exactly how many bugs we have
-
???
-
fun contest
-
guessing when the ticket bug will be filed fo ar example
-
the 760 000
-
bug will be filed
-
at I think
-
on September 2
-
and the 800 000 will be filed almost a year from now
-
on September 13
-
observing the linear progression
-
maintains itself
-
??? enjoys that but he is not here
-
??
-
Anyway that's to show the bug reporting rate
-
We average roughly have a 42 bugs found by day
-
as you see, that's a huge number bugs
-
This is the bug closing graph
-
It's actually taking not bug closures. It's actually bugs being archetyped ¿?
-
but for the most part it's aproximated
-
bugs closure rate ???
-
So, we close roughly 95 bugs per day
-
So from that you could imagine that the bug system is gaining
-
50 or so much bugs everyday that are not going to be fixed
-
Further than fortunately in this graph you can see that
-
the bug closing rate is decreasing
-
in contrast with the bug reporting rate awesome increasing
-
something that i've seen
-
in previous post I'v made on my blog
-
this is actually kind of disturbing
-
I'm not sure what that means for Debian as a whole
-
what means anything but
-
I'd much rather seen the overall rating increasing
-
than decreasing
-
In this graph you are familiar with
-
this is RC bugs from the bug ??
-
lukely the RC bugs are those that matter for the next relase are decreasing
-
getting in line for a new release there
-
??
-
Ok. So those is enough on graphs.
-
Now I'm going to talk about
-
debbugs system and how it works
-
debbugs two main components
-
there is a mail backend
-
wich is what interact with any email
-
submits bugs ??
-
or a bug number in bugs at ??
-
Next system on deb ??
-
wich has and old files and process you email ¿?
-
The other aspect in debbugs is a web project
-
That is what displays information on what bugs are on wich packets
-
and the bug ??
-
and it's also here
-
on to another machine
-
on beach so that ?? faster ??
-
that bugs interact with dak
-
wich is a software wich is responsable from maintaining the ??
-
so duk tells debbugs
-
wich who maintains wich packages
-
so debbugs know who is ??
-
??
-
It also tells debbugs wich packages are in wich suite
-
and wich arquitecture
-
so debbugs can calculate wether a bug is present in a particular suite
-
for example if the bug is fixed on stable or whether it's fixed in testing oin r stable
-
what was calculated by previous ??
-
britney also
-
is the testing migration
-
software that migrates software from unstable
-
to testing
-
it uses information from the ¿buxtehude? as well
-
it regards to wether a package is becoming more buggy
-
or less buggy
-
by operating
-
the actual ?? that does that is
-
???
-
and it provides a list of bugs
-
and also does the RC bug graphs
-
but ir provides ????
-
debbugs ?? is like this
-
mail comes in
-
there is spam processing that happens on the first step ??
-
??
-
???
-
is primary responsable from keeping bugtrack system free of spam
-
and these spamming
-
?? the little bit spam that actually make its way ??
-
??
-
is not a great job
-
after that mails been despammed
-
then, it goes to processall
-
and sub process
-
is responsable from handleing
-
emails that ? submit
-
and emails that ?? bug numbers
-
like this ???
-
service is responsable from handleing ??
-
so any email you send ??
-
now with the advent of
-
control at submit¿?
-
????
-
this diagram is getting a little bit bluried. It's actually an abstraction ??
-
???
-
then all of the information is stored in flat files
-
and a db-h ? wich has
-
small hash functions split ??
-
and is indexed with a couple of flat files indexes
-
and then a cgi scripts use both the indexes and the flat files system to display bugs
-
so that's how
-
debbugs worked before I started working on it
-
The current plan is to add on and basically replace this indexes
-
with a databse layer
-
and so I'm going to keep part of the flat files just because that's a well tested system
-
there are lots of things already parts of flat files ¿?
-
and I don't know how to deal with them ¿?
-
and add on top a postgresql based database
-
that, the cgi scripts ?? in order to display information ??
-
this will help both, increase the speed you get results back
-
you are looking and ??
-
and also enable you to do more complicated things like
-
?? bugs that actually affects a particular version
-
without waiting for huge amounts of time
-
for a query to complete
-
so for example, you want to look at all security bugs
-
wich affects unstable
-
well that's actually a really hard query to do
-
without a database layer
-
so that's one of the major things a database to do ??
-
so the script that actually handles loading things in the database is called dbugloader.sql
-
Debbugs is run in parallel
-
but perl has recently come quite a wise
-
in handling databases
-
Most everybody has adopted
-
the perl ?? by using DBIx
-
in order to talk to databases
-
very successful database abstraction
-
Anybody who has ever written code in DBIx
-
knows that it is extremely tedious
-
to do joing and complicated statements
-
?? writing sql and scaping and etc.
-
using place orders
-
?? you have to keep track them
-
DBA has classes and extensions
-
that bloms together a huge number of
-
?? into a really concurrent database abstraction service
-
where if you give it your schema
-
It would build classes and enable you to talk to ?? result groups
-
from your database
-
It's a complete system
-
you can actually write a schema entirely in DBIx class
-
that you can then to SQL alike
-
You can convert into a PostgreSQL, mySQL, etc
-
In this case I'm interested in
-
In write for PostgreSQL
-
that actually will be the database package?
-
there may be an option eventually to use SQL Lite for testing but
-
my primary goal is to deploy PostgreSQL
-
I'm also in using
-
a bunch of classes that are specific to Debian
-
for example the Debian Version Extension to PostgreSQL
-
that enables you to sort by Debian's version
-
That's extremely important to DBI ¿?
-
And that is something that handles very well in PostgreSQL
-
What I've actually done is rewrite ?? directing SQL
-
and DBIx class has an extension called Schema Loader
-
which handles converting the SQL schema
-
into the class decorations for DBIx class automatically
-
so you just write plain old SQL like you used to
-
and it automatically creates all the database related
-
Plurar classes that you used to talk results from database
-
There is another module which handles deployment
-
it can do automated upgrades from
-
different schema revisions
-
so as you change your schema
-
it handles doing both upgrades
-
and new installs of the new schema
-
wich you can also do downgrades
-
and yo can do others things
-
in addition to just execute SQL alter statements you can also run
-
¿pro code? or anything else you want at the database
-
IH operations¿?
-
so that enables much easier changes to the schema in the future
-
and finally the actual module in Debbugs ???
-
is DebBugs DB
-
and so all of the database interactions classes in Debbugs ¿?
-
and so this is the .....
-
It's kind of complicated but this basically tracks
-
all of the bugs relationships
-
It tracks who correspond with the DBs
-
has all this source package versions imaginary packae versions
-
version depences show for example when you uploaded version from a previous version
-
this ables all that to be tracked
-
Taken the DQL schema as
-
as inspiration but unfortunately
-
the debbugs ????
-
classes but I think it makes sense so
-
Anyway if somebody uses PostgreSQL genius
-
or an SQL hacker and is interested in
-
maybe offering suggestions right ???
-
¿talk about?
-
Is actually pretty easy
-
just called debbugs SQL bugs
-
uploads them
-
There are two different part of bugs in debbugs
-
There is the one that you can actually modify
-
and there are the archive bugs
-
so this handles join both with both sets of bugs
-
can also load versioning information
-
this logs wich packages are depending on the ones
-
and de Debian ¿? the architecture
-
and source version
-
So, the SQL is actually working
-
?? sql query
-
which you also write this easy in a DBIx class
-
let me show you that this actually works
-
???
-
I can run the SELECT statement wich is selecting the count of bugs WHERE
-
which has been modify since June or July
-
which are not done and
-
and which are
-
which are done and which there are an outer set
-
and the answer is
-
521
-
as you can see that is a full load of all the bugs in Debian
-
The actual SQL query executes very quick
-
??
-
I hopped to have more of this done by the time of this talk but
-
There still is a lot of work that's needed
-
The bugs file currently are not loaded
-
the bugs files are ??
-
That's needed to enable full text searching index
-
It also currently doesn't do ??
-
thats ?? faster loading ??