Skip to content

Audit cuda.core API for 1.0 release #1919

@rparolin

Description

@rparolin

We want to audit the cuda.core API before we release 1.0 to highlight anything that we want to change to prior to release. Once cuda.core-1.0.0 release, we will be locked into a few years support cycle so if there is any APIs that we want to break we must be do it now.

@mdboom plans to do this as a series of prompts to find issues and tackle from there.

Unintended exposure

In the cuda_core package, please analyse all of the __init__.py files and find any symbols that are exposed unintendedly. Especially symbols defined outside of the cuda_core package, private members or implementation details.

Exposing helper classes

Find any helper classes that are not intended to be instantiated by end users and make them private.

Use __all__ and import * together to make it easier to control exposure.

Prompt based on @Andy-Jost's guideline here about using __all__ and import * together to more easily control exposure. Most subpackages were already doing this, but graph was not.

Class member naming consistency

I want to audit the naming of all members of every public class in cuda_core. You can ignore the private classes, I only care about properties and methods exposed through the public API.

Class naming consistency

Can you please look at all classes exposed in the public API of cuda_core. I want you to look just at the names of the classes, not any members or methods. Please make sure they are all PEP8 compliant and that the same words are used for the same concepts.

Function naming consistency

Can you please look at all free functions in the public API of cuda_core and identify any that are not PEP8 compliant and also check for consistent naming of concepts (the same word is used for the same concept, and abbreviation, if any, is consistent).

(This did not produce any actionable results).

Problematic API contracts

I asked my bot to identify API contracts against the underlying low-level APIs to see if any of them will be problematic with respect to supporting all of the underlying functionality in the future.

Reveal of C-style error-handling patterns

Metadata

Metadata

Assignees

Labels

EPICSoul of a releaseP0High priority - Must do!

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions