Flyspray - The bug killer!

This is the Bug Tracking System for the Flyspray project. This is not a demo!

2019-04-22: Flyspray 1.0-rc9 released See https://github.com/Flyspray/flyspray/releases

ID Category Task Type Severity Summary Status Progress Assigned To  asc Due In Version Opened Last Edited
 2051 Backend/CoreBug ReportCritical During upgrade need to set reasonable defaults for any  ...Closed
100%
1.0612.09.201502.03.2016 Task Description

Since there are new prefs adding in, if anything is missing during an upgrade, we need to set reasonable defaults to avoid error messages. Here are some I see are missing:

url_rewriting
pages_welcome_msg
emailNoHTML
enable_avatars
hide_emails
only_oauth_reg
need_approval
active_oauths
max_vote_per_day
votes_per_project

2044Database QueriesBug ReportHighNeed set_charset for DB connect in config fileConfirmed
10%
1.019204.09.201506.06.2018 Task Description

make a option in configuration file

me need set same $db1→set_charset(’utf8mb4’); for my MySQLi

have a problem with national letters

I see this error after i try enter national letters to the summary input text field for create new task

Query {UPDATE `flyspray_tasks` SET project_id = ?, task_type = ?, item_summary = ?, detailed_desc = ?, item_status = ?,
 mark_private = ?, product_category = ?, closedby_version = ?, operating_system = ?, task_severity = ?, task_priority = ?, 
last_edited_by = ?, last_edited_time = ?, due_date = ?, percent_complete = ?, product_version = ?, estimated_effort = ?
 WHERE task_id = ?} 
with params {1,1,тестовая задача,<p>sdfsdfdsfsd</p> ,2,0,4,0,1,2,4,1,1441344777,0,0,1,0,2} Failed!
(Incorrect string value: '\xD1\x82\xD0\xB5\xD1\x81...' for column 'item_summary' at row 1)
2075NotificationsBug ReportHighToo spammy notifications under some circumstancesRequires testing
40%
1.019.10.201503.11.2015 Task Description

danoh on github wants to work on patch. Couldn’t find him here..

2135Backend/CoreBug ReportHigh"Modify own tasks" does not function correctly when add...Confirmed
50%
1.013107.06.201622.08.2016 Task Description

“Oh, there are some incompatible properties set that must be resolved before moving this task to a different project.”

Oh, but I am not moving the task to a different project. Just trying to edit my own submission.

“Edit this task” → “Save details”

See attached screen capture.

2201APIBug ReportHighI got Fatal Error on the Github OAuthUnconfirmed
0%
1.0107.09.201609.09.2016 Task Description
Fatal error: Class 'League\OAuth2\Client\Provider\Github' not found in /html/bugs/includes/GithubProvider.php on line 11

I have downloaded this:
Precompiled with 3rd party libs for PHP5.6: flyspray-1.0-rc1_php56.tgz
and the file seems really dont exist.

2207Backend/CoreBug ReportHighNonpublic project titles and project description exposi...Confirmed
0%
1.0123.09.201629.09.2016 Task Description

When a anonymous user tries to display a ticket of a non public project (for example by entering a random ticket id), Flyspray exposes the title of the non public project in the header bar.

Edit by peterdd: also applies to project description

 1174 Backend/CoreTODOMedium TODO List for 1.0 Closed
100%
1.0341927.01.200702.03.2016 Task Description

A list what could/should be done for 1.0

  • language for email/jabber notification currently depends on sender(user who changes something), not the recipients preferences - needs loading translation everytime to the recipients prefered language changes in the sending loop. done.
  • Provide functionality similar to bugzilla 3.0 “whining” (Custom scheduled notifications) reminder (schedule.php) is working again . Setup a cronjob for that.
  • get rid of modify.inc.php (make do-modes pluggable)
  • database transactions
  • new templating engine (eval free)
  • user area (summed up notifications, own notes)
  • remove the usage of $_REQUEST and the Req class (only reduce)
  • add two checkboxes SSL and TLS to the SMTP configuration section in order to permit usage on servers that requires them (f.e gmail)
  • permit multiple flyspray installations with a single codebase.
  • Make threaded mail really work.
  • Localize the Installer/Upgrader
  • Upgrade to SwiftMailer v3 (when released for PHP4)
  • simplify task changes ( FS#1203 )? quick-edit is enough
  • link to dokuwiki syntax
  • replace FS prefix
  • lock password capability?
  • auto-close tasks...
  • restrict assignees (group permission → “show for assignees”, default 1)
  • last-edited-by column, others,  FS#1330  (redundancy table?)
  • for upgrading, to not make all fields project level?
  • remove all usage of split() and ereg_* functions, this include sending patches to external libraries.
  • Social networking authentification (Google, OpenID, Oauth, Facebook, Yahoo)

Things that will not be done in 1.0:

  • conversion scripts for most popular BTS - All of Flyspray data is stored in database. It should not be too hard to create a conversion script, at least from the Flyspray side. Do you need a conversion script to or from Flyspray? Tell us.
  • allow personal ordering of fields (FS 1.1 or later), see FS#2013
  • Add an option for SSL login - If you want a secure Flyspray, configure your webserver to only talk TLS/SSL, not unencrypted HTTP. Flyspray can help by hardening its source for TLS/SSL only sending, ask peterdd if it’s a requirement for you.

Things planned for 1.1:

  • Find no longer used functions in the code and remove them

Not planned yet:

  • Add support for both sqlite and mssql. But you can try your own experiments, we use adodb that supports a wide range of databases.
 1822 Database QueriesFeature RequestMedium No voting for own tasks Closed
100%
1.02124.01.201306.03.2015 Task Description

You should not be able to vote for tasks you created.

1950User InterfaceTODOMediumSolve confusing Flyspray group settings vs Project grou...Confirmed
50%
1.0907.03.201511.11.2015 Task Description

This is taken from FS#1753:

The second reason being there is no way that I know of to automatically set a project usergroup to new members. I only have 1 project, but it seems the Global groups aren’t working (can still see tasks if “View Tasks” is unchecked) and I don’t know how to fix that.

And what I have to say - it is hard to tell if you are on the Flyspray admin settings area or on the admin settings of a project.

Cheapest way is adding some CSS to distinguish this for the user.

But there is in fact more to do to make it user friendly.

  • TODO: list configurations for project(task types, categories, ..) in Manage Project should also show the system wide list values as hint to avoid duplication.
  • TODO: project user groups overview should show system wide user group infos as info for project managers to avoid unnecessary complicated configuration settings.
  • TODO: visualize related permissions that can overrule eachother like ‘view_task’ overrules ‘view_own_tasks’ to avoid misconfigurations
 2026 Backend/CoreBug ReportMedium 'add a link' on comment broken Closed
100%
1.0112.08.201523.08.2015 Task Description

An added link in a comment seems to not be saved or shown after edit.

 2027 User InterfaceBug ReportMedium missing abort button on 'edit comment' Closed
100%
1.012.08.201509.09.2015 Task Description

no task description

2040Installer and UpgraderInformationMediumFS1.0 Release buildsConfirmed
20%
1.0523.08.201517.04.2019 Task Description
  • Use github releases for the release? peterdd: Yes, currently only source releases without 3rd party vendors.

The Flyspray 1.0alpha1 .zip file release unzips directly to the current directory.

.zip files from github unzip to it’s own directory (flyspray-master.zip unzips to flyspray-master/ ). This is a bit safer, because you cannot accidently mess your directory structure with it.

  • The release should contain the binary fontawesome files instead of linking to the external CDN. Removes one dependency/singlepointoffailure. How this can be configured for automation? included in Flyspray source now. :-)
  • document how a release is exactly created. (consistency, reliability, automation, knowledge sharing for maintainers see below :-) )
  • Get in contact with os distributions, that could add Flyspray releases to their repositories (*BSD, Linux distributions, ..) This repositories could add the dependencies like ADODB within the packages (.rpm, .deb,..)
  • Get in contact with web hosting providers who provide integreated 1-click installs of software for their web hossting customers.
  • Get in contact with container builders (docker, ..)

Steps how to do a Flyspray release (since Flyspray 1.0 RC)

  1. Edit includes/class.flyspray.php on github.com and set the correct version for the release there (remove the ' dev’ from the version string), commit as new branch e.g. 1.0-rc1
  2. Prepare a new release on https://github.com/Flyspray/flyspray/releases , write a summary of changes since last release, choose the branch you created in the previous step, save as “draft”.
  3. “Release” the Flyspray source on github when satisfied with layout
  4. Run buildscripts for different php versions (see comments at FS#2040)
  5. Upload the created .zip and .tgz files to https://github.com/Flyspray/flyspray/releases
  6. Upload the created .zip and .tgz files to https://github.com/Flyspray/flyspray.github.io/tree/master/packed stored since 1.0-rc2 only on https://github.com/Flyspray/flyspray/releases to avoid redundancy
  7. Test the created blobs on different servers too.
  8. Edit the https://github.com/Flyspray/flyspray.github.io/blob/master/_docs/download.md and link the source and packaged .zip and .tgz files
  9. Write a new article with a summary of highlights of changes since last release for the www.flyspray.org frontpage on https://github.com/Flyspray/flyspray.github.io/tree/master/_posts/News
  10. Send an email to the Flyspray mailing list
  11. Important: If all is nice and shiny: Update the version string on www.flyspray.org https://github.com/Flyspray/flyspray.github.io/blob/master/version.txt so admins of flyspray get informed a new Flyspray release is available now. For instance change from 1.0-rc to 1.0-rc1 if you are releasing Flyspray 1.0 RC1. Must be the exact version you set in includes/class.flyspray.php .

Maybe we can use this sequence as template on bugs.flyspray.org for releases? :-)

2074User InterfaceBug ReportMediumOpening tasks from tasklistNew
0%
1.0318.10.201518.07.2016 Task Description

Removing table on row click made it impossible to open a task’ details if you do not display the task id and summary on the task list, because now those two cells are the only clickable items to open a task, instead of the entire line being the hyperlink

2078User InterfaceBug ReportMediumlayout of requested close on small displaysNew
0%
1.026.10.201529.10.2015 Task Description

currently absolute positioning overlapping deny button and not full visible

Possible better solution:

  • cssbased toggle
  • left:50%; width:300px;margin-left:-150px;margin-top:50px;
2089Backend/CoreBug ReportMediumadding same taskid as subtask or related task should be...New
50%
1.0207.11.201518.11.2016 Task Description

Both is a bit illogical, but both is currently possible! ;-)

1 ←- 1

So when setting the parent task id checked for creating loops is needed:

Loop with 2 tasks: 1 ←- 2 ←- 1

Loop with 3 tasks: 1 ←- 2 ←- 3 ←- 1
Loop with n tasks: 1 ←- ... ←- n < – 1

As I think there are currently no recursive reads that could lead to an endless loop, but should be kept in mind when someone wants to programm rendering a gantt chart.
E.g. by limiting the depth of subtasks for example.

 2102 Backend/CoreBug ReportMedium strict ordering of tags required  Closed
100%
1.0219.02.201626.01.2019 Task Description

When saving the tag list at admin and project area, the ordering of the tags must be recalculated.

So it is not more legal to have a list ordering like (0,0,0,1,3,4,7)

That should be recalculated and stored as (1,2,3,4,5,6, 7) (or 0,1,2,3,4,5,6)
currently in file includes/modify.inc.php

Why?

The SQL for the tasklist uses currently GROUP_CONCAT (and a equivalent syntax for postgres) that groups by list_tag.list_position.
Well, we could just ‘group by’ the tag_id too, but with list_position value we can show the most important tags first.

3 times, and that 3 result fields must be in the same order. (tag id, tag name, tag class field)

Also that sql-query part there needs a little modification, but first fix that strict ordering.

Alternative

Don’t use group_concat() or similiar for list_tag.tag_name or list_tag.class. Instead load an indexed array once per http request and only when needed.

For instance as function within class.flyspray.inc.php:

        /**
         * load all tags into array
         *
         * compared to listTags of class project, this preloads all tags in flyspray database
         * ideally maximal called once per http request, then using the array index for getting info
         *
         * @return array
         */
        public static function getAllTags()
        {
                global $db;
                $at=array();
                $res = $db->query('SELECT tag_id, project_id, list_position, tag_name, class, show_in_list FROM {list_tag}');
                while ($t = $db->fetchRow($res)){
                        $at[$t['tag_id']]=array(
                                'project_id'=>$t['project_id'],
                                'list_position'=>$t['list_position'],
                                'tag_name'=>$t['tag_name'],
                                'class'=>$t['class'],
                                'show_in_list'=>$t['show_in_list']
                        );
                }
                return $at;
        }

in scripts/index.php in function tpl_draw_cell():

function tpl_draw_cell($task, $colname, $format = "<td class='%s'>%s</td>") {
  global $fs, $db, $proj, $page, $user, $alltags;
...
  case 'summary':
...
    if($task['tagids']!=''){
                        # if global $alltags are yet undefined, preload the tags now.
                        if(!is_array($alltags)) {
                                $alltags=$fs->getAllTags();
...
 foreach($tagids as $tagid){
                                $tgs.='<i class="tag t'.$tagid
                                        .(isset($alltags[$tagid]['class']) ? ' ' .htmlspecialchars($alltags[$tagid]['class'], ENT_QUOTES, 'utf-8') : '').'" title="'.htmlspecialchars($alltags[$tagid]['tag_name'], ENT_QUOTES, 'utf-8').'"></i>';
                        }
2121Backend/CoreBug ReportMedium'my assigned tasks' uses like %?% search instead of use...Confirmed
90%
1.0319.04.201603.02.2018 Task Description

Problem: https://github.com/Flyspray/flyspray/pull/552

The button ‘My assigned tasks’ should search only by userid, not in username or realname with the LIKE ‘%...%’ operator.

Currently the button is using the same as doing an advanced search filling the ‘Assigned To’ input field. (currently ‘dev’ param) But that search param searches in userid, username and realname.

Edit: Implemented simpler solution: if param is digitsonly, then search by userid, otherwise by username and realname if that param exists.

 2133 User InterfaceBug ReportMedium Cannot register username containing "-_." characters (a ...Closed
100%
1.0207.06.201630.06.2016 Task Description

Tried to create user name: xxx-yyy, xxx.yyy or xxx_yyy. Name is highlighted in ‘red’ and no ‘Send code’ button. Is this supposed to be OK?

 2189 Installer and UpgraderBug ReportMedium undefined constant ADODB_ASSOC_CASE_NATIVE Warning: Hea ...Closed
100%
1.0803.08.201615.07.2018 Task Description

I try to install flyspray-1.0-rc1 on a shared hoster (all-inkl.com).

Apache
PHP 5.3.28 note by peterdd: php version can be switched on all-inkl.com settings per subdomain from 5.2, 5.3,5.4, 5.5, 5.6 up to 7.0

MYSQL 5.3.28 note by peterdd: not mysqlnd 5.0.12-dev as phpinfo told from all-inkl.com???

During & after installation (or updating) i get the following error:

Use of undefined constant ADODB_ASSOC_CASE_NATIVE - assumed 'ADODB_ASSOC_CASE_NATIVE' in /www/htdocs/[userid]/flyspray/vendor/adodb/adodb-php/adodb.inc.php on line 3818
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/[userid]/flyspray/vendor/adodb/adodb-php/adodb.inc.php:4642) in /www/htdocs/[userid]/flyspray/includes/class.flyspray.php on line 835
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/[userid]/flyspray/vendor/adodb/adodb-php/adodb.inc.php:4642) in /www/htdocs/[userid]/flyspray/includes/class.flyspray.php on line 835
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/[userid]/flyspray/vendor/adodb/adodb-php/adodb.inc.php:4642) in /www/htdocs/[userid]/flyspray/includes/class.flyspray.php on line 835
Headers are already sent, this should not have happened. Please inform Flyspray developers.

The part before the last sentence is repeated numerous time. Sometimes the tracker is shown partially below the error message.

Cheers

 2213 Backend/CoreBug ReportMedium fix warnings with PHP7 Closed
100%
1.017.10.201624.10.2016 Task Description

There are still some warnings about deprecated constructors when Flyspray runs with php7.

 2310 Backend/CoreBug ReportMedium Default entry to project creates endless loop Closed
100%
1.0205.11.201607.02.2018 Task Description

I setup the default page to “roadmap” for a project, logged out, and it’s not possible to access the base url anymore. I chased the bug throughoutt the code and it seems that:

index.php calls scripts/roadmap.php at line 200:

if (!defined('NO_DO')) {
    require_once(BASEDIR . "/scripts/$do.php");
} 

and:

in scripts/roadmap.php, lines 11-13 redirect to base url:

if (!$proj->id) {
    Flyspray::show_error(25);
}
2453Backend/CoreBug ReportMediumvalidate category before storing a new taskNew
0%
1.014.12.201714.12.2017 Task Description

Currently the category_id is not checked if the value is legal for the project when a new task is created.

  • must be unsigned int
  • must be an active category_id of the project or global category.
  • setting a category_id must be allowed - see project settings.

If invalid category_id is sent, deny creating task and show error message and show filled form again.

If no category_id is sent (or empty string) and category select is enabled:

  • either choose a default category

or

  • implement feature request FS#2451 and show that user should select a category.
2490User InterfaceBug ReportMediumReset Password's Username field has maxlength of 20 - t...Confirmed
50%
1.0201.09.201810.09.2018 Task Description

I’ve set up an account with a username longer than 20 characters, but can’t reset the password because the
flyspray/index.php?do=lostpw
page username field has maxlength=”20” The maxlength for a new user registration seems to be 32 characters.

A related concern is that when setting up the default/admin user on first load of the system, I can use an email address as username (always my preference), but it’s actually not a valid username to create for others thereafter. Consider allowing ‘@’ character in usernames.

 2532 Backend/CoreBug ReportMedium spaces before or after a single word search gives too m ...Closed
100%
1.0111.01.201911.01.2019 Task Description

Spaces before or after a task search string gives too many results in the tasklist.

Example search strings:

test (space after word test)
 test
 test (space after word test)

Found this on bugs.archlinux.org, but also current 1.0-rc7 has this problem.

 1953 Backend/CoreBug ReportLow do form actions first, then build the anwser page Closed
100%
1.0207.03.201520.03.2015 Task Description

If you save forms, it can happen that something is changes on the page. ^^

But if you render parts of the answer page before the form action is handled and database changes are made,
the answer page shows old information. Only on an additional request you see the current data.

The wrong way to solve this is making a redirect. Saw this in some other software and it was source of problems.

1978User InterfaceBug ReportLowCompensate degraded usability due added token system an...Confirmed
50%
1.0516.03.201512.10.2015
2039Installer and UpgraderTODOLowReview INSTALL, README, documentation files for release...New
30%
1.023.08.201509.04.2016
2221Installer and UpgraderInformationLowNotices on install with PHP7New
50%
1.0124.10.201624.10.2016
 2326 Backend/CoreBug ReportLow Roadmap does not show future version Closed
100%
1.0412.01.201723.01.2017
 2450 User InterfaceBug ReportLow Empty avatars appears like broken images Closed
100%
1.0129.10.201715.07.2018
2491Backend/CoreBug ReportLowgroup member links if project manager but not adminNew
0%
1.001.09.201801.09.2018
 1996 User InterfaceBug ReportLow readd ajax_load.gif to CleanFS/ Closed
100%
Jordan MendlerPsychokiller18881.0204.06.201517.11.2015
 1954 EmailTODOHigh Change "No HTML in E-Mails" Option  Closed
100%
Jouni Ahtopeterdd1.01607.03.201523.04.2015
 1517 NotificationsBug ReportMedium Jabber configuration prevents scheduler from sending ma ...Closed
100%
Jouni Ahto1.0514.11.200804.08.2015
 2015 NotificationsBug ReportMedium notification if category was changed Closed
100%
Jouni Ahto1.0122.07.201531.07.2015
 1591 Backend/CoreBug ReportLow PostgreSQL Advanced Search is Case-Sensitive; MySQL is  ...Closed
100%
Jouni Ahto1.0203.08.200919.03.2015
 1764 Backend/CoreBug ReportLow PostgreSQL: No activity graphs displayed Closed
100%
Jouni Ahto1.0113.08.201222.04.2015
 2195 Backend/CoreTODOHigh Release Flyspray 1.0-rc2/rc3/rc4 Closed
80%
peterdd1.015.08.201608.12.2016
 2452 Backend/CoreBug ReportHigh deprecated functions since PHP7.2 Closed
100%
peterdd1.0113.12.201716.07.2018
 1952 Backend/CoreBug ReportMedium Funniest bug ever - shooting in the foot Closed
100%
peterdd1.007.03.201507.03.2015
 2035 Backend/CoreBug ReportMedium permissions in project should overwrite those from glob ...Closed
100%
peterdd1.0320.08.201527.10.2015
 2080 User InterfaceFeature RequestMedium Unfinished UI for task list secondary sort setting Closed
100%
peterdd1.0129.10.201512.11.2015
 2113 Backend/CoreBug ReportMedium invalid priority 'very high' (priority6, was 'flash' in ...Closed
100%
peterdd1.0203.04.201609.04.2016
 2120 Backend/CoreBug ReportMedium anonymous task creation in restricted project not possi ...Closed
100%
peterdd1.0219.04.201601.08.2016
 2523 Backend/CoreBug ReportMedium tagname length not checked (was tags containing a comma ...Closed
100%
peterdd1.06101.11.201824.01.2019
 2576 User InterfaceBug ReportMedium Display problem when reopening a task Closed
100%
peterdd1.0125.09.201928.09.2019
 1841 User InterfaceBug ReportLow "created user" in event log leads to "This task does no ...Closed
100%
peterdd1.0105.03.201323.04.2015
 1845 User InterfaceBug ReportLow Support for short user name Closed
100%
peterdd1.0112.03.201307.03.2015
 2478 Installer and UpgraderFeature RequestLow password / real_name / jabber_id during installation Closed
100%
peterdd1.0210.08.201826.02.2019
 1799 Backend/CoreBug ReportLow Default Sort Option Closed
100%
Psychokiller18881.0213.12.201210.03.2015
Showing tasks 1 - 50 of 52 Page 1 of 21 - 2 -

Available keyboard shortcuts

Tasklist

Task Details

Task Editing