jaiarobotics / jaiabot

Jaiabot source code
Other
20 stars 2 forks source link

task/goby-jaiabot-package-path #823

Closed JRoybot closed 5 months ago

JRoybot commented 5 months ago

Update path to goby and jaibot packages in build scripts

tsaubergine commented 5 months ago

Why are we switching from release to continuous here? A bit more description of the need and problem this solves would be great.

ferrom-jaia commented 5 months ago

Why are we switching from release to continuous here? A bit more description of the need and problem this solves would be great.

The issue we experienced is gobysoft release packages not compatible continuous 1.y jaiabot software.

Jaia tool was merged in but it needed the newest gobysoft packages.

Following the process to point at the right gobysoft packages we had a mismatch with what our local machines were using.

The mismatch also led to errors when deploying code.

Build error for goby.ev optional field.


bin/tool/config.proto:85:24: Error while parsing option value for "field": Message type "goby.GobyFieldOptions.ConfigurationOptions" has no field named "position".
bin/tool/config.proto:42:19: Option "(goby.ev)" unknown. Ensure that your proto definition file imports the proto which defines the option.
bin/tool/config.proto:52:21: Option "(goby.ev)" unknown. Ensure that your proto definition file imports the proto which defines the option.
bin/tool/config.proto:57:18: Option "(goby.ev)" unknown. Ensure that your proto definition file imports the proto which defines the option.
bin/tool/config.proto:68:22: Option "(goby.ev)" unknown. Ensure that your proto definition file imports the proto which defines the option.
bin/tool/config.proto:71:18: Option "(goby.ev)" unknown. Ensure that your proto definition file imports the proto which defines the option.
bin/tool/config.proto:31:12: Option "(goby.msg).cfg" unknown. Ensure that your proto definition file imports the proto which defines the option.
gmake[2]: *** [src/CMakeFiles/jaiabot_config.dir/build.make:193: include/bin/tool/config.pb.cc] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:734: src/CMakeFiles/jaiabot_config.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2```
tsaubergine commented 5 months ago

Ok, well this PR as written will break the CircleCI deb builds for beta and release as it will build against the continuous repo.

The relevant lines are here: https://github.com/jaiarobotics/jaiabot/blob/1.y/.circleci/config.yml#L68-L72, which adds "newer" repos as needed. This only works though if the one in the Docker container version is older than any added (release < beta < continuous < test).

So if you switch the Dockerfile to default to continuous, this will always take precedence for packages installed, even on beta/release builds.

tsaubergine commented 5 months ago

I think the Dockerfile needs to take repo as an argument (as it takes distro already), defaulting to "release", and the local build scripts can set it to "continuous" when they build the Dockerfile locally.

And while we're at it, might as well set version as well (1.y, 2.y, etc.) to set ourselves up for forthcoming 2.y

ferrom-jaia commented 5 months ago

Ok, well this PR as written will break the CircleCI deb builds for beta and release as it will build against the continuous repo.

Interesting. I wonder why CircleCi was not breaking then using the release goby packages to build against the continuous repos.

Nice Catch!

ferrom-jaia commented 5 months ago

Let's remove the docker configuration from this pull request and just have the fix for the local development environments. Toby has a pull request that addresses the docker issues. This way developers can continue to make progress.