# Hugin Trackers

# General

Since November 22, 2010 bugs, feature requests and patches for Hugin are tracked[*] in Launchpad, the official tools to communicate bugs, feature requests, and proposed changes to the developers. While bug reports, feature requests, and patches are always welcome over any channel, the Launchpad tracker is the only tools that make sure they will not be forgotten / hidden in the past archives. All users are encouraged to make use of Launchpad. In the following text I explain the basic usage and set some policies with regard to Hugin.

Moreover, discussion of tracker tickets is welcome on the Mailing List[*] (ML). This includes (non-exhaustive list):

- requests to test bugs and patches
- requests for opinions on ways to fix bugs and implement new features
- enlarging the base of interested user / tester to encompass a variety of platforms
- insuring follow up on anonymous tickets

# Launchpad Account

Launchpad tickets can be viewed anonymously but to interact with the tracker you will need to register an account. It is a straight forward process. Once registered you can:

- submit a new ticket
- comment on existing tickets
- vote on tickets

Moreover, if you are a power user and want to help triage and prioritize tickets; help users solve their problems; help developers with testing and observations; join the Hugin Bug Hunters[*] team.

## OpenPGP key

An OpenPGP key is not mandatory for general use, but it makes life easy.

You will need an OpenPGP key to

- use the (faster and more comfortable) email interface to the tracker
- sign the Code of Conduct and get access to advanced Launchpad features such as a personal PPA.
- sign software uploaded to the repository.

## Generate Your Key (Linux/BSD/Mac)

Start a command line and type:

    gpg --cert-digest-algo=SHA256 --default-preference-list="h10 h8 h9 h11 s9 s8 s7 s3 z2 z3 z1 z0" --gen-key

At the prompt

- Confirm the type of key you want to create (RSA)
- Give the key a validity. Recommended setting two years so that if you loose your key or password it will be purged from the system
- Real Name: enter your real name
- Email: enter your email address

Read/copy the last 8 digits (e.g. 637572E4) from the key fingerprint and add them to ~/.bashrc

    echo "export GPGKEY=637572E4" >> ~/.bashrc

Then restart the terminal session.

Upload the key to the Ubuntu key server and output the key's fingerprint

    gpg --send-keys --keyserver keyserver.ubuntu.com $GPGKEY
    gpg --fingerprint $GPGKEY

Log on to your launchpad page https://launchpad.net/~[*]<USER>/+editpgpkeys and paste the fingerprint. Hit import key. A message encrypted with your key (637572E4) will be sent to you. Read your email.

## Generate Your Key (Windows)

Can somebody with a Windows box document the equivalent PuTTY commands?

## Sign the Ubuntu Code of Conduct

Read and sign the Ubuntu Code of Conduct[*]. This will grant you privileges such as creating your own PPA and uploading source packages for build and distribution.

    wget -O code.txt https://launchpad.net/codeofconduct/1.1/+download
    gpg -u $GPGKEY --clearsign code.txt
    cat code.txt.asc

Copy the resulting text and paste it into https://launchpad.net/codeofconduct/1.1/+sign[*]

## Configure eMail Client

Last but not least, to use the email interface you need to configure your email client.

### Kmail

- Settings -> Configure Kmail
- In the Manage Identities tab, select the Email Address associated with your Launchpad account and hit the Modify... button (or hit Add... to create a new identity for it)
- In the Cryptography tab, hit the Change... button next to the OpenPGP signing key. Select the key and hit OK. Repeat for the OpenPGP encryption key.

# Claim an Imported SourceForge Account

If you used the older trackers on SourceForge, chances are there is already something from you in Launchpad. Use the following procedure to claim it as being yours:

- Make sure your SF account is in good standing and that you are receiving emails at it.
- Log on to the Hugin bug tracker[*].
- Find a ticket or comment that you filed in the old tracker. Unfortunately entering your old user handle in the simple search field form does not work. Maybe using the advanced search reporter field, however note that SF users are not LP users, so don't count on it to work.
- On the ticket page you should see your SF user name, clickable. Click on it.
- A standard page will display, saying that the user does not use LP and that the page was created when importing bugs for Hugin. There is a link on the page asking if you are the user. Hit the link.
- You will land on a pre-filled Merge LP accounts form. Hit the Continue button.
- An email message will be sent to the email address associated with the old account. Open that email and click on the link.
- You will land on a confirmation form. click Confirm.
- If everything completed successfully you will land on your LP account page with a confirmation of the successful merge.

# Email Notifications

Launchpad uses a sophisticated email interface[*]. It is possible to do almost anything via email without having to log into the web app.

Activity on the tracker is notified by email to:

- everybody who subscribe to the individual ticket by hitting the subscribe link on the right of the tracker. If you file a ticket, you are automatically subscribed to it.
- everybody who subscribes to the tracker https://bugs.launchpad.net/hugin/+subscribe[*]
- the Hugin Bug Hunters[*] team and the Hugin Developers[*] team

To manage your notification settings you can (replace $USER with your Launchpad name):

- change your email settings (short-term/holiday) for team mailing lists at `https://launchpad.net/~$USER/+editemails[*]` and a general subscription policy to new mailing lists.
- change your team participation (long-term) at `https://launchpad.net/~$USER/+participation[*]`
- list the bugs you're subscribed to and change the individual subscription to each bug (fine tuning) at `https://bugs.launchpad.net/~$USER[*]`

# Placing a Ticket

To use the tracker, you need a Launchpad Account. You can submit our translation via the web or via email.

## Web

- Log on with your Launchpad account.
- Start reporting a new ticket[*].
- Enter a title/summary (e.g. German Translation).
- Launchpad will look for duplicates. Look in the list of reports found if your issue has already been reported. It is preferable to add to an old report (and even re-open a closed or expired report) than to start a new one. In most cases the previous history will give more weight to your report.
- On the reporting form, enter a description.
- If you need to attach a .pto file, a stitch log, a screenshot, or anything else that may be useful, scroll to the bottom and hit the link "Extra options".
- There you will find an Attachment field. Hit it and browse to the file you want to attach.
- Click the "Submit Bug Report" button.

To add an attachment to an already existing ticket:

- Log on to your Launchpad account.
- Get on the report's page.
- Scroll to the bottom.
- Hit the "Add attachment or patch" link.
- Enter a comment.
- Hit the attachment field and browse to the file you want to attach.
- Enter a description (optional).
- Hit the "Post Comment" button.

## eMail

Reporting a new ticket by email works too, but there are some critical conditions:

- Your email account must be registered with Launchpad.
- You must have an OpenPGP key associated with it and known to Launchpad.
- You must craft your email carefully. A misplaced space or a typo can doom your report.
- To be safe, use TEXT email, not HTML -- a good habit anyway. In most email client you recognize the TEXT mode by the lack of a formatting toolbar).

The message:

- From: your Launchpad-registered email address
- To: new@bugs.launchpad.net
- Subject: title of the bug
- Body: description + carefully crafted commands. Commands are usually at the end of the body. One per line. Each command line starts with a single space.
- Enter the command " affects hugin" to assign the report to Hugin.
- Enter the command " tag translation" to tag the report as being a translation.
- Attach the file(s) to the email.
- Send. It takes about five minutes to process and you get an email back with the result.

Replying to a bug report by email is easier. You don't need to issue the " affects hugin" command since the reply is referenced by the ticket number.

# Types of Tickets

## Feature Request

Do you have an idea for a feature that Hugin does not have yet? You don't have the time/skill for coding? You can at least contribute the idea and some analysis. Discussions on the mailing list are OK but tend to get lost in time. If you want to make sure that your idea is remembered, enter it into the tracker. The more analysis and description of the feature, the better. Make a case for it, show why it would be an advantage. The feature may be picked up by a skilled developer, or it could also become a Google Summer of Code or otherwise sponsored project.

## Bug Report

All users are encouraged to report bugs. Please help us improve the quality of the bug reports and the information available to the developers by following these guidelines:

### Your System

We need to know as much as possible about your system. Which version? What processor? How much memory? How much disk space is available, particularly temporary space? Are all updates recommended by the system's distributor applied? Have you customized the system? added/replaced libraries?

If you have access to a second system, please validate the bug before reporting it.

Recent version of Hugin have system information in the About menu. Copy and paste it.

### The Software

We also need to know as much as possible about the software used. Which version of Hugin? Where did you install it from? Did you compile Hugin yourself? An easy way to identify your version of Hugin is to look up the About Hugin dialog (Menu Help -> About Hugin) and report the whole version string.

Hugin depends on third party libraries and tools such as libpano and enblend/enfuse. Unless you have downloaded a Windows installer or a Mac bundle (that are self-contained), we'd need to know the same information for the dependencies. Where and when did you install them from?

### The Application

Often times the nature of your project, particularly the images, will help understand the bug. How many images? What format? Do they have EXIF data? What camera make/model? Is it HDR? Providing the .pto file (can be attached) is a valuable input to the analysis process. If you have access to web-space, providing the full test case including images (in JPG format and/or resized to reduce storage/bandwidth need) can also help.

### The Bug

What are the steps that need to be undertaken to reproduce the bug? Does it happen consistently all the times, or only sporadically? what is the expected application behavior and how does it differ from the observed application behavior?

## Bug Triage

Power users can triage tickets by reading them, understanding, validating and editing their settings such as priority and status.

- Log on to the tracker
- Start with the oldest bug that has not been triaged yet (status is New and it is not the result of a status reset).
- Read the ticket and make sure you fully understand it. When in doubt, leave it for more experienced users to triage or ask on the ML.
- If you determine that the ticket is a duplicate, mark it as such and close it. You will need to enter the ticket number of the other ticket.
- There are frequently appearing error messages such as "precondition violation", "false --compression", "Mask is entirely black but white image was not identified as redundant", etc... that need entries in the hugin FAQ - Duplicates should be closed with a link to the FAQ. If applicable, update the FAQ.
- Tag the bug liberally and assign status and importance-
- Add clarifying questions to the bug ticket if applicable. In doing so, compare the currently available information against the requested information listed above in "Reporting a Bug" and the specifics of the report.
- When in doubt, ask on the ML.

### Understanding Ticket Status

As the ticket evolves throughout its life cycle, it can have the following stati:

- New: All tickets are born with the New status. Moreover, if a user has made a change to a ticket and want to draw triager attention, he will reset the status to New. This is particularly important for tickets with status Incomplete that risk to expire if not reset to New. Try not to leave a New status after looking at a ticket, unless you are completely clueless about it. Set it to Triaged if you tagged it, verified that it is not Incomplete or Invalid.

- Incomplete: Triagers will set the status to incomplete if information is missing / expected from the reporter, or if the contributed patch requires some extra work. Usually they will post a note detailing what information is required. If there is no further activity within 60 days, the ticket will expire. It is important that whoever completes / adds to the ticket set the status again to New, to draw attention to the extra information. An email warning is sent a few days before expiry.

- Opinion: Before setting the status to Opinion a triager will check if it is possible to accomodate the wish, e.g. with a preference. But sometimes things are just too far fetched and Hugin is not an [1][*]. Please respect it if one of your ticket has been marked as an Opinion and don't start a flame. If you mark a ticket as an Opinion make sure to provide alternatives / justification (e.g. list alternative tools that are better suited to solve the problem described). Use sparingly.

- Invalid: A bug is set to Invalid if it was filed against an older version and is no longer applicable; or if the problem is not in the code; or if the contributed patch will never be accepted.

- Won't fix: The behavior is known, but for some reason it won't be fixed, e.g. the code causing it has become or will become obsolete in a subsequent release, or the bug is just an annoyance that would take too much effort to fix. Or the behavior is "odd" to some people, but useful for others.

- Confirmed: It's on our radar screen. we know what needs to be done in the code, but there are no resources to tackle it yet. This is also the status to give to ticket with contributed patches.

- Triaged: Somebody has been looking at the report but it is still work in progress and we don't know yet what the next step will be other than looking at it again. At least it has not been declared Invalid yet.

- In Progress: A developer has started to tackle the issue.

- Fix Committed: A fix has been committed to the repository. users with access to bleeding edge builds can test it and confirm if the fix worked or not. If the fix did not work, report it and set the status to new again.

- Fix Released: The fix is part of a release. If users using stable versions after that release find the error again, they can change the status to New and report that the fix did not work.

## Bug Validation

Every user can validate a bug against their system / software and add a comment to validate the bug. We encourage all users to do so. The more validation information we have, the better. We need to narrow down whether a bug applies to a specific operating system or across the board. And it is also very useful to know if a bug applies to a specific context or if it applies also in different contexts.

- To validate a specific bug, simply try to reproduce it by following the instructions described in the ticket.
- Add a comment to the ticket reporting your observation.
- Were you able to reproduce the bug?
- It is important to add context to your validation: what operating system? what version of Hugin?

## Bug Fixing and Testing

Everybody is encouraged to provide fixes and patches to correct bugs. Only developers can add them to the repository. Write access to the repository will be liberally given to users who need it.

- when a developer fixed a bug, he can ask the ML for testing.
- a fix tested on the developers system only can be set to Pending status.
- when at least one user validates a fix on a different system and there are no reports that the fix does not work, the bug report can be closed.

## Triaging Policy

- The more complete a bug report, the more attention it is likely to get.

### Importance

- Members of the Hugin Bug Hunter team can set the importance of a bug.
- You can indicate that a bug is important to you by hitting the "affect me too" button.

### Ticket Assignement

- The tracker enables the assignment of a ticket to a person. It is considered rude to assign a ticket to somebody else without their prior consent. Developers sometimes assign a ticket to themselves to signal they are working on it, but we do not use this feature too often.
- The tracker allows the subscription of somebody else to a ticket. You can do so once if you think a person should be aware of a ticket. Then add a note to that ticket and the person concerned will receive it in her mail. But if the person decides otherwise and unsubscribes from the ticket, please respect it.

## Tips & Tricks

If you know the old SourceForge bug number (e.g. form a comment on a migrated ticket), you can find it at the URL

     https://bugs.launchpad.net/bugs/${name}[*]

So, for example https://bugs.launchpad.net/bugs/sf-2789151[*] (referenced at https://bugs.launchpad.net/hugin/+bug/679170/comments/5[*]) will redirect you to https://bugs.launchpad.net/hugin/+bug/679179[*]

Retrieved from "http://wiki.panotools.org/Hugin_Trackers"