Skip to content

Feat/plugins - deprecate otumate and old plugins #1253

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

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

dimitri-yatsenko
Copy link
Member

Fixing #1252 and initial part of #1251

@dimitri-yatsenko dimitri-yatsenko requested a review from Copilot July 29, 2025 00:49
@github-actions github-actions bot added enhancement Indicates new improvements documentation Issues related to documentation feature Indicates new features labels Jul 29, 2025
Copilot

This comment was marked as outdated.

Co-authored-by: Copilot <[email protected]>
@dimitri-yatsenko dimitri-yatsenko requested a review from Copilot July 29, 2025 00:55
Copilot

This comment was marked as outdated.

@dimitri-yatsenko dimitri-yatsenko marked this pull request as draft July 29, 2025 01:20
@dimitri-yatsenko dimitri-yatsenko marked this pull request as ready for review July 29, 2025 01:20
@dimitri-yatsenko dimitri-yatsenko requested a review from Copilot July 29, 2025 02:59
Copilot

This comment was marked as outdated.

@dimitri-yatsenko dimitri-yatsenko requested a review from Copilot July 29, 2025 03:04
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR deprecates the plugin system and removes several dependencies as part of cleaning up the codebase. The changes remove the otumat package dependency, eliminate the entire plugin verification system, and update documentation with new computational patterns.

  • Removes the plugin system including verification logic and cryptographic dependencies
  • Eliminates otumat and cryptography dependencies from project requirements
  • Adds comprehensive documentation for the "three-part make pattern" for long computations

Reviewed Changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/test_plugin.py Completely removed all plugin-related tests
pyproject.toml Removed otumat and cryptography dependencies, added new maintainer
datajoint/plugin.py Entirely removed plugin system implementation
datajoint/errors.py Removed plugin warning system and simplified DataJointError constructor
datajoint/connection.py Removed plugin hook system and simplified connection logic
datajoint/attribute_adapter.py Removed plugin-based adapter loading
docs/src/compute/populate.md Added extensive documentation for three-part make pattern
Dockerfile Updated Python version from 3.9 to 3.11
CHANGELOG.md Added deprecation notice directing to GitHub releases
.pre-commit-config.yaml Updated tool versions for isort, black, and flake8
.devcontainer/docker-compose.yml Updated container distribution and removed version specification
.devcontainer/devcontainer.json Added SSH agent mounting for development environment

@@ -177,7 +148,6 @@ class Connection:
"""

def __init__(self, host, user, password, port=None, init_fun=None, use_tls=None):
Copy link
Preview

Copilot AI Jul 29, 2025

Choose a reason for hiding this comment

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

The variable assignment host_input, host = (host, get_host_hook(host)) was removed but the original host parameter is being overwritten without preserving the original value. This could break functionality that depends on the original host value.

Copilot uses AI. Check for mistakes.

```python
def make_fetch(self, key):
"""Phase 1: Fetch all required data from parent tables"""
fetched_data = ((ParentTable & key).fetch1(),)
Copy link
Preview

Copilot AI Jul 29, 2025

Choose a reason for hiding this comment

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

The comment says the return value must be a sequence, but fetched_data is assigned as a tuple with a single element ((ParentTable & key).fetch1(),). This creates a nested tuple structure that may not match the expected interface.

Suggested change
fetched_data = ((ParentTable & key).fetch1(),)
fetched_data = [ParentTable & key).fetch1()]

Copilot uses AI. Check for mistakes.


def make_fetch(self, key):
"""Fetch the image data needed for analysis"""
return (Image & key).fetch1('image'),
Copy link
Preview

Copilot AI Jul 29, 2025

Choose a reason for hiding this comment

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

[nitpick] The trailing comma creates a single-element tuple, but this inconsistent with the pattern shown earlier where fetched_data1 is compared with fetched_data2. Consider using consistent tuple packing throughout the examples.

Suggested change
return (Image & key).fetch1('image'),
return (Image & key).fetch1('image')

Copilot uses AI. Check for mistakes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Issues related to documentation enhancement Indicates new improvements feature Indicates new features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants