Skip to content

Commit 6d67de8

Browse files
resolving merge conflict
2 parents 66811df + d9648d5 commit 6d67de8

16 files changed

Lines changed: 278 additions & 27 deletions

File tree

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package-lock.json
88
.vscode
99
.env
1010
startup.sh
11-
data/
1211

1312
# macOS files
1413
*.DS_Store
@@ -26,4 +25,4 @@ z_local_saved/
2625
tags
2726

2827
# Generated spell check config
29-
.spellcheck-non-draft.yml
28+
.spellcheck-non-draft.yml

content/learning-paths/servers-and-cloud-computing/gerrit-on-gcp/firewall_setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ This configuration allows incoming TCP traffic on port 8080 from any IPv4 addres
4545

4646
This step ensures that only TCP traffic on port 8080 is allowed through the firewall.
4747

48-
![Google Cloud Console showing the Protocols and ports section with TCP checkbox selected and Ports field containing 8080. This ensures only TCP traffic on port 8080 is allowed through the firewall for Gerrit.#center](images/network-port.png "Specifying the TCP port to expose")
48+
![Google Cloud Console showing the Protocols and ports section with TCP checkbox selected and Ports field containing 8080. This ensures only TCP traffic on port 8080 is allowed through the firewall for Gerrit.#center](images/network-port.webp "Specifying the TCP port to expose")
4949

5050
## What you've accomplished and what's next
5151

Binary file not shown.
57.4 KB
Loading
Binary file not shown.
72.5 KB
Loading

content/learning-paths/servers-and-cloud-computing/gerrit-on-gcp/instance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ To create a VM based on the C4A instance type:
3535
7. Under **Networking**, enable **Allow HTTP traffic** and **Allow HTTPS traffic**.
3636
8. In the **Network tags** field, add `allow-tcp-8080` to allow Gerrit dashboard traffic.
3737

38-
![Google Cloud console interface showing the Networking tab for VM instance configuration. The Network tags field displays allow-tcp-8080 to enable firewall rule for Gerrit dashboard traffic on port 8080. Other networking options and VM configuration controls are visible.#center](images/network-config.png "Adding the TCP/8080 firewall rule to our VM")
38+
![Google Cloud console interface showing the Networking tab for VM instance configuration. The Network tags field displays allow-tcp-8080 to enable firewall rule for Gerrit dashboard traffic on port 8080. Other networking options and VM configuration controls are visible.#center](images/network-config.webp "Adding the TCP/8080 firewall rule to our VM")
3939

4040
9. Select **Create** to launch your VM instance.
4141

content/learning-paths/servers-and-cloud-computing/migrate-ease/3_migrate_ease_run.md

Lines changed: 103 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,20 @@ layout: "learningpathall"
1111
Before using `migrate-ease`, install the following system dependencies:
1212
{{< tabpane code=true >}}
1313
{{< tab header="Ubuntu 22.04">}}
14-
sudo apt-get install -y python3 python3-pip python3-venv unzip libmagic1 git
14+
sudo apt-get install -y python3 python3-pip python3-venv libmagic1 git
1515
{{< /tab >}}
1616
{{< tab header="Debian 13">}}
17-
sudo apt-get install -y python3 python3-pip python3-venv unzip libmagic1 git
17+
sudo apt-get install -y python3 python3-pip python3-venv libmagic1 git
1818
{{< /tab >}}
1919
{{< tab header="Fedora 42">}}
20-
sudo dnf install -y python3 python3-pip unzip git
20+
sudo dnf install -y python3 python3-pip git
21+
{{< /tab >}}
22+
{{< tab header="macOS">}}
23+
brew install python3 libmagic git
24+
{{< /tab >}}
25+
{{< tab header="Windows">}}
26+
winget install --id Python.Python.3.11
27+
winget install --id Git.Git
2128
{{< /tab >}}
2229
{{< /tabpane >}}
2330

@@ -28,20 +35,35 @@ cd migrate-ease
2835
```
2936

3037
Create and activate a Python virtual environment:
31-
```bash
38+
39+
{{< tabpane code=true >}}
40+
{{< tab header="Linux/macOS">}}
3241
python3 -m venv .venv
3342
source .venv/bin/activate
34-
```
43+
{{< /tab >}}
44+
{{< tab header="Windows (PowerShell)">}}
45+
python -m venv .venv
46+
Set-ExecutionPolicy RemoteSigned
47+
.\.venv\Scripts\Activate.ps1
48+
{{< /tab >}}
49+
{{< /tabpane >}}
3550

3651
Install the required packages and set the environment variable:
37-
```bash
52+
53+
{{< tabpane code=true >}}
54+
{{< tab header="Linux/macOS">}}
3855
pip3 install -r requirements.txt
3956
export PYTHONPATH=`pwd`
40-
```
57+
{{< /tab >}}
58+
{{< tab header="Windows (PowerShell)">}}
59+
pip install -r requirements.txt
60+
$env:PYTHONPATH = (Get-Location).Path
61+
{{< /tab >}}
62+
{{< /tabpane >}}
4163

4264
## Usage
4365

44-
You can use migrate-ease from the command-line or through a Web GUI.
66+
You can use migrate-ease from the command-line or through a Web UI.
4567

4668
### Command-line usage
4769

@@ -61,11 +83,11 @@ Here's an explanation of each of the arguments passed to the scanner tool:
6183

6284
**Parameters**
6385

64-
`{scanner_name}`: The name of the scanner, which can be one of cpp, docker, go, java, Python or rust.
86+
`{scanner_name}`: The name of the scanner, which can be one of cpp, docker, go, java, python or rust.
6587

6688
`{result_file_name}`: The name of the exported results file (without the extension).
6789

68-
`{arch}`: The architecture type; `armv8-a` is the default.
90+
`{arch}`: Target processor architecture. It follows the same semantics as GCC's `-march`, specifying the target architecture and feature set. Supported: `armv8-a` (default) and `armv8.6-a+sve2`.
6991

7092
`{scan_path}`: The path to the code you want to scan.
7193

@@ -79,23 +101,83 @@ There are more parameters for user to control the scan functionality. To see thi
79101
```bash
80102
python3 -m {scanner_name} -h
81103
```
82-
Replace {scanner_name} with either cpp, docker, go, java, Python or rust.
104+
Replace {scanner_name} with either cpp, docker, go, java, python or rust.
105+
106+
### Target a cloud vendor and instance type
107+
108+
Instead of setting `--march` manually, you can derive the target ISA from a cloud vendor and instance type. This is useful when you already know where the workload will run:
83109

84-
### GUI
85-
Migrate-ease also provides a Web UI that supports scanning a git repo with cpp, docker, go, java, Python and rust scanners in one time.
86-
To start the web server, simply run:
110+
```bash
111+
python3 -m {scanner_name} --vendor {VENDOR} --instance-type {INSTANCE} {scan_path}
87112
```
113+
114+
Here's an explanation of each of the arguments passed to the scanner tool:
115+
116+
**Parameters**
117+
118+
`{VENDOR}`: The cloud vendor. Supported values are `AWS`, `GCP`, and `AliCloud`. The match is case-sensitive.
119+
120+
`{INSTANCE}`: The instance type under the selected vendor, for example, `c7g`, `c4a`, or `c8y`. The input is lowercased before matching, so it is case-insensitive. This option requires `--vendor`.
121+
122+
`{scan_path}`: The path to the code you want to scan.
123+
124+
To list the supported vendors and instance types per vendor, use the built-in help and check the **Supported Vendors** and **Supported Instance Types per Vendor** sections:
125+
126+
```bash
127+
python3 -m {scanner_name} --help
128+
```
129+
130+
For behavioral rules of `--vendor` and `--instance-type`, see the [vendor and instance-type usage guide](https://github.com/migrate-ease/migrate-ease/blob/main/docs/vendor-instance-type-usage.md).
131+
132+
### Web UI
133+
134+
Migrate-ease also provides a Web UI that supports scanning a git repo or a local source archive (`.zip`/`.tar`) with cpp, docker, go, java, python and rust scanners in one time. To start the web server, simply run:
135+
```bash
88136
python3 web/server.py
89137
```
90138

91-
Once the server is running, you can access a web server hosted at http://localhost:8080
139+
The server listens on port `8080` by default. To use a different port, pass `--port`:
140+
```bash
141+
python3 web/server.py --port <PORT>
142+
```
143+
144+
Once the server is running, you can access a web server hosted at `http://<localhost>:8080`
145+
146+
The Web UI looks like this:
147+
148+
![Migrate-ease Web UI scan form.#center](web_ui_index.jpg "Migrate-ease Web UI scan form")
149+
150+
The Web UI walks you through three steps: choose what to scan, set options, and run.
151+
152+
**1. Choose what to scan** on either tab:
153+
154+
| Tab | Input |
155+
|---|---|
156+
| **Git Repo** | An HTTPS Git URL with an optional branch name. Leave the branch empty to use the repository's default branch. |
157+
| **Source archive** | A local `.zip` or `.tar` archive uploaded from your machine. |
158+
159+
**2. Configure scan options** (optional) from the **Options** menu (gear icon):
160+
161+
| Option | Description | Default |
162+
|---|---|---|
163+
| **CSP & Instance** | Cloud provider and instance type used to derive the target architecture. | `armv8-a` |
164+
| **Report format** | Format of the downloadable report (`JSON`, `HTML`, `Text`, or `CSV`). | `JSON` |
165+
| **Scanner** | Language scanners to run. Uncheck **All** to pick a subset from `C/C++`, `Go`, `Rust`, `Java`, `Python`, and `Docker`. | All |
166+
167+
**3. Run and monitor** by clicking **SCAN**. The **Console Output** panel streams live logs from each scanner.
168+
169+
{{% notice Tip %}}
170+
On your first visit, a step-by-step Quick Guide overlay highlights the key controls. A **Quick Guide** button stays in the top-right so you can rerun the walkthrough at any time.
171+
{{% /notice %}}
92172

93-
The web UI looks like this:
94-
![example image alt-text#center](web_ui_index.jpg "Web UI to scan a git repo")
173+
When a scan finishes, a results banner appears with three actions:
95174

96-
A git repo URL is required, and you can specify certain branch name to scan. Once the necessary information is filled, you can click the **START SCAN** button to proceed project scanning.
175+
![Migrate-ease Web UI of scan result.#center](web_ui_result.jpg "Migrate-ease Web UI of scan result")
97176

98-
Scanning progress is then shown in the console pane. Once all the jobs are done, you will see a web page like this:
99-
![example image alt-text#center](web_ui_result.jpg "Web UI of scan result")
177+
| Action | What it does |
178+
|---|---|
179+
| **View Report** | Opens the full compatibility report in a new browser tab. |
180+
| **Download** | Saves a `report.zip` package to your machine. |
181+
| **New Scan** | Returns to the scan form so you can run another scan. |
100182

101-
You can download the result by clicking the symbolic download icon button, or view the result by clicking the icon which looks like an eye.
183+
For a detailed walkthrough of every Web UI control, including screenshots for each step, see the [Web UI quick start guide](https://github.com/migrate-ease/migrate-ease/blob/main/docs/webui-quick-start.md).

content/learning-paths/servers-and-cloud-computing/migrate-ease/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Migrate applications to Arm servers using migrate-ease
33

44
minutes_to_complete: 45
55

6-
who_is_this_for: This is an introductory topic for developers looking to migrate applications to Arm-based servers using migrate-ease, a code analysis tool that scans source code repositories to identify architecture-specific porting issues before migration.
6+
who_is_this_for: This is an introductory topic for developers looking to migrate applications to Arm-based servers using migrate-ease, a code analysis tool that scans local source trees or Git repositories to identify architecture-specific porting issues before migration.
77

88
description: Scan source code for architecture-specific portability issues using migrate-ease to identify and resolve AArch64 porting challenges before migration.
99

171 KB
Loading

0 commit comments

Comments
 (0)