Hi Raúl, > Currently all the binaries are generated on the third step of the > Release process [1] when we run `03-binary-submit.sh`. The crossbow > job could build the MLTBX artifact and then when we do download the > other binaries (`04-binary-download.sh`) we should also download the > MTLBX and when we submit the rest to jfrog (`05-binary-upload.sh`) we > could Upload MLTBX to GitHub Releases for apache-arrow-X.Y.Z-rcN.
Thanks for clarifying how these scripts work together. This all makes sense. Our one concern is that the Arrow-MATLAB File Exchange entry would be automatically updated to show release candidates that have been uploaded to apache/arrow's GitHub Releases area. We're looking into how to prevent this from happening. Best, Sarah Gilmore ________________________________ From: Raúl Cumplido <rau...@apache.org> Sent: Friday, November 10, 2023 1:11 PM To: Raúl Cumplido <rau...@apache.org> Cc: Sutou Kouhei <k...@clear-code.com>; dev@arrow.apache.org <dev@arrow.apache.org>; Lei Hou <lei...@mathworks.com>; Sarah Gilmore <sgilm...@mathworks.com> Subject: Re: [DISCUSS][MATLAB] Proposal for incremental point releases of the MATLAB interface In case it was not clear, even though the binary job is run on ursacomputing/crossbow when we upload the binaries and create the Release that should be, at least in my opinion, an apache/arrow release. Both for the steps: 1. RC: Upload MLTBX to GitHub Releases for apache-arrow-X.Y.Z-rcN and 2.2 Upload it to GitHub Releases for apache-arrow-X.Y.Z El vie, 10 nov 2023 a las 19:02, Raúl Cumplido (<rau...@apache.org>) escribió: > > Hi Sara, > > El vie, 10 nov 2023 a las 18:48, Sarah Gilmore > (<sgilm...@mathworks.com.invalid>) escribió: > > > > Hi Kou, > > > > > We can use apache/arrow's GitHub Releases. The release > > > distribution document says that we can use GitHub as a > > > release platform: > > > https://infra.apache.org/release-distribution.html#other-platforms<https://infra.apache.org/release-distribution.html#other-platforms> > > > > > > apache/arrow doesn't use GitHub Releases yet but > > > apache/arrow-adbc and apache/arrow-flight-sql-postgresql > > > already use GitHub Releases. (We just use "gh release > > > upload" to upload our artifacts to GitHub Releases.) > > > > Thank you for clarifying that we can use apache/arrow's GitHub Releases > > area for hosting the MLTBX file. We assumed we couldn't use the main > > repository, but it's great to hear we can! > > > > > BTW, how does File Exchange "Connecting to GitHub Repositories"? > > > https://www.mathworks.com/matlabcentral/content/fx/about.html#Why_GitHub > > > > > > Does it just use "polling"? Or do we need to install any > > > GitHub App, set secret variable or something on > > > apache/arrow? If the latter, we need to ask INFRA to do it. > > > > We are currently consulting with the development team responsible for the > > GitHub <-> File Exchange integration. We'll send a followup email with a > > concrete answer once we know more. > > > > > If we use GitHub Releases on apache/arrow, we can use the > > > following workflow. We don't need to use JFrog. > > > > > > 1. RC: Upload MLTBX to GitHub Releases for apache-arrow-X.Y.Z-rcN > > > 2. Release: Run a post release script that would: > > > 2.1 Download MLTBX from GitHub Releases for apache-arrow-X.Y.Z-rcN > > > 2.2 Upload it to GitHub Releases for apache-arrow-X.Y.Z > > > 2.3 Linked File Exchange entry will be automatically updated > > > > This seems like a much more streamlined approach. Not having to upload to > > JFrog will make things easier. Thanks for the suggestion! > > > > To clarify, in step 1, would we upload the MLTBX to > > ursacomputing/crossbow's GitHub Releases area [1]? Or, would we upload to > > apache/arrow's GitHub Releases area? If we upload release candidates to > > apache/arrow's GitHub Releases area, they would get automatically linked to > > the File Exchange. Ideally, we wouldn't want users to download release > > candidates. > > > > Currently all the binaries are generated on the third step of the > Release process [1] when we run `03-binary-submit.sh`. The crossbow > job could build the MLTBX artifact and then when we do download the > other binaries (`04-binary-download.sh`) we should also download the > MTLBX and when we submit the rest to jfrog (`05-binary-upload.sh`) we > could Upload MLTBX to GitHub Releases for apache-arrow-X.Y.Z-rcN. > > Once the release is approved and we do the post-release tasks to > "officially" release, we would download the MLTBX and upload to the > new GitHub Releases for apache-arrow-X.Y.Z this can be done as another > step on our post-release tasks (post-xx-matlab.sh) > > [1] > https://arrow.apache.org/docs/developers/release.html#build-source-and-binaries-and-submit-them<https://arrow.apache.org/docs/developers/release.html#build-source-and-binaries-and-submit-them> > > > > We can use GitHub Releases as I said. But if we use GitHub > > > Releases, the release notes on GitHub Releases may include > > > not only the MATLAB interface but also all > > > implementations. It may not be useful for this use case. > > > > > > FYI: The R bindings have their release notes under > > > https://arrow.apache.org/docs/r/<https://arrow.apache.org/docs/r> . See > > > https://arrow.apache.org/docs/r/news/<https://arrow.apache.org/docs/r/news> > > > . > > > > We think it would still be useful to link to the GitHub release notes from > > the File Exchange entry even if it includes notes for all language > > bindings. The File Exchange <-> GitHub integration just includes a link to > > the GitHub release notes under the Version History tab. If we find having a > > more focused version of the release notes would be useful, then we can > > create a markdown file analogous to the NEWS.md for the R bindings as you > > suggested (thanks or pointing this out). > > > > [1] > > https://github.com/ursacomputing/crossbow/releases<https://github.com/ursacomputing/crossbow/releases> > > > > Thanks for all your help! > > > > Best, > > > > Sarah Gilmore > > ________________________________ > > From: Sutou Kouhei <k...@clear-code.com> > > Sent: Thursday, November 9, 2023 7:50 PM > > To: dev@arrow.apache.org <dev@arrow.apache.org> > > Cc: Sarah Gilmore <sgilm...@mathworks.com>; Lei Hou <lei...@mathworks.com> > > Subject: Re: [DISCUSS][MATLAB] Proposal for incremental point releases of > > the MATLAB interface > > > > Hi, > > > > > One open question about this approach: which GitHub > > > repository should we use for hosting the MLTBX via GitHub > > > Releases? > > > > > > We don't think using the main apache/arrow GitHub Releases > > > area is the right approach. So, would it make sense to > > > create a separate "bridge" repository just for hosting the > > > latest MLTBX files? Should this be an ASF associated > > > repository like apache/arrow-matlab or would a MathWorks > > > associated repository like mathworks/arrow-matlab be OK? > > > We aren't sure what makes the most sense here, but welcome > > > any suggestions. > > > > We can use apache/arrow's GitHub Releases. The release > > distribution document says that we can use GitHub as a > > release platform: > > https://infra.apache.org/release-distribution.html#other-platforms<https://infra.apache.org/release-distribution.html#other-platforms><https://infra.apache.org/release-distribution.html#other-platforms<https://infra.apache.org/release-distribution.html#other-platforms>> > > > > apache/arrow doesn't use GitHub Releases yet but > > apache/arrow-adbc and apache/arrow-flight-sql-postgresql > > already use GitHub Releases. (We just use "gh release > > upload" to upload our artifacts to GitHub Releases.) > > > > BTW, how does File Exchange "Connecting to GitHub Repositories"? > > https://www.mathworks.com/matlabcentral/content/fx/about.html#Why_GitHub > > > > Does it just use "polling"? Or do we need to install any > > GitHub App, set secret variable or something on > > apache/arrow? If the latter, we need to ask INFRA to do it. > > > > If we use GitHub Releases on apache/arrow, we can use the > > following workflow. We don't need to use JFrog. > > > > 1. RC: Upload MLTBX to GitHub Releases for apache-arrow-X.Y.Z-rcN > > 2. Release: Run a post release script that would: > > 2.1 Download MLTBX from GitHub Releases for apache-arrow-X.Y.Z-rcN > > 2.2 Upload it to GitHub Releases for apache-arrow-X.Y.Z > > 2.3 Linked File Exchange entry will be automatically updated > > > > > > > File Exchange entries have a "Version History" which > > > includes release notes from the "backing" GitHub Releases > > > area. So, this would probably be a sensible location to > > > put the release notes. > > > > We can use GitHub Releases as I said. But if we use GitHub > > Releases, the release notes on GitHub Releases may include > > not only the MATLAB interface but also all > > implementations. It may not be useful for this use case. > > > > FYI: The R bindings have their release notes under > > https://arrow.apache.org/docs/r/<https://arrow.apache.org/docs/r/><https://arrow.apache.org/docs/r<https://arrow.apache.org/docs/r>> > > . See > > https://arrow.apache.org/docs/r/news/<https://arrow.apache.org/docs/r/news/><https://arrow.apache.org/docs/r/news<https://arrow.apache.org/docs/r/news>> > > . > > > > > Also, including MATLAB updates in > > > Apache Arrow release blog posts > > > (e.g. > > > https://arrow.apache.org/blog/2023/11/01/14.0.0-release/<https://arrow.apache.org/blog/2023/11/01/14.0.0-release><https://arrow.apache.org/blog/2023/11/01/14.0.0-release<https://arrow.apache.org/blog/2023/11/01/14.0.0-release>>) > > > may also be helpful. > > > > Yes. We should do it. :-) > > > > > > Thanks, > > -- > > kou > > > > In > > <mn2pr05mb6496df713e917c66e30ab50cae...@mn2pr05mb6496.namprd05.prod.outlook.com> > > "Re: [DISCUSS][MATLAB] Proposal for incremental point releases of the > > MATLAB interface" on Wed, 8 Nov 2023 20:44:10 +0000, > > Kevin Gurney <kgur...@mathworks.com.INVALID> wrote: > > > > > Hi Kou and Dewey, > > > > > > Thank you very much for your very thorough and detailed responses to all > > > of our questions. This is extremely valuable feedback and the points that > > > you made make alot of sense. > > > > > > Sarah and I talked this over a bit more and we think that sticking with > > > the overall apache/arrow project release cycle (i.e. stay in line with > > > 15.0.0) makes the most sense in the long term. > > > > > > @Dewey - thanks very much for highlighting the pros and cons of creating > > > a separate repository. We also really appreciate the community being > > > willing to try and support our development needs. That being said, we > > > think it is probably best to stay in-model with the main apache/arrow > > > release process for the time being rather than creating a separate > > > repository for the MATLAB interface. > > > > > > To address some related points and questions: > > > > > >> Can we just mention "This is not stable yet!!!" in the documentation > > >> instead of using isolated version? > > > > > > Yes. This is good point and we already have a disclaimer in the README.md > > > [1] for the MATLAB interface which says: "Warning The MATLAB interface is > > > under active development and should be considered experimental." > > > > > >> It's better that we use CI for this like other binary packages such as > > >> .deb/.rpm/.wheel/.jar/... > > > > > > This makes sense and we agree. We will follow up with PRs to add the > > > necessary MATLAB packaging scripts and CI workflow files. > > > > > >> Does the MLTBX file include Apache Arrow C++ binaries too like > > >> .wheel/.jar? > > > > > > Yes. The MLTBX file will package the Apache Arrow C++ binaries, similar > > > to the Java JARs / Python wheels. > > > > > >> MATLAB doesn't provide the official package repository such as PyPI for > > >> Python and > > >> https://rubygems.org/<https://rubygems.org><https://rubygems.org<https://rubygems.org>> > > >> for Ruby, right? > > > > > > The equivalent to pypi.org or rubygems.org for MATLAB would be the > > > MathWorks File Exchange [2]. > > > > > >> If the official package repository for MATLAB doesn't exist, JFrog is > > >> better because the MLTBX file will be large (Apache Arrow C++ binaries > > >> are large). > > > > > > As noted above, the "official package repository" for MATLAB would be the > > > MathWorks File Exchange. File Exchange has tight integration with GitHub > > > [3]. When a new release is available in GitHub Releases, the associated > > > File Exchange entry will be automatically updated. > > > > > > We believe we could leverage this integration between File Exchange and > > > GitHub Releases to automate the MATLAB interface release process. This > > > approach might look like: > > > > > > 1. Upload MLTBX to JFrog Artifactory > > > 2. Run a post release script that would: > > > 2.1 Download MLTBX from JFrog Artifactory > > > 2.2 Upload to GitHub Releases (e.g. apache/arrow-matlab - see discussion > > > below) > > > 2.3 Linked File Exchange entry will be automatically updated > > > > > > One open question about this approach: which GitHub repository should we > > > use for hosting the MLTBX via GitHub Releases? > > > > > > We don't think using the main apache/arrow GitHub Releases area is the > > > right approach. So, would it make sense to create a separate "bridge" > > > repository just for hosting the latest MLTBX files? Should this be an ASF > > > associated repository like apache/arrow-matlab or would a MathWorks > > > associated repository like mathworks/arrow-matlab be OK? We aren't sure > > > what makes the most sense here, but welcome any suggestions. > > > > > >> We may want to use the status page for it: > > >> https://arrow.apache.org/docs/status.html<https://arrow.apache.org/docs/status.html><https://arrow.apache.org/docs/status.html<https://arrow.apache.org/docs/status.html>> > > > > > > Thanks for highlighting this. This makes sense, and we can follow up with > > > a PR to add MATLAB to the status page. > > > > > >> How about creating > > >> https://arrow.apache.org/docs/matlab/<https://arrow.apache.org/docs/matlab><https://arrow.apache.org/docs/matlab<https://arrow.apache.org/docs/matlab>> > > >> ? We can use Sphinx like the Python docs > > >> https://arrow.apache.org/docs/python/<https://arrow.apache.org/docs/python><https://arrow.apache.org/docs/python<https://arrow.apache.org/docs/python>> > > >> or another documentation tools like the R docs > > >> https://arrow.apache.org/docs/r/<https://arrow.apache.org/docs/r/><https://arrow.apache.org/docs/r/<https://arrow.apache.org/docs/r/>> > > >> . If we use Sphinx, we can create > > >> https://github.com/apache/arrow/tree/main/docs/source/matlab/<https://github.com/apache/arrow/tree/main/docs/source/matlab><https://github.com/apache/arrow/tree/main/docs/source/matlab<https://github.com/apache/arrow/tree/main/docs/source/matlab>> > > > > > > This makes sense and eventually we want to have comprehensive > > > documentation in line with other language bindings using Sphinx. In > > > addition to comprehensive documentation, we were also hoping that we > > > could host release notes in a place that is easily accessible from the > > > MLTBX download location. File Exchange entries have a "Version History" > > > which includes release notes from the "backing" GitHub Releases area. So, > > > this would probably be a sensible location to put the release notes. > > > Also, including MATLAB updates in Apache Arrow release blog posts (e.g. > > > https://arrow.apache.org/blog/2023/11/01/14.0.0-release/<https://arrow.apache.org/blog/2023/11/01/14.0.0-release/><https://arrow.apache.org/blog/2023/11/01/14.0.0-release/<https://arrow.apache.org/blog/2023/11/01/14.0.0-release/>>) > > > may also be helpful. > > > > > > -- > > > > > > We really appreciate all of the community's guidance on navigating the > > > release process! > > > > > > We will get started on integrating with the existing release tooling. > > > > > > [1] > > > https://github.com/apache/arrow/tree/main/matlab#status<https://github.com/apache/arrow/tree/main/matlab#status><https://github.com/apache/arrow/tree/main/matlab#status<https://github.com/apache/arrow/tree/main/matlab#status>> > > > [2] https://www.mathworks.com/matlabcentral/fileexchange > > > [3] > > > https://www.mathworks.com/matlabcentral/content/fx/about.html#Why_GitHub > > > > > > Best Regards, > > > > > > Kevin Gurney > > > ________________________________ > > > From: Dewey Dunnington <de...@voltrondata.com.INVALID> > > > Sent: Tuesday, November 7, 2023 8:53 PM > > > To: dev@arrow.apache.org <dev@arrow.apache.org> > > > Cc: Sarah Gilmore <sgilm...@mathworks.com>; Lei Hou <lei...@mathworks.com> > > > Subject: Re: [DISCUSS][MATLAB] Proposal for incremental point releases of > > > the MATLAB interface > > > > > > For argument's sake, I might suggest that the process you described in > > > your initial note would probably work best in another repo: you would > > > be able to iterate faster and release/version at your own pace. The > > > flexibility you get from moving to a separate repo comes at the cost > > > of extra responsibility: you have to set up your own CI, manage your > > > own issues, and set up your own release verification scripts + release > > > votes on the mailing list. Because you bind Arrow C++, you would have > > > to take sufficient steps to ensure that the Arrow C++ developers are > > > made aware of changes that break the Matlab bindings and vice versa > > > (i.e., test against dev Arrow C++ in a CI job). > > > > > > Setting up that infrastructure for apache/arrow-nanoarrow took ~a week > > > of development time, and it now takes ~half a day to release a new > > > version (it took more for the first few versions, and the matlab > > > version has considerably higher complexity). Probably the biggest > > > barrier to releasing from another repo is that you have to ensure a > > > critical mass of PMC members can/will run your release verification > > > script and vote. > > > > > > I happen to feel that it's the PMC's/wider community's responsibility > > > to help language binding contributors adopt a workflow that suits > > > their needs. If active Matlab contributors agree that they want to > > > release version 0.1 from another repo, (I feel that) we're here to > > > help you do that. If the active contributors want to stay in > > > apache/arrow, there is less flexibility about what you release and > > > when; however, the release process is well-defined. > > > > > > On Tue, Nov 7, 2023 at 8:43 PM Sutou Kouhei <k...@clear-code.com> wrote: > > >> > > >> Hi, > > >> > > >> > 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. > > >> > > >> I can understand this but I suggest that we use the same > > >> version as other packages in apache/arrow. Because: > > >> > > >> * Using isolated version increases release complexity. > > >> * Using isolated version may introduce another > > >> "misleading"/"confusion": For example, "the MATLAB > > >> interface 1.0.0 uses Apache Arrow C++ 20.0.0" may be > > >> misleading/confused: > > >> * The MATLAB interface 1.0.0 doesn't use Apache Arrow C++ > > >> 1.0.0. > > >> * It may be difficult to find the corresponding > > >> Apache Arrow C++ version from the MATLAB interface > > >> version. > > >> > > >> Can we just mention "This is not stable yet!!!" in the > > >> documentation instead of using isolated version? > > >> > > >> We may want to use the status page for it: > > >> https://arrow.apache.org/docs/status.html<https://arrow.apache.org/docs/status.html><https://arrow.apache.org/docs/status.html<https://arrow.apache.org/docs/status.html>><https://arrow.apache.org/docs/status.html<https://arrow.apache.org/docs/status.html><https://arrow.apache.org/docs/status.html<https://arrow.apache.org/docs/status.html>>> > > >> > > >> > 1. Manually build the MATLAB interface on Windows, macOS, and Linux > > >> > > >> It's better that we use CI for this like other binary > > >> packages such as .deb/.rpm/.wheel/.jar/... > > >> > > >> If we release the MATLAB interface separately, which Apache > > >> Arrow C++ version is used? If we release the MATALB > > >> interface right now, is Apache Arrow C++ 14.0.0 (the latest > > >> release) used or is Apache Arrow C++ main (not released yet) > > >> used? The MATLAB interface on main will depend on Apache > > >> Arrow C++ main, we may not be able to use the latest release > > >> for the MATLAB interface on main. > > >> > > >> > 2. Combine all of the cross platform build artifacts into > > >> > a single MLTBX file [1] for distribution > > >> > > >> Does the MLTBX file include Apache Arrow C++ binaries too > > >> like .wheel/.jar? > > >> > > >> > 3. Host the MLTBX somewhere that is easliy accessible for download > > >> > > >> MATLAB doesn't provide the official package repository such > > >> as PyPI for Python and > > >> https://rubygems.org/<https://rubygems.org/><https://rubygems.org/<https://rubygems.org/>><https://rubygems.org<https://rubygems.org><https://rubygems.org<https://rubygems.org>>> > > >> for Ruby, right? > > >> > > >> > 1. Is there a recommended location where we can host the MLTBX file? > > >> > e.g. GitHub Releases [2], JFrog [3], etc.? > > >> > > >> If the official package repository for MATLAB doesn't exist, > > >> JFrog is better because the MLTBX file will be large (Apache > > >> Arrow C++ binaries are large). > > >> > > >> > 2. Is there a recommended location for hosting release notes? > > >> > > >> How about creating > > >> https://arrow.apache.org/docs/matlab/<https://arrow.apache.org/docs/matlab/><https://arrow.apache.org/docs/matlab/<https://arrow.apache.org/docs/matlab/>><https://arrow.apache.org/docs/matlab<https://arrow.apache.org/docs/matlab><https://arrow.apache.org/docs/matlab<https://arrow.apache.org/docs/matlab>>> > > >> ? > > >> We can use Sphinx like the Python docs > > >> https://arrow.apache.org/docs/python/<https://arrow.apache.org/docs/python/><https://arrow.apache.org/docs/python/<https://arrow.apache.org/docs/python/>><https://arrow.apache.org/docs/python<https://arrow.apache.org/docs/python><https://arrow.apache.org/docs/python<https://arrow.apache.org/docs/python>>> > > >> or another > > >> documentation tools like the R docs > > >> https://arrow.apache.org/docs/r/<https://arrow.apache.org/docs/r/><https://arrow.apache.org/docs/r/<https://arrow.apache.org/docs/r/>><https://arrow.apache.org/docs/r<https://arrow.apache.org/docs/r><https://arrow.apache.org/docs/r<https://arrow.apache.org/docs/r>>> > > >> . > > >> If we use Sphinx, we can create > > >> https://github.com/apache/arrow/tree/main/docs/source/matlab/<https://github.com/apache/arrow/tree/main/docs/source/matlab/><https://github.com/apache/arrow/tree/main/docs/source/matlab/<https://github.com/apache/arrow/tree/main/docs/source/matlab/>><https://github.com/apache/arrow/tree/main/docs/source/matlab<https://github.com/apache/arrow/tree/main/docs/source/matlab><https://github.com/apache/arrow/tree/main/docs/source/matlab<https://github.com/apache/arrow/tree/main/docs/source/matlab>>> > > >> . > > >> > > >> > 3. Is there a recommended cadence for incremental point releases? > > >> > > >> I suggest avoiding separated release as above. > > >> > > >> > 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? > > >> > > >> We don't need additional task for 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 don't have any precedent for using independent release > > >> versions for language bindings. All language bindings used > > >> the same version. > > >> > > >> Apache Arrow JavaScript isn't a language bindings but it > > >> used separated release and isolated versions before > > >> 0.4.1. It joined apache/arrow release after 0.4.1. (The next > > >> version of Apache Arrow JavaScript 0.4.1 is 13.0.0.) > > >> > > >> > 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. > > >> > > >> If we want to use separated release for the MATLAB > > >> interface, we should follow the same release process as > > >> apache/arrow and other apache/arrow-* because it's the > > >> standard ASF release process. > > >> > > >> > > >> Thanks, > > >> -- > > >> kou > > >> > > >> In > > >> <mn2pr05mb649619998eae9579cceba692ae...@mn2pr05mb6496.namprd05.prod.outlook.com> > > >> "[DISCUSS][MATLAB] Proposal for incremental point releases of the MATLAB > > >> interface" on Tue, 7 Nov 2023 20:31:31 +0000, > > >> Kevin Gurney <kgur...@mathworks.com.INVALID> wrote: > > >> > > >> > 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<https://github.com/apache/arrow/releases><https://github.com/apache/arrow/releases<https://github.com/apache/arrow/releases>><https://github.com/apache/arrow/releases<https://github.com/apache/arrow/releases><https://github.com/apache/arrow/releases<https://github.com/apache/arrow/releases>>> > > >> > [3] > > >> > https://apache.jfrog.io/ui/native/arrow/<https://apache.jfrog.io/ui/native/arrow><https://apache.jfrog.io/ui/native/arrow<https://apache.jfrog.io/ui/native/arrow>><https://apache.jfrog.io/ui/native/arrow<https://apache.jfrog.io/ui/native/arrow><https://apache.jfrog.io/ui/native/arrow<https://apache.jfrog.io/ui/native/arrow>>> > > >> > [4] > > >> > https://www.apache.org/foundation/voting.html<https://www.apache.org/foundation/voting.html><https://www.apache.org/foundation/voting.html<https://www.apache.org/foundation/voting.html>><https://www.apache.org/foundation/voting.html<https://www.apache.org/foundation/voting.html><https://www.apache.org/foundation/voting.html<https://www.apache.org/foundation/voting.html>>> > > >> > [5] > > >> > https://www.apache.org/legal/release-policy.html#release-approval<https://www.apache.org/legal/release-policy.html#release-approval><https://www.apache.org/legal/release-policy.html#release-approval<https://www.apache.org/legal/release-policy.html#release-approval>><https://www.apache.org/legal/release-policy.html#release-approval<https://www.apache.org/legal/release-policy.html#release-approval><https://www.apache.org/legal/release-policy.html#release-approval<https://www.apache.org/legal/release-policy.html#release-approval>>> > > >> > > > >> > Best Regards, > > >> > > > >> > Kevin Gurney