| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This is possible now that the SSH protocol can redirect to the
appropriate pull URL.
Note that this commit makes no attempt at backwards compatibility.
Everthing will break!
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Causes --except specified elements to be loaded separately
and the intersections of the except elements and the loaded
pipeline to be calculated.
This fixes issue #131
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes workspaces created with the git source element so that the
origin remote points to the source repository of the build element as
opposed to the internal repository in the bst cache.
This introduces an addition of the init_workspace method in the source
API. This method, which defaults to calling stage, is for the setup of
the workspace after the creation of the workspace directory.
This is a part of issue #53
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Consequently:
o Changed Plugin.get_context() to a private Plugin._get_context() accessor.
o Updated anything which imports Context to do so from private _context module
o Updated docs to exclude the now private Context
|
|
|
|
|
|
| |
Base class for exceptions is now a part of the already private _exceptions module
Also moved PipelineError from _pipeline -> _exceptions module
|
|
|
|
| |
This is now part of the already private _exceptions module
|
|
|
|
| |
Hide all of buildstream's internal exceptions from the API surface.
|
|
|
|
|
| |
Also now the integration option to `bst checkout` is explicit,
as we dont have knowledge of arches anymore.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is deadcode, except_ is already calculated before we get here.
Updated some internal comments to reflect this, and updated the frontend
to not pass the useless except_ parameter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead, use None as the unique ID.
This will help with messaging when we allow invoking multiple targets
and the element would have been ambiguous - this also consequently
fixes issue #137.
The reason for the hangs with #137 is because:
o When you --except a base element, reverse dependencies cannot calculate a cache key
o When you track, cache keys are intentionally reset at startup time, because
we know they are going to change
o At the end of tracking, we make one attempt to print the toplevel cache key
This operation is insanely expensive, because we never cache a cache key because
it logically cannot ever be resolved in this situation.
This fix is basically a workaround to the above.
|
|
|
|
| |
Default is not to fetch them, we only need them in a few cases.
|
|
|
|
| |
This is an interim step for issue #131.
|
|
|
|
|
|
|
|
|
|
| |
I was seeing messages like this:
Fetching artifact list from None
However, the artifact cache did have the correct pull URL set -- the
issue was that I had overridden it my own config, and the string we
sent to the ticker didn't take that override into account.
|
| |
|
|
|
|
|
|
|
|
| |
Renamed _workspaces() -> _list_workspaces(), and changed local
cache of workspaces from __workspaces -> _workspaces.
We only really use the double underscore when there is a concern
for freeing up namespace for public subclassing.
|
| |
|
| |
|
|
|
|
|
|
| |
On slow machines, the actual push operation can spend several minutes
preparing before actually pushing, which is annoying if the push then
fails.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A project can specify its artifacts cache sharing settings, and users can
define a default artifacts cache to use as a fallback.
With this change, users can also override the project configuration with
their own.
That means for a project named "libfoo", BuildStream will resolve the
artifacts-related options in the following order:
1. the projects.libfoo.artifacts options from the user configuration;
2. if the above was not defined, then the artifacts options from the
project configuration;
3. if the above was not defined, then the artifacts options from the
user configuration;
Fixes #87
|
|
|
|
|
|
|
| |
With this commit, we first look at the artifacts options in the project
configuration, then fall back on the user configuration if necessary.
Relates to #87
|
|
|
|
|
| |
Having them there will allow overriding the user configuration (the
context) with the project configuration.
|
|
|
|
|
|
|
|
|
| |
Currently, if BuildStream is unable to push to the artifact cache for
whatever reason, the build will just error out. Fix it so that if we are
unable to push to the shared cache, we give a warning to the user and
continue building.
Fixes https://gitlab.com/BuildStream/buildstream/issues/90
|
|
|
|
|
| |
Instead of trying to fire a MessageType.FAIL without an elapsed
parameter, and then not returning from the push()/pull() methods.
|
|
|
|
|
|
| |
Attempting to remove an element from the list being iterated through
has undesirable results; fix this by creating a new, filtered list
rather than attempting to modify the original list in place.
|
|
|
|
|
|
|
|
|
|
| |
Remove the requirement to specify '--force' in conjunction with
'--no-checkout' if there are already files in the workspace. We won't
write anything when opening the workspace, so there's nothing to force.
For example, when opening a workspace to an existing clone of a
repository, it seems alarming to have to '--force' the workspace open.
It made me wonder if it will actually be overwritten.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is mainly useful for testing artifact caches and such. Most users
will hopefully be able to make use of artifact caches populated by
automated build machines, but right now it's unlikely that most people
will be pushing artifacts around.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the first time you configured an artifact cache, you would
get to the end of your first build and then BuildStream would exit
because of some stupid mistake like you got the address slightly wrong
or you forgot to add the host keys of the remote artifact cache to
`~/.ssh/known_hosts`.
To avoid surprises, if there's an artifacts push-url configured we now
try to connect to it as a preflight check so that issues are raised
early.
On success, you will see something like this:
[--:--:--][90904fe4][ main:gnu-toolchain/stage2.bst ] START Checking connectivity to remote artifact cache
[00:00:00][90904fe4][ main:gnu-toolchain/stage2.bst ] SUCCESS Connectivity OK
On failure, it looks like this:
[--:--:--][90904fe4][ main:gnu-toolchain/stage2.bst ] START Checking connectivity to remote artifact cache
[00:00:03][90904fe4][ main:gnu-toolchain/stage2.bst ] FAILURE BuildStream will be unable to push artifacts to the shared cache: ssh: connect to host ostree.baserock.org port 2220: Connection timed out
As a bonus, for some reason this check causes SSH to ask about unknown
host keys rather than just failing, so you may now see messages like
this if the host keys are unknown rather than an error:
The authenticity of host '[ostree.baserock.org]:22200 ([185.43.218.170]:22200)' can't be established.
ECDSA key fingerprint is SHA256:mB+MNfYREOdRfp2FG6dceOlguE/Skd4QwnS0tvCPcnI.
ECDSA key fingerprint is MD5:8f:fa:ab:90:19:31:f9:f7:f1:d4:e5:f0:a2:be:56:71.
Are you sure you want to continue connecting (yes/no)?
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This means:
o Load the project elements passing in the possible variants
exposed by the project, allowing the loader to error on
nonexisting variants and to choose a project variant.
o Resolve the project variant after loading the meta elements,
but before materializing the Element and Source objects
o Delay creation of the plugin contexts and factories until
after the project is resolved.
|
| |
|
|
|
|
|
| |
Previously, an OSError would come up and be handled with a generic stack
trace.
|
|
|
|
|
|
| |
This was a bit contorted, and is no longer needed with
the new end of session generic reports which show the status
of each scheduler queue.
|
|
|
|
|
|
|
| |
One day BuildStream will be able to run host-incompatible integration
commands using a QEMU cross-sandbox, but for now we have to disable
integration commands for cross-builds to avoid errors when checking them
out.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This command adds initial cross-compilation support to BuildStream.
It has been tested against a converted version of the Baserock
compiler bootstrap and used to cross build sysroots for armv8l64 and ppc64l
from an x86_64 host.
For example, to build a sysroot for ARM v8 64-bit you can do this:
bst build --target-arch=armv8b64 gnu-toolchain/stage2.bst
This would cause the adapted Baserock definitions to produce a stage1 simple
cross compiler that runs on the native architecture and produces armv8b64
binaries, and then cross build a stage2 sysroot that executes on armv8b64.
Currently the --host-arch option does nothing of use. It will one day
enable host-incompatible builds using a QEMU-powered cross sandbox.
The `--arch=` option is now shorthand for `--host-arch= --target-arch=`.
Elements have 2 new variables available, %{bst-host-arch} and
%{bst-target-arch}. The 'arches' conditional now follows %{bst-target-arch},
while the new 'host-arches' conditional follows %{bst-host-arch}. All
of --arch, --host-arch and --target-arch default to the output of `uname -a`.
There's no magic here that would make all BuildStream elements suddenly
able to cross compile. It is up to an individual element to support this by
honouring %{bst-target-arch} in whatever way makes sense.
|