Release Cycle¶
PyPi Versioning¶
We follow the semantic versioning, numbered with x.y.z
. By default, pip install jina
always install the latest release. To install a particular version from PyPi, please use:
pip install jina==x.y.z
Docker Image Versioning¶
The docker image name starts with jinaai/jina
followed by a tag composed as four parts:
jinaai/jina:{version}{python_version}{extra}
{version}
: The version of Jina. Possible values:latest
: the last release;master
: the master branch ofjina-ai/jina
repository;x.y.z
: the release of a particular version;x.y
: the alias to the lastx.y.z
patch release;
{python_version}
: The Python version of the image. Possible values:-py37
,-py38
for Python 3.7 and Python 3.8 respectively, where{extra}
: the extra dependency installed along with Jina. Possible values:pip install jina
;-devel
: Jina is installed inside the image viapip install jina[devel]
;-daemon
: Jina is installed inside the image viapip install jina[dameon]
along withfluentd
; and the entrypoint is set tojinad
Examples:
0.9.6
: the0.9.6
release with Python 3.7 and the entrypoint of default Jina.latest-py38-daemon
: the latest release with Python 3.8 base and the entrypoint of Jina daemon.
Do I need -devel
?¶
Use -devel
image, if you want to use:
REST interface
Jina daemon (use
-daemon
)Dashboard
Log-streaming
Image Alias & Update¶
On every master merge, the following images got updated:
Timing | Affected tags |
---|---|
On Master Merge | jinaai/jina:master{python_version}{extra} |
On x.y.z release |
jinaai/jina:latest{python_version}{extra} , jinaai/jina:x.y.z{python_version}{extra} , jinaai/jina:x.y{python_version}{extra} |
, where
{python_version} = ["-py37", "-py38"]
extra = ["", "-devel", "-daemon"]
Master Update¶
Every successful merge into the master triggers a development release. It will:
update the Docker image with tag
devel
;update jina-ai/docs tag
devel
Note, commits started with chore
are exceptions and will not trigger the events above. Right now these commits are:
chore(docs): update TOC
chore(version): bumping master version
Sunday Auto Release¶
On every Sunday 23pm, a patch release is scheduled:
tag the master as
vx.y.z
and push to the repo;create a new tag
vx.y.z
in jina-ai/docs;publish
x.y.z
docker image, with taglatest
,x.y.z
;upload
x.y.z
package on PyPI;bump the master to
x.y.(z+1)
and commit achore(version)
push.
The current master version should always be one version ahead of git tag -l | sort -V | tail -n1
.