As part of making Our XMLRPC API compatible with the upstream API ,, we will update Bugzilla/RPC/User.pm to include all the functions in the upstream WebService/User.pm and add our additional ones this will require moving some functions from Bugzilla/RPC/Admin.pm to Bugzilla/RPC/User.pm "addUser and name it create" . Also We will add new module Bugzilla/RPC/Admin.pm which doesn't exist in the Upstream bugzilla.
LOC Calculation: (using historical data) rh_bugzilla_2_18/Bugzilla/RPC/User.pm = 65 LOC rh_bugzilla_2_18/Bugzilla/RPC/Admin.pm = 607 LOC bugzilla_3/Bugzilla/WebService/User.pm = 67 LOC So basically the total LOC for this task will be = 607 + 67 = 674 LOC For unit testing,, We have existing xmlrpc testcases for xmlrpc functions in User.pm and Admin.pm total existing LOC for that is : 608 There are additional tests to be added for functions: addComponent, getAllgroups, UserInfo, idToName ,, In average an xmlrpc testcase is about 100 LOC so will need additional 400 LOC for testing so in total: LOC = 674 + 608 + 400 =
Using FP method for LOC estimation: as in : https://engineering.redhat.com/trac/bugzilla-3.0-rh/wiki/XmlrpcCrossComparison for Admin.pm mostly all the functions are new to upstream except for addUser LOC for Admin.pm: Inputs: username, password, data hash with user/group info, data hash with component details = 4 Outputs: authentication errors, input validation errors, logging messages, list of groups, user details, component details = 5 Inquiries : group data, user data, component data, bugs data = 4 Logical files : database tables: groups, user_group_map, components, profiles, bugs, component_cc = 6 External Files = Zero FP total count (simple weighting factor) = (3*4)+(4*5)+(3*4)+(7*6)+(5*0) = 86 FP = 86 * 1.11 = 95 LOC for Admin.pm = 95 * 60 = 5700 LOC For User.pm Inputs: username, password, hash with user details = 3 Outputs: authentication errors, input validation errors, logging messages, user details = 4 Inquiries = 0 logical files = 0 external files = 0 FP total count (simple weighting factor) = (3*4)+(4*3) = 24 FP = 24 * 1.11 = 27 LOC = 27 * 60 = 1620 For unit testing,, We have existing xmlrpc testcases for xmlrpc functions in User.pm and Admin.pm total existing LOC for that is : 608 There are additional tests to be added for functions: addComponent, getAllgroups, UserInfo, idToName ,, In average an xmlrpc testcase is about 100 LOC so will need additional 400 LOC for testing Testing code = 608 + 400 = 1008 LOC TOTAL LOC = Admin.pm code + User.pm Code + testing code = 5700 + 1620 + 1008 = 8328
This bug is high level bug, It will be replaced by bugs for each xmlrpc function. CLosing bug Noura