-
Notifications
You must be signed in to change notification settings - Fork 5
Reporting bugs
When reporting problems with the ami
or amidict
command systems please try to find the command where the problem occurs. In a sequence:
amidict command1
ami command2
ami command3
remember that ami
currently saves all output on disk between commands. , e.g.
amidict <command1> // creates output1 files
ami <command2> // (usually) reads output1 files and creates output2
ami <command3> // (usually) reads output2 and creates output3
If you think the problem is "ami search
doesn't work after amidict create
on Wikidata", then isolate the problem as follows:
amidict <command1>
inspect the dictionary created. Can you validate it (use amidict display --validate
).
- step1.ok If it's a valid dictionary then the problem is not with
amidict
. - step1.fail If it's invalid, then the problem is with
amidict
Take copies of all output files and proceed to step2.
File an Issue that reports:
- what files (if any) you started with (INPUT). Make sure they are committed to Github. Keep the number and size AS SMALL AS POSSIBLE.
- what command you used. It should not refer to any local files (except for INPUT).
- what happened. Record console output, and files created. If necessary commit the files to Github.
- what you think is wrong.
- (optional) what you think the cause might be.
Run step2 by itself with files from step1.
There is no apparent problem. This sometimes happens because files got muddled somewhere.
Try to reduce the size of the input files as much as possible (maybe to 1, 20, 10 CTrees) and maybe 10 entries in a dictionary. This will find errors that are general - i.e. fail on every CTree or Entry.
I have created small test sets in https://github.com/petermr/ami3/tree/master/src/test/resources/org/contentmine/ami (zika1
, zika2
, zika10
, oil5
, battery10
, etc.). These are used a lot in tests so they can be regarded as "valid". If your search fails when using one of these then it's probably the search commands, not the data
https://stackoverflow.com/help/minimal-reproducible-example shows how to create "reprex" , a minimal reproducible example of a failure. It's aimed at code, but the principles apply generally.