| Summary: | Add remote project support for the bitbake commander type project and run build using hob on a remote linux host | ||
|---|---|---|---|
| Product: | [Yocto Project Subprojects] Eclipse Plugin | Reporter: | Jessica <jessica.zhang> |
| Component: | eclipse-plugin | Assignee: | Todor Minchev <todor.minchev> |
| Status: | CLOSED OBSOLETE | QA Contact: | |
| Severity: | enhancement | ||
| Priority: | Medium | CC: | ioanax.grigoropol, mober.at, yp.ep.watcher, yp.watcher |
| Version: | 1.4 | ||
| Target Milestone: | Future | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Yes (doc changes required) | |
| Bug Depends on: | 4362 | ||
| Bug Blocks: | 4303 | ||
|
Description
Jessica
2012-11-13 22:58:05 UTC
Status:
- Run commands in a synchronous way in order to wait for the output & parse it
- use a single hostShell per project, launchShell method & writeToShell – RSE API: - bitbake session is maintained
- only one terminal per project
- output from commands is send asynchronously
- in order to wait for command output, we must wait for the AbstractHostShellOutputReader.isFinished() method
- update :
- do not use isFinished() because it is intended to block waiting for input & use a simple semaphore mechanism instead
- same approach used for remote should be used for LocalHostShell
- Store association of remote connections & Shell
- issues: - Only one command can be ran at one point
- If there are multiple projects using the same connection the shell will be shared between them & and sourcing of oe-init-build-env for each project might cause project builds to fail
- Add fixes for showing progress information for long time running tasks on wizards for Bitbake Commander project & Bitbake recipe - run project creation in a new thread, and update the monitor from the event handler in a asynchronous way - use a blocking way to wait to finish reading command outputs - When searching for the desired output through the existing lines, use the prompt + command (without any whitespaces) because an extra character will be inserted - Add fixes for the validation for the location & name of a new Bitbake Commander in a new repo clone or an existing one - Trying to find a way to catch and treat the exception that is thrown when Eclipse is restarted (missing .project) - seems that this is a known workaround for the RSE plugin BUGS : bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=181998 and https://bugs.eclipse.org/bugs/show_bug.cgi?id=182006 - A fix for this would also catch the exceptions thrown when refreshing a poky project (encountering resources with invalid names) Update: - when sending a command to the remote box, the implemented mechanism is awaiting to see a command prompt (user@hostname) followed by a '#' or a '$' - this rule will not always apply(as in the case of Linux connecting to localhost) and will cause the very first command to block the whole application. - send a custom terminator that will mark the end of each command we send in order to know when the output is available - added validations for new Bitbake project - new repository as well as an existing one - remove checking that in an existing repository there is a .git directory and only check that repo contains the right scripts Update: - investigated how to ignore files that have invalid characters in the name - these files are internal cooking files that do not need to be shown to the user or modified by him; files on Windows must not contain characters such as : ; when these files are encountered under a poky repository, a ResourceException is thrown, caught and ignored since we do not care about showing these files - investigated how to catch the exception thrown by Eclipse at startup, when there are remote projects in the workspace: - seems that this error is thrown if a restore is attempted on the workspace before the ResourcePlugin is up and running - related to bugs : https://bugs.eclipse.org/bugs/show_bug.cgi?id=181998, https://bugs.eclipse.org/bugs/show_bug.cgi?id=182006 Update:
- there is a downtime on the New Bitbake Wizard when creating a project from an existing repository, from the previous implementation (without support for Remote connections, both on Linux and Windows)
- previous implementation: each command was ran in a separate process, waiting for the output independently
- current implementation: there is one shell per connection, and each command must wait for the previous one to finish running, until it can be ran
- when creating a new Bitbake project, the environment is initialized by parsing the output of "bitbake -e"
- the wizard waits for this to end until it can finish creating the process
- patch sent to sent this process to the background and close the wizard as soon as the project is created and opened
- problems: if the user attempts to perform any operation that uses bitbake parsed environment, it will fail
- possible solutions:
- block the wizard until this finishes
- display some sort of notification to the user that this operation is still in progress (in the background) and he must wait for it to finish before peforming any operations against bitbake
Due to the latest refactorization, some minor discrepancies appeared on the windows-build branch: - the status message when cloning a new repository is not properly updated(eg. NLS_MISSING_MESSAGE) ->this is caused by some Thread ownership issues related to the wizard context - the checksums computed when populating the fields for a new recipe are missing on Windows -> this is caused by the fact that when dealing with a Remote connection, the error and output buffers are one the same, and the output is sent to the error one, and we read from the output one For this bug, the latest issue with the checksums appears when testing with a Remote connection to a Linux box The patch that addreses this issues was sent to list and applies on top of the latest commit of jzhang/windows-build branch (d2e1f6eae3fc71dff73bc98216fbb1a789091dbd). We'll revisit system development interaction between eclipse and Toaster in 1.9 and HOB will be obsolete by then closing |