Skip to content
This repository has been archived by the owner on May 16, 2022. It is now read-only.

Development

Igor Shishkin edited this page Jan 6, 2020 · 8 revisions

Contribution, Build & Development process

eos-1v-tagger is written in Golang and uses Go Modules for dependency management so it requires Golang v 1.11+ to build within genuine workflow.

Golang could be installed from package management systems vendored with target OS or via right from Golang website.

Contribution

How to contribute

Contributions are available in the following ways:

Please note, all issues, commit messages, documentation is provided and handled in English. Translation to eos-1v-tagger and/or documentation is good option but requires time and maintanance so it looks rather the task for dedicated maintaners but one-time pull-request.

UI-related features

Currently eos-1v-tagger is provided as CLI tool which could cause issues for some non-expirienced users so it looks like the good way to improve use expirience to provide some kind of graphic user interface (or WebUI or even Lightroom plug-in based on eos-1v-tagger). It's open topic for now and currently there're no specific plans for that.

Build

To get a build from source code Golang native workflow could be used:

go build -o ./cmd/tagger/...

Tests

eos-1v-tagger uses Golang native tests with testify framework. All tests should cover package functionallity. Test coverage is run manually at the moment to control test coverage status.

Currently GitHub Workflows is in use for master branch (to indicate master status) and pull requests status.

All releases (including pre-releases) are tested via tests and manually on real data however some issues could present in pre-releases.

Cross-compilation

Golang uses environment variables GOOS and GOARCH to specify the target OS and architecture while cross-compilation is in use. The full list of their values and notes about crosscompilation is present in Golang documentation.

Example:

GOOS=windows GOARCH=386 go build -o ./cmd/tagger/...

Release procedure

Here're two kind of releases are provided for eos-1v-tagger: pre-releases and stable releases.

Pre-releases contains new features, bugfixes & under-the-hood changes, they're mostly tested but released in fresh-from-the-oven manner so it's no guarantee to work in all the cases, environments, data, exiftool versions, etc.

Stable releases, which there're none of them at the moment, are time-proven and used by some amount of time. The release could be created from master if there're no changes were made to meaning amount of functionality. The first stable release is currently pending and will have version 0.1. No estimates are provided at the moment.

Clone this wiki locally