Commits on Source 24
-
Jonathan Maw authored
This is required because if there are projects with the same name loaded, that have elements in the same path, with the same contents, they are considered the same, despite actually belonging to different Projects. This fixes buildstream issue #795
-
Test required to close #795 - We should be able to build a project which refers to the same junction twice, but with two different filenames.
-
Jürg Billeter authored
_yamlcache.py: Use a project's junction name if present Closes #795 See merge request !980
-
Tristan Van Berkom authored
Commit 3fa79d8d, part of an initiative for caching of the failed builds, introduced a call to Element._update_state() after a job completes and before entering the error handling harness intended for handling plugin raised errors. Element._update_state() can result in triggering plugin code to run, so this is incorrect, and causes raised errors to crash BuildStream if they happen here. After analyzing the code, it appears that this additional call to Element._update_state() is unneeded, and was only added because the state needs to be updated for a failure as well as a success. Instead, we now have the BuildQueue call Element._assemble_done() unconditionally, regardless of whether the build was successful or not, which has the same effect and also reads better. In addition, added a FIXME comment that we are still conditionally updating the artifact cache size from BuildQueue.done() only if the build is successful, which is incorrect because failed builds also increase the local artifact cache size - to fix this we need to communicate the added artifact size through Element._assemble() regardless of whether the build succeeded or failed.
-
Tristan Van Berkom authored
_scheduler/queues/queue.py: Don't call update state outside of error handling harness See merge request !988
-
Valentin David authored
Instead of tag information being fetched which can change with time, they are tracked and saved in the projects.refs/.bst. Then we re-tag automatically the closest tag so that `git describe` works and is reproducible. This new feature is opt-in with the new `track-tags` configuration, and must be used to fix modules which are broken by our new policy of omitting the `.git/` repository when staging git sources. This fixes issue #487
-
Valentin David authored
-
Tristan Van Berkom authored
Track of git tags and save them to reproduce minimum shallow repository Closes #487 See merge request !906
-
Jonathan Maw authored
i.e. with a given directory and filename, check parent directories until either a directory with the filename is found, or you reach the root of the filesystem. This is a part of #222
-
Jonathan Maw authored
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 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. 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) This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
Searching for the workspace file is preferred to searching for the project file for the moment, because it avoids the circumstance of the workspaces being inside a directory where a higher-level ctory may have project.conf (but may not be a buildstream project). This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
cli: Interactively warn if the user is trying to close the workspace they're using to load the project This involves changes in: * _stream.py: * Add the helper Stream.workspace_is_required() * userconfig.yaml: * Add a default value for prompt.really-workspace-close-project-inaccessible * _context.py: * Load the prompt 'really-workspace-close-project-inaccessible' from user config. * cli.py: * If buildstream is invoked interactively, prompt the user to confirm that they want to close the workspace they're using to load this project. This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
-
Jonathan Maw authored
Known issues: * `bst shell` works, but `bst shell COMMANDS...` doesn't, because click has no way of separating optional args from variable-length args. * `bst checkout`'s usage string marks LOCATION as an optional argument. Because click gets confused if there's an optional argument before a mandatory argument, I had to mark LOCATION as optional internally. * `bst workspace open` makes no sense with element being optional, so I skipped it. * `bst workspace close` will probably need to be revisited when multiple projects can own one workspace. * `bst workspace reset` will happily delete the directory you're currently in, requiring you to `cd $PWD` to see the contents of your directory. I could exclude the top-level directory of the workspace being deleted, but it is entirely valid to run workspace commands from deeper in the workspace. * `bst source-bundle` does not work if a workspace is open at all, and according to #672 is scoped for deprecation, so I have left it alone. This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
This is a part of #222
-
Jonathan Maw authored
This is a part of #222