2.0 Release Notes

From web2Project.net
Jump to: navigation, search

Release Date: 28 June 2010

Downloading web2project

For the v2.0 Release, the only official distribution site is SourceForge.

All Installation instructions have been moved to the Installation page. They will no longer be included in the Release Notes.

Reporting Problems

If you have any problems or think you've found a bug, please visit our Support Forums. We have a great community and most are willing to help in exchange for a simple "thank you". Remember, politeness goes a long way.

If you've been unlucky enough to discover an actual bug, please add it to our our Issue Tracking System. Please be as specific as possible, it will help us reproduce and determine the cause of problems more quickly. Though before submitting, please search to see if someone has already submitted it. Who knows? It might already be fixed by the time you find it!

Finally, please remember to mark Feature Requests as requests and not bugs.

New Features

  • Added approximately 80 Unit Tests since the v1.3 release, 280+ since the v1.0 release one year ago
  • Added an 'update checker' to determine when a new version of web2project is available
  • Added a data collection mechanism to 'phone home' basic system information to web2project.net - no sensitive information is collected and this can be opted out of at any time via the System Configuration
  • Implemented functionality to have subprojects automatically create token tasks in their parent projects, all information - percent complete, hours assigned, etc - automatically rolls up into parent project calculations, this is key to bugs 86 and 189 listed immediately below
  • Implemented system timezone support to allow for a non-GMT/UTC server to use now() properly
  • Updated the UpgradeManager to only allow for updates to be applied by admins via the System Admin
  • 63 - Calendar - User-based Timezones
  • 86 - Projects - Percent Calculation with Subprojects
  • 174 - System Admin - Logging System
  • 182 - Contacts - Refactor Contacts to support numerous email addresses, etc
  • 189 - Projects - Start/End Date Cascading with Subprojects

Fixes/Bugs Closed

  • Applied the filterCurrency and currency formatting to everywhere money is used
  • Cleaned up some screwy javascript in base.js in an attempt to debug other issues
  • Locked down the Role add/edit screens to not allow granting Admin role unless they have Admin access
  • Removed numerous $_REQUEST calls in favor of $_GET or $_POST appropriately
  • Removed some hard-coded id's to kill off Magic Numbers
  • 56 - Forums - Forum not assigned to a project
  • 290 - Forums - the icon "You have unread post in this topic" (light bulb) is always present
  • 300 - Gantt Chart Generation - German Umlaute äöü problem in gantt chart
  • 302 - Core Infrastructure - PNG icon files referenced in wrong directory.
  • 340 - Core Infrastructure - The date class throws logs
  • 360 - Project Designer - Collapse Project Details hides tasks
  • 392 - Tasks - The screen following an import operation remains blank.
  • 393 - Tasks - user specific priority not shown in taskss->tasks per user
  • 402 - Gantt Chart Generation - if no Gantt can be created due to missing data (e.g. no tasks from current filter), there is a red cross displayed
  • 403 - Tasks - tasks per user not shown
  • 404 - Project Designer - can't update percent complete
  • 405 - Companies - ver 1.3 - Company URL crashes, the links are working properly
  • 406 - System Admin - dP conversion does not enter template id into sysadmin field
  • 408 - Companies - In the view see company still not working properly URL
  • 412 - Projects - Creating dependant projects fails
  • 414 - undefined method CustomField
  • 415 - Projects - Project count on tabs different (trevormorse)
  • 419 - After uploading the SVN 1064 fatal error - block
  • 420 - SVN classes/w2p folder made with duplicate names but different case
  • 424 - Departments - Changing Departement Name results in a DB Exception
  • 425 - Gantt Chart Generation - Gannt title squashed
  • 430 - Projects - Case sensitive CustomFieldCheckBox class
  • 434 - Forums - BBcode not rendered on forums
  • 435 - Projects - Filtered projects list tabs are missing elements
  • 437 - Projects - Subprojects cannot be displayed when Owner Filter is on
  • 439 - Expense Code Table
  • 440 - Projects - Various Bug's
  • 444 - History - Changes in Departments lead to crash in history
  • 445 - Projects - Search results do not show subprojects
  • 447 - User Admin - User Log Date Time IN - Date Time OUT: swapped values
  • 448 - Departments - Error On Department Tab
  • 449 - Projects - budget field format
  • 454 - Tasks - can't display user related task priority for single user, can't reset the same to normal
  • 455 - Tasks - Task error
  • 457 - Core Infrastructure - Problem upgrading from V1.3
  • 461 - Core Infrastructure - Upgrade Problem - Custom fields not recognized
  • 462 - Tasks - no CustomOptionList class
  • 463 - Projects - Unknown column 'contact_email' in 'field list'
  • 464 - Core Infrastructure - Recent cleanup of base.js broke the expansion of projects or tasks lists
  • 465 - Companies - module company-bookmark files error
  • 466 - SmartSearch - Reorg of contacts with contacts_methods broke smartsearch
  • 468 - Reports - Fatal Error
  • 473 - Core Infrastructure - Losing project contacts during migration 1.3 -> 2.0
  • 478 - Project Designer - projectdesigner does not 'forward' error messages
  • 485 - Core Infrastructure - new contacts_methods table and zero to many relationships
  • 486 - Tasks - Cannot add tasks to projects
  • 489 - Departments - Problems adding departments
  • 491 - Forums - update Watches
  • 496 - Files - Not possible to attach a file to task/project

Misc Changes/Improvements

  • Added a patch from dotProject to add organization headers in email confirmations
  • Added MIN_PHP_VERSION constant to more easily specify supported versions
  • Implemented an HTML Helper to simplify the Contact List view on Tasks & Project screens
  • Major cleanup to convert to the PEAR coding standard
  • Minor cleanup to the css to remove duplication
  • Moved all images for themes/styles to subdirectories to keep things better organized
  • Moved around some commonly used functions from their subclasses to main_functions for better access
  • Moved the Helpdesk search functionality into the Helpdesk module
  • Re-applied some of Trevor's changes because ninjas were trying to kill Keith
  • Refactored all the List pages to prepare for later user-configurable screens
  • Removed deprecated functions including references to clone() and checking if we're using PHP5 or above
  • Removed dead/old/commented out code
  • Renamed/simplified the permissions checking to clarify usage - eg converted from "getDenyEdit" and "getDenyAdd" to "canEdit" and "canAdd" respectively
  • Removed the url validation from the check() methods.. it was wrong and needs reworking
  • Separated the Authenticators classes to clearly identify what goes where
  • Updated the /classes folder to use a namespace-friendly class structure
  • Updated the autoloader to reflect the new class structure and converted to spl_autoload_register to allow for multiple autoloaders
  • Updated the last few php4-style constructors to use the php5 style __construct()
  • Updated the last of the core objects to have uniform store(), delete(), and check() method signatures
  • 221 - Core Infrastructure - PHP5.3 Deprecation Testing
  • 231 - Contacts - Displaying "displayed name" ;)
  • 328 - Tasks - Disable finish date for milestone tasks
  • 441 - Tasks - Add Time Task Log Was Updated For Auditing
  • 450 - Projects - Fields to Translation
  • 459 - Project Designer - budget field format
  • 475 - Companies - budget field format
  • 476 - Project Designer - Actions Panel
  • 487 - Projects - Project list: should display subprojects

Open/Known Issues

  • The cascading dependencies are still not 100% but very close. Although long chains (A->B-C->D->E) work fine and tasks with multiple dependencies work fine, there are a limited number of scenarios where dependencies do not behave as expected.
    • One such scenario is when you have a Dynamic Task A with children chain (B->C-D->E) and Task F which is dependent on Task A. If B, C, D or E shift, they shift the rest of the chain as expected and the Dynamic Task (A) as expected but unfortunately F does not get updated.
  • If you upgrade from dotProject, you may have an oddity with your default theme/display as the name has changed. If this happens, edit your preferences, change to one of the existing themes, and save.

System Metrics

Starting with this release, we'll provide a simple snapshot of a few core metrics that may interest the geekier among us. By running these commands, we get the metrics below (web2project-git is my base w2p directory):

php phploc.php --count-tests --exclude=../web2project-git/lib ../web2project-git/

php phpcpd.php --exclude=../web2project-git/lib/ --exclude=../web2project-git/unit_tests/ ../web2project-git/


  • Lines of Code: 63691 (9981 of comments, 53710 of code)
  • Overall Cyclomatic Complexity/LoC: 0.1
  • Classes: 78 (78 Concrete, 0 Abstract)
    • Lines of Code/Class: 816
    • Class Constants: 6
    • Methods: 749 (41 static, 708 non-static)
    • Lines of Code/Method: 85
    • Cyclomatic Complexity/Number of Methods: 8.11
  • Functions: 211
  • Constants: 57
  • Test Classes: 11
    • Test Methods: 284
  • 2.12% duplicated lines of code (~1138)