In order to evaluate your work locally, you need the GEval tool. First, install Haskell Stack:
curl -sSL https://get.haskellstack.org/ | shand then install GEval itself:
git clone git://gonito.net/geval cd geval stack setup stack install ~/.local/bin/geval --helpoption B — just download the GEval binary (simpler if you have a standard 64-bit Linux)
wget https://gonito.net/get/bin/geval chmod u+x geval ./geval --help(GEval will make your life easier, but is not obligatory, so if you have any trouble with installing/running GEval, you can skip this step, for the time being.)
Get your repo $case (appRepoScheme settings) $of SelfHosted $if not isIDSet || not isSSHUploaded
You need to $if not isIDSet \ set up your ID $if not isSSHUploaded \ and $if not isSSHUploaded \ upload your SSH public key \ (see your account) if you want to have a repo hosted on Gonito.net, then:
git clone #{appRepoHost settings}#{shownId}/#{challengeName challenge}(Warning about empty repository is expected, don't worry about it.)
cd #{challengeName challenge} git pull #{appRepoHost settings}#{challengeName challenge}(Alternatively, you can use any other Git repo, e.g. GitLab, make sure Gonito.net has access to your repo.) $of Branches
Clone the repo:
git clone #{repoUrl repo} $maybe gitAnnexRemote <- (repoGitAnnexRemote repo)git annex init git annex initremote storage #{gitAnnexRemote} git annex get --from storageSwitch to some branch, let's say my-brilliant-solution:
git checkout -b my-brilliant-solutionWork on your solution
You need to generate your solution for the test set as test-A/out.tsv. You may also generate the solution for the dev set (dev-0/out.tsv).
You can evaluate results for the dev set locally:
cd #{challengeName challenge} geval --test-name dev-0Push your solution to the git repo
Commit and push out.tsv files to your repo. It is also recommended to push your source codes along with out.tsv files.
cd #{challengeName challenge} git add foo.py build.sh # add your source codes $if isJust (repoGitAnnexRemote repo)# if your output files are large or if they should not pushed to the regular repo (e.g. contain sensitive information): git annex add dev-0/out.tsv test-A/out.tsv git annex copy --to storage # otherwise (e.g. they are just class labels), add the output files in a regular manner: git add dev-0/out.tsv test-A/out.tsv $elsegit add dev-0/out.tsv test-A/out.tsv # add your output filesgit commit -m 'my brilliant solution' $case (appRepoScheme settings) $of SelfHostedgit push origin master $of Branchesgit push origin my-brilliant-solution:my-brilliant-solutionRepos hosted on Gonito.net
If you use a repo hosted here, a submission and evaluation is triggered automatically. You'll see the evaluation results in your console while pushing.
External repos
If you use an external repo (e.g. at your own of Gitolite or at GitHub), you can configure a webhook. $maybe token <- mToken
Your webook is:
#{appRoot settings}/trigger-remotely?token=#{token}&branch=master&challenge=#{challengeName challenge}&url=URL_TO_YOUR_REPO(must be POSTed)
Manual submission
In case other methods fail, you can submit your solution manually — go to the submit form.