Skip to content

Commit bd89c02

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into feat/kernel-sinf
2 parents c9868cb + 9eef97f commit bd89c02

File tree

14,127 files changed

+1006574
-141392
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

14,127 files changed

+1006574
-141392
lines changed

.github/workflows/autoclose.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,3 +221,30 @@ jobs:
221221
We recommend opening a new pull request with only the intended changes.
222222
223223
Thank you for your interest in stdlib, and we look forward to your future contributions.
224+
225+
# Define a job which closes a pull request if proposed changes duplicate already included changes:
226+
already_resolved:
227+
228+
# Define job name:
229+
name: 'Check for already resolved label'
230+
231+
# Only run this job if the pull request has a specific label:
232+
if: "${{ github.event.label.name == 'autoclose: Already Resolved' }}"
233+
234+
# Define the type of virtual host machine:
235+
runs-on: ubuntu-latest
236+
237+
# Define the sequence of job steps:
238+
steps:
239+
240+
# Close the pull request:
241+
- name: 'Close pull request'
242+
run: gh pr close "$NUMBER" --comment "$BODY"
243+
env:
244+
GH_TOKEN: ${{ secrets.STDLIB_BOT_PAT_REPO_WRITE }}
245+
GH_REPO: ${{ github.repository }}
246+
NUMBER: ${{ github.event.pull_request.number }}
247+
BODY: |
248+
Thank you for working on this pull request. However, we cannot accept your contribution as the issue this pull request seeks to resolve has already been addressed in a different pull request or commit.
249+
250+
Thank you again for your interest in stdlib, and we look forward to reviewing your future contributions.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#/
2+
# @license Apache-2.0
3+
#
4+
# Copyright (c) 2025 The Stdlib Authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#/
18+
19+
# Workflow name:
20+
name: check_duplicate_prs
21+
22+
# Workflow triggers:
23+
on:
24+
# Run the workflow daily at 3 AM UTC:
25+
schedule:
26+
- cron: '0 3 * * *'
27+
28+
# Allow the workflow to be manually run:
29+
workflow_dispatch:
30+
inputs:
31+
debug:
32+
description: 'Enable debug output'
33+
required: false
34+
default: 'false'
35+
type: choice
36+
options:
37+
- 'true'
38+
- 'false'
39+
40+
# Global permissions:
41+
permissions:
42+
# Allow read-only access to the repository contents:
43+
contents: read
44+
45+
# Workflow jobs:
46+
jobs:
47+
48+
# Define a job for checking duplicate PRs...
49+
check_duplicates:
50+
51+
# Define a display name:
52+
name: 'Check Duplicate PRs'
53+
54+
# Ensure the job does not run on forks:
55+
if: github.repository == 'stdlib-js/stdlib'
56+
57+
# Define the type of virtual host machine:
58+
runs-on: ubuntu-latest
59+
60+
# Define the sequence of job steps...
61+
steps:
62+
# Checkout the repository:
63+
- name: 'Checkout repository'
64+
# Pin action to full length commit SHA
65+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
66+
with:
67+
# Ensure we have access to the scripts directory:
68+
sparse-checkout: |
69+
.github/workflows/scripts
70+
sparse-checkout-cone-mode: false
71+
timeout-minutes: 10
72+
73+
# Check for duplicate PRs:
74+
- name: 'Check for duplicate PRs'
75+
env:
76+
GITHUB_TOKEN: ${{ secrets.STDLIB_BOT_PAT_REPO_WRITE }}
77+
DEBUG: ${{ inputs.debug || 'false' }}
78+
run: |
79+
. "$GITHUB_WORKSPACE/.github/workflows/scripts/check_duplicate_prs"
80+
timeout-minutes: 15

.github/workflows/check_licenses.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ jobs:
8181
# Install Node.js:
8282
- name: 'Install Node.js'
8383
# Pin action to full length commit SHA
84-
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
84+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
8585
with:
8686
node-version: '20' # 'lts/*'
8787
timeout-minutes: 5
@@ -128,7 +128,7 @@ jobs:
128128
# Upload the log file:
129129
- name: 'Upload log file'
130130
# Pin action to full length commit SHA
131-
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
131+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
132132
if: always()
133133
with:
134134
# Define a name for the uploaded artifact:
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#/
2+
# @license Apache-2.0
3+
#
4+
# Copyright (c) 2025 The Stdlib Authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#/
18+
19+
# Workflow name:
20+
name: check_tracking_issue_closure
21+
22+
# Workflow triggers:
23+
on:
24+
# Run on a schedule:
25+
schedule:
26+
# Run every 12 hours:
27+
- cron: '0 */12 * * *'
28+
29+
# Allow manual triggering:
30+
workflow_dispatch:
31+
inputs:
32+
debug:
33+
description: 'Enable debug output'
34+
required: false
35+
default: 'false'
36+
type: choice
37+
options:
38+
- 'true'
39+
- 'false'
40+
41+
# Workflow jobs:
42+
jobs:
43+
# Define job to check PRs for tracking issue closure:
44+
check_prs:
45+
# Define job name:
46+
name: 'Check PRs for tracking issue closure'
47+
48+
# Define job permissions:
49+
permissions:
50+
contents: read
51+
52+
# Define the type of virtual host machine:
53+
runs-on: ubuntu-latest
54+
55+
# Define the sequence of job steps:
56+
steps:
57+
# Checkout the repository:
58+
- name: 'Checkout repository'
59+
# Pin action to full length commit SHA
60+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
61+
with:
62+
# Ensure we have access to the scripts directory:
63+
sparse-checkout: |
64+
.github/workflows/scripts
65+
sparse-checkout-cone-mode: false
66+
67+
# Run the script to check PRs for tracking issue closure:
68+
- name: 'Check PRs for tracking issue closure'
69+
run: |
70+
. "$GITHUB_WORKSPACE/.github/workflows/scripts/check_tracking_issue_closure" 1
71+
env:
72+
GITHUB_TOKEN: ${{ secrets.STDLIB_BOT_PAT_REPO_WRITE }}
73+
DEBUG: ${{ inputs.debug || 'false' }}

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ jobs:
121121
# Install Node.js:
122122
- name: 'Install Node.js'
123123
# Pin action to full length commit SHA
124-
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
124+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
125125
with:
126126
node-version: '20' # 'lts/*'
127127
timeout-minutes: 5

.github/workflows/first_time_greeting.yml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@
2020
name: first_time_greeting
2121

2222
# Workflow triggers:
23-
on: [pull_request_target, issues]
23+
on:
24+
pull_request_target:
25+
types: [opened]
26+
issues:
27+
types: [opened]
2428

2529
# Global permissions:
2630
permissions:
@@ -39,20 +43,30 @@ jobs:
3943
# Define the type of virtual host machine:
4044
runs-on: ubuntu-latest
4145

46+
# Only run this job if the pull request did not have label `automated-pr` and is not from bots:
47+
if: >
48+
contains(github.event.pull_request.labels.*.name, 'automated-pr') == false &&
49+
github.event.pull_request.user.login != 'stdlib-bot' &&
50+
github.event.pull_request.user.login != 'dependabot[bot]'
51+
4252
# Define the sequence of job steps...
4353
steps:
4454

45-
# Greet first-time contributors:
46-
- name: 'Greet first-time contributors'
55+
# Checkout the repository:
56+
- name: 'Checkout repository'
4757
# Pin action to full length commit SHA
48-
uses: actions/first-interaction@34f15e814fe48ac9312ccf29db4e74fa767cbab7 # v1.3.0
58+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4959
with:
50-
repo-token: ${{ secrets.STDLIB_BOT_PAT_REPO_WRITE }}
51-
issue-message: |
52-
:wave: Hi there! :wave:
60+
# Ensure we have access to the scripts directory:
61+
sparse-checkout: |
62+
.github/workflows/scripts
63+
sparse-checkout-cone-mode: false
64+
timeout-minutes: 10
5365

54-
And thank you for opening your first issue! We will get back to you shortly. :runner: :dash:
55-
pr-message: |
56-
:wave: Hi there! :wave:
57-
58-
And thank you for opening your first pull request! We will review it shortly. :runner: :dash:
66+
# Greet first-time contributors:
67+
- name: 'Greet first-time contributors'
68+
env:
69+
ISSUE_NUMBER: ${{ github.event.issue.number || github.event.pull_request.number }}
70+
GITHUB_TOKEN: ${{ secrets.STDLIB_BOT_PAT_REPO_WRITE }}
71+
run: |
72+
. "$GITHUB_WORKSPACE/.github/workflows/scripts/first_time_greeting" $ISSUE_NUMBER
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
#/
2+
# @license Apache-2.0
3+
#
4+
# Copyright (c) 2025 The Stdlib Authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#/
18+
19+
# Workflow name:
20+
name: generate_monthly_changelog
21+
22+
# Workflow triggers:
23+
on:
24+
# Run the workflow at midnight UTC on the first day of each month:
25+
schedule:
26+
- cron: '0 0 1 * *'
27+
28+
# Allow the workflow to be manually run:
29+
workflow_dispatch:
30+
31+
# Global permissions:
32+
permissions:
33+
# Allow read-only access to the repository contents:
34+
contents: read
35+
36+
# Workflow jobs:
37+
jobs:
38+
# Generate a monthly changelog:
39+
generate-monthly-changelog:
40+
# Define a display name:
41+
name: 'Generate Monthly Changelog'
42+
43+
# Define the type of virtual host machine:
44+
runs-on: ubuntu-latest
45+
46+
# Workflow steps:
47+
steps:
48+
- name: 'Checkout source repository'
49+
# Pin action to full length commit SHA
50+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
51+
with:
52+
# Specify whether to remove untracked files before checking out the repository:
53+
clean: false
54+
55+
# Fetch entire history so that we are guaranteed to have all commit messages for the last month:
56+
fetch-depth: 0
57+
58+
# Token for accessing the repository:
59+
token: ${{ secrets.STDLIB_BOT_FGPAT_REPO_READ }}
60+
61+
# Avoid storing GitHub token in local Git configuration:
62+
persist-credentials: false
63+
64+
# Install Node.js:
65+
- name: 'Install Node.js'
66+
# Pin action to full length commit SHA
67+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
68+
with:
69+
node-version: '20' # 'lts/*'
70+
timeout-minutes: 5
71+
72+
# Install dependencies (accounting for possible network failures, etc, when installing node module dependencies):
73+
- name: 'Install dependencies'
74+
run: |
75+
make install-node-modules || make install-node-modules || make install-node-modules
76+
timeout-minutes: 15
77+
78+
- name: 'Checkout monthly changelog repository'
79+
# Pin action to full length commit SHA
80+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
81+
with:
82+
# Monthly changelog repository:
83+
repository: 'stdlib-js/www-blog-monthly-changelog'
84+
85+
# File path to checkout to:
86+
path: './www-blog-monthly-changelog'
87+
88+
# Specify whether to remove untracked files before checking out the repository:
89+
clean: false
90+
91+
# Limit clone depth to the most recent commit:
92+
fetch-depth: 1
93+
94+
# Token for accessing the repository:
95+
token: ${{ secrets.STDLIB_BOT_FGPAT_REPO_READ }}
96+
97+
# Avoid storing GitHub token in local Git configuration:
98+
persist-credentials: false
99+
100+
# Generate changelog for last month:
101+
- name: 'Generate changelog for last month'
102+
run: |
103+
UNTIL=$(date +"%Y-%m-01")
104+
node lib/node_modules/@stdlib/_tools/scripts/generate_monthly_changelog.js > ./www-blog-monthly-changelog/monthly_changelog_${UNTIL//-/_}.md
105+
106+
# Import GPG key to sign commits:
107+
- name: 'Import GPG key to sign commits'
108+
# Pin action to full length commit SHA
109+
uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0
110+
with:
111+
gpg_private_key: ${{ secrets.STDLIB_BOT_GPG_PRIVATE_KEY }}
112+
passphrase: ${{ secrets.STDLIB_BOT_GPG_PASSPHRASE }}
113+
git_user_signingkey: true
114+
git_commit_gpgsign: true
115+
116+
# Commit and push changes:
117+
- name: 'Commit and push changes'
118+
env:
119+
REPO_GITHUB_TOKEN: ${{ secrets.STDLIB_BOT_PAT_REPO_WRITE }}
120+
USER_NAME: stdlib-bot
121+
run: |
122+
cd ./www-blog-monthly-changelog
123+
git config --local user.email "82920195+stdlib-bot@users.noreply.github.com"
124+
git config --local user.name "stdlib-bot"
125+
git add .
126+
git commit -m "Add monthly changelog" || exit 0
127+
git push "https://$USER_NAME:$REPO_GITHUB_TOKEN@github.com/stdlib-js/www-blog-monthly-changelog.git" main

0 commit comments

Comments
 (0)