Skip to content

Release 0.11.0#63

Merged
nsheff merged 39 commits into
masterfrom
dev
Mar 19, 2026
Merged

Release 0.11.0#63
nsheff merged 39 commits into
masterfrom
dev

Conversation

@nsheff
Copy link
Copy Markdown
Contributor

@nsheff nsheff commented Feb 28, 2026

No description provided.

nsheff and others added 15 commits February 18, 2026 09:03
Bumps [rollup](https://github.com/rollup/rollup) from 4.35.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v4.35.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…/rollup-4.59.0

Bump rollup from 4.35.0 to 4.59.0 in /frontend
…/minimatch-3.1.5

Bump minimatch from 3.1.2 to 3.1.5 in /frontend
@claude
Copy link
Copy Markdown

claude Bot commented Feb 28, 2026

Claude finished @nsheff's task —— View job


PR Review: Release 0.11.0

I've completed my comprehensive review of this substantial release PR. Here are my findings and recommendations:

🏆 Excellent Work Overall

This is a well-structured, feature-rich release with significant improvements across the board. The new compliance testing framework is particularly impressive and follows GA4GH standards meticulously.


📋 Major Features Added

Compliance Testing Suite (refget/compliance.py:1-496)

  • Outstanding: Comprehensive GA4GH SeqCol specification compliance checker
  • Well-structured: Clean separation of concerns with check functions, runners, and streaming capabilities
  • Robust error handling: Proper timeout handling (3s), connection error capture, and graceful degradation
  • Smart design: Both batch (/compliance/run) and streaming (/compliance/stream) endpoints via Server-Sent Events
  • Test coverage: Strong integration with pytest via tests/api/test_compliance.py

Frontend Improvements

  • New CompliancePage: Modern React component with real-time streaming UI
  • Better error handling: New AppError class with structured error information in services/fetchData.jsx:3-12
  • Component restructuring: Logical move of digest-related components to /components/digest/
  • Enhanced routing: Clean addition of /compliance route in main.jsx

🔍 Code Quality Assessment

Backend Changes ⭐⭐⭐⭐⭐

  • refget/compliance.py: Exceptional quality, follows best practices
  • refget/router.py: Clean integration of compliance endpoints with proper request handling
  • refget/store.py & cli/store.py: Well-structured CLI improvements with comprehensive command support

Frontend Changes ⭐⭐⭐⭐⭐

  • Modern React patterns with hooks and proper state management
  • EventSource API correctly implemented for real-time streaming
  • Error boundaries and loading states properly handled
  • Bootstrap classes used consistently

Test Coverage ⭐⭐⭐⭐⭐

  • Comprehensive test additions in tests/test_cli/test_store_commands.py (+197 lines)
  • New integration test suite tests/test_cli/test_store_pull.py (+400 lines)
  • Proper parametrization in compliance tests

⚠️ Areas for Attention

Minor Security Considerations

  1. Server-Sent Events: refget/router.py:623-631 - Consider adding rate limiting for compliance endpoints to prevent abuse
  2. URL validation: CompliancePage.jsx:22-24 - User-provided URLs passed directly to EventSource. Consider validation/sanitization

Performance Considerations

  1. SSE Connection Management: CompliancePage.jsx:27-51 - Good cleanup in stopCompliance() and error handling
  2. Large file handling: Frontend bundle size looks reasonable with dependency updates
  3. Timeout handling: 3-second timeout in compliance checks may be too aggressive for slow servers

Code Suggestions

High Priority:

// CompliancePage.jsx:22-24 - Add URL validation
const validateUrl = (url) => {
  try {
    new URL(url.trim());
    return true;
  } catch {
    return false;
  }
};

// Before creating EventSource
if (targetUrl.trim() && !validateUrl(targetUrl.trim())) {
  setError('Invalid URL format');
  return;
}

Medium Priority:

  • Consider adding CORS headers explicitly for compliance endpoints
  • Add request size limits for POST comparison endpoints

🧪 Test Coverage Analysis

Excellent improvements:

  • New CLI command tests cover edge cases and error conditions
  • Integration tests properly isolated with Docker PostgreSQL
  • Compliance tests use proper fixtures and parametrization
  • Good separation between unit and integration test suites

🚀 Performance & Scalability

  • Frontend: Proper use of React.memo opportunities exist but not critical
  • Backend: Streaming compliance responses prevent memory issues
  • Database: No concerning query patterns observed
  • Bundle size: Dependency updates look clean (minimatch, rollup versions)

🔒 Security Assessment

Generally secure with minor notes:

  • No hardcoded secrets detected
  • Proper input validation in most areas
  • CORS handling appears appropriate
  • Environment variable usage follows best practices

📊 Overall Recommendation: ✅ APPROVE

This is a high-quality release that significantly enhances the project's capabilities. The compliance testing framework alone is a major value-add that demonstrates commitment to standards compliance.

Key Strengths:

  1. Robust compliance testing infrastructure
  2. Excellent error handling improvements
  3. Clean code organization and structure
  4. Comprehensive test coverage
  5. Proper version bump to 0.11.0

Minor improvements suggested above can be addressed in follow-up PRs.


@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Feb 28, 2026

Deploying refget with  Cloudflare Pages  Cloudflare Pages

Latest commit: aea3a4d
Status: ✅  Deploy successful!
Preview URL: https://4f32c09a.refget.pages.dev
Branch Preview URL: https://dev.refget.pages.dev

View logs

nsheff added 10 commits March 2, 2026 13:44
Stdlib-only script that walks the brickyard directory tree, extracts
metadata (accession, group, source, build), cross-references PEP,
and outputs refgenomes_inventory.csv.
Resolves merge conflicts and includes updates to build_refgetstore.py
(offset parameter, threads=4) and cli store help text fix.
- Migrate from setup.py to pyproject.toml with hatchling
- Replace Black with Ruff, update GH Actions, use trusted publishing
- Remove legacy requirements/ files and codecov workflow
- Add SeqColBackend protocol and RefgetStoreBackend (database-free API serving)
- Expand store CLI subcommands
- Update seqcolapi configuration and compliance checks
- Add tests for backend, store crate, and updated CLI commands
@nsheff nsheff merged commit 9c1f301 into master Mar 19, 2026
4 checks passed
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.

1 participant