You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This was discovered using Linux builds, but it almost certainly exists on any platform where an explicit build step exists.
To replicate:
Create a helloworld project
Modify pyproject.toml, adding a support_package entry that points to a non-existent support package.
Run briefcase build linux. The build will fail, but a linux directory will exist.
Remove the support package reference from pyproject.toml.
Re-run briefcase build linux.
The build will fail because the Docker container doesn't exist. The Docker container is constructed as part of the create command, but the part of the build command that detects whether the create command completed successfully isn't a reliable test of "end state completeness".
Either:
the create command should clean up after itself if it fails, or
the build command should use a different mechanism to test that create succeeded.
One option would be to use an explicit "stage finished" file marker - a hidden file dropped in the platform directory that can be used as an explicit marker that "this step finished successfully".
This is potentially an issue on any of the implied steps (e.g., run -> build -> create could fail at any point in that process if the "do I need to build" check isn't a 100% reliable test of did the previous build complete).
The text was updated successfully, but these errors were encountered:
For clarity: The fix here is simple: manually delete the intermediate directory, and/or only use the explicit commands (create then update, not an update with an implied create). However, since the smarts exist, we should aim to actually make them smart :-)
This was discovered using Linux builds, but it almost certainly exists on any platform where an explicit build step exists.
To replicate:
pyproject.toml
, adding asupport_package
entry that points to a non-existent support package.briefcase build linux
. The build will fail, but alinux
directory will exist.pyproject.toml
.briefcase build linux
.The build will fail because the Docker container doesn't exist. The Docker container is constructed as part of the
create
command, but the part of thebuild
command that detects whether thecreate
command completed successfully isn't a reliable test of "end state completeness".Either:
create
command should clean up after itself if it fails, orbuild
command should use a different mechanism to test that create succeeded.One option would be to use an explicit "stage finished" file marker - a hidden file dropped in the platform directory that can be used as an explicit marker that "this step finished successfully".
This is potentially an issue on any of the implied steps (e.g., run -> build -> create could fail at any point in that process if the "do I need to build" check isn't a 100% reliable test of did the previous build complete).
The text was updated successfully, but these errors were encountered: