BitBake/GUI/WorkInProgress: Difference between revisions

From Yocto Project
Jump to navigationJump to search
(Update to align with sprints)
Line 5: Line 5:
[[File:image-creator-proto.png]]
[[File:image-creator-proto.png]]


== Fix ASAP ==
== M1 (Dev Complete May 23) ==
=== Bugs ===
* Progress bar sits at 0% when using GUI's with none server http://bugzilla.pokylinux.org/show_bug.cgi?id=868
* Progress bar sits at 0% when using GUI's with none server http://bugzilla.pokylinux.org/show_bug.cgi?id=868
** May be irrelevant if switching to process.py server in upstream BitBake
** How does the image creator perform with multiprocessing. Is the ability to request a server from the UI still useful?
** If switching to upstream BitBake we'll need to ensure xmlrpc is pulled back in
* Fix reset/build again
* Fix reset/build again
 
* Do sane fallback on images and include extra packages in IMAGE_INSTALL
== Before 1.? starts in earnest ==
=== Investigation ===
* Investigate oetypes for listing configuration variables and suggesting appropriate values
* Investigate oetypes for listing configuration variables and suggesting appropriate values
** lib/oe/types.py and typecheck.bbclass
** lib/oe/types.py and typecheck.bbclass
** Talk to Jeff P re: his requirements
** Talk to Jeff P re: his requirements
* Should we be developing against upstream BitBake and oe-core?
** Likely should be a separate configuration GUI per discussion with Darren
** How does the image creator perform with multiprocessing. Is the ability to request a server from the UI still useful?
=== Features ===
* #770 "Add mechanism to enable UI's to request extra data be stored in the cache" http://bugzilla.pokylinux.org/show_bug.cgi?id=770 (Liping/Lianhao)
* Add mechanism to enable selection of server back-end at runtime, rather than it being hard-coded. Furthermore a UI should be able to specify which server it wants to run against (Liping/Lianhao)
* <del>Distro selector dropdown</del>
** <del>as per MACHINE dropdown, partially implemented</del>
* Build development toolchain checkbox
** add meta-toolchain to task list
* Toolchain host combo
** like MACHINE, set SDKMACHINE from possible files in machine-sdk, partially implemented?
* Include development headers with toolchain (easy/medium)
** add dev-pkgs to IMAGE_FEATURES?
* <del>Spinner to set BB_NUMBER_THREADS</del>
* <del>Spinner to set PARALLEL_MAKE</del>
* Save/load previous configuration
** save will create a .bb file from which the created image can be reproduced
** load will parse a bb file and set up the gui
* Config write back
** When the user changes values that could be set in local.conf offer to write those values to save the user from having to change those again in future
* A search box which does basic find in the currently selected treeview's model


== Phase One (Planned Features for Yocto 1.? M2) ==
== M2 (Dev Complete Jul 4) ==
* Optimise, we take ~3mins to load all the data
* Optimise, we could probably be faster than ~30s on Single core (dual thread) Core 2 Duo @ 1.8GHz
** perhaps we can have the GUI provide a method which the server uses to return an appropriate data object? Rather than having the server iterate over all of the data and create a data object only for the client (ui) to then iterate this data object and create a different data object with its contents.
** PyGtk bindings support a more simple value setting syntax, the following snippet will set the third row's values:<pre>model[(2,)] = ('new string value', 'string 2')</pre>Therefore we can optimise insertion of the data into the tree model by ensuring the data comes back as a list (one entry per row) of tuples containing appropriate values for each column.
** PyGtk bindings support a more simple value setting syntax, the following snippet will set the third row's values:<pre>model[(2,)] = ('new string value', 'string 2')</pre>Therefore we can optimise insertion of the data into the tree model by ensuring the data comes back as a list (one entry per row) of tuples containing appropriate values for each column.
 
* Package format dropdown
* #770 "Add mechanism to enable UI's to request extra data be stored in the cache" http://bugzilla.pokylinux.org/show_bug.cgi?id=770
* Add mechanism to enable selection of server back-end at runtime, rather than it being hard-coded. Furthermore a UI should be able to specify which server it wants to run against
* <del>Distro selector dropdown (easy)</del>
** <del>as per MACHINE dropdown, partially implemented</del>
* Package format dropdown (difficult)
** cooker able to determine classes which are appropriate for the value
** cooker able to determine classes which are appropriate for the value
** wrap with command
** wrap with command
** hook up to hob
** hook up to hob
* Image output type dropdown (difficult)
* Image output type dropdown
** cooker able to determine all possible values for a variable
** cooker able to determine all possible values for a variable
** wrap with command
** wrap with command
** hook up to hob
** hook up to hob
* Build development toolchain checkbox (easy)
** add meta-toolchain to task list
* Toolchain host combo (easy)
** like MACHINE, set SDKMACHINE from possible files in machine-sdk, partially implemented?
* Include development headers with toolchain (easy/medium)
** add dev-pkgs to IMAGE_FEATURES?
* <del>Spinner to set BB_NUMBER_THREADS (easy)</del>
* <del>Spinner to set PARALLEL_MAKE (easy)</del>
* Save/load previous configuration (medium)
** save will create a .bb file from which the created image can be reproduced
** load will parse a bb file and set up the gui
* A search box which does basic find in the currently selected treeview's model (medium)
== Phase Two (Bug fixes) ==
* Sorting in Packages (by Group) column changes when item selected (included value alters sort order)
* Sorting in Packages (by Group) column changes when item selected (included value alters sort order)
* hobhandler as a proxy to the server has a code smell
* Enable changing sort order in tree views (A-Z | Z-A | ??) by clicking column header
* Enable changing sort order in tree views (A-Z | Z-A | ??) by clicking column header
* Show some notification when doing long-running operations i.e. toggle a package with many DEPENDS and the UI blocks without feedback
* Show some notification when doing long-running operations i.e. toggle a package with many DEPENDS and the UI blocks without feedback
* Bitbake reports "ERROR: Nothing to do.  Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information." when exiting hob, need to allow UI's to configure whether this message is relevant or not
* Bitbake reports "ERROR: Nothing to do.  Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information." when exiting hob, need to allow UI's to configure whether this message is relevant or not
* When cancelling a build, confirm before killing
* When cancelling a build, confirm before killing
* Show contents of images & tasks (per community feedback) http://bugzilla.pokylinux.org/show_bug.cgi?id=991
* Show more information for selected package (per community feedback) http://bugzilla.pokylinux.org/show_bug.cgi?id=992


== Phase Three (Unplanned Extra featrues) ==
== M3/Future (Unplanned Extra features - Dev Complete Jul 25) ==
* Config write back
** When the user changes values that could be set in local.conf offer to write those values to save the user from having to change those again in future
* Display and change IMAGE_FEATURES
* Display and change IMAGE_FEATURES
* Enable/Disable layers
* Enable/Disable layers
Line 65: Line 66:
** copy log
** copy log
** paste bin log
** paste bin log
 
* add context menus to package view
== Additionally ==
** "Rebuild-from" with a submenu for each task of the build; fetch, unpack, compile, etc.
* Investigate/verify using the image creator with sstate mirrors
* hobhandler as a proxy to the server has a code smell
* Investigate/verify using the image creator with sstate mirrors (should just work!)

Revision as of 00:28, 19 April 2011

Intro

Note: raw unfiltered thoughts, please contact me before acting upon them.

Image-creator-proto.png

M1 (Dev Complete May 23)

Bugs

  • Progress bar sits at 0% when using GUI's with none server http://bugzilla.pokylinux.org/show_bug.cgi?id=868
    • May be irrelevant if switching to process.py server in upstream BitBake
    • How does the image creator perform with multiprocessing. Is the ability to request a server from the UI still useful?
    • If switching to upstream BitBake we'll need to ensure xmlrpc is pulled back in
  • Fix reset/build again
  • Do sane fallback on images and include extra packages in IMAGE_INSTALL

Investigation

  • Investigate oetypes for listing configuration variables and suggesting appropriate values
    • lib/oe/types.py and typecheck.bbclass
    • Talk to Jeff P re: his requirements
    • Likely should be a separate configuration GUI per discussion with Darren

Features

  • #770 "Add mechanism to enable UI's to request extra data be stored in the cache" http://bugzilla.pokylinux.org/show_bug.cgi?id=770 (Liping/Lianhao)
  • Add mechanism to enable selection of server back-end at runtime, rather than it being hard-coded. Furthermore a UI should be able to specify which server it wants to run against (Liping/Lianhao)
  • Distro selector dropdown
    • as per MACHINE dropdown, partially implemented
  • Build development toolchain checkbox
    • add meta-toolchain to task list
  • Toolchain host combo
    • like MACHINE, set SDKMACHINE from possible files in machine-sdk, partially implemented?
  • Include development headers with toolchain (easy/medium)
    • add dev-pkgs to IMAGE_FEATURES?
  • Spinner to set BB_NUMBER_THREADS
  • Spinner to set PARALLEL_MAKE
  • Save/load previous configuration
    • save will create a .bb file from which the created image can be reproduced
    • load will parse a bb file and set up the gui
  • Config write back
    • When the user changes values that could be set in local.conf offer to write those values to save the user from having to change those again in future
  • A search box which does basic find in the currently selected treeview's model

M2 (Dev Complete Jul 4)

  • Optimise, we could probably be faster than ~30s on Single core (dual thread) Core 2 Duo @ 1.8GHz
    • PyGtk bindings support a more simple value setting syntax, the following snippet will set the third row's values:
      model[(2,)] = ('new string value', 'string 2')
      Therefore we can optimise insertion of the data into the tree model by ensuring the data comes back as a list (one entry per row) of tuples containing appropriate values for each column.
  • Package format dropdown
    • cooker able to determine classes which are appropriate for the value
    • wrap with command
    • hook up to hob
  • Image output type dropdown
    • cooker able to determine all possible values for a variable
    • wrap with command
    • hook up to hob
  • Sorting in Packages (by Group) column changes when item selected (included value alters sort order)
  • Enable changing sort order in tree views (A-Z | Z-A | ??) by clicking column header
  • Show some notification when doing long-running operations i.e. toggle a package with many DEPENDS and the UI blocks without feedback
  • Bitbake reports "ERROR: Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information." when exiting hob, need to allow UI's to configure whether this message is relevant or not
  • When cancelling a build, confirm before killing
  • Show contents of images & tasks (per community feedback) http://bugzilla.pokylinux.org/show_bug.cgi?id=991
  • Show more information for selected package (per community feedback) http://bugzilla.pokylinux.org/show_bug.cgi?id=992

M3/Future (Unplanned Extra features - Dev Complete Jul 25)

  • Display and change IMAGE_FEATURES
  • Enable/Disable layers
  • add context menus to build view
    • view logs
    • show log directory
    • view log for task
    • copy log
    • paste bin log
  • add context menus to package view
    • "Rebuild-from" with a submenu for each task of the build; fetch, unpack, compile, etc.
  • hobhandler as a proxy to the server has a code smell
  • Investigate/verify using the image creator with sstate mirrors (should just work!)