Best way to start contributing

I’d like to start contributing to Volumio. Firstly, I’d like to add some code to the web UI that handles sshfs mounts. I have the code written and working on my Pi. My questions are as follows:

  • Restarting nginx doesn’t seem to reload all of the PHP code, so I have to reboot the Pi every time I want to test new changes. This is rather inconvenient and I think I’m just missing something obvious; how do I clear the cache and/or reload the web server so that new PHP code gets executed after I make changes?
  • What is the best way to set up a “bleeding edge” copy of the web UI? Should I just fork the github repo, check it out into /var/www and go to down? Issue pull requests as appropriate? My fear is this would be too unstable.

Hi alhirzel, welcome there!

  • How do you restart the webserver? Using nginx, or the php5-fpm service? I don’t know exactly how nginx works, but I never had to reboot the pi to update the PHP ; just sudo /etc/init.d/php5-fpm restart is fine

  • I would say the best way to contribute is to fork on github and create a pull request at the end, yes. Any pull request can be unstable, that’s why it should be correctly reviewed by every contributor before merging, and if some doubts subsist it can still be merged on a separate branch other than master, in the main repository.

You can do as you want to work on your fork. Personally, I removed /var/www, cloned github in /home/pi/webui and created a symlink in /var/www. Then for easier development, created a NFS share on /home/pi/webui so that I can program easily with my favorite tools from desktop.

By the way, you may be interested in reading the quick developer guide written there : volumio.org/wiki/index.php?title … evelopment

Thanks for your great reply! You’ve answered my questions. I’ve got my fork started at https://github.com/alhirzel/Volumio-WebUI.

If I need to make changes to the rootfs to support my WebUI changes, is it recommended that I do the same fork -> pull request of the rootfs repo? (This isn’t covered on that wiki page.) Additionally, what’s the best development workflow for rootfs? Should I just install the image to an SD card (for the boot sector), remove all files, git clone onto the card and expect it to boot the first time? (From there I can do my modifications and assemble pull requests.)