wiki:ProjectPlan

Version 13 (modified by davea, 12 years ago) (diff)

--

Project Plan

Active items

David

  • distributed storage
    • complete and use simulator
    • client: detect space contention
    • client: send delete requests to scheduler

Charlie

  • OpenCL support for CPUs
  • Add features to Macintosh Installer and Uninstaller for BOINC, including:
    • localization for non-English languages.
    • running BOINC when no user is logged in.
    • removing or preserving BOINC Data files.
  • To allow multiple users to run Macintosh Manager under Fast User Switching:
    • Modify BOINCGUIApp::DetectDuplicateInstance.
    • Make stdoutgui.txt and stderrgui.txt group-writable.
  • Change tooltip for Clear button in Simple View Preferences to say something like:
    • "Clear all local preferences listed above to restore their web-based settings and close the dialog."
  • Update boinc_get_opencl_ids() API code
    • Special value for type arg to mean "any vendor" (return error on older clients which don't have aid.gpu_type in init_data.xml file.)
    • what should it do if type arg does not match aid.gpu_type from init_data.xml file?
    • compatibility with <coproc> option in cc_config.xml?
  • Add Exclusive GPU Apps to Advanced Preferences Dialog
  • Is there a more efficient way for Manager to determine when connected computer (client) has changed than repeatedly comparing connected computer name with previous name?
    • Needed in Event Log, View Notices, Simple View Notices (Simple View Messages)
  • Review and update Mac installer ReadMe.
  • Build Astropulse for Mac
  • Build Astropulse OpenCL for Mac
  • Build SETI@home CUDA for Mac
  • Build GR, CE and PtP v7.0.x

To be discussed

  • David's partial "fix" for Windows installer overwriting all_projects_list.xml which may be older than the one already present.
    • his "fix" downloads a new copy immediately if new version # > old version number, but
    • this does not work for reinstall over same version (can Windows installer do this, or just repair?)
    • Could be OK if we added "don't overwrite if file already exists".
    • This defeats Rom's original purpose in overwriting the file which was to replace a corrupted file on server. (OK if file on server has been fixed, though.)
  • Reorganization of various types of preference dialogs in Manager:
    • See email from David "Settings/Options in the BOINC manager" August 24, 2011 9:26:12 AM PDT
    • Separate dialog for editing Exclusive Apps (not part of Advanced Prefs.)
      • Also Exclusive GPU apps.
      • Ideally, just modify that portion of the cc_config.xml file, retaining formatting.
      • Or separate clear button for each tab in Computing Preferences.
      • Clearly identify which settings are from web-based (global) prefs and which are local.
      • Show values from both web-based (global) prefs and from local prefs if present.
      • Allow user to select which values should follow web-based (global) prefs and which should be overridden.
    • Clarify confusing settings in Computing Preferences:
      • Idle time value applies to "in use" memory settings, even if "Computing allowed while computer is in use" is true.
      • meaning of zero in idle time setting.
    • (low priority) have the Edit Preferences dialog display and enforce the various upper/lower bounds. The bounds are given in html/inc/prefs.inc.
      • Put these bounds in a .h file. have the client enforce the bounds when handling the set-prefs RPC.
  • Improve handling of Max Disk Usage in Simple View Preferences
    • It has only the # GB Max disk space setting, but web prefs & Advanced prefs also have
      • Leave at least xx GB free disk space
      • Use at most xx% of total disk space
    • CLIENT_STATE::allowed_disk_usage(double boinc_total) uses the smallest of the 3 so the value shown in Simple Prefs may not be the one that is currently active.
    • DaveA wrote: "One option would be to clear the other two if the user sets prefs via

the simple view dialog" but "clearing" disk_max_used_pct means setting it to 100%.

  • Review Rom's BOINC Sentinels project
    • Prototype multi-threaded communication layer (client / Manager) _ ~ 7 times faster than current
    • Later this year or next year
    • gui_rpc_cient_ops.cpp, etc.

done:

  • Write manager state info items (wxConfigBase stuff: Window size & position, locale) to Windows registry / Mac user preferences as soon as they are changed (needs flush on Windows, maybe on other platforms.) (done)
  • Create templates for Mac plist files.
    • modify SetVersion utility to use these.
    • remove old plist files from GIT repository so they stop showing as uncommitted changes.

Rom

  • Fit and finish items for 6.13/7.0 release
    • Walk through Simple GUI workitems in summary email
  • Permanent fix for Wizard Back buttons (with browser cookies)

Release blocking items

  • Use separate threads for handling GUI RPCs in the client.
  • VirtualBox Workitems
    • Test with Linux sandbox
    • Test with Windows sandbox

Planned items

  • Server stuff (David)
    • Calculate disk usage of a set of jobs exactly
    • Bring server_stable and server VM up to trunk
    • Scheduler: restructure so that multiple job sources (cache, batch, locality, co-scheduling) feed into the score-based scheduling mechanism.
  • OpenID support
    • Server and web
    • client
    • manager
  • BOINC Manager
    • Rework preferences dialogs
  • Finish Building PtP and GR.

Completed items

  • Work with Rom to get virtual-machine apps working on the Mac.
  • Look for memory leaks in the client and manager.
  • Need new SG Help web page for 6.13.0+
  • Update wiki page docs on creating skins
  • Update sample code for building on XCode 4.2 under OS 10.7.
  • Update documentation for buildingproject applications on XCode 4.2 under OS 10.7.
  • When the Manager window is brought to the front, and the Event Log window is open, the event log window should also be brought to the front (but behind the manager window)
  • Clip progress bars at 100%: If a job's progress is > 100%, it should draw the bar as if it were 100%, but display the actual value.