Skip to content

feat: v0.16.0 β€” Adapter architecture separation & community contribution system#18

Merged
liesliy merged 2 commits into
mainfrom
feature/v0.16-adapter-architecture-separation
Jul 22, 2026
Merged

feat: v0.16.0 β€” Adapter architecture separation & community contribution system#18
liesliy merged 2 commits into
mainfrom
feature/v0.16-adapter-architecture-separation

Conversation

@liesliy

@liesliy liesliy commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

This PR implements Phase 1 of the TLabel v0.16.0 roadmap: adapter architecture separation and community contribution infrastructure.

Changes

1. Adapter Architecture Separation (Commit fadc1d9)

  • Split BaseAdapter into two distinct base classes:
    • DataAdapterBase β€” for dataset/file format adapters (stateless conversion)
    • SensorAdapterBase β€” for real-time sensor hardware adapters (lifecycle + streaming)
  • BaseAdapter kept as backward-compatible alias for DataAdapterBase
  • Migrated paxini_gen3 and daimon_dm_tac to SensorAdapterBase
  • Updated tlabel/adapters/__init__.py with grouped exports

2. Community Contribution System (Commit 681bc05)

  • CONTRIBUTING.md β€” comprehensive contribution guide (CN + EN)
  • contrib/adapter-template/ β€” complete starter kit for contributors:
    • Skeleton adapter code with full interface implementation
    • Test template with fixtures
    • CI/CD GitHub Actions workflow
    • Quickstart Jupyter notebook
    • pyproject.toml with entry_points auto-discovery
    • README, LICENSE, sample data placeholder
  • Registry enhancements β€” register_external_adapter() + entry_points auto-discovery
  • DEVELOPER_GUIDE.md β€” updated architecture docs
  • CHANGELOG β€” v0.16.0 entries

Motivation

Clear separation of dataset vs sensor adapters is prerequisite for community contributions β€” contributors need to know which base class to extend and what interfaces to implement. The contribution template lowers the barrier for external developers to submit compatible adapters.

Testing

  • All existing tests should pass (backward compatible)
  • New registry APIs tested
  • Import paths verified

Checklist

  • Architecture separation complete
  • Backward compatibility maintained
  • Contribution template created
  • Registry supports external adapters
  • Documentation updated
  • CI passes
  • Review approval

Xi Luo added 2 commits July 22, 2026 14:13
- DataAdapterBase: for offline dataset adapters (gelsight, paxini, daimon, etc.)
- SensorAdapterBase: for real-time sensor SDK adapters (paxini_gen3, daimon_dm_tac)
  with connect/disconnect/stream_frames/is_connected/collect methods
- BaseAdapter kept as alias to DataAdapterBase for backward compatibility
- Updated __init__.py to export both base classes and categorize adapters
- Migrated paxini_gen3 and daimon_dm_tac to SensorAdapterBase

Part of v0.16.0 architecture separation for third-party contribution support.
…support

- CONTRIBUTING.md: comprehensive contributor guide with 22-dim reference
- contrib/adapter-template/: complete template for new adapter development
  - Data Adapter + Sensor Adapter skeleton code
  - CI/CD GitHub Actions workflow template
  - Test templates (basic + e2e)
  - Example Jupyter notebook
  - pyproject.toml template with entry_points support
- registry.py: add register_external_adapter() and entry_points auto-discovery
- registry.py: add list_builtin_adapters() and list_external_adapters()
- DEVELOPER_GUIDE.md: update adapter architecture documentation for v0.16
- CHANGELOG: add v0.16.0 section

Part of v0.16.0: building open ecosystem for tactile data standard.
@liesliy
liesliy merged commit bf60d4b into main Jul 22, 2026
5 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