Skip to content

Suggestion: Restructure project based on MATLAB Toolbox Best Practices #129

Description

@ehennestad

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions