Trying to setup the metadata file for a React Native project...how do we install the npm dependencies?

TL;DR: we’ve developed a FOSS React Native podcast app that is currently on the App Store and Play Store, and we want to ship to F-Droid, but we’re stuck writing the metadata file. We’re specifically confused about how to install our npm dependencies through the metadata file. If anyone can provide any assistance at all we would be very grateful, we’ll pay for assistance, and we will document everything we learn about creating a React Native metadata file in the process and share it with the community.


Longer version:

Hi F-Droid community, we are working on a FOSS (AGPLv3) podcast app called Podverse that is now available on the App Store and Play Store, and we would like to add it to F-Droid.

We have made it as far as creating an unadulterated F-Droid repo for the app, verified all dependencies are FOSS, and created an Azure pipeline for building the application with the F-Droid server…but we are stuck on creating the metadata file. Specifically we do not understand how to handle installing our npm dependencies within the build.

A contributor (@Licaon_Kter) here on the F-Droid forum pointed us to existing metadata files of React Native projects in the data repo, and while this looks like the information we need, we don’t understand what some of these build steps are doing, and we are unable to proceed.

Would anyone be willing to assist us with creating the metadata file for this project? We would be happy to pay whoever can help get us over this hurdle of creating an initial metadata file. We are also happy to share what we learn in documentation so other React Native developers have an easier time setting up their metadata file. Any guidance would be appreciated. Thank you!


Existing resources:

Unadulterated podverse-fdroid repo

azure-pipelines.yml

metadata file

1 Like

I know nothing of npm or reach but I imagine that the react build system handles installing the dependencies based on something like the package.json.

Simple trick: get a fresh Debian Stretch VM, what do you need to install and what steps do you need to do in order to build? That’s the recipe…

Still rings true to my ears, yes we can polish it afterwards with f-droid specific bits