Skip to content

[ZEPPELIN-6460] Deprecate the Vagrant developer environment - #5496

Open
kimyenac wants to merge 3 commits into
apache:masterfrom
kimyenac:ZEPPELIN-6460
Open

kimyenac wants to merge 3 commits into
apache:masterfrom
kimyenac:ZEPPELIN-6460

Conversation

@kimyenac

@kimyenac kimyenac commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

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.githttps://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, so the branch example would have failed even over https. The release line is branch-0.11.

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?

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

The toolchain the Vagrant setup under scripts/vagrant/zeppelin-dev
provisions has not been updated since 2018, and provisioning can no
longer succeed: the ubuntu/xenial64 box is past end of life, the Ansible
roles install Python 2 packages that supported Ubuntu releases no longer
carry, the maven role resolves Maven 3.3.9 through closer.cgi to a mirror
that answers 404 (3.3.9 is only on archive.apache.org now), and the
versions it installs (OpenJDK 8, Maven 3.3.9, Node.js 4.2.6) are far
below the project baseline.

Rather than rewrite provisioning that cannot be verified, mark it
deprecated and fix the pointers so it no longer sends contributors to
obsolete instructions:

- Replace git://git.apache.org/zeppelin.git with the HTTPS GitHub URL.
- Drop the -Pspark-1.6 -Phadoop-2.4 build line in favour of ./mvnw, and
  link to the current build profiles instead.
- Present the versions the roles install as what is outdated about them,
  and add the project baseline (JDK 11, Maven 3.6.3, Node.js 22.21.1 /
  npm 10.9.4) next to it, each pointing at the pom property that defines
  it, noting that only the JDK has to be installed by hand.
- Drop the Python 2.7 prerequisite, the "ansible 1.9.2 or higher" check
  and the Python 2 PySpark examples, which are syntax errors under
  Python 3 and rely on the python-addons role that no longer works.

README.md, show-instructions.sh and the Vagrantfile carry the notice,
which matters because zeppelin-distribution ships the whole scripts/
directory, so release users receive these files too.
docs/setup/deployment/virtual_machine.md is rewritten to match them; it
had drifted even further, still documenting Ubuntu 14.04, Node.js 0.12.7
and OpenJDK 7. The docs index and navigation label the page as
deprecated.
The link text advertised git://git.apache.org/zeppelin.git while the href
already pointed at GitHub. The git protocol is no longer served, so a
reader copying that text gets a connection refused.
The git access sections told contributors to clone over git://, which
gitbox no longer serves: `git clone git://gitbox.apache.org/repos/asf/zeppelin.git`
fails with a connection refused. The surrounding prose already names the
https URL as the official location, so switch the commands to match it.

The branch example was broken for a second reason: branch-0.11.0 does not
exist on gitbox, so `git clone -b branch-0.11.0` would fail even over
https. The release line is branch-0.11.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant