Skip to content

OpenSearch's Unreliable Dependency - A Call for Enhanced API Compatibility #8982

@peternied

Description

@peternied

This issue aims to shed light on a frustrating experience that is negatively impacting contributors, including myself. The intention is not to shame or punish but rather to address the problem constructively and foster a conversation for a potential solution.

Describe the bug

OpenSearch's main does not have any requirements for public API compatibility. This often causes changes on snapshot builds that break compilation of plugins or integration tests of plugins to fail. This issues are difficult to debug and consumer considerable time on its plugins.

Breaking changes are backported in previous major version numbers, these layers make it hard to know where new issues are coming from.

To Reproduce

Maintain a plugin that depends on OpenSearch.

Expected behavior

There are several options:

Keep the Status Quo:

  • OpenSearch core continues to grow with added functionalities.
  • Plugins contribute more functionality into the core codebase to reduce the burden of maintenance.

Strictly Follow SemVer:

  • OpenSearch adheres to Semantic Versioning, ensuring no public API changes without a major version increment.
  • Plugin teams can have operational build pipelines and better control over migration.
  • OpenSearch core contributions are more strictly monitored, limiting the introduction of non-essential breaking changes.

Increase Verification of Pull Requests:

  • OpenSearch pull requests undergo verification against plugins' GitHub Actions checks before merging.
  • Plugin teams integrate test suites that are run before pull requests are merged, enabling them to be considered as a blocking consumer.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions