Fix project Vagrantfile for Leap 15.6 and add Vagrant 2.4.x / VirtualBox 7.1.x support#126
Merged
Merged
Conversation
Move the host-only private network from 192.168.50.4 to 192.168.56.4 so it falls inside the default 192.168.56.0/21 range that VirtualBox 7.x permits without requiring users to edit /etc/vbox/networks.conf. The new address is also accepted by VirtualBox 6.1.x, keeping backward compatibility with the existing Vagrant 2.2.10+ setup. Also document the Vagrant 2.4.0/2.4.1 + VirtualBox 7.1 unsupported provider warning in exercises/README.md and recommend Vagrant 2.4.2+. Co-Authored-By: sudkul <sudhanshu.kulshrestha@udacity.com>
- Drop the deprecated 2.7/3.5/3.6/3.7/3.8 matrix entries
(actions/setup-python can no longer install them on
ubuntu-latest, which is why those jobs were red).
- Add Python 3.10, 3.11, and 3.12 to the matrix and disable
fail-fast so a single version's failure no longer cancels
the rest of the matrix.
- Bump actions/checkout to v4 and actions/setup-python to v5
(the previously pinned v2 actions are deprecated).
- Install dependencies from project/techtrends/requirements.txt
and run pytest against project/techtrends/ instead of the
repo root.
- Treat pytest exit code 5 ("no tests collected") as success
so the job stays green until tests are added under
project/techtrends/.
The Manual Workflow / JIRA integration is intentionally left
untouched.
Co-Authored-By: sudkul <sudhanshu.kulshrestha@udacity.com>
This was referenced Apr 28, 2026
The techtrends app was still pinned to Flask 2.1.0 / Werkzeug 2.0.0 / itsdangerous 2.0.1 (early-2022 versions), while the sibling exercises/python-helloworld and solutions/python-helloworld requirements files in this repo are already on Flask 3.1.0. Bring techtrends to the same modern pin and let pip resolve the matching Werkzeug and itsdangerous transitively (matching the precedent used by the python-helloworld files). Flask 3.x keeps the surface used by techtrends/app.py and init_db.py intact: `from flask import Flask, jsonify, json, render_template, request, url_for, redirect, flash`, `from werkzeug.exceptions import abort`, app.config['SECRET_KEY'], app.route(...), request.form, flash(), redirect(url_for(...)), render_template(...), and app.run(...). No app code changes needed. Supersedes the stale dependabot bumps for techtrends: - #108 (flask 2.1.0 -> 2.3.2) - #114 (werkzeug 2.0.0 -> 3.0.1) Co-Authored-By: sudkul <sudhanshu.kulshrestha@udacity.com>
The top-level README only linked to the course homepage; new readers had no end-to-end commands to actually run anything from this repo. Add a Quick start section that walks through bringing up the exercise VM (`exercises/Vagrantfile`) and running the python-helloworld Flask sample inside it. The walk-through assumes the user already has Vagrant 2.4.x and VirtualBox 7.1.x installed and exercises the host-only IP (192.168.56.4) introduced earlier on this branch — so it doubles as a quick smoke test for the VirtualBox 7.x compatibility fix. Co-Authored-By: sudkul <sudhanshu.kulshrestha@udacity.com>
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
project/Vagrantfile: bump the box toopensuse/Leap-15.6.x86_64(15.6.13.356) and fix the provision command (sudo su - && zypper update ...was a no-op becausesudo su -exits before the&&chain runs; replaced withsudo zypper update -y && sudo zypper install -y apparmor-parser).project/andexercises/) compatible with Vagrant 2.4.x + VirtualBox 7.1.x while preserving compatibility with the existing Vagrant 2.2.10+ / VirtualBox 6.1.x setup. The host-only network IP is moved from192.168.50.4to192.168.56.4so it falls inside the default192.168.56.0/21range that VirtualBox 7.x permits — users no longer need to edit/etc/vbox/networks.conf. The address is also accepted by VirtualBox 6.1.x.exercises/README.mdand recommend Vagrant 2.4.2+.Test plan
vagrant upsucceeds on Vagrant 2.2.10+ with VirtualBox 6.1.x using the unmodifiedproject/Vagrantfile.vagrant upsucceeds on Vagrant 2.4.2+ with VirtualBox 7.1.x without any edit to/etc/vbox/networks.conf.192.168.56.4, and forwarded ports 8080 / 6111 / 6112 respond.apparmor-parser(verify withrpm -q apparmor-parserinside the VM).exercises/Vagrantfile.