Commit 7962e14

Hsiao-nan Cheung <niheaven@gmail.com>
2022-11-15 07:15:15
(chore): Update CI and templates
1 parent be81faf
.github/ISSUE_TEMPLATE/bug-report.yml
@@ -0,0 +1,113 @@
+name: 🐛 Bug Report
+description: Open an issue about a bug that needs fixing.
+title: "[Bug]: "
+labels: ["bug"]
+body:
+- type: checkboxes
+  attributes:
+    label: Prerequisites
+    options:
+    - label: I have written a descriptive issue title.
+      required: true
+    - label: I have searched all issues/PRs to ensure it has not already been reported or fixed.
+      required: true
+    - label: I have verified that I am using the latest version of Scoop and corresponding bucket.
+      required: true
+- type: input
+  attributes:
+    label: Package Name
+    description: Name of package (install name) which has bug(s)
+    placeholder: e.g. 7zip (not '7-Zip')
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Expected/Current Behaviour
+    description: A clear and concise description of what you expected to happen and what actually happen.
+    placeholder: I am experiencing a problem with X. I think Y should be happening but Z is actually happening.
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Steps to Reproduce
+    description: List of steps, sample code or failing test that reproduces the behavior.
+    render: console
+    placeholder: |
+      PS> scoop install tests/meson
+      Installing 'meson' (0.61.1) [64bit]
+      Loading meson-0.61.1-64.msi from cache.
+      Checking hash of meson-0.61.1-64.msi ... ok.
+      Extracting meson-0.61.1-64.msi ... done.
+      Running installer script...
+      Linking D:\Scoop\apps\meson\current => D:\Scoop\apps\meson\0.61.1
+      Creating shim for 'meson'.
+      Can't shim 'meson.exe': File doesn't exist.
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Possible Solution
+    description: Do you have some suggestions on a fix for the bug?
+    placeholder: I am experiencing a problem with X. I think Y should be happening but Z is actually happening.
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Scoop and Buckets Version
+    description: Paste verbatim output from `scoop --version` below.
+    render: console
+    placeholder: |
+      PS> scoop --version
+      Current Scoop version:
+      c60df9cd (HEAD -> develop, origin/develop) docs(changelog): Prepare for version 0.3.1 (#5248)
+
+      'extras' bucket:
+      ea314b213 (HEAD -> master, origin/master, origin/HEAD) lazygit: Update to version 0.36.0
+
+      'main' bucket:
+      c6e688d4d (HEAD -> master, origin/master, origin/HEAD) x265: Update to version 3.5+68-40e37bc
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Scoop Config
+    description: Paste verbatim output from `scoop config` below.
+    render: console
+    placeholder: |
+      PS> scoop config
+
+      last_update            : 2022/11/14 22:05:50
+      scoop_repo             : https://github.com/ScoopInstaller/Scoop
+      scoop_branch           : develop
+      use_lessmsi            : True
+      aria2-enabled          : True
+      aria2-warning-enabled  : False
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: PowerShell Version
+    description: Paste verbatim output from `$PSVersionTable` below.
+    render: console
+    placeholder: |
+      PS> $PSVersionTable
+
+      Name                           Value
+      ----                           -----
+      PSVersion                      7.3.0
+      PSEdition                      Core
+      GitCommitId                    7.3.0
+      OS                             Microsoft Windows 10.0.25236
+      Platform                       Win32NT
+      PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
+      PSRemotingProtocolVersion      2.3
+      SerializationVersion           1.1.0.1
+      WSManStackVersion              3.0
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Additional Softwares
+    description: List any additional software that you are using and may be related to this bug.
+  validations:
+    required: false
.github/ISSUE_TEMPLATE/Bug_report.md
@@ -1,49 +0,0 @@
----
-name: "Bug Report"
-about: "I am facing some problems."
-title: ""
-labels: "bug"
----
-
-<!--
-  By opening this issue you confirm that you have searched for similar issues/PRs here already.
-  Failing to do so will most likely result in closing of this issue without any explanation.
-  Incomplete form details below might also result in closing of the issue.
--->
-
-## Bug Report
-
-**Package Name:** [name of package which has bug(s)]
-
-### Current Behaviour
-
-<!-- A clear and concise description of the behaviour. -->
-
-### Expected Behaviour
-
-<!-- A clear and concise description of what you expected to happen. -->
-
-### Additional context/output
-
-<!-- Add any other context about the problem here. If applicable, paste terminal output here to help explain. -->
-
-### Possible Solution
-
-<!--- Only if you have suggestions on a fix for the bug -->
-
-### System details
-
-**Windows version:** [e.g. 7, 8, 10]
-
-**OS architecture:** [e.g. 32bit, 64bit]
-
-**PowerShell version:** [output of `"$($PSVersionTable.PSVersion)"`]
-
-**Additional software:** [(optional) e.g. ConEmu, Git]
-
-#### Scoop Configuration
-<!-- Can be found in  ~/.config/scoop/config.json -->
-
-```json
-//# Your configuration here
-```
.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+  - name: Scoop Community Support
+    url: https://github.com/ScoopInstaller/Scoop/discussions
+    about: Please ask Scoop related questions here.
.github/ISSUE_TEMPLATE/package-request.yml
@@ -0,0 +1,52 @@
+name: 📦 Package Request
+description: Open an issue about a missing package.
+title: "[Request]: "
+labels: ["package-request"]
+body:
+- type: checkboxes
+  attributes:
+    label: Prerequisites
+    options:
+    - label: I have searched all issues/PRs to ensure it has not already been reported or fixed.
+      required: true
+- type: checkboxes
+  attributes:
+    label: Criteria
+    description: For a package to be acceptable in this bucket, it should be
+    options:
+    - label: Criteria 1
+      required: true
+    - label: Criteria 2
+      required: true
+    - label: Criteria 2
+      required: true
+- type: input
+  attributes:
+    label: Name
+    description: Name of the package
+  validations:
+    required: true
+- type: input
+  attributes:
+    label: Description
+    description: Clear and concise details of what it is
+  validations:
+    required: true
+- type: input
+  attributes:
+    label: Homepage
+    description: URI of the package's homepage
+  validations:
+    required: true
+- type: input
+  attributes:
+    label: Download Link(s)
+    description: URI(s) of the package's download(s)
+  validations:
+    required: true
+- type: textarea
+  attributes:
+    label: Some Indication of Popularity/Repute
+    description: GitHub stars/software reviews etc.
+  validations:
+    required: true
.github/ISSUE_TEMPLATE/Package_request.md
@@ -1,27 +0,0 @@
----
-name: "Package Request"
-about: "I have a suggestion for a package (and may want to implement it)!"
-title: "[Request] "
-labels: "package-request"
----
-
-<!--
-  By opening this issue you confirm that you have searched for similar issues/PRs here already.
-  Failing to do so will most likely result in closing of this issue without any explanation.
-  Incomplete form details below might also result in closing of the issue.
--->
-
-## Package Request
-
-### Information
-
-**Name:** [name of new package]
-
-**Description:** [clear and concise details of what it is]
-
-**Homepage:** [a URL/link]
-
-**Download link(s):** [URL(s)/link(s)]
-
-**Some indication of popularity/repute:** [GitHub stars/software reviews etc.]
-
.github/workflows/ci.yml
@@ -1,8 +1,11 @@
 name: Tests
 
 on:
-  pull_request:
   push:
+    branches:
+      - 'main'
+      - 'master'
+  pull_request:
   workflow_dispatch:
 
 jobs:
@@ -14,17 +17,21 @@ jobs:
         uses: actions/checkout@main
         with:
           fetch-depth: 2
-          path: 'my_bucket'
+          path: my_bucket
       - name: Checkout Scoop
         uses: actions/checkout@main
         with:
           repository: ScoopInstaller/Scoop
-          path: 'scoop_core'
-      - name: Init and Test
+          path: scoop_core
+      - name: Init Test Suite
+        uses: potatoqualitee/psmodulecache@v5.1
+        with:
+          modules-to-cache: BuildHelpers
+          shell: powershell
+      - name: Test Bucket
         shell: powershell
         run: |
           $env:SCOOP_HOME="$(Convert-Path '.\scoop_core')"
-          .\scoop_core\test\bin\init.ps1
           .\my_bucket\bin\test.ps1
   test_pwsh:
     name: PowerShell
@@ -34,15 +41,19 @@ jobs:
         uses: actions/checkout@main
         with:
           fetch-depth: 2
-          path: 'my_bucket'
+          path: my_bucket
       - name: Checkout Scoop
         uses: actions/checkout@main
         with:
           repository: ScoopInstaller/Scoop
-          path: 'scoop_core'
-      - name: Init and Test
+          path: scoop_core
+      - name: Init Test Suite
+        uses: potatoqualitee/psmodulecache@v5.1
+        with:
+          modules-to-cache: BuildHelpers
+          shell: pwsh
+      - name: Test Bucket
         shell: pwsh
         run: |
           $env:SCOOP_HOME="$(Convert-Path '.\scoop_core')"
-          .\scoop_core\test\bin\init.ps1
           .\my_bucket\bin\test.ps1
.github/workflows/excavator.yml
@@ -9,9 +9,9 @@ jobs:
     name: Excavate
     runs-on: windows-latest
     steps:
-    - uses: actions/checkout@main
-    - name: Excavate
-      uses: ScoopInstaller/GithubActions@main
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        SKIP_UPDATED: '1'
+      - uses: actions/checkout@main
+      - name: Excavate
+        uses: ScoopInstaller/GithubActions@main
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          SKIP_UPDATED: 1
.github/workflows/issue_comment.yml
@@ -1,15 +1,15 @@
 on:
   issue_comment:
-    types: [ created ]
+    types: [created]
 name: Commented Pull Request
 jobs:
   pullRequestHandler:
     name: PullRequestHandler
     runs-on: windows-latest
     steps:
-    - uses: actions/checkout@main
-    - name: PullRequestHandler
-      uses: ScoopInstaller/GithubActions@main
-      if: startsWith(github.event.comment.body, '/verify')
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      - uses: actions/checkout@main
+      - name: PullRequestHandler
+        uses: ScoopInstaller/GithubActions@main
+        if: startsWith(github.event.comment.body, '/verify')
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/issues.yml
@@ -1,15 +1,15 @@
 on:
   issues:
-    types: [ opened, labeled ]
+    types: [opened, labeled]
 name: Issues
 jobs:
   issueHandler:
     name: IssueHandler
     runs-on: windows-latest
     steps:
-    - uses: actions/checkout@main
-    - name: IssueHandler
-      uses: ScoopInstaller/GithubActions@main
-      if: github.event.action == 'opened' || (github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, 'verify'))
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      - uses: actions/checkout@main
+      - name: IssueHandler
+        uses: ScoopInstaller/GithubActions@main
+        if: github.event.action == 'opened' || (github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, 'verify'))
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/pull_request.yml
@@ -1,14 +1,14 @@
 on:
   pull_request:
-    types: [ opened ]
+    types: [opened]
 name: Pull Requests
 jobs:
   pullRequestHandler:
     name: PullRequestHandler
     runs-on: windows-latest
     steps:
-    - uses: actions/checkout@main
-    - name: PullRequestHandler
-      uses: ScoopInstaller/GithubActions@main
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      - uses: actions/checkout@main
+      - name: PullRequestHandler
+        uses: ScoopInstaller/GithubActions@main
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/issue_template.md
@@ -1,12 +0,0 @@
-
-<!--
-  By opening this issue you confirm that you have searched for similar issues/PRs here already.
-  Failing to do so will most likely result in closing of this issue without any explanation.
--->
-
-#### Scoop Configuration
-<!-- Can be found in  ~/.config/scoop/config.json -->
-
-```json
-//# Your configuration here
-```
bin/auto-pr.ps1
@@ -3,7 +3,7 @@ param(
     [String]$upstream = "<username>/<bucketname>:main"
 )
 
-if(!$env:SCOOP_HOME) { $env:SCOOP_HOME = Resolve-Path (scoop prefix scoop) }
+if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Convert-Path (scoop prefix scoop) }
 $autopr = "$env:SCOOP_HOME/bin/auto-pr.ps1"
 $dir = "$PSScriptRoot/../bucket" # checks the parent dir
-Invoke-Expression -command "& '$autopr' -dir '$dir' -upstream $upstream $($args | ForEach-Object { "$_ " })"
+& $autopr -Dir $dir -Upstream $Upstream @Args
bin/checkhashes.ps1
@@ -0,0 +1,4 @@
+if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Convert-Path (scoop prefix scoop) }
+$checkhashes = "$env:SCOOP_HOME/bin/checkhashes.ps1"
+$dir = "$PSScriptRoot/../bucket" # checks the parent dir
+& $checkhashes -Dir $dir @Args
bin/checkurls.ps1
@@ -1,4 +1,4 @@
-if(!$env:SCOOP_HOME) { $env:SCOOP_HOME = Resolve-Path (scoop prefix scoop) }
+if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Convert-Path (scoop prefix scoop) }
 $checkurls = "$env:SCOOP_HOME/bin/checkurls.ps1"
 $dir = "$PSScriptRoot/../bucket" # checks the parent dir
-Invoke-Expression -command "& '$checkurls' -dir '$dir' $($args | ForEach-Object { "$_ " })"
+& $checkurls -Dir $dir @Args
bin/checkver.ps1
@@ -1,4 +1,4 @@
-if(!$env:SCOOP_HOME) { $env:SCOOP_HOME = Resolve-Path (scoop prefix scoop) }
+if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Convert-Path (scoop prefix scoop) }
 $checkver = "$env:SCOOP_HOME/bin/checkver.ps1"
 $dir = "$PSScriptRoot/../bucket" # checks the parent dir
-Invoke-Expression -command "& '$checkver' -dir '$dir' $($args | ForEach-Object { "$_ " })"
+& $checkver -Dir $dir @Args
bin/formatjson.ps1
@@ -1,4 +1,4 @@
-if(!$env:SCOOP_HOME) { $env:SCOOP_HOME = Resolve-Path (scoop prefix scoop) }
+if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Convert-Path (scoop prefix scoop) }
 $formatjson = "$env:SCOOP_HOME/bin/formatjson.ps1"
 $path = "$PSScriptRoot/../bucket" # checks the parent dir
-Invoke-Expression -command "& '$formatjson' -dir '$path' $($args | ForEach-Object { "$_ " })"
+& $formatjson -Dir $path @Args
bin/missing-checkver.ps1
@@ -1,4 +1,4 @@
-if(!$env:SCOOP_HOME) { $env:SCOOP_HOME = Resolve-Path (scoop prefix scoop) }
+if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Convert-Path (scoop prefix scoop) }
 $missing_checkver = "$env:SCOOP_HOME/bin/missing-checkver.ps1"
 $dir = "$PSScriptRoot/../bucket" # checks the parent dir
-Invoke-Expression -command "& '$missing_checkver' -dir '$dir' $($args | ForEach-Object { "$_ " })"
+& $missing_checkver -Dir $dir @Args
bin/test.ps1
@@ -1,5 +1,15 @@
-#Requires -Modules @{ ModuleName = 'Pester'; MaximumVersion = '4.99' }
+#Requires -Version 5.1
+#Requires -Modules @{ ModuleName = 'BuildHelpers'; ModuleVersion = '2.0.1' }
+#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '5.2.0' }
 
-if (!$env:SCOOP_HOME) { $env:SCOOP_HOME = Resolve-Path (scoop prefix scoop) }
-$result = Invoke-Pester "$PSScriptRoot/.." -PassThru
+$pesterConfig = New-PesterConfiguration -Hashtable @{
+    Run    = @{
+        Path     = "$PSScriptRoot/.."
+        PassThru = $true
+    }
+    Output = @{
+        Verbosity = 'Detailed'
+    }
+}
+$result = Invoke-Pester -Configuration $pesterConfig
 exit $result.FailedCount