### Apache Airflow version

2.7.0

### What happened

When trying to install SodaCore on Airflow 2.7, the following error is received due to a conflict with `opentelemetry-api`.

```
ERROR: Cannot install apache-airflow==2.7.0 and soda-core==3.0.48 because these package versions have conflicting dependencies.

The conflict is caused by:
    apache-airflow 2.7.0 depends on opentelemetry-api==1.15.0
    soda-core 3.0.48 depends on opentelemetry-api~=1.16.0
```

SodaCore has depended on `opentelemetry-api~=1.16.0` ever since v[3.0.24](https://github.com/sodadata/soda-core/releases/tag/v3.0.24).

### What you think should happen instead

Airflow needs to support versions of `opentelemetry-api` 1.16.x.

### How to reproduce

Simply running the following commands to install the two packages should reproduce the error.

```
$ python3 -m venv /tmp/soda                                                                                         
$ /tmp/soda/bin/pip install apache-airflow==2.7.0 soda-core-bigquery==3.0.48
```

### Operating System

n/a

### Versions of Apache Airflow Providers

_No response_

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""
    Return a version to identify the state of the underlying git repo.
    The version will indicate whether the head of the current git-backed working directory
    is tied to a release tag or not : it will indicate the former with a 'release:{version}'
    prefix and the latter with a '.dev0' suffix. Following the prefix will be a sha of the
    current branch head. Finally, a "dirty" suffix is appended to indicate that uncommitted
    changes are present.
    :return: Found Airflow version in Git repo
    """
    try:
        import git
        try:
            repo = git.Repo(str(AIRFLOW_SOURCES_ROOT / ".git"))
        except git.NoSuchPathError:
            logger.warning(".git directory not found: Cannot compute the git version")
            return ""
        except git.InvalidGitRepositoryError:
            logger.warning("Invalid .git directory not found: Cannot compute the git version")
            return ""
    except ImportError:
        logger.warning("gitpython not found: Cannot compute the git version.")
        return ""
    if repo:
        sha = repo.head.commit.hexsha
        if repo.is_dirty():
            return f".dev0+{sha}.dirty"
        
        return f".release:{sha}"
    return "no_git_version"
def write_version(filename: str = str(AIRFLOW_SOURCES_ROOT / "airflow" / "git_version")) -> None: