Hi All,

A considerable amount of new functionality has been added to the MATLAB 
interface over the last few months. We appreciate all the community's support 
in making this possible and are happy to see all the progress that is being 
made.

At this point, we would like to create an initial "0.1" release of the MATLAB 
interface. Incremental point releases will enable MATLAB users to provide early 
feedback. In addition, learning how to navigate the release process is an 
important step towards eventually releasing a stable 1.0 version of the MATLAB 
interface.

Our proposed approach to creating an initial release would be to:

1. Manually build the MATLAB interface on Windows, macOS, and Linux
2. Combine all of the cross platform build artifacts into a single MLTBX file 
[1] for distribution
3. Host the MLTBX somewhere that is easliy accessible for download

For reference - MLTBX is a standard packaging format for MATLAB which enables 
simple "one-click" installation - analogous to a Python pip package or a Ruby 
gem.

Creating an MLTBX file manually should be relatively low effort. However, in 
the long term, we would love to enable semi-automated "push button" releases 
via GitHub Actions (and possibly even "nightly builds").

Since this is our first time creating a release of the MATLAB interface, we 
wanted to draw on the community's expertise to answer a few questions:

1. Is there a recommended location where we can host the MLTBX file? e.g. 
GitHub Releases [2], JFrog [3], etc.?
2. Is there a recommended location for hosting release notes?
3. Is there a recommended cadence for incremental point releases?
4. Are there any notable ASF procedures [4] [5] (e.g. voting on a new release 
proposal) that we should be aware of as we consider creating an initial release?
5. How should the Arrow project release (i.e. 14.0.0) relate to the MATLAB 
interface version (i.e. 0.1)? As a point of reference, we noticed that PyArrow 
is on version 14.0.0, but it feels "misleading" to say that the MATLAB 
interface is at version 14.0.0 when we haven't yet implemented or stabilized 
all core Arrow APIs. Is there any precedent for using independent release 
versions for language bindings which are not fully stabilized and are also part 
of the main apache/arrow repository?

We've noticed that Arrow-related projects which are not part of the main 
apache/arrow GitHub repository (e.g. DataFusion) follow a mailing list-based 
voting and release process. However, it's not clear whether it makes sense to 
follow this process for the MATLAB interface since it is part of the main 
apache/arrow repository.

We sincerely appreciate the community's help and guidance on this topic!

Please let us know if you have any questions.

[1] https://www.mathworks.com/help/matlab/creating-help.html?s_tid=CRUX_lftnav
[2] https://github.com/apache/arrow/releases
[3] https://apache.jfrog.io/ui/native/arrow/
[4] https://www.apache.org/foundation/voting.html
[5] https://www.apache.org/legal/release-policy.html#release-approval

Best Regards,

Kevin Gurney

Reply via email to