Skip to content
fxstein edited this page Oct 31, 2022 · 4 revisions

Welcome to the GoProX wiki!

Developer Setup

In order to work on a live copy from a cloned repository or fork, goprox comes with a few tools to simplify the process. Once cloned to the development system, run

sudo ./install_fromsource

It creates a link from the current git version in /usr/local/bin for development and testing purposes

In addition, goprox has a small test suite built into the repository with various image and video files to run its processing against. Simply run

goprox --test

to execute the embedded tests. When finished the process will compare the test outputs against the output of the prior version. When changes in logic lead to the modified image or video files, it is expected for these tests to produce different output files, and as such the test will fail. Only commit new versions of the output files when careful validation has confirmed the changes are valid.

Once the development link needs to be removed - eg for testing the homebrew package - simply run

sudo ./unstall_fromsource

Packaging and releasing a new version

Once ready for release, bump the version number embedded in goprox

__version__='00.11.00'

Once committed and pushed (TODO: git flow model setup to come...) draft a new release via the GitHub Release workflow. Create a new tag following the version numbering model v00.11.00, describe the main modifications and changes for the release (see prior releases) and add the full changelog with the following link (update version numbers accordingly)

**Full Changelog**: https://github.com/fxstein/GoProX/compare/v00.10.00...v00.11.00

Create and publish the release.

As of v00.15.00+ there is now a github action in places that automatically calculated the sha256 for every published release. goprox release action

Alternatively you can calculate the sha256 manually like this

curl -sL "https://github.com/fxstein/GoProX/archive/refs/tags/v00.11.00.tar.gz" | shasum -a 256 | cut -d " " -f 1

it will create an output like

e5b3332f3324b1c2ea5b164d6c0b3959115229656b41110928df0aa4b6db22c8

Push to homebrew

In order to make that release available via homebrew, modify the home brew tap at [homebrew-fxstein](https://github.com/fxstein/homebrew-fxstein)/Formula/goprox.rb

Modify the URL and sha256 (with the one we calculated above)

  url "https://github.com/fxstein/GoProX/archive/refs/tags/v00.11.00.tar.gz"
  sha256 "e5b3332f3324b1c2ea5b164d6c0b3959115229656b41110928df0aa4b6db22c8"

Once committed and pushed upgrade or reinstall goprox via homebrew.

Design Principles

Here is a list of best practices to consider:

Clone this wiki locally