GithubHelp home page GithubHelp logo

Comments (7)

ClemensElflein avatar ClemensElflein commented on May 18, 2024 2

I agree and I'm trying my best to keep the API stable. But since it's still in development (there is not really a stable software to begin with), the API might still change. I'm sorry for the larger breaking changes, but they were necessary to simplify configuration and to support more hardware configurations.

Great work on Mowgli btw!

from openmower.

jkaflik avatar jkaflik commented on May 18, 2024 1

I don't have any experience with hardware release process lifecycle, however I believe hardware will have much more less frequent release process.

I believe we will have dozens of iterations on software for only one change on hardware. Additionally, there is an idea ROS stack will support more than OpenMower's mainboard. We already have @ClemensElflein 's board and @cloudn1ne 's Mowgli custom firmware for c500.

IMO we should have hardware & software with an independent release cycle. This will require us to keep some kind of "contract" alignement and think better about the breaking changes later. Sharing same major version is good idea.

from openmower.

ClemensElflein avatar ClemensElflein commented on May 18, 2024
  • jakub and I are thinking about removing the link between the repos and only having the final stable software image here. If someone wants to develop, they should get the other repo for the sources.

from openmower.

rfvermut avatar rfvermut commented on May 18, 2024

DRC/ERC checks can be per-commit, CI style. And everything like linters, code-style, compilation attempts.

And artifacts can be published/generated per tag.

from openmower.

ClemensElflein avatar ClemensElflein commented on May 18, 2024

So basically as I understand it, we're doing the following:

  • For the current master state, a GitHub action builds software and hardware artifacts. These should be used for development purposes / latest feature testing only and should not be considered stable.
  • Since the software repo will be decoupled from this one, it will also build a Docker image for the latest master "unstable" version.
  • For a stable release, we'll create a tag and the user knows the latest tag will be a stable version.

The question is: How do we get this to synchronize? I.e. each "stable" OpenMower release will probably consist of software and hardware artifacts.

Do we manually create software and hardware releases independently in the two repos and using the version number, the user can get compatible versions (i.e. all 1.x hardware versions will work with all 1.x software versions) or do we somehow synchronize the repos and pack everything together into one big (hardware + software) release bundle here?

When packing everything together and we're just doing a software release, this would probably mean that new release will copy the older versions of the hardware with a new version number on it (I don't like that, because the same exact PCB will be stamped with different versions).

So I'd go with different releases sharing a major version.

from openmower.

cloudn1ne avatar cloudn1ne commented on May 18, 2024

i think it would be nice to have a stable interface (e.g ros topics, services etc) - because then software like mowgli (which is really just a ROS enabler for existing hardware) can be linked with some middleware to OM. Middleware can be maintained separately.

At least 2 ppl have that already running with forks from openmowers comms node.
As i wanted to learn about ROS i went with robot_localisation, but even that is running since 2 days with full sensor fusion (RTK GPS, onboard IMU, ext IMU, odometry) and i can send the bot around, but i will invest some time next to make it work with OM - e.g. do some middleware.

besides that the v4.4 mainboards should also be investigated, looks like an 8051 on there that could be made to work like mowgli.

bottom line some stable api def would be nice.

from openmower.

cloudn1ne avatar cloudn1ne commented on May 18, 2024

cool im gonna check out your code and will try to understand it as much as possible and then setup some kind of middleware proxy services - maybe at some point we can make adjustments to make life easy for eventual other hardware.

i have some kind of capabilities announcing schema in mind atm. if one day OM hooks into that, other hardware should be easy to support as long as it supports some minimum reqs and adheres to the ROS REP stds

from openmower.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.