Saturday, 2010-08-14

../irclogs/#mantishelp.2010-08-14.log
--- scribe started ---00:00
dhx_mnuclear_eclipse: I was working on fixing project hierarchies :)01:38
nuclear_eclipseso stop working and get it done already :P01:39
dhx_mPaul and I were talking about databases the other day01:39
nuclear_eclipseuh oh01:39
dhx_mthat is something I consider more urgent01:39
dhx_mseeing as people can't upgrade MantisBT on MSSQL, etc01:40
dhx_mso just to scare you... I was looking at NoSQL options :)01:40
dhx_mand solving the conflict problem while we're at it01:41
nuclear_eclipseomg01:43
* nuclear_eclipse starts removing commit privileges01:43
dhx_mhaha01:43
dhx_mthe problem with our current relational database backend is that it doesn't know what to do with merge conflicts01:45
nuclear_eclipsemerge conflicts? wth are we merging?01:45
dhx_mideally it should notify users if they're committing changes to a bug and the bug has changed since they opened the edit page01:45
dhx_mso they can verify what to do with the merge01:46
nuclear_eclipseoh, that's painful though, because it opens a can of self-replicating worms01:46
nuclear_eclipsebasically, without going all Drupal with "everything is a node", there's not really any simple way to handle it in a way that works for everything that can be attached to an issue01:48
nuclear_eclipseeg, you'd have to be able to handle conflicts on custom fields, and some method of handling it for plugin data01:48
dhx_mwell something like CouchDB keeps versions of each value stored and when it finds a conflict during replication, it picks the longest chain of revisions01:49
dhx_mif it stuffs up you have the full revision history to go back to01:49
nuclear_eclipsestop right there01:49
nuclear_eclipsethe answer to the question is not "change backends"01:49
dhx_mreinvent the wheel in SQL? :p01:50
nuclear_eclipseno, the answer is to ignore it, or at the very least try to detect an update conflict and let the user open a new tab/page to manually sort it out01:50
nuclear_eclipseanything else you try to do will stuff something up in a way the user was not expecting/wanting, almost guaranteed01:51
nuclear_eclipseI spent two weeks of hard core thinking/planning on this a year ago01:51
dhx_mwell the thing is, that is already the case01:51
dhx_mthe user doesn't know if they're creating a conflict01:52
dhx_mie. having a bug update window open for 2 days (in which time 10 edits are made)01:52
nuclear_eclipsemy point is that if you try to do something smarter than interrupt a confilct and tell the user to fix it before submitting a second time, you will only make it worse01:52
dhx_mthen after 2 days they save it, undoing those 10 edits01:52
nuclear_eclipseand relying on database specific rollbacks is not the answer01:52
dhx_mwell we can/should interrupt on a conflict being detected01:53
nuclear_eclipseright, I've just never had the time to implement that sort of detection and interface01:53
dhx_mto use CouchDB as an example again, it detects conflicts for us... and it has an API for resolving conflicts manually (whichever way we want)01:53
nuclear_eclipsestop01:53
nuclear_eclipseyoure not getting my point01:54
dhx_mas opposed to needing to do it ourselves in SQL01:54
nuclear_eclipsewe cant implement a feature that only works on a single database that < 1% of the population uses01:54
dhx_mby "resolving conflicts manually" I meant that we show the user a page where they are notified a conflict exists and asks them to confirm a default action (or go back and fix it)01:54
nuclear_eclipsedetecting the conflict outself is easy: compare last_updated timestamp01:55
nuclear_eclipsewe don't need couchdb to tell us we're breaking things01:55
dhx_mwe'd need granularity down to the per-field level01:55
nuclear_eclipseno no no01:55
nuclear_eclipseanything more than bug-level detection is wrong01:55
dhx_mmantis_bug_table could be updated from many different places (bug_update, a plugin page, etc)01:55
nuclear_eclipsefields aren't just distinct values01:55
nuclear_eclipseif you update one, a *lot* of people expect that to affect the values of other fields too01:56
dhx_mright01:56
nuclear_eclipseyou *have* to defer the entire bug status back to the user01:56
nuclear_eclipses/status/state/01:56
dhx_mwhat I've been thinking is that we need another layer between the Bug class and the "users" of that data01:56
nuclear_eclipsesigh01:56
dhx_mthe layer would perform the access checks amongst other checks (priority must be at least high for the severity to be above major, for instance)01:57
nuclear_eclipseyou're over complicating things01:57
dhx_mat the moment we just duplicate code (badly) throughout MantisBT without a common interface for updating bugs in a consistent way01:57
nuclear_eclipsethat sort of interstitial is 100% unrelated to handling conflicts01:58
dhx_mwell it would be needed to resolve conflicts correctly (so the bug can't enter an invalid state where fields have conditions on their usage)01:58
nuclear_eclipsehonestly, the best solution when a confilct is detected is to take the user back to the update form, and show both the current value (in the database) side-by-side with the values they tried to submit, and let them manually resolve the conflict and resubmit the form01:59
nuclear_eclipseanything other than that is only going to result in behavior that users don't want or aren't expecting02:00
dhx_mfor instance, if status >= assigned then check if handler_id != NO_USER02:01
nuclear_eclipsedhx_m: that's still 100% unrelated to dealing with merge conflicts02:01
dhx_mwell I was planning on showing things side-by-side :)02:02
dhx_m(in my hypothetical system)02:02
nuclear_eclipsedhx_m: my point is that we should only be detecting conflicts based on last_updated; anything else is going to miss something02:03
dhx_mtrue... I guess like MediaWiki?02:04
nuclear_eclipseesp in cases where plugins have touched last_updated because it has an attached field that changed02:04
nuclear_eclipsemediawiki has it easy because it's a single data field, so *any* change is by definition a conflict, and very simple to deal with02:05
dhx_myep02:14
CIA-103Mantisbt: hickseydr * r596097f32c98 / (6 files in 3 dirs): Issue #12253: Implement management page to view workflow graph04:10
CIA-103Mantisbt: hickseydr * rb6a272191422 / (bug_update.php bugnote_add.php core/bugnote_api.php): Fix #11758: Improve handling of reassign on feedback feature04:51
CIA-103Mantisbt: hickseydr * r203f17e69ac2 /bug_update.php: Fix #11758: Improve handling of reassign on feedback (bug_update)05:08
CIA-103Mantisbt: hickseydr * r95ac1e0caaf1 / (bug_update.php bugnote_add.php): Fix #12205: Disable reassign on feedback when the handler replies05:15
Githubmantisbt: master Paul * 6d6e255 (1 files in 1 dirs): Update list of obsolete config variables.06:30
Githubmantisbt: master David Hicks * 596097f (3 files in 3 dirs): Issue #12253: Implement management page to view workflow graph ...06:30
Githubmantisbt: master David Hicks * b6a2721 (3 files in 2 dirs): Fix #11758: Improve handling of reassign on feedback feature ...06:30
Githubmantisbt: master David Hicks * 203f17e (1 files in 1 dirs): Fix #11758: Improve handling of reassign on feedback (bug_update) ...06:30
Githubmantisbt: master David Hicks * 95ac1e0 (2 files in 1 dirs): Fix #12205: Disable reassign on feedback when the handler replies ...06:30
Githubmantisbt: master commits bec9fe8...95ac1e0 - http://bit.ly/d3tjgu06:30
paulrlo09:02
paulrdhx_m:lo10:19
paulrnuclear_eclipse / dhx_m: either of you up yet?11:13
giallunuclear_eclipse, dhx_m: re conflicts. I think bugzilla handles them quite nicely. can't we study how do they do it and replicate the method in PHP?13:12
* giallu hates development discussions are not happening in the development discussion mailing list but in the "mantishelp" channel13:13
paulrafternoon giallu13:33
paulrhow old's your kid now?13:34
giallupaulr, hi :) I've 2 actually. older is 5 other turns 3 in Nov15:18
istvanb_hi there17:32
istvanb_I have asked many times where is the plugin documentation for mantis, but I always forgot to save it to the favorites. Can u point it again (last time, I promise:)17:33
nuclear_eclipsehttp://docs.mantisbt.org/en/master/17:34
nuclear_eclipsehttp://docs.mantisbt.org/master/en/developers/17:34
istvanb_thanks man:)17:34
istvanb_so I'd like to create a page with some textfields, an enum and a button. What do you guys use to do this? Because edit the whole page in a text editor looks a little bit akwaard17:35
paulrhey john17:36
nuclear_eclipseistvanb_: check http://git.mantisforge.org for examples of other plugins17:36
nuclear_eclipsehi paulr17:36
paulri'm feeling a moment of boredom17:37
paulr:)17:37
istvanb_I have a lots of plugins, but they are very complicated for me. I have absolutely no knowledge of php at all. So I just try to figure out the things:) But its still a question how u guys set up the html part of your page17:38
paulr<paulr> nuclear_eclipse / dhx_m: either of you up yet?17:40
paulrthat reminds me17:40
paulrdo you know where the icons in mantis atm come from17:40
paulr?17:40
paulrand should we use png over gif?17:40
nuclear_eclipsepng is much better than gif, but I have no clue where the icons are from17:43
paulrhttp://git.mantisbt.org/?p=mantisbt.git;a=commitdiff;h=bd8d1ec329ee7bbe6aff9222c7ceba738c0dc13817:45
paulrI'm wondering more any more about license thing btw :P17:45
CIA-103Mantisbt: paul * r629a6760104e / (config_defaults_inc.php core/graphviz_api.php): Fix: #503718:20
CIA-103Mantisbt: paul * re7ee768d97e0 /config_defaults_inc.php: Fix $t_path on windows18:20
istvanb_I'd like to display all user groups in a multiple selection box. I use <?php print_user_option_list ( 'access_levels') ?>;18:28
istvanb_which displays the users, not the groups18:29
istvanb_which one should I use?18:29
istvanb_project_access_level_option_list18:46
CIA-103Mantisbt: paul * r1289ac3562ff /core/graphviz_api.php: Update comments in graphviz API19:27
Githubmantisbt: master Paul * e7ee768 (1 files in 1 dirs): Fix $t_path on windows22:30
Githubmantisbt: master Paul * 629a676 (2 files in 2 dirs): Fix: #5037 ...22:30
Githubmantisbt: master Paul * 1289ac3 (1 files in 1 dirs): Update comments in graphviz API22:30
Githubmantisbt: master commits 95ac1e0...1289ac3 - http://bit.ly/dx9TIs22:30

Generated by irclog2html.py