mathworks / mathworks/MATLAB-support-for-Zarr-files

Suggestion: Restructure project based on MATLAB Toolbox Best Practices

Open
#129 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
MATLAB
Stars
19
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Restructure repository based on the MATLAB Toolbox Best Practices.

Adopting the recommended toolbox structure would make packaging as an .mltbx easier by clearly separating distributable toolbox content from tests, development tools, and repository configuration.
Because this is a MathWorks-maintained repository, it could also serve as a practical example of the toolboxdesign recommendations for a toolbox containing a public MATLAB API, internal implementation code, and a Python dependency.

Preparing the repo for .mltbx based distribution would also provide users with a simpler installation and upgrade path than cloning the repository and manually adding it to the MATLAB path, and it would make it easier for other tools, i.e MatNWB to add the toolbox as a dependency.

What restructuring would mean for this repository:

Step 1: Move all root-level .m files and the PythonModule into a toolbox folder
Step 2: Add buildfile.m, toolbox packaging.prj file (optional/later)

New repository structure after reorganisation:

MATLAB-support-for-Zarr-files/
├── .github/
├── doc/
├── test/
├── toolbox/
│   ├── PythonModule/
│   │   ├── requirements.txt
│   │   └── ZarrPy.py
│   ├── Zarr.m
│   ├── ZarrDatatype.m
│   ├── readZattrs.m
│   ├── zarrcreate.m
│   ├── zarrinfo.m
│   ├── zarrread.m
│   ├── zarrwrite.m
│   └── zarrwriteatt.m
├── .codespellrc
├── .gitignore
├── buildfile.m                 # Proposed
├── codecov.yml
├── license.txt
├── README.md
├── SECURITY.md
└── <project-name>.prj          # Proposed packaging/project file

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the root-level MATLAB files, the PythonModule directory, and the existing test and documentation directories against the proposed toolbox layout. Determine the changes needed to add buildfile.m and an optional toolbox packaging project file. Done means distributable MATLAB and Python content is under toolbox while tests, documentation, and repository configuration remain separated.

Written by the indexing model from the issue text.

Assessment

Tech stack
matlab, python
Domain
build-system
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.