-
Notifications
You must be signed in to change notification settings - Fork 13.5k
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
Build overlay #7705
Comments
I'll do some research, but nothing immediately comes to mind for a canned solution to use or replicate. Really all we need is a handful of general build system and organization changes that make it seamless for these things to exist out of tree as first class citizens. We should list the most common specific use cases and go through solving each.
Another little idea that might help is to make it as easy as possible to sub out entire modules. For example many want to customize the attitude/rate controller in some way. If it was trivial and obvious the preferred solution could be to duplicate the entire module and then customize rather than hack in place. |
Tagging @davids5 to discuss nuttx options. |
This brings me back to using a manifest file and repo to specify the collection of git repos used for a particular build target. I find that git submodules just isn't flexible enough to handle builds with optional modules. The manifest is much more succinct about what is or isn't in a particular build and will drive better modularity. |
Another related idea would be to make it easier for a non developer to customize the release file *.px4) with a custom airframe, mixer, params without needing to embed the configuration in the firmware and rebuild everything. |
@ksschwabe if you could put together a simple repository that's representative of the different build overlay mechanisms (EXTERNAL modules and messages), I'll add it to the CI system quickly. In SITL we could have a trivial test that checks for the message and module. |
@dagar: Sorry I haven't quite managed to get to this yet - hopefully I can put this together by the end of the week. What exactly do I need to do here? Just set up a very simple "external repo" with a few modules and externally defined uORB messages? Would I need to add anything to it for the CI, or will you handle that once I have set up the repo? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Closing as stale. |
@dagar @bkueng @mcharleb Some of our adopters have customisations that we are not interested in (e.g. weird airframe configs) or they can't share (custom applications specific to their product).
I want to enable them to use upstream PX4 without rebasing stuff on top or generally having a tainted source tree. I'm trying to work out an overlay scheme that makes it easier to stay up-to-date with current PX4 and contribute back.
The overlay should also enable them to keep their code in a separate directory, which makes them more comfortable working with upstream.
This doesn't seem like a new problem. Is there a build system or at least design pattern we can reuse?
The text was updated successfully, but these errors were encountered: