| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This is a part of #222
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes to _context.py:
* Context has been extended to contain a WorkspaceProjectCache, as there
are times when we want to use it before a Workspaces can be initialised
(looking up a WorkspaceProject to find the directory that the project is
in)
Changes to _stream.py:
* Removed staging the elements from workspace_open() and workspace_reset()
Changes in _workspaces.py:
* A new WorkspaceProject contains all the information needed to refer back
to a project from its workspace (currently this is the project path and
the element used to create this workspace)
* This is stored within a new WorkspaceProjectCache object, which keeps
WorkspaceProjects around so they don't need to be loaded from disk
repeatedly.
* Workspaces has been extended to contain the WorkspaceProjectCache, and
will use it when opening and closing workspaces.
* Workspaces.create_workspace has been extended to handle the staging of
the element into the workspace, in addition to creating the equivalent
WorkspaceProject file.
This is a part of #222
|
|
|
|
|
|
|
| |
In `_parse_workspace_config` there was a chained version comparison
which is simplified in this commit to quieten a pylint issue.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|
|
|
|
|
|
| |
This fixes #191
A note has been added to NEWS explaining backwards
compatibility issues
|
|
|
|
| |
Fixes #424
|
|
|
|
|
| |
Make it clear we expect the top-level project here as we use it to
resolve paths relative to project directory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rationale for this is basically:
o A workspace is completely local
o A cache key for a workspace is used to determine if the
workspace has changed or not
o Within reason, one should not expect buildstream to detect
a change without a file's mtime having been modified
On my machine, it takes about 1 minute to checksum 11GB of WebKit checkout,
that is annoyingly a long time. With this change, it takes only 5 seconds.
Not perfect, but it's a start.
This is related to issues #294, #295 and #392
|
|
|
|
| |
This is one of the tasks of #209
|
| |
|
|
|
|
|
|
|
|
| |
This takes a serialized workspace dictionary as understood
by Workspace.from_dict() and created by Workspace.to_dict()
Further, this adds a Workspace.differs() method to compare
the state of two workspace instances.
|
|
|
|
|
| |
Also streamline the instantiation code paths to layer the yaml
parsing on top of simple dictionary deserialization.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes workspaces more cleanly separated from everything else.
o Removed some methods from Workspace()
o Added Element._open_workspace() to initialize workspaces on
sources
o Cleanup some code in the pipeline
o Have the App() call Element._open_workspace() instead of Workspace.open()
|
|
|
|
| |
This was regressed in the refactor done in commit f761140f
|
|
|
|
| |
And Source no longer has any __workspace handle.
|
| |
|
|
|
|
| |
This is a part of issue #285
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move all workspace related code out of Pipeline() and into the
frontend App() object.
Some changes in transition here include:
o Workspaces() object methods for looking up and deleting workspaces
now take an element name instead of an element.
o Share code for partial App() initialization between the
`workspace close` and `workspace list` commands
o No longer require that an element exist in the project
in order to close a workspace
This fixes issue #249
|
|
|
|
|
|
| |
startup.
Fixes issue #257
|
| |
|
| |
|
| |
|
|
|