virtual-puppet-project / vpuppr

VTuber application made with Godot 4
Mozilla Public License 2.0
749 stars 62 forks source link

Build instructions confusing, consider adopting Nix #163

Closed pasqui23 closed 2 years ago

pasqui23 commented 2 years ago

From the point of view of a newcomer eager to contribute, the build instructions are confusing.

  1. The section "Building from Source" of the readme is 7 point without counting the custom godot build,when there really should be a build system that build everything including the custom godot.
  2. Some of those instructions are incomplete, for eg. the release page for the Godot fork does not show any export template to be downloaded
  3. The build by default does not seem to include any tracker, the linked page is merely a list of repos and each of those repos has barely any build instructions, let alone setup instructions to allow their use in vpuppr

As solution for this I suggest consolidating the entire build using Nix. This would bring several advantages:

  1. A single nix build . command that can build the entire app
  2. nix develop . will bring a shell with the various utilities used for building vpuppr, including the patched godot
  3. Build cache will bring prebuilt binaries to new contributors, without them needing to build anything they do not change
you-win commented 2 years ago

tl;dr This is a project I put around 10 hours per week into. I have other projects + a regular job. Sometimes things don't get updated right away, sometimes it's user error, sometimes it's developer error.


The section "Building from Source" of the readme is 7 point

There are steps that could be left out (e.g. step 1 asks the user to clone the repository which is something that could be assumed but not everyone will realize that this is necessary)

there really should be a build system that build everything including the custom godot

I am working on setting up build pipelines using GitHub workflows but there are also precompiled binaries linked from the README.

Regarding building everything, I just need time to put together a pipeline for vpuppr.

the release page for the Godot fork does not show any export template to be downloaded

There are release templates on the page. There are editor builds with the suffix _editor and release templates with the suffix _release. These blobs were uploaded 14 days ago (at time of writing).

The build by default does not seem to include any tracker

This is true for the OpenSeeFace tracker and the mouse tracker (not included by default). When cloning this repository, the user will need to recursively clone it as the trackers are tracked as git submodules

let alone setup instructions to allow their use in vpuppr

  1. OpenSeeFace's README was updated yesterday after #162 was raised
  2. The mouse tracker has had compilation instructions in its README since 7 days ago (at time of writing)
  3. iFacialMocap does not require any setup. It does require the corresponding iFacialMocap app to be installed on an iOS device

As solution for this I suggest consolidating the entire build using Nix. This would bring several advantages:

The entire application is built with Windows/Linux compatibility in mind.

I generally test Linux builds on:

  1. Debian 11
  2. Fedora 34
  3. PopOS 22.04

I will not be testing on more specialized distros, as I've already covered the major distros already (deb/rpm). Users of specialized distros (hopefully) know what they are getting into when using a specialized distro.

If the suggestion is to use nix as a build tool on Linux or CI, that can be considered. However, I would prefer to keep the build scripts unified across Windows/Linux/(maybe Mac).

you-win commented 2 years ago

Closing, concerns were answered with no follow up