| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
| |
This is now part of the BuildStream public API and can be used to
implement new plugins
|
| | |
|
| |
|
|
|
|
|
| |
The default user-agnet for urllib is widely used for many bots and so is
blocked by many servers. Buy using our own then we we are not blocked by
gitlab.com etc and are also able to identify buildstream request to
servers.
|
| |
|
|
| |
for connection
|
| | |
|
| |
|
|
|
|
|
|
|
| |
For plugins loaded from the pip origin, we now support specifying constraints.
This is a non-breaking change and only involves specifying a package
with constraints when specifying the 'package-name', however there are
a few errors errors which can occur as a result, this patch tries to
handle them all cleanly and provide the user with useful error messages.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mostly a semantic change which defines how deprecation warnings
are suppressed in a more consistent fashion, by declaring such suppressions
in the plugin origin declarations rather than on the generic element/source
configuration overrides section.
Other side effects of this commit are that the warnings have been enhanced
to include the provenance of whence the deprecated plugins have been used in
the project, and that the custom deprecation message is optional and will
appear in the message detail string rather than in the primary warning text,
which now simply indicates that the plugin being used is deprecated.
Documentation and test cases are updated.
This fixes #1291
|
| |
|
|
|
|
|
|
|
| |
So far we were only reporting "No Source plugin registered for kind 'foo'",
without specifying what bst file with line and column information, this
commit fixes it.
Additionally, this patch stores the provenance on the MetaSource to
allow this to happen for sources.
|
| |
|
|
|
|
|
| |
Part of https://gitlab.com/BuildStream/buildstream/-/issues/1068.
Make behavior of `shell` command similar to other commands that need
sources like `build`, `workspace open`, `source checkout` etc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BST_MIN_VERSION guards assert that the BuildStream core which
loaded the plugin is compatible with the plugin itself.
This commit adds BST_MIN_VERSION to the base plugin.py with documentation
informing Plugin authors how to set the minimum version, and also adds
the assertions at plugin loading time in pluginfactory.py.
This commit also:
* Adds the BST_MIN_VERSION specification to all current core plugins
* Adds the BST_MIN_VERSION specification to plugins used in test cases
|
| |
|
|
|
|
|
|
|
| |
This test tests some of the basic failure modes of plugin loading,
which used to be written as internal tests but is not implemented
as a proper end-to-end test.
This commit also adds some machine readable reason codes to
pluginfactory.py so that we can assert the errors more specifically.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Plugin format versioning was decided to be removed for local
plugins and any plugins for which we do not load an explicitly
provided plugin. For pip, this will be handled with a standard
distutils/setuptools approach, allowing users to specify pip
style version boundaries in the plugin origins.
This patch refactors plugin loading so that all related code
goes into the private _pluginfactory module, a new small
PluginOrigin type was added to better manipulate loaded
origins.
Test cases have been removed and will be readded in a following
commit, adjusted to new expectations.
|
| |
|
|
|
| |
This also enables local builds on non-Linux platforms, if a buildbox-run
implementation is available.
|
| | |
|
| |
|
|
| |
This fixes an isolation issue in the test suite.
|
| |
|
|
| |
`Sandbox.get_directory()` no longer exists.
|
| |
|
|
| |
Require element plugins to use `Sandbox.get_virtual_directory()`.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This catches incorrect use of the `Directory` API.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This is no longer needed now that we support caching buildtrees in CAS.
|
| |
|
|
|
|
|
|
|
|
|
| |
With BuildStream 2.0, we start with a fresh API, everything that
is present at the time of the 2.0 release can implicitly be considered
to be available since 2.0.
In the future, we will be expressing new API additions using the
min-version semantic versioning style instead of format version too
(so new YAML configurations will be expressed as "since: 2.2" and
so on).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* "min-version" is specified as a <major>.<minor> point version
and uses the installed BuildStream version instead of having
a separate versioning number for the format.
* The presence of "format-version" is now used to indicate
that we might be loading a BuildStream 1 project.
* For now, where parsing the version at startup is concerned, and
also where `bst init` is concerned, we artificially bump the
detected BuildStream version to 2.0 if we detect a version < 2.0,
these exceptions can be removed once 2.0 is tagged and released.
Summary of changes:
_project.py: Now parse "min-version" and detect "format-version" to
warn about loading a BuildStream 1 project
_versions.py: Remove obsolete BST_FORMAT_VERSION numbers from here
data/projectconfig.yaml: Remove old "format-version" from defaults
utils.py: Added new private _parse_version() helper function, and another
_get_bst_api_version() to get an adjusted API version.
frontend/app.py, frontend/cli.py: Updated `bst init` implementation
testing (buildstream.testing): Updated testing utilities to generate
and use projects with min-version instead of format-version.
tests and examples: Updated to use min-version across the board.
|
| |
|
|
|
| |
This ensures that we get as 'default' what the user needs to enter in
the command in the manpages
|
| |
|
|
| |
The parameter value should not be ignored.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This does not make sense to keep in the public API surface
documentation. As we are heading towards a release of 2.0, this
represents a "reset" in public API, and older annotations only
serve to clutter the documentation with information that is not
relevant to the reader.
Everything which is public at the time of the 2.0 release can
be considered available "Since: 2.0" implicitly (as this is
going to be the starting point of this new stable API).
It will make sense to start adding these annotations again for any
added API in 2.2 and forward.
|
| |
|
|
|
|
|
|
|
|
| |
For some reason, the pip source plugin appears to pass tests in master
when testing python 3.8 without this change, however it does not pass
tests without this change on the bst-1 branch.
Adding this change to master for consistency across branches for now,
and in the off chance that this fixes the pip source plugin in some
python 3.8 environments.
|
| |
|
|
|
|
|
| |
We need to make sure that we read the new proto after a fresh build. And
there is no need to keep the proto around for an incomplete artifact.
This fixes `FileNotFoundError` of CAS blob on push after rebuild.
|
| |
|
|
| |
This is required when buildbox-casd is running as separate user.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Artifact push and pull operations currently fail if logs are missing.
We don't currently have a config option to control how long artifact
logs should be kept in the cache. Until this changes, we should be
conservative and consider logs to be an essential part of artifacts,
keeping them from getting expired before the rest of the artifact.
|
| |
|
|
| |
Like `contains_file()` but checks multiple files in a single request.
|
| |
|
|
| |
This fixes handling of missing blobs in `ArtifactCache.pull()`.
|
| | |
|
| |
|
|
|
| |
Do not print message "Pulled artifact" when pulling the artifact proto
without data. This matches the log messages in `SourceCache`.
|
| |
|
|
|
| |
Include the project name and element name of dependencies in all cache
key variants as the dependency names are stored in the artifact proto.
|