= Spreadsheets2IATI engine
ifdef::env-github[] :tip-caption: :bulb: :note-caption: :information_source: :important-caption: :heavy_exclamation_mark: :caution-caption: :fire: :warning-caption: :warning: endif::[] ifndef::env-github[] :icons: font endif::[]
Tool to transform a set of input files (spreadsheets, IATI) into a combined IATI file.
See https://developer.data4development.nl/iati-workbench/[the developer documentation website] for further information on how the conversion tool works.
== Getting started
The scripts are tested on Ubuntu.
A known issue is that the iati-workbench script uses GNU's readlink -f
feature.
For Mac: the -f
option apparently has been added in macOS 12.3.
coreutils
,
and change the script to use greadlink
.
https://stackoverflow.com/questions/1055671/how-can-i-get-the-behavior-of-gnus-readlink-f-on-a-mac[See this StackOverflow question.]=== Set up a development environment
. Clone the repository, make sure to include the submodules: + $ git submodule update --init --recursive
. Optional: put the aida-s2i
script in your path, for instance as a symlink:
+
$ ln -s ${PWD}/aida-s2i ~/bin/aida-s2i
. Optional: create a local version of the documentation:
+
$ npm i
+
$ npm run docs:local
+
Open the file build/site/index.html
in a browser.
=== Set up a workspace and run a demo conversion
. Create a workspace directory outside the source repository, for instance: + $ mkdir ~/workspace && cd ~/workspace
. Build a local container image from within the workspace directory: + $ aida-s2i -d build
. Create the structure of workspace directories, and add the demo spreadsheet templates. + $ aida-s2i add-templates
. Run your first conversion + $ aida-s2i spreadsheet-iati
=== Acknowledgements
First inspiration came from https://github.com/KitWallace/AIDVIEW-DB[Kit Wallace's Aidview DB (working with eXist)]
aida-s2i
currently is a symlink to iati-workbench
.
This was done to facilitate synchronisation with an earlier version of the project.
iati-workbench
as aida-s2i
and verify.TODO: Continuing on testing, would it be helpful for the testing setup to include some kind of CI/CD steps? Like having the tests run whenever you push and perhaps integrating some test coverage interface? @stefanos perhaps you could elaborate?