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}{dependency}{python_version}{entrypoint}
{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;
{dependency}
: the extra dependency installed along with Jina. Possible values:pip install jina
;-devel
: Jina is installed inside the image viapip install jina[devel]
;
{python-version}
: The Python version of the image. Possible values:-py37
,-py38
for Python 3.7 and Python 3.8 respectively, where{entrypoint}
: The entrypoint of the image. Possible values:-daemon
, where
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:
jinaai/jina:master{dependency}{python_version}{entrypoint}
, where:
dependency:
["", "-devel"]
python_version:
["-py37", "-py38"]
entrypoint:
["", "-daemon"]
On every x.y.z
release, the following images got update:
latest{dependency}{python_version}{entrypoint}
x.y.z{dependency}{python_version}{entrypoint}
x.y{dependency}{python_version}{entrypoint},
, latest
& x.y.z
& x.y
are aliases, and where
dependency:
["", "-devel"]
python_version:
["-py37", "-py38"]
entrypoint:
["", "-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
.