BitBake/GUI/WorkInProgress: Difference between revisions

From Yocto Project
Jump to navigationJump to search
(→‎M2 (Dev Complete Jul 4): managed to write some code on the plane - should get a busy cursor when doing long running operations now)
Line 37: Line 37:
* Fix sorting in Packages treeview. Sorting by group would be enabled here.
* Fix sorting in Packages treeview. Sorting by group would be enabled here.
** 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
* <del>Show some notification when doing long-running operations i.e. toggle a package with many DEPENDS and the UI blocks without feedback</del>
* 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
*<del>When cancelling a build, confirm before killing</del>
*<del>When cancelling a build, confirm before killing</del>

Revision as of 04:09, 7 June 2011

Intro

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

Screenshot-yHob-240511.png

M1 (Dev Complete May 23)

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) - WIP Liping working on a patch set
  • 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 - WIP partial implementation of Configurator gobject
    • 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 (gtk.TreeView.set_search_entry)
    • Could do with a custom gtk.TreeView.set_search_equal_func()

M2 (Dev Complete Jul 4)

Features

  • 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
  • Image output type dropdown
    • all possible values for IMAGE_FSTYPES set in class
    • getVariable used to get list, split on " " and put into combobox
  • Fix sorting in Packages treeview. Sorting by group would be enabled here.
    • 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
  • Enable/Disable layers - use configuration writeback support for local.conf changes to also edit/save bblayers.conf changes
    • Properly reload the data when the layers are modified

Bugs

  • Fix reset/build again
    • I think this is caused by the cooker/server exiting on build completion. If so we need to enable the UI to request the server doesn't terminate until it receives a signal of some sort.
  • We need to be able to switch from a stopped/completed build back to the image creation mode.
  • Fix removing *all* packages in sweep

Future (Unplanned extra features - schedule at next map day)

  • Tell the user where the created image is on disk (as a medium term enhancement also allow opening the containing folder, long term allow writing the image to some media)
  • 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
  • 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!)
    • Add GUI to set sstate mirror variable
  • "Overlay" files, extra files to be installed into the rootfs at image generation time
    • Custom ROOTFS_POSTPROCESS_COMMAND
  • Display and change IMAGE_FEATURES
  • Consider a name change, David suggested 'Yocto HOB (Human Oriented Builder)'
  • Consider allowing dragging a package from the list to the contents area
  • Warn when removing the core layers
  • Have build dir be a part of the workspace so that everything done with the GUI tool is part of the same directory.