Summarize all Executor patterns for Hubble
successfolder summarizes (all) successful cases;errorfolder summarizes (all) failure cases.
-
On the presences of the files:
- 💠 Must have, Hubble requires it
- 🔸 Optional, Hubble can use it
- 🔹 Free to have, e.g. user files
-
On the name of the files:
- ⭕ Must follow the file name Hubble defined
- 🟢 Arbitrary file name
-
On the number of files:
- 1️⃣ Only one
- 🔢 Can be multiple
- foobar.git/ 🔸🟢1️⃣
|- hubble.yml 🔸⭕1️⃣
|- foo/ 💠🟢️🔢
|
|- bar.py 💠🟢1️⃣
|- helper(s).py 🔹🟢🔢
|- Dockerfile 🔸⭕1️⃣
|- README.md 🔸⭕1️⃣
|- requirements.txt 🔸⭕1️⃣
|- config.yml 💠⭕1️⃣
|- manifest.yml 🔸⭕1️⃣
|
|- foo2/...
case9 showcases the "maximum" form of the "minimum unit" package.
| ⭕ Fixed file name | Purpose |
|---|---|
Dockerfile |
the Dockerfile that Hubble will build on |
README.md |
the usage of the Executor |
requirements.txt |
pip install -r required packages |
config.yml |
the Executor YAML config file |
manifest.yml |
an annotation contains meta information of the Executor to get better appealing on Jina Hub |
hubble.yml |
the build config file for Hubble |
manifest.yml is optional.
manifest.yml annotates your image so that it can be managed by Hubble. To get better appealing on Jina Hub, you should
carefully set manifest.yml to the correct values.
| Key | Description | Default |
|---|---|---|
manifest_version |
The version of the manifest protocol | 1 |
name |
Human-readable title of the Executor | None |
description |
Human-readable description of the Executor | None |
url |
URL to find more information on the Executor, normally it should be the GitHub repo URL | None |
keywords |
A list of strings help user to filter and locate your package | None |
TBA by @mapleeit
Hubble v1 support planning
- Built and run 💜
- Built but can't run 🚧
| Hubble support | Folder | Executors in single Python file | config.yml |
Internal module dependencies | External package dependencies | requirements.txt with jina |
requirements.txt |
pyproject.toml |
Dockerfile |
manifest.yml |
README.md |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 💜 | case1 |
✅ | |||||||||
| 💜 | case2 |
✅ | ✅ | ||||||||
| 💜 | case3 |
✅ | ✅ | ✅ | |||||||
| 🚧 | case4 |
✅ | ✅ | ✅ | ✅ | ||||||
| 💜 | case5 |
✅ | ✅ | ✅ | ✅ | ✅ | |||||
| 💜 | case6 |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||
| 💜 | case6-2 |
✅ | ✅ | ✅ | ✅ | ✅ | x | ✅ | |||
| 💜 | case6-3 poetry |
✅ | ✅ | ✅ | ✅ | ✅ | x | ✅ | |||
| 💜 | case7 |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | x | ✅ | ||
| 💜 | case8 |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | x | ✅ | ✅ | |
| 💜 | case9 |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | x | ✅ | ✅ | ✅ |
case9 is the complete form.
Package normalizer completes case1-8 to case9.