Closed tadejsv closed 3 years ago
Reopened because only CI part is finished
FYI, I've added a checklist for this refactoring. Check out the issue description.
Closing this and we will have a new one for the Indexers and searchers when the one indexer is ready
We need to make sure that all the executors in this repo are rigorously tested, and that the code meets high standards of quality. Here are some things that need to be done:
Here is a checklist based on the discussion below
Integration tests
Unit tests
docs=None
worksdocs=DocumentArray([])
tmp_path
init()
and all the endpoints) are tested.Dockerfile
FROM jinaai/jina:2-py37-perf
config.yml
config.yml
.README
Function APIs
Model downloading
init()
unless there is a good readon. There is a script for downloding them and there are downloading instructions in the README.[Discussions in Details]
Testing
None
is passed for documentsDocumentArray
is passed for documentsconfig.yaml
works (already added)tmp_path
fixture (tmpdir
should be replaced, it is based on the deprecatedpy
library)Unit tests
On top of the general things mentioned above, unit tests should contain:
caplog
fixture)Some standards
jinahub
to something elseconfig.yml
should be the same everywhere. Right now, some set emptywith
and defaultname
field - do we need this or not? In any case, should be the same everywhereisort
withblack
profile for that)Downloading (large) models
Unless the framework used by the executor uses some convenient option to download the model (like huggingface), the executor should not download any kind of default model. Not during init, not in the dockerfile.
Instead, if the executor is started and the model file does not exist, a very clear error message should be given to the user, explaining to him that he needs to download the model beforehand, and pointing him to the readme (link!) for further instructions.
The readme should contain explicit, clear and copy-pastable instructions on how to download the model (file), plus instructions on what to do if using executor locally (
jinahub://
), or in a container (jinahub+docker://
).To do
On hold: