Skip to content
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

Add some ground rules for contributing #82

Merged
merged 1 commit into from
Aug 16, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,33 @@ Data access:

- [ ] Table ACLS

# Contributing

The following principles hold:

- this project has to use Databricks SDK for Python.
- anything that doesn't fit into WorkspaceClient has to get through a "mixin" process to get to the SDK itself eventually.
- you can see the example for mixins based on the `StatementExecutionExt`.

Code organization:

- components that require API interaction must be split from the components doing business logic on a class level.
- the amount of logic in the API-calling components should be kept to a minimum.
- prefer injecting business logic components into API-calling components.
- all business logic has to be covered with unit tests. It should be easier without any API calls to mock.

Integration tests:

- all new code has to be covered by integration tests.
- integration tests should use predefined test fixtures provided in the environment variables.
- tests that require their own unique fixture setup must limit the wall clock time of fixture initialization to under one second.
- each integration test must be debuggable in IntelliJ IDEA (Community Edition) with the Python plugin (community edition).

IDE setup:

- The only supported IDE for developing this project is based on IntelliJ. This means that both PyCharm (commercial) and IntelliJ IDEA (Community Edition) with Python plugin (community edition) are supported.
- VSCode is not currently supported, as debugging a single integration test from it is impossible. This may change in the future.
Copy link
Contributor

Choose a reason for hiding this comment

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

Well, that is a stretch :) I am sure it is possible, I have the "Run Method" icon etc. just something is messed up that I may debug later on for fun. But I agree to limit unnecessary IDE growth.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

i'm sure you'll figure it out if you'd want to use VSCode for this a lot and we'll make it "supported" :)


## Development

This section describes setup and development process for the project.
Expand Down