Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document build process + reproducible builds #74

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

regulad
Copy link

@regulad regulad commented Mar 3, 2025

Hello. This is my work so far to make the build process of Sideband easier to unravel, as I spent a lot of time getting a build working and I'm sure new contributers would very much value an easier "turn-key" development solution. A proper reporducible build will also qualify the app for inclusion in repositories like IzzyOnDroid and F-Droid.

I will convert this draft to a full PR when the following documentation is completed:

  • Get the build running
  • Document how to build Android
  • Document how to build native
  • Document creation of dist_archive
  • GitHub actions reproducable build
  • Docker container for dev building

If you believe you can help, please reach out to me at @regulad:regulad.xyz on Matrix or make a PR to my branch. Cheers!

@regulad
Copy link
Author

regulad commented Mar 3, 2025

Supersedes #30 & #53

@regulad regulad force-pushed the feature/reproducable-builds branch from 02069b3 to e470095 Compare March 14, 2025 00:55
@regulad
Copy link
Author

regulad commented Mar 14, 2025

This is now finished! Here is a list of all changes made:

  • Add a DEVELOPING.md file showing how to setup a development environment
  • Add ./dmake script and Dockerfile for building Sideband on any system, and for easily running make commands in the docker container (complete with caching, so no time is wasted!)
  • Get Android building for x86 and x86_64
  • Add make target for creating dist_archive and deterministic injection of assets into the Android project (prebaking is mostly unneccesary now! it still is in this repository for future use)
  • Add framework for native Java code and XML assets being added to the Android project in P4A's reccomended way
  • Add GitHub Actions workflow that runs on all commits to check to see if it compiles with P4A (basically a super-fancy linter, since it generates a new signing key on each commit)

(The workflow also handles all caching properly, and could in the future be changed to use a persistant signing key for automatic CD via GitHub releases to your F-Droid repository!)

Ubuntu documentation

docker attempt

perfect 4-architecture building

dist_archive building

Test GitHub actions

Test GitHub actions

Test GitHub actions

Test GitHub actions

Test GitHub actions

Test GitHub actions

Test GitHub actions

properly implemented caching
@regulad regulad force-pushed the feature/reproducable-builds branch from b8d3f5d to cb8bb75 Compare March 14, 2025 01:53
@regulad regulad marked this pull request as ready for review March 14, 2025 01:53
@regulad regulad changed the title Document build process + reproducable builds Document build process + reproducible builds Mar 14, 2025
@markqvist
Copy link
Owner

Thanks @regulad! This is looking great. I'm currently preparing the 1.5.0 release of Sideband, and want to get that out of the way before trying this out. I'll have a look as soon as I can, but schedule is very tight right now, so please arm yourself with some patience. I really appreciate your work here!

@regulad
Copy link
Author

regulad commented Mar 21, 2025

Good to hear. If any conflicts with master show up, I'll be sure to reconcile them!

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