<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/5297f1cebe34b6e635fee0aeed507e54330fbe25">https://github.com/macports/macports-base/commit/5297f1cebe34b6e635fee0aeed507e54330fbe25</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 5297f1ceb port lint: warn for "platforms darwin" as this is the default
</span>5297f1ceb is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 5297f1cebe34b6e635fee0aeed507e54330fbe25
</span>Author: Paul Guyot <pguyot@kallisys.net>
AuthorDate: Wed May 1 12:32:41 2024 +0200

<span style='display:block; white-space:pre;color:#404040;'>    port lint: warn for "platforms darwin" as this is the default
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Co-authored-by: Joshua Root <jmr@macports.org>
</span>---
 src/port1.0/portlint.tcl        | 54 +++++++++++++++++++++++++-------
 src/port1.0/tests/portlint.test | 68 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+), 11 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portlint.tcl b/src/port1.0/portlint.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index d95ee787e..81c74582a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portlint.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portlint.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -249,6 +249,33 @@ proc portlint::lint_checksum {checksum_string} {
</span>     return [list $errors $warnings]
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# lint_platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Checks a given Portfile platforms string.  Returns a list of lists.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The first member list is a list of error strings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The second member list is a list of warning strings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Returns a list containing two empty lists if no issues are found.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portlint::lint_platforms {platforms} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set errors [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set warnings [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global lint_platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach platform $platforms {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set platname [lindex $platform 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$platname ni $lint_platforms} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend errors "Unknown platform: $platname"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$platforms eq "darwin"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend warnings "Unnecessary platforms line as darwin is the default"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [list $errors $warnings]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc portlint::lint_start {args} {
     global UI_PREFIX subport
     ui_notice "$UI_PREFIX [format [msgcat::mc "Verifying Portfile for %s"] ${subport}]"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -282,6 +309,7 @@ proc portlint::lint_main {args} {
</span>     set require_after ""
     set seen_portsystem false
     set seen_portgroup false
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    set seen_platforms false
</span>     set in_description false
     set prohibit_tabs false
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -387,6 +415,9 @@ proc portlint::lint_main {args} {
</span>             set require_blank true
             set require_after "PortGroup"
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[regexp {^\s*platforms\s} $line]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set seen_platforms true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span> 
         # TODO: check for repeated variable definitions
         # TODO: check the definition order of variables
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -496,7 +527,7 @@ proc portlint::lint_main {args} {
</span>     global porturl all_variants patchfiles \
            depends_fetch depends_extract depends_patch \
            depends_lib depends_build depends_run \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-           depends_test distfiles fetch.type lint_portsystem lint_platforms \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           depends_test distfiles fetch.type lint_portsystem \
</span>            replaced_by conflicts
     set portarch [get_canonical_archs]
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -523,7 +554,6 @@ proc portlint::lint_main {args} {
</span>     }
 
     foreach req_var $lint_required {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         if {$req_var eq "master_sites"} {
             if {${fetch.type} ne "standard"} {
                 ui_info "OK: $req_var not required for fetch.type ${fetch.type}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -562,15 +592,17 @@ proc portlint::lint_main {args} {
</span>         incr warnings
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[info exists platforms]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach platform $platforms {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set platname [lindex $platform 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {$platname ni $lint_platforms} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                ui_error "Unknown platform: $platname"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                incr errors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                ui_info "OK: Found platform: $platname"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$seen_platforms && [info exists platforms]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set platforms_lint [portlint::lint_platforms $platforms]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach err [lindex $platforms_lint 0] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error $err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            incr errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach warning [lindex $platforms_lint 1] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_warn $warning
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            incr warnings
</span>         }
     }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/tests/portlint.test b/src/port1.0/tests/portlint.test
</span><span style='display:block; white-space:pre;color:#808080;'>index ca7f7bb42..ae10ead4a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/tests/portlint.test
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/tests/portlint.test
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -645,4 +645,72 @@ test test_lint_checksum_invalid_ending_w_filename {
</span>     return "lint_checksum_invalid_ending_w_filename passed"
 } -result "lint_checksum_invalid_ending_w_filename passed"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+test test_lint_platforms_succeeds_with_darwin_freebsd {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Verify that platforms is accepted with darwin freebsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set platforms "darwin freebsd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set results [portlint::lint_platforms $platforms]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set err_results [lindex $results 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set warn_results [lindex $results 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength $warn_results] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected error results"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength $err_results] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected error results"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "lint_platforms_darwin_freebsd passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result "lint_platforms_darwin_freebsd passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test test_lint_platforms_succeeds_with_freebsd {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Verify that platforms is accepted with freebsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set platforms "freebsd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set results [portlint::lint_platforms $platforms]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set err_results [lindex $results 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set warn_results [lindex $results 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength $warn_results] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected error results"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength $err_results] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected error results"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "lint_platforms_freebsd passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result "lint_platforms_freebsd passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test test_lint_platforms_fails_with_msdos {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Verify that platforms fails with msdos as this is unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set platforms "msdos"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set results [portlint::lint_platforms $platforms]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set err_results [lindex $results 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set warn_results [lindex $results 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength $err_results] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected empty error list"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {"Unknown" ni [lindex $err_results 0]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected results: $results"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "lint_platforms_msdos_fails passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result "lint_platforms_msdos_fails passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test test_lint_platforms_fails_with_darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Verify that platforms fails with darwin as this is the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set platforms "darwin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set results [portlint::lint_platforms $platforms]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set err_results [lindex $results 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set warn_results [lindex $results 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength $warn_results] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected empty warning list"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {"default" ni [lindex $warn_results 0]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "FAIL: unexpected results: $results"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "lint_platforms_darwin_fails passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result "lint_platforms_darwin_fails passed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> cleanupTests
</pre><pre style='margin:0'>

</pre>