Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a8e31c3

Browse filesBrowse files
committed
Auto-generated commit
1 parent da33e36 commit a8e31c3
Copy full SHA for a8e31c3
Expand file treeCollapse file tree

16 files changed

+231
-78
lines changed

‎.github/.keepalive

Copy file name to clipboardExpand all lines: .github/.keepalive
-1Lines changed: 0 additions & 1 deletion
This file was deleted.

‎.github/workflows/productionize.yml

Copy file name to clipboardExpand all lines: .github/workflows/productionize.yml
+12-20Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ on:
3434
type: boolean
3535
default: true
3636

37+
# Run workflow upon completion of `publish` workflow run:
38+
workflow_run:
39+
workflows: ["publish"]
40+
types: [completed]
41+
42+
3743
# Concurrency group to prevent multiple concurrent executions:
3844
concurrency:
3945
group: productionize
@@ -76,28 +82,14 @@ jobs:
7682
id: transform-error-messages
7783
uses: stdlib-js/transform-errors-action@main
7884

79-
# Format error messages:
80-
- name: 'Replace double quotes with single quotes in rewritten format string error messages'
81-
run: |
82-
find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \;
83-
84-
# Format string literal error messages:
85-
- name: 'Replace double quotes with single quotes in rewritten string literal error messages'
86-
run: |
87-
find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \;
88-
89-
# Format code:
90-
- name: 'Replace double quotes with single quotes in inserted `require` calls'
91-
run: |
92-
find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \;
93-
9485
# Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency:
9586
- name: 'Update dependencies in package.json'
9687
run: |
88+
PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version)
9789
if grep -q '"@stdlib/string-format"' package.json; then
98-
sed -i "s/\"@stdlib\/string-format\"/\"@stdlib\/error-tools-fmtprodmsg\"/g" package.json
90+
sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json
9991
else
100-
node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^0.0.x'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );"
92+
node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );"
10193
fi
10294
10395
# Configure git:
@@ -342,7 +334,7 @@ jobs:
342334
343335
# Send status to Slack channel if job fails:
344336
- name: 'Send status to Slack channel in case of failure'
345-
uses: act10ns/slack@v1
337+
uses: act10ns/slack@v2
346338
with:
347339
status: ${{ job.status }}
348340
steps: ${{ toJson(steps) }}
@@ -513,7 +505,7 @@ jobs:
513505
514506
# Send status to Slack channel if job fails:
515507
- name: 'Send status to Slack channel in case of failure'
516-
uses: act10ns/slack@v1
508+
uses: act10ns/slack@v2
517509
with:
518510
status: ${{ job.status }}
519511
steps: ${{ toJson(steps) }}
@@ -690,7 +682,7 @@ jobs:
690682
691683
# Send status to Slack channel if job fails:
692684
- name: 'Send status to Slack channel in case of failure'
693-
uses: act10ns/slack@v1
685+
uses: act10ns/slack@v2
694686
with:
695687
status: ${{ job.status }}
696688
steps: ${{ toJson(steps) }}

‎.github/workflows/publish.yml

Copy file name to clipboardExpand all lines: .github/workflows/publish.yml
+132-7Lines changed: 132 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,23 @@ name: publish
2121

2222
# Workflow triggers:
2323
on:
24-
# Run workflow when a new tag is pushed to the repository:
25-
push:
26-
tags: v[0-9]+.[0-9]+.[0-9]+
24+
# Allow the workflow to be manually run:
25+
workflow_dispatch:
26+
# Workflow inputs:
27+
inputs:
28+
version:
29+
description: 'Version Increment'
30+
type: choice
31+
default: 'none'
32+
options:
33+
- 'none'
34+
- 'major'
35+
- 'minor'
36+
- 'patch'
37+
- 'premajor'
38+
- 'preminor'
39+
- 'prepatch'
40+
- 'prerelease'
2741

2842
# Workflow jobs:
2943
jobs:
@@ -32,14 +46,15 @@ jobs:
3246
publish:
3347

3448
# Define display name:
35-
name: 'Publish to npm'
49+
name: 'Publish package to npm'
3650

3751
# Define the type of virtual host machine on which to run the job:
3852
runs-on: ubuntu-latest
3953

4054
# Define environment variables:
4155
env:
4256
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
57+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
4358

4459
# Define the sequence of job steps...
4560
steps:
@@ -55,6 +70,91 @@ jobs:
5570
node-version: 16
5671
timeout-minutes: 5
5772

73+
# Configure git:
74+
- name: 'Configure git'
75+
run: |
76+
git config --local user.email "noreply@stdlib.io"
77+
git config --local user.name "stdlib-bot"
78+
79+
# Increment package version (if requested):
80+
- name: 'Increment package version (if requested)'
81+
if: ${{ github.event.inputs.version != 'none' }}
82+
run: |
83+
# Save NPM_TOKEN to user's .npmrc:
84+
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
85+
86+
# Increment package version:
87+
npm version ${{ github.event.inputs.version }} --no-git-tag-version
88+
89+
# Define variable for new version:
90+
NEW_VERSION=$(node -p "require('./package.json').version")
91+
92+
# Replace branch in README.md link definitions for badges with the new version:
93+
find . -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/branch([=:])[^ ]+/branch\1v${NEW_VERSION}/g"
94+
95+
# Create a new commit and tag:
96+
git add package.json README.md
97+
git commit -m "Release v${NEW_VERSION}"
98+
git tag -a "v${NEW_VERSION}" -m "Release v${NEW_VERSION}"
99+
100+
# Push changes to GitHub:
101+
SLUG=${{ github.repository }}
102+
git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" --follow-tags
103+
104+
# Remove CLI:
105+
- name: 'Remove CLI'
106+
if: ${{ github.ref == 'refs/heads/main' }}
107+
run: |
108+
# Exit if the package does not have a CLI:
109+
if ! grep -q '"bin":' package.json; then
110+
exit 0
111+
fi
112+
rm -rf ./bin/cli
113+
rm -f test/test.cli.js
114+
rm -f etc/cli_opts.json
115+
rm -f docs/usage.txt
116+
117+
# For all dependencies, check in all *.js files if they are still used; if not, remove them:
118+
jq -r '.dependencies | keys[]' ./package.json | while read -r dep; do
119+
dep=$(echo "$dep" | xargs)
120+
if ! grep -q "$dep" lib/** && ! grep -q -s "$dep" manifest.json && ! grep -q -s "$dep" include.gypi; then
121+
jq --indent 2 "del(.dependencies[\"$dep\"])" ./package.json > ./package.json.tmp
122+
mv ./package.json.tmp ./package.json
123+
fi
124+
done
125+
jq -r '.devDependencies | keys[]' ./package.json | while read -r dep; do
126+
if [[ "$dep" != "@stdlib"* ]]; then
127+
continue
128+
fi
129+
dep=$(echo "$dep" | xargs)
130+
if ! grep -q "$dep" lib/** && ! grep -q -s "$dep" manifest.json && ! grep -q -s "$dep" include.gypi; then
131+
jq --indent 2 "del(.devDependencies[\"$dep\"])" ./package.json > ./package.json.tmp
132+
mv ./package.json.tmp ./package.json
133+
fi
134+
done
135+
136+
# Remove CLI section:
137+
find . -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?<section class=\"cli\">[\s\S]+?<\!\-\- \/.cli \-\->//"
138+
139+
# Remove CLI from package.json:
140+
jq -r 'del(.bin)' package.json > package.json.tmp
141+
mv package.json.tmp package.json
142+
143+
# Add entry for CLI package to See Also section of README.md:
144+
cliPkgName=$(jq -r '.name' package.json)-cli
145+
escapedPkg=$(echo "$cliPkgName" | sed -e 's/\//\\\//g')
146+
escapedPkg=$(echo "$escapedPkg" | sed -e 's/\@/\\\@/g')
147+
find . -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/<section class=\"related\">(?:\n\n\* \* \*\n\n## See Also\n\n)?/<section class=\"related\">\n\n## See Also\n\n- <span class=\"package-name\">[\`$escapedPkg\`][$escapedPkg]<\/span><span class=\"delimiter\">: <\/span><span class=\"description\">CLI package for use as a command-line utility.<\/span>\n/"
148+
149+
# Add link definition for CLI package to README.md:
150+
find . -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/<section class=\"links\">/<section class=\"links\">\n\n[$escapedPkg]: https:\/\/www.npmjs.com\/package\/$escapedPkg/"
151+
152+
# Replace GitHub MathJax equations with SVGs:
153+
- name: 'Replace GitHub MathJax equations with SVGs'
154+
run: |
155+
find . -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe 's/```math\n([\s\S]+?)\n```\n\n//g'
156+
find . -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe 's/<!-- <div class="equation"(.*)(<\/div>\s*-->)/<div class="equation"$1<\/div>/sg'
157+
58158
# Replace GitHub links to individual packages with npm links:
59159
- name: 'Replace all GitHub links to individual packages with npm links'
60160
run: |
@@ -65,14 +165,39 @@ jobs:
65165
run: |
66166
find . -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`\n\nAlternatively,[^<]+<\/section>/\`\`\`\n\n<\/section>/"
67167
168+
# Remove unnecessary files:
169+
- name: 'Remove unnecessary files'
170+
run: |
171+
rm -f docs/repl.txt
172+
rm -f docs/types/test.ts
173+
68174
# Replace all stdlib GitHub dependencies with the respective npm packages:
69175
- name: 'Replace all stdlib GitHub dependencies with the respective npm packages'
70176
run: |
71-
find package.json -type f -print0 | xargs -0 sed -Ei 's/"github:stdlib-js[^"]*"/"^0.0.x"/g'
177+
for dep in $(jq -r '.dependencies | keys | .[]' package.json); do
178+
if [[ "$dep" != "@stdlib"* ]]; then
179+
continue
180+
fi
181+
# Trim leading and trailing whitespace:
182+
dep=$(echo "$dep" | xargs)
183+
version="^$(npm view $dep version)"
184+
jq -r --arg dep "$dep" --arg version "$version" '.dependencies[$dep] = $version' package.json > package.json.tmp
185+
mv package.json.tmp package.json
186+
done
187+
for dep in $(jq -r '.devDependencies | keys | .[]' package.json); do
188+
if [[ "$dep" != "@stdlib"* ]]; then
189+
continue
190+
fi
191+
# Trim leading and trailing whitespace:
192+
dep=$(echo "$dep" | xargs)
193+
version="^$(npm view $dep version)"
194+
jq -r --arg dep "$dep" --arg version "$version" '.devDependencies[$dep] = $version' package.json > package.json.tmp
195+
mv package.json.tmp package.json
196+
done
72197
73198
# Publish package to npm:
74199
- name: 'Publish package to npm'
75-
uses: JS-DevTools/npm-publish@v1
200+
uses: JS-DevTools/npm-publish@v2
76201
with:
77202
token: ${{ secrets.NPM_TOKEN }}
78203
access: public
@@ -84,7 +209,7 @@ jobs:
84209
85210
# Send status to Slack channel if job fails:
86211
- name: 'Send status to Slack channel in case of failure'
87-
uses: act10ns/slack@v1
212+
uses: act10ns/slack@v2
88213
with:
89214
status: ${{ job.status }}
90215
steps: ${{ toJson(steps) }}

‎.github/workflows/test.yml

Copy file name to clipboardExpand all lines: .github/workflows/test.yml
+6-1Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ on:
3232
# Run workflow on each push to the main branch:
3333
push:
3434

35+
# Run workflow upon completion of `publish` workflow run:
36+
workflow_run:
37+
workflows: ["publish"]
38+
types: [completed]
39+
3540
# Workflow jobs:
3641
jobs:
3742

@@ -84,7 +89,7 @@ jobs:
8489
8590
# Send status to Slack channel if job fails:
8691
- name: 'Send status to Slack channel in case of failure'
87-
uses: act10ns/slack@v1
92+
uses: act10ns/slack@v2
8893
with:
8994
status: ${{ job.status }}
9095
steps: ${{ toJson(steps) }}

‎.github/workflows/test_bundles.yml

Copy file name to clipboardExpand all lines: .github/workflows/test_bundles.yml
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ jobs:
8888
8989
# Send notification to Slack channel if job fails:
9090
- name: 'Send status to Slack channel in case of failure'
91-
uses: act10ns/slack@v1
91+
uses: act10ns/slack@v2
9292
with:
9393
status: ${{ job.status }}
9494
steps: ${{ toJson(steps) }}
@@ -130,7 +130,7 @@ jobs:
130130
131131
# Send notification to Slack channel if job fails:
132132
- name: 'Send status to Slack channel in case of failure'
133-
uses: act10ns/slack@v1
133+
uses: act10ns/slack@v2
134134
with:
135135
status: ${{ job.status }}
136136
steps: ${{ toJson(steps) }}
@@ -172,7 +172,7 @@ jobs:
172172
173173
# Send notification to Slack channel if job fails:
174174
- name: 'Send status to Slack channel in case of failure'
175-
uses: act10ns/slack@v1
175+
uses: act10ns/slack@v2
176176
with:
177177
status: ${{ job.status }}
178178
steps: ${{ toJson(steps) }}

‎.github/workflows/test_coverage.yml

Copy file name to clipboardExpand all lines: .github/workflows/test_coverage.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ jobs:
106106
107107
# Send Slack notification if job fails:
108108
- name: 'Send status to Slack channel in case of failure'
109-
uses: act10ns/slack@v1
109+
uses: act10ns/slack@v2
110110
with:
111111
status: ${{ job.status }}
112112
steps: ${{ toJson(steps) }}

‎.github/workflows/test_install.yml

Copy file name to clipboardExpand all lines: .github/workflows/test_install.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575

7676
# Send Slack notification if job fails:
7777
- name: 'Send notification to Slack in case of failure'
78-
uses: act10ns/slack@v1
78+
uses: act10ns/slack@v2
7979
with:
8080
status: ${{ job.status }}
8181
steps: ${{ toJson(steps) }}

‎.gitignore

Copy file name to clipboardExpand all lines: .gitignore
+4Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,7 @@ jsconfig.json
182182
################
183183
*.sublime-workspace
184184
*.sublime-project
185+
186+
# Other editor files #
187+
######################
188+
.idea/

‎CONTRIBUTORS

Copy file name to clipboardExpand all lines: CONTRIBUTORS
+14-5Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,37 @@
33
# Contributors listed in alphabetical order.
44

55
Ali Salesi <ali_sal1381@yahoo.com>
6+
Amit Jimiwal <amitjimiwal45@gmail.com>
67
Athan Reines <kgryte@gmail.com>
78
Brendan Graetz <bguiz@users.noreply.github.com>
89
Bruno Fenzl <brunofenzl@gmail.com>
910
Christopher Dambamuromo <chridam@gmail.com>
11+
Dan Rose <danoftheroses@gmail.com>
1012
Dominik Moritz <domoritz@gmail.com>
13+
Dorrin Sotoudeh <dorrinsotoudeh123@gmail.com>
1114
Frank Kovacs <fran70kk@gmail.com>
12-
James <jdgelok@gmail.com>
15+
Harshita Kalani <harshitakalani02@gmail.com>
16+
James Gelok <jdgelok@gmail.com>
1317
Jithin KS <jithinks112@gmail.com>
1418
Joey Reed <joeyrreed@gmail.com>
19+
Jordan Gallivan <115050475+Jordan-Gallivan@users.noreply.github.com>
1520
Joris Labie <joris.labie1@gmail.com>
1621
Justin Dennison <justin1dennison@gmail.com>
17-
Marcus <mfantham@users.noreply.github.com>
22+
Marcus Fantham <mfantham@users.noreply.github.com>
1823
Matt Cochrane <matthew.cochrane.eng@gmail.com>
1924
Milan Raj <rajsite@users.noreply.github.com>
2025
Momtchil Momtchev <momtchil@momtchev.com>
26+
Naresh Jagadeesan <naresh.naresh000@gmail.com>
27+
Nithin Katta <88046362+nithinkatta@users.noreply.github.com>
2128
Ognjen Jevremović <ognjenjevremovic@users.noreply.github.com>
2229
Philipp Burckhardt <pburckhardt@outlook.com>
23-
Pranav <85227306+Pranavchiku@users.noreply.github.com>
30+
Pranav Goswami <goswami.4@iitj.ac.in>
2431
Ricky Reusser <rsreusser@gmail.com>
32+
Roman Stetsyk <25715951+romanstetsyk@users.noreply.github.com>
2533
Ryan Seal <splrk@users.noreply.github.com>
2634
Seyyed Parsa Neshaei <spneshaei@users.noreply.github.com>
2735
Shraddheya Shendre <shendreshraddheya@gmail.com>
2836
Stephannie Jiménez Gacha <steff456@hotmail.com>
29-
dorrin-sot <59933477+dorrin-sot@users.noreply.github.com>
30-
rei2hu <rei2hu@users.noreply.github.com>
37+
Yernar Yergaziyev <yernar.yergaziyev@erg.kz>
38+
orimiles5 <97595296+orimiles5@users.noreply.github.com>
39+
rei2hu <reimu@reimu.ws>

‎README.md

Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ json = typedarray2json( arr );
272272

273273
## See Also
274274

275-
- <span class="package-name">[`@stdlib/array/reviver`][@stdlib/array/reviver]</span><span class="delimiter">: </span><span class="description">revive a JSON-serialized typed array.</span>
275+
- <span class="package-name">[`@stdlib/array-reviver`][@stdlib/array/reviver]</span><span class="delimiter">: </span><span class="description">revive a JSON-serialized typed array.</span>
276276

277277
</section>
278278

@@ -331,7 +331,7 @@ Copyright &copy; 2016-2023. The Stdlib [Authors][stdlib-authors].
331331
-->
332332

333333
[chat-image]: https://img.shields.io/gitter/room/stdlib-js/stdlib.svg
334-
[chat-url]: https://gitter.im/stdlib-js/stdlib/
334+
[chat-url]: https://app.gitter.im/#/room/#stdlib-js_stdlib:gitter.im
335335

336336
[stdlib]: https://github.com/stdlib-js/stdlib
337337

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.