[Date Prev][Date Next] [Chronological] [Thread] [Top]

Jitterbugs to Bugzilla migration dev instance for testing



For the last several months I've been working on migrating the OpenLDAP
project infrastructure to new systems.  The server housing git-master was
the first to be migrated, and was done late last year.  The final server to
be migrated is a bit more challenging, as it contains all of the public
facing aspects of the project (ftp, git (RO), ITS (jitterbugs), FAQ, wiki,
mailman, etc).

As a part of the transition to the new hardware, the plan is to retire
jitterbugs and migrate it to bugzilla.  As a part of this process, I've
been working on a development instance so I could work out the details of
how I anticipate the migrated bug system to look.  I would like to invite
list members to look at the new system and provide feedback.  It can be
found at:

<https://quanah.ddns.net/bugzilla>

Please note that the dev system is not hooked up to an MTA, so any time it
reports that it is sending an email it is not doing so (Instead it writes
to a file on disk that I can use to ensure that the generated emails are
correct).  If you want to know what sort of email was generated by an
action, let me know and I will look it up.

Also note that the code to do the initial import has to pick a single email
address to record as the person who created the bug (and all follow ups).
In part because none of those accounts exist in the DB.  I've ensured that
the "From" information is preserved, and as time allows and accounts are
created, I will work on updating the underlying database to correct the
information on who filed the old bug reports.  New bug reports will of
course be tied to the actual account of the individual who files them.  So
for all currently existing bugs, I am recorded as the individual who filed
the bug report.

----------- Difference highlights -----------

a) Integration with GitHub authentication

When someone arrives at the splash screen, they have a choice -- They can
either create a new local account (via the "New Account" link), or they can
click the "Sign in" button to create an account that is linked via GitHub.
I will be working on customizing this front page so that it's more apparent
that you can create an account using the "Sign in" button, as that's not
clear right now.


b) product/component design

Bugzilla is organized around the concept of Products and components that
make up that product.  The jitterbugs system really had no organizing
concept.  In the process of migrating, I've reworked the jitterbugs
categories into components of related products where applicable, and "type"
based categories are now migrated to an appropriate severity type.

The Bugzilla instance has the following Products:

JLDAP (Components: JDBC, JLDAP)
LMDB (Component: liblmdb)
OpenLDAP (Components: backends, build, contrib, documentation, libraries,
overlays, slapd)
Website (Component: website)

Jitterbugs was comprised of the following categories:

Build (Now OpenLDAP/build)
Contrib (Now OpenLDAP/contrib)
Development (Now a severity of "development")
Documentation (Now OpenLDAP/documentation)
Historical (Not tracked as a separate item, unnecessary)
Incoming (Not tracked as a separate item, unnecessary)
Software Bugs (Not tracked as a separate item, unnecessary)
Software Enhancements (Now a severity of "enhancement")
Web (Now Website/website)

The re-organization allows a better ability to track bugs while retaining
useful type information.  With the product/component focus, reports can now
be better directed into the appropriate location.

c) Groups support -- Bugzilla has an excellent concept of groups, and the
ability to give different groups different permissions.  This could allow,
for example, a group of privileged users who have the capability to help
triage bugs.  Currently there is only a single group for the developers,
while any other account is a "normal" user account.  The ability to have
groups allows us to make it possible for people to file "private" bugs that
are easily found by the development group, including the ability for those
bugs to go to a developers only list.  The way the system is currently set
up, it will (fake) email a private list for all private bugs & private
comments, and (fake) mail all public bugs/comments to
openldap-its@openldap.org.

This allows us to preserve the long time functionality of public
notifications via openldap-its@openldap.org while adding the ability for
the dev team to immediately be updated to new private bugs & comments.

d) Milestones -- Bugzilla allows the creation and use of milestones.  This
is extremely helpful for both the developers and end users, as it becomes
possible to easily query these milestones for information on such things as
what was in a release, what will be in the next release, and what is slated
for future development.  For example, the "Search" link can be used to
generate the following queries:

All bugs released with OpenLDAP 2.4.45:
<https://quanah.ddns.net/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_st
atus=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFI
ED&product=OpenLDAP&query_format=advanced&resolution=---&resolution=FIXED&r
esolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSF
ORME&resolution=PARTIAL&resolution=SUSPENDED&resolution=FEEDBACK&resolution
=TEST&target_milestone=2.4.45>

All bugs currently scheduled for OpenLDAP 2.4.46:

<https://quanah.ddns.net/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_st
atus=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFI
ED&product=OpenLDAP&query_format=advanced&resolution=---&resolution=FIXED&r
esolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSF
ORME&resolution=PARTIAL&resolution=SUSPENDED&resolution=FEEDBACK&resolution
=TEST&target_milestone=2.4.46>

All bugs currently scheduled for inclusion with the OpenLDAP 2.5 initial
release:

<https://quanah.ddns.net/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_st
atus=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFI
ED&product=OpenLDAP&query_format=advanced&resolution=---&resolution=FIXED&r
esolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSF
ORME&resolution=PARTIAL&resolution=SUSPENDED&resolution=FEEDBACK&resolution
=TEST&target_milestone=OpenLDAP_2_5>


Note that this is all work I've entered by hand, so various bugs may be
missing from the above queries.

e) versions -- Bugzilla has a clear concept of versions for each product.
This means now that people can select (when filing a bug) what version they
are reporting against.  You could always enter this information in by hand
in jitterbugs, but the major difference here now is that it is possible to
use this to generate queries.  So  you could, for example, do a search to
find all bugs reported against 2.4.43.


<https://quanah.ddns.net/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_st
atus=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFI
ED&list_id=124&product=OpenLDAP&query_format=advanced&resolution=---&resolu
tion=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resol
ution=WORKSFORME&resolution=PARTIAL&resolution=SUSPENDED&resolution=FEEDBAC
K&resolution=TEST&version=2.4.43>


f) bug states -- Jitterbugs was fairly limited in the state options that
could be chosen (Open, Active, Suspended, Feedback, Test, Release, Partial,
Closed).  This was certainly customizable (and had been customized beyond
the defaults), but lacks a level of granularity available with Bugzilla.

With Bugzilla, there is always a primary state, and potentially a secondary
state.  These states are:

UNCONFIRMED -> Newly filed bug that has not been acted upon by the project.
All bug reports start in this state
CONFIRMED -> Someone in the project has confirmed this is a valid report.
IN_PROGRESS -> Someone in the project is actively working on the report.
RESOLVED -> Issue has some type of secondary resolution. These are:
	FIXED -> Issue is fixed and integrated into the release branch for the
next upcoming release
	INVALID -> Bug report is invalid
	WONTFIX -> There are no plans to fix this report (Generally to be used
with bug reports for historic releases)
	DUPLICATE -> Duplicate of an existing bug (Which is entered as a part of
the process.  See <https://quanah.ddns.net/bugzilla/show_bug.cgi?id=8765>
for an example)
	WORKSFORME -> Developer(s) unable to reproduce the problem report
	PARTIAL -> Some of the work in the bug was completed.  Other work is still
pending.  My long term goal is to move all unfinished work for all of the
resolved/partial bugs into new bugs to be tracked separately, and then
close these out with a See Also reference (More on "See Also" further down)
	SUSPENDED -> Developer(s) have suspended working on this issue
	FEEDBACK -> Developer(s) are soliciting feedback from the reporter before
continuing to work on the issue
	TEST -> Developer(s) have committed

VERIFIED -> Issue is considered complete.  It has the same secondary
resolutions as RESOLVED.  One slight difference noted below
	FIXED -> Issue is fixed, and is part of a released version of OpenLDAP

Note that for the bugs that have been imported, some of these states may
not be accurate due to the limitations of how items can be mapped.

g) attachment support  -- Currently we require people to upload patches,
etc, to the OpenLDAP FTP site.  Bugzilla allows attachments to be made
directly as a part of submitting or updating a bug.  This should allow the
FTP server to only be used for large files (such as core dumps), and mostly
retired.  It also makes it simpler to ensure patches are kept with bug
reports (We've lost patches people have provided in the past via URLs that
no longer exist).  It is possible to make attachments "private" as well, to
help protect sensitive data.

h) git integration -- One of the things on my to-do list post migration is
to set up git integration.  This means that when a developer makes a commit
that references an existing bug report, that commit will automatically be
added as a comment to the bug.  This will make it easy for people who are
interested in what the fix to an issue was to find said commit and examine
the change(s).

i) Potential future plans -- Mozilla has developed an addon service for
Bugzilla that allows GitHub PR reports to be attached to open bug reports
(https://github.com/mozilla/github-bugzilla-pr-linker
).  I could see how this would be useful to have, as many people do their
development work on GitHub and are annoyed at the process of having to
directly provide a patch to the project.

For developers, I'm also looking at a utility that allows those in the
development group to manipulate bugs via the git command line
(https://github.com/mozilla/git-bz-moz/blob/master/git-bz.txt).  My goal is
to have this working prior to a migration occurring.

j) Major differences -- Currently correspondance between those who report a
bug and the project team is done via email, using TO or CC the
openldap-its@openldap.org email list.  This has been problematic over the
course of time, whether from Spam getting into the system (largely
mitigated now via making the list moderated), replies not making it into
the ITS system due to a failure to CC the openldap-its@openldap.org email
list, or people who reported the issue never receiving a reply (thus not
knowing the issue was being worked on) because the reply was only sent to
the openldap-its@openldap.org email list.  It is possible to setup an
email->BZ gateway, but the format is a bit arcane, and I'd like to avoid
that if possible.  I would love to get feedback from those folks on the
list as to their thoughts about this.

k) URL field -- Bugzilla has a URL field that can be filled out to point to
a URL containing additional relevant information.  (Example:
<https://quanah.ddns.net/bugzilla/show_bug.cgi?id=8766>)

l) See Also field -- With Bugzilla, it is possible to provide references to
other related bugzilla bug reports, including in Bugzilla instances run by
other organizations.

      Examples: <https://quanah.ddns.net/bugzilla/show_bug.cgi?id=6138>
(See Also's to related bugs in the OpenLDAP BZ)
                <https://quanah.ddns.net/bugzilla/show_bug.cgi?id=6304>
(See Also to RedHat's BZ)

Thanks for your time, and I look forward to the feedback.

--Quanah

--

Quanah Gibson-Mount
Product Architect
Symas Corporation
Packaged, certified, and supported LDAP solutions powered by OpenLDAP:
<http://www.symas.com>