Open ameysutavani opened 1 year ago
I think a devcontainer is probably the most self-contained and immediately useful idea - made a issue #276 for that.
There are some additional ideas in existing issues as well, under the infra tag (and relatedly the build tag, although that one has more minor issues and bugs and fewer interesting feature additions).
What are you envisioning in terms of restructuring things? I'm not really familiar with Conan. I don't think we'd want to add something that would prevent or discourage users from including SymForce in vanilla CMake projects, or projects using some other build system that wraps CMake like colcon, but I'm not sure if any of the ideas you have in mind would do that.
Hi @aaron-skydio, Sorry for the late reply. I agree, conan might be a little non popular option, and also has a steep learning curve. I was thinking of general cmake improvements such as:
If we can identify a few TODOs that will simplify and automate the build process and by extension setting up the devcontainer and or CI automation across the entire symforce project, those are probably good candidates for the above work.
Yeah I'm generally on board with those ideas, although would want to talk through the specifics. I think setting up a devcontainer is a good place to start, and will probably give you some exposure to how the build and dependencies are set up as well, then we can go from there
Thanks @aaron-skydio . Sounds good.
Hello all,
I wanted to start a discussion about a few repository tooling and automation ideas. Primarily helping and improving development experience.
Here are some ideas that I think are worth pursuing:
Cmake restructuring to break the project down into composable units. Maybe using Conan or other package manager for easier maintenance, easier composability with dependencies.
Adding a devcontainer to the project for easier developer experience.
Improving the CI and/or coverage automation.
Eager to hear everyone's thoughts and additions. Especially looking forward to having a pool of these tooling improvement ideas that we can then pursue based on their easy of implementation, value addition and impact.
CC: @hmartiro , @aaron-skydio