feat(build): introduce build configuration for channel inclusion#953
feat(build): introduce build configuration for channel inclusion#953kaviraj-j wants to merge 1 commit intosipeed:mainfrom
Conversation
- Add `build.yaml.example` for configuring which channels to compile into the binary. - Implement `genbuild` script to generate channel imports based on `build.yaml`. - Update `Makefile` to run `genbuild` automatically during the build process. - Create documentation in `BUILD_CONFIG.md` to guide users on configuring and using the build system. - Move channel imports to `channels_imports.go`, generated by `genbuild`, to reduce binary size.
|
I have a concern over this approach. We will need a discussion on whether we want this feature before we can take this in, and if we want it, what is the best way to implement it. For example, what are the things we would like to customise, and how to best group them. The current approach of having a go cmd as a script feels pre-mature for me. |
|
|
|
@kaviraj-j Hi! This PR has had no activity for over 2 weeks, so I'm closing it for now to keep things organized. Feel free to reopen anytime if you'd like to continue. |
build.yaml.examplefor configuring which channels to compile into the binary.genbuildscript to generate channel imports based onbuild.yaml.Makefileto rungenbuildautomatically during the build process.BUILD_CONFIG.mdto guide users on configuring and using the build system.channels_imports.go, generated bygenbuild, to reduce binary size.📝 Description
🗣️ Type of Change
🤖 AI Code Generation
🔗 Related Issue
Closes #923
📚 Technical Context
Previously, all channel implementations were always compiled into the binary, increasing binary size and including unused dependencies. This change introduces a generation step that reads a build configuration file and dynamically creates the required channel imports during the build process. The generated imports file ensures that only selected channels are compiled, resulting in a more modular build and reduced binary size while keeping the build workflow automated.
🧪 Test Environment
📸 Evidence
Details
Size difference between including all channel implementation in the build vs only including Telegram☑️ Checklist