AOSC-Dev / ciel-rs

A tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers (version 3)
MIT License
8 stars 5 forks source link

Request for `ciel build` option to keep build files #10

Closed CamberLoid closed 2 years ago

CamberLoid commented 2 years ago

This issue is opened to request a new option for ciel build to keep instance from being rolled-back, after build is successfully performed.

Currently, after each build, ciel will automatically clean-up/rollback instance. In certain scenario, like a package lacks some .so files, packagers may want to look into the instance and see what files is missed. This is impossible as ciel will automatically perform rollback to the instance, especially when build a large project.

eatradish commented 2 years ago

I don't really agree with this request because we need to keep the containers clean no matter what.

You can actually do this by using acbs-build balabala after entering the container via the ciel shell (hint: you can use the -c option to clean up the previous compiled acbs build directory, while ciel build is more of a case where you can be 100% sure that the package will be built successfully.

CamberLoid commented 2 years ago

we need to keep the containers clean no matter what.

I agree with that. However, as far as I know, ciel build will rollback instance before each building attempt, which will also keep container clean when building.

You can actually do this by using acbs-build balabala after entering the container via the ciel shell

So, do you mean that, semantically ciel build means the final release build of a package(s)? (or, build on stable branch)

P.S. This issue is opened because each chromium build takes more than an hour, and if something goes wrong after pushing to a testing branch and I need to investigate with temporary build output, it is frustrating that I need to ciel shell -i <instance> and wait for another hour of build.

liushuyu commented 2 years ago

So, do you mean that, semantically ciel build means the final release build of a package(s)? (or, build on stable branch)

Yes. Semantically speaking, ciel build represents the process of a final build. If you are doing a test build, it's assumed you either encountered a build failure or running inside a non-volatile environment (e.g. ciel shell).

Preserving the filesystem of a volatile environment is not viable, since ciel supports volatile mount of a filesystem where the filesystem has to be destroyed per kernel's request (otherwise, the second -time mount will fail).