Skip to content
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

Semantic versioning for EC API #157

Open
ids1024 opened this issue Feb 24, 2021 · 0 comments
Open

Semantic versioning for EC API #157

ids1024 opened this issue Feb 24, 2021 · 0 comments

Comments

@ids1024
Copy link
Member

ids1024 commented Feb 24, 2021

This is something I've been thinking of as a possible issue for various things.

  • For charge thresholds in Gnome Control Center, it would probably good to only show the setting for firmware that persists thresholds (Charging thresholds don't persist through an EC reset #128), and otherwise behaves how we want the feature to ultimately work (Default charge thresholds need to match profile #143). How can it check that?
    • Though this one raises the separate issue of how it would make the request to the EC since it doesn't use ectool.
  • Similarly, how can the Keyboard Configurator check that the EC is recent enough? We'll want to add more functionality for it to the firmware before release, and the Configurator may not work as expected with the earliest firmware version with support for changing the keymap.
  • In general, how could a program like the configurator test if the firmware is new enough to support certain features, to conditionally support them?
  • If we add functionality to the API, does it have to stay there forever? If we want/need to make a breaking change, how can that be handled?

I think I possible solution for all of these issues is to have a semver for the API. Then, for instance, the Configurator can refuse to work with EC firmware below a minimum version or a full version too high.

Ideally it would never need a semver bump, but it seems good to have that option. The other obvious solution is to support multiple API versions that the client can choose, like some services do, but that seems like a bad idea in firmware. A client program however could work with multiple EC API semvers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant