Commits on Source 17
-
Tristan Van Berkom authored
This allows specifying whether or not the code believes a None value is acceptable if explicitly expressed to be None in the YAML. A previous patch 3ba544b8 changed the behavior to accept None for all values across the board, along with allowing explicitly setting the `default_value` to `None` which caused the code to be much more readable (this was the main motivation of the patch, but it had the side effect of allowing None for everything). In the majority of cases we load YAML however, it either has a value or it is not specified in the YAML, and None is hardly ever acceptable to be explicitly specified (it may be in the case you want to override something with nothing in the YAML, but it is the edge case). This had the side effect of causing unexpected crashes where the YAML specifies an empty dictionary for instance. Instead of forcing the caller to handle a possible None value, give the choice to the caller if they really want to accept a None value, and raise the LoadError otherwise. This fixes issue #803, which is a crash due to receival of an unexpected None value through _yaml.node_get()
-
Tristan Van Berkom authored
Allow plugins to conveniently leverage the new `allow_none` parameter, and have Plugin.node_get_member() raise a LoadError in the usual case where None is not an acceptable value to be explicitly set in the user provided YAML.
-
Tristan Van Berkom authored
This adds a regression test for issue #803
-
Tristan Van Berkom authored
Only optionally allow None values in user provided YAML Closes #803 See merge request !999
-
Javier Jardón authored
They are too specific to be included by default Recommendation is if you are building in Linux is to use the ones begin used in the freedesktop-sdk project, for example See #645
-
Javier Jardón authored
-
Javier Jardón authored
-
Javier Jardón authored
Remove default strip-commands Closes #645 See merge request !987
-
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
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
-
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
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