Skip to content

Conversation

@dholth
Copy link
Contributor

@dholth dholth commented Dec 19, 2025

Checklist for submitter

  • I am submitting a new CEP: Changes to Conda Deprecation Schedule.
    • I am using the CEP template by creating a copy cep-0000.md named cep-XXXX.md in the root level.
  • I am submitting modifications to CEP XX.
  • Something else: (add your description here).

Checklist for CEP approvals

  • The vote period has ended and the vote has passed the necessary quorum and approval thresholds.
  • A new CEP number has been minted. Usually, this is ${greatest-number-in-main} + 1.
  • The cep-XXXX.md file has been renamed accordingly.
  • The # CEP XXXX - header has been edited accordingly.
  • The CEP status in the table has been changed to approved.
  • The last modification date in the table has been updated accordingly.
  • The table in the README has been updated with the new CEP entry.
  • The pre-commit checks are passing.

Copy link

@soapy1 soapy1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this idea!

Newly added private code would not be subject to the deprecation policy. This
code could change as necessary instead of after a deprecation cycle.

Private portions of newly-added public modules, i.e. underscore-prefixed symbols
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a convention for when (and at what level) we might want to introduce __all__ into a module or not?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would audit existing code especially projects under https://github.com/conda, add those, and also provide deliberate API exports for new code but not necessarily worry about __all__ when conda imports from itself.

dholth and others added 3 commits December 19, 2025 16:23
Copy link
Contributor

@travishathaway travishathaway left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a good idea and will help us more clearly delineate parts of code that are meant to be public and parts that are meant to be private.

I only wish that the conventions around API design in the Python community were a bit a stronger so documents like this wouldn't be necessary. Regardless, I think this will be not only useful for conda itself but all projects in the conda organization in GitHub.

@jaimergp
Copy link
Contributor

I like this, and the reference to the Python type checking docs. Very useful. Can we add a practical example on how we would (and would not) apply this in the codebase? Thanks!

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

Successfully merging this pull request may close these issues.

4 participants