Related Links

General Information

What is PRepS?

PRepS is a Problem Reporting System. PRepS is designed around the bug tracking needs of small to medium sized software projects. However, PRepS may be flexible enough to be used for other types of problem or status tracking. For example, PRepS could be setup to track things that need fixing around the house. Be creative.

What is all this client and server talk?

PRepS uses a simple client-server architecture. The server consists of the database schema, and the stored procedures that are used by the database. The client consists of the user interface.

This architecture allows for a large variety of options when it comes to how PRepS is installed and used. PRepS can be installed on a stand-alone Linux box, where the client and server are the same machine, or it can be installed on a large network where the server resides on one machine, and the users connect to the database from several different machines across the network.

What is PRepSTools?

PRepSTools consists of libPRepS and a tool called prepsdb_tool. libPRepS is a library the PRepS needs in order to work. libPRepS expands the capabilities of the PostgreSQL server to allow PRepS to send out formated e-mail messages that are triggered by specific events.

The prepsdb_tool is a Gnome druid application (a Gnome Druid application is similar to a MS-Windows Wizard type program). The prepsdb_tool is used to create new PRepS databases and to update existing databases. The update process can also be used to "repair" existing databases if the database has certain objects missing, or if library paths are incorrect in the existing database.

Should I use PRepS instead of Gnats, etc.?

Perhaps you should, perhaps you shouldn't. It really depends upon your situation, and on what you plan to use the tool for. As I see it, PRepS is much easier to use the Gnats. However, Gnats is a much better tool to use if you are going to be taking bug reports from users around the globe. The reason for that is simple. Gnats takes it's bug reports via e-mail, PRepS does not. PRepS is really designed for use in situations where all users are on one network, and the database server will be accessable to all those users.

My suggestion to you is to evaluate what you have available to you. Then, determine what best fits your needs, and use it.

I have a question that is not covered...

This is a work in progress. Actually, everything including PRepS itself is a work in progress. If you think something needs to be covered better in the documentation, if you have a question that is not answered, or if you have any suggestions at all, please feel free to e-mail me.

PRepS Installation

What are the requirements for running PRepS?

PRepS v2.0.x has a fairly short list of requirements:

  1. GTK 2.2.x (or higher)
  2. Gnome 2.x libraries
  3. PostgreSQL v7.3.x (or higher)

Optional features will be compiled in if the following items are present and properly installed on your system when you run ./configure:

  1. The Gnome Libraries - config file
  2. TeX - printing
  3. dpips - printing

The final requirement is that the versions of PRepSTools and the PRepS user interface package (currently, there is only one) are compatible. Generally speaking, if you have the latest version of each, you should be in good shape. If you don't, you should also be in good shape if the major and minor versions (the first and second numbers) match.

Where do I get new versions?

http://webpages.charter.net/stuffle/index.html

How about some terse INSTALL directions?

Assuming that everything goes correctly, there are only three real steps.

  1. Unpack, configure, make, and install PRepSTools (be sure to update /etc/ld.so.conf and run ldconfig). This step only applies to the database server.
  2. Unpack, configure, make, and install PRepS
  3. On the databaser server, use the prepsdb_tool to create at least one PRepS database (or use the tool to update an existing PRepS database).

The first two steps are really the same as in any software installation. Just be sure to install libPRepS before installing PRepS.

I have PostgreSQL installed, but ./configure can't find it. What do I do?

TODO: Fix this answer. It is now totally WRONG...

The configure script will only look in a few places for PostgreSQL. Specifically, it is looking for the main libpq header file and for libpq itself. If it cannot find these, you may need to specify a search path. For example, if you have PostgreSQL installed in /opt/app/postgres, you may need to type ./configure --with-pgsqldir=/opt/app/postgres.

If configure still complains about PostgreSQL missing, make sure you have PostgreSQL installed correctlly, including the libpq library.

PRepS Administration

How do I create new projects?

You need to setup at least one project in order to use PRepS. To create a new project, select Administration -> Projects... This will display the Project List dialog box. From the Project List dialog box, press the Add button. This will display the Add Project dialog box. Simply fill out the information as appropriate. See the User's Guide for details.

One common mistake made when creating new projects is forgetting to specify Submitters and Project Members . If you create a project, but then do not specify any submitters, no one will be able to submit problem reports against that project. Similarly, if you create a project, but then do not specify any project members, no one will be able to have problem reports for this project assigned to them.

How do I create new users?

There are a couple of important things to keep in mind when setting up new PRepS users:

  • In order to use PRepS, the user must be setup as a PRepS user and as a PostgreSQL user.
  • The login ID suplied to PRepS when creating a new user must match the PostgreSQL user ID. This does not have to be the same as the user's system login ID, but your life will be a lot easier if it is. For example, the user who logs in to the computer as 'foo' could connect to the database as 'bar', but it just makes life a lot easier if you have them connect to the database as 'bar'.
  • Only PRepS users with Administrator access can add new users.

To create a new PRepS user:

  1. Create a user in PostgreSQL. See man createuser for details on how to do this.
  2. Choose the Administration -> Users... menu item to display the User List dialog.
  3. On the User List dialog box, press the Add button to display the Add User dialog.
  4. Enter the information as appropriate. See the User's Guide for details.

How do I create new severities, statuses, or problem types?

Use the Administration -> Options... menu item. Only PRepS users with administrator access can create or modify severities, statuses, or problem types.

PRepS Usage

What can PRepS be used for?

PRepS was designed around the needs that I have when working on a software project. This fact is shown by the default severities, statuses, and problem types. However, I attempted to make PRepS flexible enough so that it could be used for other type of projects.

Is there a web interface for PRepS?

Not really. At this point, there is only the plain old GTK interface. I have been playing with the PHP based interface, but have not gotten very far. Perhaps in the future, I will put everything else on hold, and work on that. I would also like to work on a Gnome interface and a KDE interface.

How about an interface for submitting bugs by e-mail?

That would be cool, but I don't really have time to work on it. I have some ideas on how I would like it to work, but have not really solidified them in any way. If you have an interest in doing this, e-mail me at stuffle AT mac.com, and I will be happy to share my ideas with you.

Is there a Windows interface for PRepS?

No. I am not opposed to the idea, I just don't have time to work on it. Plus, then I would need to re-learn how to use Visual C++ (an activity I should probably do anyhow).

I never need to supply a password for PRepS, yet you have a place in the login dialog for one. Why?

Whether or not a password is required is controlled by your PostgreSQL configuration. The default configuration is 'trust'. However, if you change the configuration to use some other sort of authentication, you will need to supply a password.

Troubleshooting

I created a project, but it does not show up in the Project list on the Enter Problem Report dialog. What is going on?

You have not selected yourself as a submitter for the project. Edit the project. Go to the Submitters tab and select yourself as a submitter.

If you are sure that you are selected as a submitter for the project, and the project still does not show up, make sure the project is active.

I want to assign a problem report to someone, but there is no one in the Responsible drop down list. What is going on?

You have not selected any project members for the project. Edit the project. Go to the Project Members tab and select some project members.

I created a PRepS user, but they cannot log on. Why not?

Did you remember to also create a PostgreSQL account for that user? To make sure, use psql to determine if the user is in pg_shadow. For example, to see if user 'zab' is in pg_shadow, you would do something similar to the following. Please note that the following commands must be run by the PostgreSQL super user.

%psql myprs Welcome to psql, the PostgreSQL interactive terminal. 

Type: \copyright for distribution terms 
\h for help with SQL commands 
\? for help on internal slash commands 
\g or terminate with semicolon to execute query 
\q to quit myprs=# select usename from pg_shadow; usename 
---------- 
postgres 
stuffle 
lasode 
zab 
(4 rows) myprs=#

Make sure the login ID for the user you are interested in is listed.

Why is PRepS complaining about database schema versions?

The version of PRepS you are running is not compatible with the PRepS database you are attempting to connect to. One of two things happened: your database was updated, but you never installed a newer version of PRepS, or you installed a new version of PRepS but did not run update_prepsdb on the existing PRepS databases. In the former case, install a newer version of PRepS. In the latter case, update your database.