========================= Installing Nightly Builds ========================= .. contents:: Table of Contents Some components of KMS are built nightly, with the code developed during that same day. Other components are built immediately when code is merged into the source repositories. These builds end up being uploaded to *Development* repositories so they can be installed by anyone. Use these if you want to develop *Kurento itself*, or if you want to try the latest changes before they are officially released. .. warning:: Nightly builds always represent the current state on the software development; 99% of the time this is stable code, very close to what will end up being released. However, it's also possible (although unlikely) that these builds might include undocumented changes, regressions, bugs or deprecations. It's safer to be conservative and avoid using nightly builds in a production environment, unless you have a strong reason to do it. .. note:: If you are looking to build KMS from the source code, then you should check the section aimed at development of *KMS itself*: :ref:`dev-sources`. Kurento Media Server ==================== Docker image ------------ While official Kurento releases are published as Docker images and tagged with a release number, the latest development progress is tagged with `dev`: `kurento/kurento-media-server `__ (notice the ``dev-*`` tags). Other than that, these images behave exactly like the release ones. For usage instructions check out this section: :ref:`installation-docker`. .. _installation-dev-local: Local Installation ------------------ The steps to install a nightly version of Kurento Media Server are pretty much the same as those explained in :ref:`installation-local` -- with the only change of using *dev* instead of a version number, in the file ``/etc/apt/sources.list.d/kurento.list``. Open a terminal and run these commands: 1. Make sure that GnuPG is installed. .. code-block:: shell sudo apt-get update ; sudo apt-get install --no-install-recommends \ gnupg 2. Add the Kurento repository to your system configuration. Run these commands: .. code-block:: shell # Get DISTRIB_* env vars. source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release # Add Kurento repository key for apt-get. sudo gpg -k sudo gpg --no-default-keyring \ --keyring /etc/apt/keyrings/kurento.gpg \ --keyserver hkp://keyserver.ubuntu.com:80 \ --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83 # Add Kurento repository line for apt-get. sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <`__. This repo can be configured once per-User (by editing Maven's global ``settings.xml``), or it can be added per-Project, to every ``pom.xml``. We recommend using the first method. For more information about adding a snapshots repository to Maven, check the official documentation: `Guide to Testing Development Versions of Plugins `__. Per-User config --------------- Add the snapshots repository to your Maven settings file: ``$HOME/.m2/settings.xml``. If this file doesn't exist yet, you can copy it from ``/etc/maven/settings.xml``, which offers a nice default template to get you started. Edit the settings file to include this: .. code-block:: xml ... snapshot kurento-github-download Kurento GitHub Maven packages (public access) https://public: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@maven.pkg.github.com/kurento/* false true kurento-github-download Kurento GitHub Maven packages (public access) https://public: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@maven.pkg.github.com/kurento/* false true ... .. NOTE FOR EDITORS: The does basic auth via GitHub Access Token with the `read:packages` scope. Generated with `docker run ghcr.io/jcansdale/gpr encode `. This is provided to work around the GitHub limitation of not allowing anonymous downloads from their Maven package registry. More details here: https://github.community/t/download-from-github-package-registry-without-authentication/14407/111 Then use the ``-Psnapshot`` argument in your Maven commands, to enable the new profile. For example: .. code-block:: shell mvn -Psnapshot clean package .. code-block:: shell mvn dependency:get -Psnapshot -Dartifact='org.kurento:kurento-client:7.0.0-SNAPSHOT' If you don't want to change all your Maven commands, it is possible to mark the profile as active by default. This way, a ``-Psnapshot`` argument will always be implicitly added, so all calls to Maven will already use the profile: .. code-block:: xml ... snapshot ... snapshot ... Per-Project config ------------------ This method consists on explicitly adding access to the snapshots repository, for a specific project. Open the project's ``pom.xml`` and include this: .. code-block:: xml ... kurento-github-download Kurento GitHub Maven packages (public access) https://public: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@maven.pkg.github.com/kurento/* false true kurento-github-download Kurento GitHub Maven packages (public access) https://public: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@maven.pkg.github.com/kurento/* false true ... Afterwards, in the same ``pom.xml``, look for the desired dependency and change its version to a snapshot one. For example: .. code-block:: xml org.kurento kurento-client 7.0.0-SNAPSHOT Kurento JavaScript Client ========================= Change the *dependencies* section in the application's *package.json*, to point directly to the development repository: .. code-block:: js "dependencies": { "kurento-client": "git+https://github.com/Kurento/kurento-client-js.git#master" }