Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

[Feature] Conservative with changing public Python API's #10251

Closed
3 tasks done
JCZuurmond opened this issue Jun 2, 2024 · 1 comment
Closed
3 tasks done

[Feature] Conservative with changing public Python API's #10251

JCZuurmond opened this issue Jun 2, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@JCZuurmond
Copy link
Contributor

JCZuurmond commented Jun 2, 2024

Is this your first time submitting a feature request?

  • I have read the expectations for open source contributors
  • I have searched the existing issues, and I could not find an existing issue for this feature
  • I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

Describe the feature

Hi, I would like dbt to be conservative with public Python API's, i.e. minimize adding, removing and changing public Python API's.

This is more a "way-of-working" or "software engineering standards" request, then an typical feature request. (I did not consider it to be a bug either, maybe it could be a discussion instead of a feature.)

As a package maintainer, I feel the pain when dbt changes public Python API's. For example, see code here that handles the changing API's:

try:
    from dbt.version import semver
except ImportError:
    try:
        import dbt_common.semver as semver
    except ImportError:
        try:
            import dbt.common.semver as semver
        except ImportError:
            import dbt.semver as semver

or

from dbt.adapters.factory import register_adapter,
from dbt import version

if semver.VersionSpecifier("1", "7", "16") < version.get_installed_version():
    from dbt.mp_context import get_mp_context
    register_adapter(config, get_mp_context())
else:
    register_adapter(config)

Describe alternatives you've considered

Handling differences in Python API between dbt versions with Python logic.

Who will this benefit?

Those who build tooling using the dbt Python API.

Are you interested in contributing this feature?

No

Anything else?

@JCZuurmond JCZuurmond added enhancement New feature or request triage labels Jun 2, 2024
@JCZuurmond JCZuurmond changed the title [Feature] Conservative with public Python API's [Feature] Conservative with changing public Python API's Jun 2, 2024
@dbeatty10
Copy link
Contributor

This is more a "way-of-working" or "software engineering standards" request, then an typical feature request. (I did not consider it to be a bug either, maybe it could be a discussion instead of a feature.)

Definitely a great topic for a discussion, so I'm going to convert it.

@dbt-labs dbt-labs locked and limited conversation to collaborators Jun 3, 2024
@dbeatty10 dbeatty10 converted this issue into discussion #10255 Jun 3, 2024
@dbeatty10 dbeatty10 removed the triage label Jun 3, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants