Toaster future release planning

From Yocto Project
Jump to: navigation, search


Contents

2.2 Planning

Wish lists

Michael's

  • Remove pseudo API cruft / template context to json response stuff
  • Remove bldcontrol (we only need localhostbecontroller.py)
  • Look at schema and rework where needed
  • Consolidate used API into it's own view
  • Finish toaster tables porting
  • Create a toasterclient.py to interact with toaster to avoid need for 'command line builds'
    • This would use toaster's API as the entry point to using bitbake
    • It could be called by CI systems
    • It could be used by auto builders etc
    • Means that there are no two modes anywhere in Toaster
    • Allows project configuration to be changed in toaster from the command line
  • Drop supporting old releases

Brian's

2.2

  1. bootstrap3
  2. Python3
  3. CI tie in.
  4. allow toaster to work in OE mode, Ostro, etc. bascially generalize our use
  5. toasterconf.json generalize and load conifguration

The Ordered Part

  1. Django 1.8 aka LTS
  2. Image Customization
  3. Testing and Stability
  4. One way to start/One code path


This is *not* ordered! This is more of a brain dump :)

  • Collapse analysis and managed mode
  • Working CI for each commit into toaster-next as well as for project peoples testME branches on poky-contrib:
    • run django tests
    • run selenium tests
    • leverage sstate to make runs generally shorter
  • remove git assumptions from code
  • rationalize/simplify the configuration scripts
  • if bitbake-memres comes out, interact with it gracefully (this is my preferred method of collapsing analysis and managed)
  • fix the tmpdir/release build issue &/or discuss the need to support building old releases with a UI rather than limiting toaster to build the release it is part of. This is inherently fragile.
  • ask bb to parse any layer added to a project and such as imported layers, and layers specified in the configuration file to give us recipe information.
  • improve our build event following:
    • note parse events
    • update/retrieve ui so that we can tell something is happening before the first build event comes
    • eliminate the remaining random tracebacks from try/except failures.
  • allow configuration in addition to the addition/removal of layers/packages
    • kernel config
  • add user control/authentication
  • update to Django 1.8. Always stay on Django LTS versions
  • add layer update from layers.openembedded.org to the UI
  • add Django tests for building e.g. we should be able to build core-image-sato from a django test and validate the db
  • add mysql script to simplify setup with mysql/apache
  • pull in new look and feel
  • add django tests to validate all artifacts - if we say they can download it and it appears on a page anywhere, it should have a test
  • improve docs of code on wiki. We have a nice start (ty E & M); I'd like to improve it.
    • events - more info and list types supported
    • what logic is in jscript , what is in python
    • database schema definition and description esp interrelationships.
    • list django tests, mostly so we can see what we are missing.
  • build mode triggerred off of database entry, not autonomous process.
  • add asynchronicity. I have noted a number of places where commands result in a sluggish ui. I'm nervous about this one.
    • for example, starting a build that requires us to clone layers has a noticeable delay as compared to starting a local only project build.
  • verify we can stop builds cleanly.
  • get the rest of our logs into our local toaster dir
  • allow us to run and stop 2 toasters on the same machine without them interfering with each other
  • (2.2 or later for sure) discuss how to support multiple back end bb servers.
    • probably will need to be able to add servers/remove servers/see server status/build state
  • be able to see more details about build. For example, see the "jobs" being processed like you can in knotty
  • revisit what variables we let people change. sstate_dir and dl_dir should certainly be allowed to change
  • discuss way we do migrations. possibly change. thoughts:
    • only support migrations from last release to current. (e.g. if you were running toaster jethro you could update to jethro++, but could not from fido to jethro)
    • take migration from the startup script. it's only for releasetorelease.
      • allow it to be in for master and ease of development w/in a release and pull at end as we do with moving releases.
    • whatever we decide, add a test set for it so we know it works
  • Be able to delete things from the ui
    • old builds
    • old projects
    • imported layers we no longer want
  • Be able to set from the ui a policy to delete all builds/recipes/packages that are older than XXX &/or be able to set maximum size on db and delete everything older than XXX when we near that size
  • update the builds on the web page so we dont have to hit refresh to see the build progress.

Elliot's

  • Make sure all files lint properly
  • Include lint in CI builds
  • Improve test coverage of all areas of the UI and back-end
  • Clean up toasterui.py so it's easier to see what's going on in there
  • Fix localhostbecontroller so it doesn't rely on what's in the log file when figuring out whether the bitbake server has started
  • Provide a way to modify settings in settings.py without editing that file (e.g. with a local overlay configuration file)
  • Move the logic, environment variables, directory setup and script calls from bin/toaster into Django commands: this would allow you to run toaster correctly, with all the required setup, without having to use bin/toaster; it would also mean that we could provide cleaner production setup instructions, as a user could run a series of Django commands (with their own parameters) to setup their environment; bin/toaster would then just execute a series of Django commands

Belén's

2.2 release
2.1 release
  • Implement new custom theme (already in progress, aiming for end of M1: Dec 7th). Related bugs: 8417
  • Finish image customisation. Related bugs: 8070, 8081, 8082, 8103, 8104, 8117, 8128, 8132, 8091
  • Review interaction with layers: as it is, imposes heavy restrictions on users. Some of the questions I would like to consider:
    • Should the import layer action be global instead of per project, so that you can reuse imported layers across projects?
    • Should we allow users to override the release layer branch, setting a particular layer index layer to a different branch or commit?
    • Should we allow users to set a different git repo for layer index layers?
    • Should we allow users to override the bitbake revision set by the release in a project?
    • Related bugs: 6640, 6701, 7574, 8426, 8429
  • Access control (a simple one to start, with very basic permissions). Related bugs: 6233, 6234
  • WIC integration (getting a step closer to the holy grail of 'click button' > 'image deployed in board')
  • Fix the variable history (this is one of the features users have highly praised, and it is a bit broken in 2.0). Related bugs: 5811, 8488, 8190, 8189, 8188
  • Get Toaster to collect build data from Jenkins builds. Once again, repeatedly requested by users. Related bugs: 7527

Ed's

  • Merge analysis and managed modes
  • Fix as much pending bugs as possible.
  • Finish image customisation.
  • Support Django LTS
  • Increase test coverage. It would be good to set realistic goals, e.g. cover specific modules or increase coverage to 10% and follow the plan.
  • Include production configuration into testing
  • Cover views.py with tests and split it into modules. Currently it's huge and hard to maintain. I suspect there are a lot of unused APIs in there.
  • Finish refactoring of buildcontroller code. This work is started in ed/toaster/bec and sitting there for quite long time.
  • Bring patchset support to toaster patchwork.
  • Add 'submitted upstream' and 'merged upstream' statuses to patchwork. Make the statuses updated automatically when patch is accepted to toaster-next or bitbake master.
  • Clean up the code. Set realistic goals for pylint scores and follow them.
  • Enhance Jenkins CI jobs to run all possible django, tts and pylint tests

Sujith's

  • Get toaster working with non-git repos. Related bugs: 8456
  • minor, but would be good to have :- Once user launches toaster, it would be nice to see the progress bar updated without user refreshing the page. Related bugs: 8328
  • Cancellation of build. Related bugs: 6787

Would love to take up more tasks.

David's

  • Finish the effort around Toaster "extensions", started by Farrell. This will enable Toaster customization for commercial partners, as per branding and

alternate pages (for extended project creation).

All bugs for 2.2

IDMilestoneSummary (191 tasks) StatusP
95172.2 M1Move to Bootstrap 3NEWHigh
93942.2 M1bootstrap v2 License is not compatible with bitbake/toaster license.NEWHigh
65462.2Supporting use of local layers in ToasterNEWLow
8807Futurelocal cached layers don't get the branch checked outNEWLow
6604FutureClone a Toaster projectNEWLow
8095FutureTable results should be sorted in alphabetical order and other secondary criterias.NEWLow
88572.2Display number of search / filter results consistently across tablesNEWLow
7297Futureneed Toaster iconVERIFIEDLow
8769FutureIntegrating wic into ToasterNEWLow
5430FutureNotification systemNEWLow
8434FutureToaster: package classes (rpm, ipk or deb) should be display in the build configuration pageNEWLow
94472.2 M1Test bitbake variables - IMAGE_FSTYPES allows you to choose type "tartar.gz"NEWLow
88592.2Provide a way of specifying the default sort direction in ToasterTableNEWLow
8577FutureAdd a global UI widget to show progress of buildsNEWLow
87912.1 M3Software recipes table is not sort by any column by defaultVERIFIEDLow
82482.2Toaster recipe page: missing empty stateNEWLow
9117FutureAllow "project builds" and "all builds" to be sorted by time and recipe nameNEWLow
8036FutureRequest to allow people to set pagination to allNEWLow
90022.2Move directory scan logic out of toaster.bbclass into buildinfohelperNEWLow
88652.2The project "updated" field shows the last time a project was saved, not its last activityNEWLow
9141Futuretoaster when xmlrpc/cooker dies the web didn't tell the user about itNEWLow
85462.1Toaster: add layer button from project configuration page remains sensitive if you select a layer with dependenciesVERIFIEDLow
8685FutureEnter button doesn't apply your modification to bitbake variablesNEWLow
8425FutureToaster: A warning should be displayed when you delete a layer dependencyNEWLow
7294FutureFor QA Issues errors and warnings, toaster should recognize the error and provide suggestions to the user on how the error can be repairedNEWLow
83262.2Build time counts the time a build spent queuedNEWLow
58112.2 M3the variable history should collect and display the variable value for each modification sequenceACCEPTEDLow
87212.2We are not validating machine inputNEWLow
94352.2Toaster throws an exception for images that have files on the / levelNEWLow
66072.2Auto-detect client locale and use for date formattingNEWLow
88582.2We should keep sorting state in our tablesNEWLow
73182.1Managed mode must use sessions to remember user search/orderby preferencesVERIFIEDLow
85732.2[Toaster] the page heading doesn't change when search query returns no resultsRESOLVEDLow
82422.2Builds started from Toaster no longer show the 'queued' or 'checking out layers' stagesNEWLow
86512.1Toaster: Loading icon remains on screen and nothing appears in the project pageVERIFIEDLow
88602.2The 'clear search' icon in ToasterTable tables should clear any applied filterNEWLow
7219FutureShow the file size of the license manifest when available for download in the build dashboardNEWLow
82502.1In the 'new build' button, the project name link does not workVERIFIEDLow
9118FutureDead paths for meta-toaster-custom layer left behind in bblayers.confNEWLow
86782.2Testing coverage of non-poky Toaster setupNEWMedium
95302.2Arrows in directory structure do not expand directoriesNEWMedium
6916FutureToaster should turn QA check names in warnings / errors into linksNEWMedium
81892.2Variable history shows full paths to files inside the /bitbake directoryNEWMedium
9005FutureProvide build cancellation functionality for command line buildsNEWMedium
4823FutureProvide generic, background information about layersRESOLVEDMedium
8866FutureHome-brew JSON encoding is ad hoc and incompleteNEWMedium
75022.2Show image information if rootfs files are generatedNEWMedium
8424FutureToaster: Compatible recipes tab should display the machine compatible recipesNEWMedium
6838Futuretoaster must be able to submit error reports for failed builds from the interfaceACCEPTEDMedium
80512.2Importing layer fails silently if the layer name already existsNEWMedium
4384FutureVisualising build time informationACCEPTEDMedium
7235Futurewarn the user about unexpected configuration changes in variable historyNEWMedium
8319FutureImprove the form provided by the 'new build' buttonRESOLVEDMedium
9153FutureEnhance build performance dataACCEPTEDMedium
5648FutureAdd a field license_files to package informationACCEPTEDMedium
8955FutureRecipe explorerNEWMedium
7748FutureProvide a way to do a Toaster cleanup and start again if you get the initial set up wrongNEWMedium
85562.2Toaster: bitbake variables image_fstypes not being passed to build proceesNEWMedium
94942.2Custom images created from the build history pages fail to buildNEWMedium
8705FutureStore valid values for variables in the Toaster databaseNEWMedium
6954FutureToaster Kernel Configuration ToolNEWMedium
8218FutureProvide a way to update layer information from the Toaster GUINEWMedium
90932.2 M3Hide scary errors while importing recipe information from the layer indexNEWMedium
5192Futurenon-existent URLs listed in the "Layer index URL" columnVERIFIEDMedium
7527FutureIntegrate Toaster with JenkinsNEWMedium
8426FutureImprove how we display layer dependenciesNEWMedium
93952.2Cleanly support unicode throughout ToasterNEWMedium
79732.2stopping toaster kills ALL django apps running on the machine.NEWMedium
95002.2In multitarget builds, Toaster shows software recipes in the list of imagesNEWMedium
6897FutureCustomise the Django admin interfaceNEWMedium
4400FutureVisualising brought in by relationships between packagesACCEPTEDMedium
83272.2Builds started from the 'all builds' page should show in the same pageRESOLVEDMedium
91842.2Cannot delete layer from toaster databaseNEWMedium
6095FutureRetrieve full build information independently of task executionNEWMedium
7794FutureDesign Toaster First UseNEWMedium
85722.1Json import error: Openembedded branches include local branchVERIFIEDMedium
4301Futurerecipes: Visualising brought in by relationships between recipesACCEPTEDMedium
7038FutureFor cached tasks, indicate in which URL the sstate object was foundNEWMedium
8230Futuretoaster upload failures on autobuilderNEWMedium
9109FutureApply sleep 0.5 to other database operationsNEWMedium
88992.1Change project release not workingVERIFIEDMedium
7596Futurevariable type support in project configuration pagesNEWMedium
6670Futureall compatible recipes page should link to layer source recipe with the layer nameNEWMedium
6900FutureToaster should tell you when one of your local.conf variables has been overridenNEWMedium
81312.2All builds page "Errors"/"Warnings" filters doesn't workACCEPTEDMedium
4402FutureCustomise the summary of all the information available for one build + image recipe combinationNEWMedium
73342.1The 'machine' information is not searchable in the all builds, all projects and project builds tablesVERIFIEDMedium
8366FutureBuild the specific recipe versionNEWMedium
92972.2Toaster: Simplify building extensible SDKNEWMedium
6170FutureToaster needs to expose errors/warnings in its own logsNEWMedium
4330FutureVisualising overall package sizeACCEPTEDMedium
71982.2Hiding a sorted column does not revert to default sortingRESOLVEDMedium
5538FutureImplement Backend API controller for buildbotNEWMedium
89182.2Change the way we handle queued buildsNEWMedium
7742FutureRemove constraints when setting the layers checkout directoryNEWMedium
84562.2Add feature to add layers to Toaster from external sourceNEWMedium
6712FutureModify the default Bootstrap behaviour of tooltips and popovers triggered on hoverNEWMedium
6915FutureToaster should handle ASSUME_PROVIDEDNEWMedium
81882.2The variable history is missing the layer nameNEWMedium
4819Futurewebhob should be enabled through local.conf optionsRESOLVEDMedium
7457FutureSplit "Previous Build" tasksNEWMedium
8417FutureMerge new Bootstrap theme from yocto-webhob-designRESOLVEDMedium
93632.2When setting Bitbake variables the value reflected to toaster.conf doesn't respect the specified whitespaceRESOLVEDMedium
6239FutureToaster utility commands for shared databasesVERIFIEDMedium
7945FutureToaster startup script assumes it's in a git repositoryNEWMedium
6794FutureAdd last commit information to ToasterNEWMedium
80422.1Layerdetails/layers to show full dependency treeVERIFIEDMedium
4376FutureVisualising directory structure of built imagesACCEPTEDMedium
88062.2Refactor localhostbecontrollerNEWMedium
7234Futurewarn the user if the project configuration settings aren't reflected in the buildACCEPTEDMedium
82752.2Toaster: Suitable message and build box does not appear in build tab for a project with no buildsNEWMedium
5564Futuretoaster document REST APIs dynamically using SwaggerVERIFIEDMedium
89532.2Toaster ignores the subdirectory when cloning imported layersNEWMedium
7747FutureImprove messaging when Toaster is launched with no releases setACCEPTEDMedium
94852.2Fix typeaheads for Bootstrap 3NEWMedium
6953FutureBranding SupportNEWMedium
81902.2The 'set in file' filters in the BitBake variables table seem to return the wrong informationNEWMedium
90232.2Improve the content of the "other artifacts" sectionNEWMedium
49482.1create tests for Toaster APIVERIFIEDMedium
88862.2Toaster thinks do_shared_workdir is a shared state taskNEWMedium
7521FutureRedesign our filters mechanismNEWMedium
6603FutureExport / Import Toaster projectsNEWMedium
79722.2lsof needed by start/stop toaster script but not needed on system to run Yocto builds.NEWMedium
94982.2Progress bar not behaving correctly on mysqlNEWMedium
6840FutureSeeing builds delta in ToasterNEWMedium
8093FutureRelease change doesn't check machine compatibilityRESOLVEDMedium
4399Futurerecipes: Visualising dependency relationships between recipesACCEPTEDMedium
88182.2 M2error in lsupdates when duplicate openembedded-core layers foundRESOLVEDMedium
91642.2 M4The toaster-custom-images layer should not show like any other layer, and should not be removableNEWMedium
8959FutureAllow Toaster to run images on simulator, even a custom oneNEWMedium
7751FutureToaster allows me to build when no machine is set in the default configurationNEWMedium
85632.2Improve detection and presentation of build artifactsNEWMedium
4285Futuretasks: Visualising relationships between tasksACCEPTEDMedium
6978FutureFor the local release in Toaster, show local path to layer directory instead of Git URLNEWMedium
8220FutureWe need to enable an exclusion list in toasterconf.json to drop layers from layers.openembedded.orgNEWMedium
90972.2 M3Remove validation messages when layers checkout directory and build directory are correctly setNEWMedium
5255FutureProvide access to tasks executable output in ToasterACCEPTEDMedium
8896FutureEnable sorting by number of dependenciesNEWMedium
8429FutureRe-work import layer behaviourNEWMedium
79772.1Toaster fails to start with Django 1.7VERIFIEDMedium
95142.2Builds of software recipes should not show a "New custom image" buttonNEWMedium
6898FutureDesign Toaster configuration interfaceNEWMedium
81252.2Filter does not work as expected after clearing the search resultsRESOLVEDMedium
4401FutureCollect aggregated usage dataRESOLVEDMedium
83632.2Assess which non-ToasterTable pages need refactoring and howNEWMedium
6166FutureToaster collects no information about buildsVERIFIEDMedium
4329FutureVisualising dependency and recommends relationships between packagesACCEPTEDMedium
8790FutureBoostrapping package information for image customisation purposesNEWMedium
95852.2verify/fix eventreplayNEWMedium
7110FutureBuilds of "world" are pretty ugly in toaster UINEWMedium
91152.2Added packages filter seems to show the wrong package listACCEPTEDMedium
5483FutureExtend Image creation to include workflow for security checkingACCEPTEDMedium
7727Futuretoaster: show bbappend information for recipesNEWMedium
6706FutureInclude maintainers list for layersNEWMedium
80342.2typeahead search cneeds words to indicate it is constrained to the added layers.NEWMedium
95182.2Rationalise the directory structure generated by ToasterNEWMedium
6910FutureUse sticky headers for long tablesNEWMedium
4624FutureShow the content of the run files in the task information pagesVERIFIEDMedium
7452Futurebuild mode path fields in the analysis pages should be a link to the specific details pageVERIFIEDMedium
83792.1"sorting" doesn't work well on "Recipe file" columnVERIFIEDMedium
93582.2[Test Case 1402] Test bitbake variables - IMAGE_FSTYPESRESOLVEDMedium
62382.2delete projects/builds through the toaster UINEWMedium
4331FutureVisualising single package sizeACCEPTEDMedium
87952.1In the build history information, layer names equal their directory name, not the layer nameVERIFIEDMedium
5560Futuretoaster implement debug start option with data uploadingRESOLVEDMedium
89522.2Changes to the revision of an imported layer are not savedNEWMedium
77442.2Improve messaging in empty states when Toaster does not have any layer informationNEWMedium
8488FutureCollect variable information for the image scopeNEWMedium
94842.2 M1Port QA UI tests to Toaster's Django+Selenium frameworkNEWMedium
6778FutureAdd "import layer" to layer suggestions drop downNEWMedium
93852.1 M4After a project's initial image build of sato, building a custom minimal never shows packagesVERIFIEDMedium+
79682.2empty page states for no information in the databaseNEWMedium+
4284FuturePresenting information provided by the diffsigs toolNEWMedium+
88952.1 M3Lsupdates throw error using mysqlVERIFIEDMedium+
95842.2 M1upgrade toaster to Python3NEWMedium+
80262.1Toaster start up directories incorrectVERIFIEDMedium+
7914Futuretoaster should start remote builds through a single scriptRESOLVEDMedium+
94752.2 M2db locking - Nothing happens when you click the "Create custom image" buttonIN PROGRESS IMPLEMENTATIONMedium+
95192.2 M2Consolidate used API into it's own viewNEWMedium+
95552.2 M1Create Toaster Docker containerNEWMedium+
75742.2The project release change process deletes imported layers without warningRESOLVEDMedium+
92662.1 M4Image builds aren't identified as imagesVERIFIEDMedium+
78282.2 M2Impossible to add a new image type in ToasterACCEPTEDMedium+
89012.1 M3Split package groups from all other packages in build informationVERIFIEDMedium+
84432.2 M1Builds that failed at the build request stage need a custom dashboardIN PROGRESS IMPLEMENTATIONMedium+
94552.2 M1When I try to make a new project toaster cries "Fields missing: projectversion"IN PROGRESS IMPLEMENTATIONMedium+
81322.2 M3Implement deleting custom imagesNEWMedium+
80372.2External link to recipe file links to non-existing page when recipe information comes from a buildIN PROGRESS IMPLEMENTATIONMedium+
95822.2Replace toasterconf.json with Django fixturesNEWUndecided
86592.1Loading the openembedded-core toasterconf.json file shows 2 openembedded-core layersRESOLVEDUndecided
9583FutureRefactor Toaster database schemaNEWUndecided

Toaster Enhancements for 2.2

IDAssigneeESummary (20 tasks) PRequesterQAMilestoneStatusResolutionWhiteboard
9517Belen Barros PenaMove to Bootstrap 3HighBelen Barros PenaLibertad2.2 M1NEW
5811Elliot Smith5the variable history should collect and display the variable value for each modification sequenceLowBelen Barros Pena 2.2 M3ACCEPTEDGUI design available; needs data completion test
6546Belen Barros Pena1Supporting use of local layers in ToasterLowBelen Barros Pena 2.2NEWGUI design available
6607Belen Barros PenaAuto-detect client locale and use for date formattingLowPaul Eggleton 2.2NEW
8573Belen Barros Pena[Toaster] the page heading doesn't change when search query returns no resultsLowCristina AguridaCristina Agurida2.2RESOLVEDDUPLICATEGUI design pending
9002Elliot Smith6Move directory scan logic out of toaster.bbclass into buildinfohelperLowElliot SmithLibertad2.2NEW
6238Belen Barros Pena2delete projects/builds through the toaster UIMediumDavid Reyna 2.2NEWGUI design pending
7005Sujith H1Toaster UI - two or more projects having the same name can be createdMediumIonut ChisanoviciLibertad2.2 M1IN PROGRESS REVIEWGUI design available
7744Belen Barros Pena3Improve messaging in empty states when Toaster does not have any layer informationMediumBelen Barros Pena 2.2NEWGUI design pending
8363Elliot Smith2Assess which non-ToasterTable pages need refactoring and howMediumElliot SmithLibertad2.2NEW
8456Michael WoodAdd feature to add layers to Toaster from external sourceMediumMichael WoodLibertad2.2NEW
8563Elliot Smith5Improve detection and presentation of build artifactsMediumBelen Barros PenaLibertad2.2NEW
8678Libertad1Testing coverage of non-poky Toaster setupMediumBelen Barros PenaLibertad2.2NEW
9023Elliot Smith4Improve the content of the "other artifacts" sectionMediumBelen Barros PenaLibertad2.2NEWGUI design available
9184Michael WoodCannot delete layer from toaster databaseMediumHenry BruceLibertad2.2NEWGUI design pending
9297Joshua LockToaster: Simplify building extensible SDKMediumHenry BruceLibertad2.2NEWGUI design pending
9395Elliot Smith15Cleanly support unicode throughout ToasterMediumJoshua LockLibertad2.2NEW
9518Ed BartoshRationalise the directory structure generated by ToasterMediumBelen Barros PenaLibertad2.2NEW
8132Michael Wood4Implement deleting custom imagesMedium+Belen Barros PenaLibertad2.2 M3NEWGUI design available
9519Michael WoodConsolidate used API into it's own viewMedium+Belen Barros PenaLibertad2.2 M2NEW
Personal tools