Skip to content

Conversation

@basak-qcom
Copy link
Contributor

We have a fairly complicated build process in qcom-deb-images, as evidenced by the current README.md. Giving developers a one-command build instead means:

  1. Simplified instructions for developers, or in other words, moving instructions for manual entry from README.md into automated invocation via the build system.

  2. Automated dependency/rebuild tracking, reducing the instances where a full rebuild is required, or the easiest option, during development iteration.

  3. Building only what is necessary for a given target.

  4. The opportunity to move towards running CI before submission in a PR, rather than CI being entirely defined inside .github/workflows/ and therefore inaccessible for running locally.

This is too complex to attempt all at once. Instead I'm doing it in multiple small steps, and this is the first step. Overall, my plan is:

  1. Introduce a basic Makefile that works.

  2. Per item, implement in the Makefile what CI requires that is already implemented in .github/workflows/.

  3. Per item, replace complex build invocation steps made directly from .github/workflows/ with calls to the Makefile instead.

  4. Once the elements covered by README.md are all covered, I'll update the instructions to use the Makefile instead.

Note that CI for the Makefile should therefore not be necessary to implement directly; it'll happen step by step as CI is moved into it through step 3 above. If there are gaps in CI coverage that the Makefile does cover, then we can implement those as separate CI items to call from .github/workflows/ as we wish.

In time, this should make .github/workflows/ simpler, and encode our knowledge of how to invoke the various tools (including debos) into the source tree itself, rather than via manual instructions in README.md that are also duplicated in .github/workflows/

@github-actions
Copy link

github-actions bot commented Jul 1, 2025

Test Results

 2 files  ±0   4 suites  ±0   7m 12s ⏱️ ±0s
15 tests ±0  15 ✅ ±0  0 💤 ±0  0 ❌ ±0 
38 runs  ±0  38 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit b0892e7. ± Comparison against base commit a5d8176.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jul 1, 2025

Test jobs for commit 467dcab

@lool
Copy link
Contributor

lool commented Jul 1, 2025

Since this is non-draft, is this ready for review?

@basak-qcom
Copy link
Contributor Author

Yes, please!

Copy link
Contributor

@lool lool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we do the flash part and update the README+workflow? Otherwise we have a Makefile that is unused and only does part of the job we care about

@basak-qcom
Copy link
Contributor Author

Could we do the flash part and update the README+workflow? Otherwise we have a Makefile that is unused and only does part of the job we care about

See my commit message - I agree that we need to do this, but I'm breaking this up into steps. Otherwise I have to implement all build options across README.md and all workflows all at once, and that's too big for a single PR.

@basak-qcom
Copy link
Contributor Author

Ready for re-review please. Sorry I'm not used to working inside GitHub regularly. Next time I'll try to submit all comments together.

We have a fairly complicated build process in qcom-deb-images, as
evidenced by the current README.md. Giving developers a one-command
build instead means:

1. Simplified instructions for developers, or in other words, moving
instructions for manual entry from README.md into automated invocation
via the build system.

2. Automated dependency/rebuild tracking, reducing the instances where a
full rebuild is required, or the easiest option, during development
iteration.

3. Building only what is necessary for a given target.

4. The opportunity to move towards running CI before submission in a PR,
rather than CI being entirely defined inside .github/workflows/ and
therefore inaccessible for running locally.

This is too complex to attempt all at once. Instead I'm doing it in
multiple small steps, and this is the first step. Overall, my plan is:

1. Introduce a basic Makefile that works.

2. Per item, implement in the Makefile what CI requires that is already
implemented in .github/workflows/.

3. Per item, replace complex build invocation steps made directly from
.github/workflows/ with calls to the Makefile instead.

4. Once the elements covered by README.md are all covered, I'll update
the instructions to use the Makefile instead.

Note that CI for the Makefile should therefore not be necessary to
implement directly; it'll happen step by step as CI is moved into it
through step 3 above. If there are gaps in CI coverage that the Makefile
does cover, then we can implement those as separate CI items to call
from .github/workflows/ as we wish.

In time, this should make .github/workflows/ simpler, and encode our
knowledge of how to invoke the various tools (including debos) into the
source tree itself, rather than via manual instructions in README.md
that are also duplicated in .github/workflows/

Signed-off-by: Robie Basak <[email protected]>
@lool
Copy link
Contributor

lool commented Jul 2, 2025

Looks good, could you just test that kvm works as to make sure it's not broken for people that have it?

@github-actions
Copy link

github-actions bot commented Jul 2, 2025

Test jobs for commit b0892e7

@basak-qcom
Copy link
Contributor Author

This is ready to land except for testing KVM. I'm just waiting on approval for full access to an arm64 machine with KVM :)

@basak-qcom
Copy link
Contributor Author

KVM verified, so this can land now.

@basak-qcom basak-qcom merged commit 0dd58a5 into qualcomm-linux:main Jul 24, 2025
9 checks passed
@basak-qcom basak-qcom deleted the makefile branch July 24, 2025 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants