This is an automated email from the ASF dual-hosted git repository.

voidmatcha pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/master by this push:
     new 0d6e7b7a10 [ZEPPELIN-6460] Deprecate the Vagrant developer environment
0d6e7b7a10 is described below

commit 0d6e7b7a10d18d5ce7de053edeb093e040a2698a
Author: 김예나 <[email protected]>
AuthorDate: Sat Sep 26 15:59:48 2026 +0900

    [ZEPPELIN-6460] Deprecate the Vagrant developer environment
    
    ### What is this PR for?
    
    The Vagrant developer environment under `scripts/vagrant/zeppelin-dev` 
points contributors at a clone URL, build profiles and toolchain versions that 
are all obsolete. ZEPPELIN-6460 asks to decide whether the setup is still 
supported, and to update it if so or mark it deprecated if not.
    
    It is not supported. The toolchain it provisions has not been updated since 
2018, and provisioning cannot succeed today:
    
    * The `ubuntu/xenial64` box is Ubuntu 16.04, past end of life.
    * `ansible-roles.yml` installs `python-minimal` and `python-simplejson`, 
and `python-addons` installs `python-pip`, `python-matplotlib`, `python-scipy`, 
`python-numpy`, `python-pandas` — Python 2 packages that no longer exist on 
supported Ubuntu releases. Current `ansible-core` also requires Python 3 on the 
managed node.
    * The `maven` role resolves Maven 3.3.9 through `closer.cgi`. That request 
still succeeds, but the mirror it returns answers 404 — 3.3.9 has been moved 
off the distribution mirrors and is only on `archive.apache.org`. I verified 
this: `dlcdn.apache.org` and `downloads.apache.org` both 404, 
`archive.apache.org` 200.
    * The `common` role installs `libfontconfig` for PhantomJS, which the 
project no longer uses.
    * It installs OpenJDK 8, Maven 3.3.9 and Node.js 4.2.6 against a baseline 
of JDK 11, Maven 3.6.3 and Node.js 22.21.1.
    
    Rewriting the provisioning was the alternative, but it cannot be verified 
from this machine (see *How should this be tested?*), so this PR marks the 
setup deprecated and fixes the pointers instead.
    
    Changes:
    
    * Deprecation notice in `README.md`, `show-instructions.sh` and the 
`Vagrantfile`, with the reasons above. This matters beyond the source tree: 
`zeppelin-distribution/src/assemble/distribution.xml` includes `../scripts` 
with no excludes, so release users receive these files too.
    * `git://git.apache.org/zeppelin.git` → 
`https://github.com/apache/zeppelin.git`.
    * `mvn clean package -Pspark-1.6 -Phadoop-2.4 -DskipTests` → `./mvnw clean 
package -DskipTests`, with a link to the current build profiles.
    * The stale version list is kept but reframed as what the roles install, 
next to a new table of the project baseline — each row naming the pom property 
that defines it (`java.version`, `maven.version`, 
`node.version`/`npm.version`). It also notes that only the JDK needs installing 
by hand, since `./mvnw` fetches Maven and `frontend-maven-plugin` fetches the 
pinned Node.js and npm per web module.
    * `docs/setup/deployment/virtual_machine.md` is rewritten to match. It had 
drifted further than the README, still documenting Ubuntu 14.04, Node.js 0.12.7 
and OpenJDK 7. `docs/index.md` and the navigation label it deprecated.
    
    Two deliberate removals, both easy to reverse if you would rather keep them:
    
    * The Python 2 PySpark examples (`print "numpy " + ...`, `StringIO`). They 
are syntax errors under Python 3 and depend on the `python-addons` role that no 
longer works.
    * The `ansible --version` should report `1.9.2 or higher` check and the 
Python 2.7 Windows prerequisite.
    
    Everything else that was merely old is kept and rewritten rather than 
dropped, including the `vagrant up`/`vagrant ssh` steps, the prerequisites, the 
z-manager installer (that repository is still up — I checked), the VM 
inventory, the synced-folder note and the private-network tweak.
    
    ### Two follow-up commits for the same defect elsewhere
    
    Looking for other instances of the obsolete clone pointer turned up two 
more places, each in its own `[MINOR]` commit so you can drop either one 
without touching the rest:
    
    * `docs/setup/deployment/yarn_install.md` advertised 
`git://git.apache.org/zeppelin.git` as link text while the href already pointed 
at GitHub.
    * The `git access` sections of `how_to_contribute_code.md` and 
`how_to_contribute_website.md` tell contributors to clone over 
`git://gitbox.apache.org`, which is no longer served — `git clone 
git://gitbox.apache.org/repos/asf/zeppelin.git` fails with a connection 
refused. The surrounding prose in both pages already names the https URL as the 
official location, so the commands now match it. This one also fixes a second 
defect on the same line: `branch-0.11.0` does not exist on gitbox,  [...]
    
    That last one is arguably the most user-visible part of this PR, since it 
is the first command a new contributor runs. Happy to split the two `[MINOR]` 
commits into a separate PR if you would rather keep this one to the Vagrant 
scope.
    
    This PR does not decide when the Vagrant directory should be removed; that 
seems like a question for the mailing list rather than a PR.
    
    ### What type of PR is it?
    
    Documentation
    
    ### Todos
    
    None.
    
    ### What is the Jira issue?
    
    * https://issues.apache.org/jira/browse/ZEPPELIN-6460
    
    ### How should this be tested?
    
    Documentation only, no code paths change.
    
    Done:
    
    * Ran `scripts/vagrant/zeppelin-dev/show-instructions.sh` and checked the 
printed commands, as the issue asks. Confirmed every path it now names exists 
in the tree (`./mvnw`, `bin/zeppelin-daemon.sh`, 
`docs/setup/basics/how_to_build.md`) and that `git ls-remote 
https://github.com/apache/zeppelin.git` resolves.
    * Reproduced the `docs` workflow locally — `bundle exec jekyll build 
--safe` plus html-proofer 5.2.2 with the same flags. Build clean, 318 internal 
links over 93 files, no failures.
    * Verified each claim rather than assuming it: the Maven mirror 404s above; 
`git ls-remote git://gitbox.apache.org/...` gives `errno=Connection refused` 
while the https URL resolves; `git ls-remote --heads` shows `branch-0.11` and 
no `branch-0.11.0`; PhantomJS survives only as a comment in 
`zeppelin-web/karma.conf.js` while the actual karma browser is 
`FirefoxHeadless`; the baseline versions were read from the poms.
    * Confirmed `-Pspark-1.6`, `-Phadoop-2.4`, `git://git.apache.org` and 
`git://gitbox.apache.org` no longer appear anywhere in the repository.
    
    Not done:
    
    * I did not bring the VM up. VirtualBox is not practical on this machine 
(Apple Silicon), and the box, the Ansible roles and the Maven download are each 
independently broken, so `vagrant up` cannot succeed regardless of the host. 
That external blocker is the reason this PR deprecates rather than updates, and 
it is now documented in the files themselves.
    
    ### Screenshots (if appropriate)
    
    N/A
    
    ### Questions:
    
    * Does the license files need to update? No. All touched files keep their 
existing ASF headers; no files were added or removed.
    * Is there breaking changes for older versions? No. Nothing that builds or 
runs Zeppelin changes.
    * Does this needs documentation? This is the documentation change.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    
    Closes #5496 from kimyenac/ZEPPELIN-6460.
    
    Signed-off-by: YONGJAE LEE <[email protected]>
---
 docs/_includes/themes/zeppelin/_navigation.html    |   2 +-
 .../contribution/how_to_contribute_code.md         |   6 +-
 .../contribution/how_to_contribute_website.md      |   2 +-
 docs/index.md                                      |   2 +-
 docs/setup/deployment/virtual_machine.md           | 234 ++++++++++-----------
 docs/setup/deployment/yarn_install.md              |   2 +-
 scripts/vagrant/zeppelin-dev/README.md             | 210 +++++++++---------
 scripts/vagrant/zeppelin-dev/Vagrantfile           |   5 +
 scripts/vagrant/zeppelin-dev/show-instructions.sh  |  23 +-
 9 files changed, 236 insertions(+), 250 deletions(-)

diff --git a/docs/_includes/themes/zeppelin/_navigation.html 
b/docs/_includes/themes/zeppelin/_navigation.html
index 82eb3d6d49..4ed1a8d83a 100644
--- a/docs/_includes/themes/zeppelin/_navigation.html
+++ b/docs/_includes/themes/zeppelin/_navigation.html
@@ -100,7 +100,7 @@
                 <li><a 
href="{{BASE_PATH}}/setup/deployment/spark_cluster_mode.html#spark-on-mesos-mode">Spark
 Cluster Mode: Mesos</a></li>
                 <li><a 
href="{{BASE_PATH}}/setup/deployment/flink_and_spark_cluster.html">Zeppelin 
with Flink, Spark Cluster</a></li>
                 <li><a href="{{BASE_PATH}}/setup/deployment/cdh.html">Zeppelin 
on CDH</a></li>
-                <li><a 
href="{{BASE_PATH}}/setup/deployment/virtual_machine.html">Zeppelin on VM: 
Vagrant</a></li>
+                <li><a 
href="{{BASE_PATH}}/setup/deployment/virtual_machine.html">Zeppelin on VM: 
Vagrant (deprecated)</a></li>
                 <li role="separator" class="divider"></li>
                 <li class="title"><span>Security</span></li>
                 <li><a 
href="{{BASE_PATH}}/setup/security/authentication_nginx.html">HTTP Basic Auth 
using NGINX</a></li>
diff --git a/docs/development/contribution/how_to_contribute_code.md 
b/docs/development/contribution/how_to_contribute_code.md
index 1464c339b3..7adc796622 100644
--- a/docs/development/contribution/how_to_contribute_code.md
+++ b/docs/development/contribution/how_to_contribute_code.md
@@ -51,13 +51,13 @@ First of all, you need Zeppelin source code. The official 
location of Zeppelin i
 Get the source code on your development machine using git.
 
 ```bash
-git clone git://gitbox.apache.org/repos/asf/zeppelin.git zeppelin
+git clone https://gitbox.apache.org/repos/asf/zeppelin.git zeppelin
 ```
 
-You may also want to develop against a specific branch. For example, for 
branch-0.11.0
+You may also want to develop against a specific branch. For example, for 
branch-0.11
 
 ```bash
-git clone -b branch-0.11.0 git://gitbox.apache.org/repos/asf/zeppelin.git 
zeppelin
+git clone -b branch-0.11 https://gitbox.apache.org/repos/asf/zeppelin.git 
zeppelin
 ```
 
 Apache Zeppelin follows [Fork & 
Pull](https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki/Development-workflow-with-Git:-Fork,-Branching,-Commits,-and-Pull-Request)
 as a source control workflow.
diff --git a/docs/development/contribution/how_to_contribute_website.md 
b/docs/development/contribution/how_to_contribute_website.md
index ca6b0e7233..250d8c08e1 100644
--- a/docs/development/contribution/how_to_contribute_website.md
+++ b/docs/development/contribution/how_to_contribute_website.md
@@ -40,7 +40,7 @@ First of all, you need the website source code. The official 
location of mirror
 Get the source code on your development machine using git.
 
 ```bash
-git clone git://gitbox.apache.org/repos/asf/zeppelin.git
+git clone https://gitbox.apache.org/repos/asf/zeppelin.git
 cd docs
 ```
 Apache Zeppelin follows [Fork & 
Pull](https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki/Development-workflow-with-Git:-Fork,-Branching,-Commits,-and-Pull-Request)
 as a source control workflow.
diff --git a/docs/index.md b/docs/index.md
index feca2b3693..b38f77bfad 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -99,7 +99,7 @@ limitations under the License.
   * [Spark Cluster Mode: 
Mesos](./setup/deployment/spark_cluster_mode.html#spark-on-mesos-mode)
   * [Zeppelin with Flink and Spark 
Cluster](./setup/deployment/flink_and_spark_cluster.html)
   * [Zeppelin on CDH](./setup/deployment/cdh.html)
-  * [Zeppelin on VM: Vagrant](./setup/deployment/virtual_machine.html)
+  * [Zeppelin on VM: Vagrant 
(deprecated)](./setup/deployment/virtual_machine.html)
 * Security: available security support in Apache Zeppelin
   * [HTTP Basic Auth using NGINX](./setup/security/authentication_nginx.html)
   * [Shiro Authentication](./setup/security/shiro_authentication.html)
diff --git a/docs/setup/deployment/virtual_machine.md 
b/docs/setup/deployment/virtual_machine.md
index 44afeaeed6..6ddd07c24c 100644
--- a/docs/setup/deployment/virtual_machine.md
+++ b/docs/setup/deployment/virtual_machine.md
@@ -1,7 +1,7 @@
 ---
 layout: page
 title: "Apache Zeppelin on Vagrant Virtual Machine"
-description: "Apache Zeppelin provides a script for running a virtual machine 
for development through Vagrant. The script will create a virtual machine with 
core dependencies pre-installed, required for developing Apache Zeppelin."
+description: "The Vagrant developer environment under 
scripts/vagrant/zeppelin-dev is deprecated and unmaintained. Build Apache 
Zeppelin from source instead."
 group: setup/deployment 
 ---
 <!--
@@ -19,164 +19,156 @@ limitations under the License.
 -->
 {% include JB/setup %}
 
-# Apache Zeppelin on Vagrant Virtual Machine
+# Apache Zeppelin on Vagrant Virtual Machine (deprecated)
 
 <div id="toc"></div>
 
-## Overview
+## Deprecation notice
 
-Apache Zeppelin distribution includes a script directory 
`scripts/vagrant/zeppelin-dev`
+**Deprecated as of 0.13.0.** The Vagrant environment in
+`scripts/vagrant/zeppelin-dev` is no longer maintained and is not expected to
+provision a usable Zeppelin build environment. See
+[ZEPPELIN-6460](https://issues.apache.org/jira/browse/ZEPPELIN-6460).
 
-This script creates a virtual machine that launches a repeatable, known set of 
core dependencies required for developing Zeppelin. It can also be used to run 
an existing Zeppelin build if you don't plan to build from source.
-For PySpark users, this script includes several helpful [Python 
Libraries](#python-extras).
+Apache Zeppelin ships a script directory `scripts/vagrant/zeppelin-dev`, 
holding
+a Vagrant machine definition and the Ansible roles that provision it with the
+dependencies once required for developing Zeppelin.
 
-### Prerequisites
+To build Zeppelin, follow
+[How to Build Zeppelin from source](../basics/how_to_build.html) instead. A 
local
+checkout needs only Git and a JDK; `./mvnw` supplies Maven, and each web module
+downloads its own Node.js and npm.
 
-This script requires three applications, [Ansible](https://www.ansible.com/ 
"Ansible"), [Vagrant](http://www.vagrantup.com "Vagrant") and [Virtual 
Box](https://www.virtualbox.org/ "Virtual Box").  All of these applications are 
freely available as Open Source projects and extremely easy to set up on most 
operating systems.
+## What the VM provisions
 
-## Create a Zeppelin Ready VM
-
-If you are running Windows and don't yet have python installed, [install 
Python 2.7.x](https://www.python.org/downloads/release/python-2710/) first.
+On top of the Ubuntu 16.04 box, the Ansible roles install:
 
-1. Download and Install Vagrant:  [Vagrant 
Downloads](http://www.vagrantup.com/downloads.html)
-2. Install Ansible:  [Ansible Python pip 
install](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#pip-install)
+ - openjdk-8-jdk
+ - Maven 3.3.9
+ - Node.js and npm from the distribution packages
+ - ruby + rake, make and bundler (only required if building the jekyll 
documentation)
+ - git, curl and unzip
+ - libfontconfig, to avoid PhantomJS missing dependency issues
+ - Python addons: pip, matplotlib, scipy, numpy, pandas
 
-    ```bash
-    sudo easy_install pip
-    sudo pip install ansible
-    ansible --version
-    ```
-    After then, please check whether it reports **ansible version 1.9.2 or 
higher**.
+## Why it is deprecated
+
+The toolchain provisioned here has not been updated since 2018, and the
+provisioning now fails for several independent reasons:
+
+* The `ubuntu/xenial64` box is Ubuntu 16.04, which is past end of life.
+* `ansible-roles.yml` installs `python-minimal` and `python-simplejson`, and 
the
+  `python-addons` role installs `python-pip`, `python-matplotlib`,
+  `python-scipy`, `python-numpy` and `python-pandas`. These are Python 2
+  packages that no longer exist on supported Ubuntu releases, and current
+  `ansible-core` requires Python 3 on the managed node.
+* The `maven` role resolves Maven 3.3.9 through `closer.cgi`. That request 
still
+  succeeds, but the mirror it returns answers 404: Maven 3.3.9 has been moved 
off
+  the distribution mirrors and is only on `archive.apache.org`.
+* The `common` role installs `libfontconfig` for PhantomJS, which the project 
no
+  longer uses.
+* The toolchain it provisions is far below the project baseline: OpenJDK 8
+  instead of 11, Maven 3.3.9 instead of 3.6.3, and the distribution `nodejs`
+  package on Xenial, which is Node.js 4.2.6.
+
+## Current project baseline
+
+These are the versions the build actually expects. They are defined in the 
build
+itself, not in the Vagrant scripts.
+
+<table class="table-configuration">
+  <tr>
+    <th>Component</th>
+    <th>Version</th>
+    <th>Source of truth</th>
+  </tr>
+  <tr>
+    <td>OpenJDK or Oracle JDK</td>
+    <td>11</td>
+    <td><code>java.version</code> in the root <code>pom.xml</code></td>
+  </tr>
+  <tr>
+    <td>Maven</td>
+    <td>3.6.3 or higher</td>
+    <td><code>maven.version</code> in the root <code>pom.xml</code></td>
+  </tr>
+  <tr>
+    <td>Node.js / npm</td>
+    <td>22.21.1 / 10.9.4</td>
+    <td><code>node.version</code> / <code>npm.version</code> in 
<code>zeppelin-web-angular/pom.xml</code></td>
+  </tr>
+</table>
+
+Only the JDK has to be installed by hand. `./mvnw` downloads Maven, and
+`frontend-maven-plugin` downloads the pinned Node.js and npm into each web
+module, so neither has to be on `PATH`. Building the classic UI with
+`-Pweb-classic` pulls in `zeppelin-web`, which pins its own pair in
+`zeppelin-web/pom.xml`.
 
-3. Install Virtual Box: [Virtual Box Downloads](https://www.virtualbox.org/ 
"Virtual Box")
-4. Type `vagrant up`  from within the `/scripts/vagrant/zeppelin-dev` directory
+## Create a Zeppelin Ready VM
 
-Thats it ! You can now run `vagrant ssh` and this will place you into the 
guest machines terminal prompt.
+This setup requires [Vagrant](https://developer.hashicorp.com/vagrant/install),
+[VirtualBox](https://www.virtualbox.org/) and
+[Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
+With all three installed, run `vagrant up` from within the
+`scripts/vagrant/zeppelin-dev` directory, then `vagrant ssh` to get a shell on
+the guest machine.
 
-If you don't wish to build Zeppelin from scratch, run the z-manager installer 
script while running in the guest VM:
+If you don't wish to build Zeppelin from scratch, run the z-manager installer
+script while running in the guest VM:
 
 ```bash
 curl -fsSL 
https://raw.githubusercontent.com/NFLabs/z-manager/master/zeppelin-installer.sh 
| bash
 ```
 
+## Building Zeppelin in the VM
 
-## Building Zeppelin
-
-You can now 
+Clone the project over HTTPS, on your host machine or directly in the VM:
 
 ```bash
-git clone git://git.apache.org/zeppelin.git
+git clone https://github.com/apache/zeppelin.git
 ```
 
-into a directory on your host machine, or directly in your virtual machine.
-
-Cloning Zeppelin into the `/scripts/vagrant/zeppelin-dev` directory from the 
host, will allow the directory to be shared between your host and the guest 
machine.
-
-Cloning the project again may seem counter intuitive, since this script likely 
originated from the project repository.  Consider copying just the 
vagrant/zeppelin-dev script from the Zeppelin project as a stand alone 
directory, then once again clone the specific branch you wish to build.
-
-Synced folders enable Vagrant to sync a folder on the host machine to the 
guest machine, allowing you to continue working on your project's files on your 
host machine, but use the resources in the guest machine to compile or run your 
project. _[(1) Synced Folder Description from Vagrant 
Up](https://docs.vagrantup.com/v2/synced-folders/index.html)_
-
-By default, Vagrant will share your project directory (the directory with the 
Vagrantfile) to `/vagrant`.  Which means you should be able to build within the 
guest machine after you
-`cd /vagrant/zeppelin`
-
-
-## What's in this VM?
-
-Running the following commands in the guest machine should display these 
expected versions:
-
-* `node --version` should report *v0.12.7*
-
-The virtual machine consists of:
-
- - Ubuntu Server 14.04 LTS
- - Node.js 0.12.7
- - npm 2.11.3
- - ruby 1.9.3 + rake, make and bundler (only required if building jekyll 
documentation)
- - Maven 3.3.9
- - Git
- - Unzip
- - libfontconfig to avoid phatomJs missing dependency issues
- - openjdk-7-jdk
- - Python addons: pip, matplotlib, scipy, numpy, pandas
-
-## How to build & run Zeppelin
+Cloning the project again may seem counter intuitive, since this script
+originated from the project repository. Consider copying just the
+`vagrant/zeppelin-dev` script from the Zeppelin project as a stand alone
+directory, then once again clone the specific branch you wish to build.
 
-This assumes you've already cloned the project either on the host machine in 
the zeppelin-dev directory (to be shared with the guest machine) or cloned 
directly into a directory while running inside the guest machine.  The 
following build steps will also include Python support via PySpark:
+Cloning Zeppelin into the `scripts/vagrant/zeppelin-dev` directory from the 
host
+will allow the directory to be shared between your host and the guest machine.
+By default, Vagrant shares the directory holding the `Vagrantfile` to 
`/vagrant`
+in the guest, so the checkout is reachable at `/vagrant/zeppelin`.
+_[(1) Synced Folder Description from Vagrant 
Up](https://docs.vagrantup.com/v2/synced-folders/index.html)_
 
 ```bash
-cd /zeppelin
-./mvnw clean package -Pspark-1.6 -Phadoop-2.4 -DskipTests
+cd /vagrant/zeppelin
+./mvnw clean package -DskipTests
 ./bin/zeppelin-daemon.sh start
 ```
 
-On your host machine browse to `http://localhost:8080/`
+On your host machine browse to `http://localhost:8080/`.
 
-If you [turned off port forwarding](#tweaking-the-virtual-machine) in the 
`Vagrantfile` browse to `http://192.168.51.52:8080`
+If you [turned off port forwarding](#tweaking-the-virtual-machine) in the
+`Vagrantfile`, browse to `http://192.168.51.52:8080` instead.
 
+See [Build profiles](../basics/how_to_build.html#build-profiles) for the Spark,
+Flink and Hadoop profiles this project currently supports.
 
 ## Tweaking the Virtual Machine
 
-If you plan to run this virtual machine along side other Vagrant images, you 
may wish to bind the virtual machine to a specific IP address, and not use port 
forwarding from your local host.
+If you plan to run this virtual machine alongside other Vagrant images, you may
+wish to bind the virtual machine to a specific IP address instead of forwarding
+ports from your local host.
 
-Comment out the `forward_port` line, and uncomment the `private_network` line 
in Vagrantfile.  The subnet that works best for your local network will vary so 
adjust `192.168.*.*` accordingly.
+Comment out the `forwarded_port` lines, and uncomment the `private_network` 
line
+in the `Vagrantfile`. The subnet that works best for your local network will
+vary, so adjust `192.168.*.*` accordingly.
 
 ```
 #config.vm.network "forwarded_port", guest: 8080, host: 8080
 config.vm.network "private_network", ip: "192.168.51.52"
 ```
 
-`vagrant halt` followed by `vagrant up` will restart the guest machine bound 
to the IP address of `192.168.51.52`.
-This approach usually is typically required if running other virtual machines 
that discover each other directly by IP address, such as Spark Masters and 
Slaves as well as Cassandra Nodes, Elasticsearch Nodes, and other Spark data 
sources.  You may wish to launch nodes in virtual machines with IP addresses in 
a subnet that works for your local network, such as: 192.168.51.53, 
192.168.51.54, 192.168.51.53, etc..
-
-## Extras
-### Python Extras
-
-With Zeppelin running, **Numpy**, **SciPy**, **Pandas** and **Matplotlib** 
will be available.  Create a pyspark notebook, and try the below code.
-
-```python
-%pyspark
-
-import numpy
-import scipy
-import pandas
-import matplotlib
-
-print "numpy " + numpy.__version__
-print "scipy " + scipy.__version__
-print "pandas " + pandas.__version__
-print "matplotlib " + matplotlib.__version__
-```
-
-To Test plotting using Matplotlib into a rendered `%html` SVG image, try
-
-```python
-%pyspark
-
-import matplotlib
-matplotlib.use('Agg')   # turn off interactive charting so this works for 
server side SVG rendering
-import matplotlib.pyplot as plt
-import numpy as np
-import StringIO
-
-# clear out any previous plots on this note
-plt.clf()
-
-def show(p):
-    img = StringIO.StringIO()
-    p.savefig(img, format='svg')
-    img.seek(0)
-    print "%html <div style='width:600px'>" + img.buf + "</div>"
-
-# Example data
-people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
-y_pos = np.arange(len(people))
-performance = 3 + 10 * np.random.rand(len(people))
-error = np.random.rand(len(people))
-
-plt.barh(y_pos, performance, xerr=error, align='center', alpha=0.4)
-plt.yticks(y_pos, people)
-plt.xlabel('Performance')
-plt.title('How fast do you want to go today?')
-
-show(plt)
-```
+`vagrant halt` followed by `vagrant up` will restart the guest machine bound to
+`192.168.51.52`. This is typically required when running other virtual machines
+that discover each other directly by IP address.
diff --git a/docs/setup/deployment/yarn_install.md 
b/docs/setup/deployment/yarn_install.md
index 58cf90d6cc..d3b022262e 100644
--- a/docs/setup/deployment/yarn_install.md
+++ b/docs/setup/deployment/yarn_install.md
@@ -75,7 +75,7 @@ This document assumes Spark 1.6.0 is installed at 
/usr/lib/spark.
 
 #### Zeppelin
 
-Checkout source code from 
[git://git.apache.org/zeppelin.git](https://github.com/apache/zeppelin.git) or 
download binary package from [Download 
page](https://zeppelin.apache.org/download.html).
+Checkout source code from 
[https://github.com/apache/zeppelin.git](https://github.com/apache/zeppelin.git)
 or download binary package from [Download 
page](https://zeppelin.apache.org/download.html).
 You can refer [Install](../../quickstart/install.html) page for the details.
 This document assumes that Zeppelin is located under `/home/zeppelin/zeppelin`.
 
diff --git a/scripts/vagrant/zeppelin-dev/README.md 
b/scripts/vagrant/zeppelin-dev/README.md
index cc19c416b9..8a52f08456 100644
--- a/scripts/vagrant/zeppelin-dev/README.md
+++ b/scripts/vagrant/zeppelin-dev/README.md
@@ -11,152 +11,132 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-## Vagrant Virtual Machine for Apache Zeppelin
-  
-This script creates a virtual machine that launches a repeatable, known set of 
core dependencies required for developing Zeppelin.  It can also be used to run 
an existing Zeppelin build if you don't plan to build from source.
-For PySpark users, this script includes several helpful [Python 
Libraries](#python-extras).
+## Vagrant Virtual Machine for Apache Zeppelin (deprecated)
 
-#### Installing the required components to launch a virtual machine.
+> **Deprecated as of 0.13.0.** This Vagrant environment is no longer maintained
+> and is not expected to provision a usable Zeppelin build environment.
+> See [ZEPPELIN-6460](https://issues.apache.org/jira/browse/ZEPPELIN-6460).
 
-This script requires three applications, 
[Ansible](http://docs.ansible.com/ansible/intro_installation.html#latest-releases-via-pip
 "Ansible"), [Vagrant](http://www.vagrantup.com "Vagrant") and [Virtual 
Box](https://www.virtualbox.org/ "Virtual Box").  All of these applications are 
freely available as Open Source projects and extremely easy to set up on most 
operating systems.
+This directory holds a Vagrant machine definition and the Ansible roles that
+provision it with the dependencies once required for developing Zeppelin.
 
-### Create a Zeppelin Ready VM in 4 Steps (5 on Windows)
+To build Zeppelin, follow
+[How to Build Zeppelin from source](../../../docs/setup/basics/how_to_build.md)
+instead. A local checkout needs only Git and a JDK; `./mvnw` supplies Maven, 
and
+each web module downloads its own Node.js and npm.
 
-* If you are running Windows and don't yet have python installed, install 
Python 2.7.x*  [Python Windows 
Installer](https://www.python.org/downloads/release/python-2710/)
+### What the VM provisions
 
-1. Download and Install Vagrant:  [Vagrant 
Downloads](http://www.vagrantup.com/downloads)
-2. Install Ansible:  [Ansible Python pip 
install](http://docs.ansible.com/ansible/intro_installation.html#latest-releases-via-pip)
-`sudo easy_install pip` then 
-`sudo pip install ansible`
-`ansible --version` should now report version 1.9.2 or higher
-3. Install Virtual Box: [Virtual Box Downloads](https://www.virtualbox.org/ 
"Virtual Box")
-4. Type `vagrant up`  from within the `/scripts/vagrant/zeppelin-dev` directory
+On top of the Ubuntu 16.04 box, the Ansible roles install:
 
-That's it!
-
-You can now run `vagrant ssh` and this will place you into the guest machines 
terminal prompt.
+ - openjdk-8-jdk
+ - Maven 3.3.9
+ - Node.js and npm from the distribution packages
+ - ruby + rake, make and bundler (only required if building the jekyll 
documentation)
+ - git, curl and unzip
+ - libfontconfig, to avoid PhantomJS missing dependency issues
+ - Python addons: pip, matplotlib, scipy, numpy, pandas
 
-If you don't wish to build Zeppelin from scratch, run the z-manager installer 
script while running in the guest VM:
+### Why it is deprecated
+
+The toolchain provisioned here has not been updated since 2018, and the
+provisioning now fails for several independent reasons:
+
+* The `ubuntu/xenial64` box is Ubuntu 16.04, which is past end of life.
+* `ansible-roles.yml` installs `python-minimal` and `python-simplejson`, and 
the
+  `python-addons` role installs `python-pip`, `python-matplotlib`, 
`python-scipy`,
+  `python-numpy` and `python-pandas`. These are Python 2 packages that no 
longer
+  exist on supported Ubuntu releases, and current `ansible-core` requires 
Python 3
+  on the managed node.
+* The `maven` role resolves Maven 3.3.9 through `closer.cgi`. That request 
still
+  succeeds, but the mirror it returns answers 404: Maven 3.3.9 has been moved 
off
+  the distribution mirrors and is only on `archive.apache.org`.
+* The `common` role installs `libfontconfig` for PhantomJS, which the project 
no
+  longer uses.
+* The toolchain it provisions is far below the project baseline (see below):
+  OpenJDK 8 instead of 11, Maven 3.3.9 instead of 3.6.3, and the distribution
+  `nodejs` package on Xenial, which is Node.js 4.2.6.
+
+### Current project baseline
+
+These are the versions the build expects. They are defined in the build itself,
+not here.
+
+| Component | Version | Source of truth |
+| --- | --- | --- |
+| OpenJDK / Oracle JDK | 11 | `java.version` in the root `pom.xml` |
+| Maven | 3.6.3 or higher | `maven.version` in the root `pom.xml` |
+| Node.js / npm | 22.21.1 / 10.9.4 | `node.version` / `npm.version` in 
`zeppelin-web-angular/pom.xml` |
+
+Only the JDK has to be installed by hand. `./mvnw` downloads Maven, and
+`frontend-maven-plugin` downloads the pinned Node.js and npm into each web
+module, so neither has to be on `PATH`. Building the classic UI with
+`-Pweb-classic` pulls in `zeppelin-web`, which pins its own pair in
+`zeppelin-web/pom.xml`.
+
+### Create a Zeppelin Ready VM
+
+This setup requires [Vagrant](https://developer.hashicorp.com/vagrant/install),
+[VirtualBox](https://www.virtualbox.org/) and
+[Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
+With all three installed, run `vagrant up` from within this directory, then
+`vagrant ssh` to get a shell on the guest machine.
+
+If you don't wish to build Zeppelin from scratch, run the z-manager installer
+script while running in the guest VM:
 
 ```
 curl -fsSL 
https://raw.githubusercontent.com/NFLabs/z-manager/master/zeppelin-installer.sh 
| bash
 ```
 
-
-
 ### Building Zeppelin
 
-You can now `git clone git://git.apache.org/zeppelin.git` into a directory on 
your host machine, or directly in your virtual machine.
-
-Cloning zeppelin into the `/scripts/vagrant/zeppelin-dev` directory from the 
host, will allow the directory to be shared between your host and the guest 
machine.
-
-Cloning the project again may seem counter intuitive, since this script likley 
originated from the project repository.  Consider copying just the 
vagrant/zeppelin-dev script from the zeppelin project as a stand alone 
directory, then once again clone the specific branch you wish to build.
+Clone the project over HTTPS, on your host machine or directly in the VM:
 
-Synced folders enable Vagrant to sync a folder on the host machine to the 
guest machine, allowing you to continue working on your project's files on your 
host machine, but use the resources in the guest machine to compile or run your 
project. _[(1) Synced Folder Description from Vagrant 
Up](https://docs.vagrantup.com/v2/synced-folders/index.html)_
-
-By default, Vagrant will share your project directory (the directory with the 
Vagrantfile) to `/vagrant`.  Which means you should be able to build within the 
guest machine after you 
-`cd /vagrant/zeppelin`
-
-
-### What's in this VM?
-
-Running the following commands in the guest machine should display these 
expected versions:
-
-`node --version` should report *v4.2.6*
-`mvn --version` should report *Apache Maven 3.3.9* and *Java version: 
1.8.0_171*
-
-
-The virtual machine consists of:
+```
+git clone https://github.com/apache/zeppelin.git
+```
 
- - Ubuntu Server 16.04 LTS
- - Node.js 4.2.6
- - npm 3.5.2
- - ruby + rake, make and bundler (only required if building jekyll 
documentation)
- - Maven 3.3.9
- - Git
- - Unzip
- - libfontconfig to avoid phatomJs missing dependency issues
- - openjdk-8-jdk
- - Python addons: pip, matplotlib, scipy, numpy, pandas
- 
-### How to build & run Zeppelin
+Cloning the project again may seem counter intuitive, since this script
+originated from the project repository. Consider copying just the
+`vagrant/zeppelin-dev` script from the Zeppelin project as a stand alone
+directory, then once again clone the specific branch you wish to build.
 
-This assumes you've already cloned the project either on the host machine in 
the zeppelin-dev directory (to be shared with the guest machine) or cloned 
directly into a directory while running inside the guest machine.  The 
following build steps will also include Python support via PySpark:
+Cloning Zeppelin into the `scripts/vagrant/zeppelin-dev` directory from the 
host
+will allow the directory to be shared between your host and the guest machine.
+By default, Vagrant shares the directory holding the `Vagrantfile` to 
`/vagrant`
+in the guest, so the checkout is reachable at `/vagrant/zeppelin`.
+_[(1) Synced Folder Description from Vagrant 
Up](https://docs.vagrantup.com/v2/synced-folders/index.html)_
 
 ```
-cd /zeppelin
-mvn clean package -Pspark-1.6 -Phadoop-2.4 -DskipTests
+cd /vagrant/zeppelin
+./mvnw clean package -DskipTests
 ./bin/zeppelin-daemon.sh start
 ```
 
-On your host machine browse to `http://localhost:8080/`
+On your host machine browse to `http://localhost:8080/`.
 
-If you [turned off port forwarding](#tweaking-the-virtual-machine) in the 
`Vagrantfile` browse to `http://192.168.51.52:8080`
+If you [turned off port forwarding](#tweaking-the-virtual-machine) in the
+`Vagrantfile`, browse to `http://192.168.51.52:8080` instead.
 
+See [Build profiles](../../../docs/setup/basics/how_to_build.md#build-profiles)
+for the Spark, Flink and Hadoop profiles this project currently supports.
 
 ### Tweaking the Virtual Machine
 
-If you plan to run this virtual machine along side other Vagrant images, you 
may wish to bind the virtual machine to a specific IP address, and not use port 
fowarding from your local host.
+If you plan to run this virtual machine alongside other Vagrant images, you may
+wish to bind the virtual machine to a specific IP address instead of forwarding
+ports from your local host.
 
-Comment out the `forward_port` line, and uncomment the `private_network` line 
in Vagrantfile.  The subnet that works best for your local network will vary so 
adjust `192.168.*.*` accordingly.
+Comment out the `forwarded_port` lines, and uncomment the `private_network` 
line
+in the `Vagrantfile`. The subnet that works best for your local network will
+vary, so adjust `192.168.*.*` accordingly.
 
 ```
 #config.vm.network "forwarded_port", guest: 8080, host: 8080
 config.vm.network "private_network", ip: "192.168.51.52"
 ```
 
-`vagrant halt` followed by `vagrant up` will restart the guest machine bound 
to the IP address of `192.168.51.52`.
-This approach usually is typically required if running other virtual machines 
that discover each other directly by IP address, such as Spark Masters and 
Slaves as well as Cassandra Nodes, Elasticsearch Nodes, and other Spark data 
sources.  You may wish to launch nodes in virtual machines with IP Addresses in 
a subnet that works for your local network, such as: 192.168.51.53, 
192.168.51.54, 192.168.51.53, etc..
-
-
-### Python Extras
-
-With zeppelin running, Numpy, SciPy, Pandas and Matplotlib will be available.  
Create a pyspark notebook, and try
-
-```
-%pyspark
-
-import numpy
-import scipy
-import pandas
-import matplotlib
-
-print "numpy " + numpy.__version__ 
-print "scipy " + scipy.__version__
-print "pandas " + pandas.__version__
-print "matplotlib " + matplotlib.__version__
-```
-
-To Test plotting using matplotlib into a rendered %html SVG image, try
-
-```
-%pyspark
-
-import matplotlib
-matplotlib.use('Agg')   # turn off interactive charting so this works for 
server side SVG rendering
-import matplotlib.pyplot as plt
-import numpy as np
-import StringIO
-
-# clear out any previous plots on this note
-plt.clf()
-
-def show(p):
-    img = StringIO.StringIO()
-    p.savefig(img, format='svg')
-    img.seek(0)
-    print "%html <div style='width:600px'>" + img.buf + "</div>"
-
-# Example data
-people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
-y_pos = np.arange(len(people))
-performance = 3 + 10 * np.random.rand(len(people))
-error = np.random.rand(len(people))
-
-plt.barh(y_pos, performance, xerr=error, align='center', alpha=0.4)
-plt.yticks(y_pos, people)
-plt.xlabel('Performance')
-plt.title('How fast do you want to go today?')
-
-show(plt)
-``` 
+`vagrant halt` followed by `vagrant up` will restart the guest machine bound to
+`192.168.51.52`. This is typically required when running other virtual machines
+that discover each other directly by IP address.
diff --git a/scripts/vagrant/zeppelin-dev/Vagrantfile 
b/scripts/vagrant/zeppelin-dev/Vagrantfile
index 8c1ed76da1..c57f7a086f 100644
--- a/scripts/vagrant/zeppelin-dev/Vagrantfile
+++ b/scripts/vagrant/zeppelin-dev/Vagrantfile
@@ -16,6 +16,11 @@
 # -*- mode: ruby -*-
 # vi: set ft=ruby :
 
+# DEPRECATED: this Vagrant environment is no longer maintained and is not
+# expected to provision a usable Zeppelin build environment. See README.md
+# in this directory and https://issues.apache.org/jira/browse/ZEPPELIN-6460
+# To build Zeppelin, follow docs/setup/basics/how_to_build.md instead.
+
 # Vagrantfile API/syntax version. Don't touch unless you know what you're 
doing!
 VAGRANTFILE_API_VERSION = "2"
 
diff --git a/scripts/vagrant/zeppelin-dev/show-instructions.sh 
b/scripts/vagrant/zeppelin-dev/show-instructions.sh
index 4ddeb5c1bd..6faf0eb324 100644
--- a/scripts/vagrant/zeppelin-dev/show-instructions.sh
+++ b/scripts/vagrant/zeppelin-dev/show-instructions.sh
@@ -14,11 +14,22 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+echo '############################################################'
+echo '# DEPRECATED: this Vagrant environment is no longer maintained'
+echo '# and is not expected to provision a usable build environment.'
+echo '# See scripts/vagrant/zeppelin-dev/README.md and'
+echo '# https://issues.apache.org/jira/browse/ZEPPELIN-6460'
+echo '#'
+echo '# To build Zeppelin, follow docs/setup/basics/how_to_build.md.'
+echo '# It needs only Git and JDK 11: ./mvnw supplies Maven, and the'
+echo '# frontend build downloads its own Node.js and npm.'
+echo '############################################################'
+echo
 echo '# Post vagrant up instructions.'
 echo '# From your host machine,'
 echo '# git clone the zeppelin branch into this directory'
 echo
-echo 'git clone git://git.apache.org/zeppelin.git'
+echo 'git clone https://github.com/apache/zeppelin.git'
 echo
 echo '# Cloning the project again may seem counter intuitive, since this 
script'
 echo '# originated from the project repository.  Consider copying just the 
vagrant/zeppelin-dev'
@@ -30,12 +41,10 @@ echo
 echo '# then when running inside the VM'
 echo
 echo 'cd /vagrant/zeppelin'
-echo 'mvn clean package -DskipTests'
-echo
-echo '# or for a specific Spark/Hadoop build with additional options such as 
python support'
-echo
-echo 'mvn clean package -Pspark-1.6 -Phadoop-2.4 -DskipTests'
+echo './mvnw clean package -DskipTests'
 echo './bin/zeppelin-daemon.sh start'
 echo
+echo '# See docs/setup/basics/how_to_build.md for the Spark, Flink and Hadoop'
+echo '# build profiles this project currently supports.'
+echo
 echo 'On your host machine browse to http://localhost:8080/'
-

Reply via email to