diff --git a/.github/.keepalive b/.github/.keepalive index 2eda432..010f0bc 100644 --- a/.github/.keepalive +++ b/.github/.keepalive @@ -1 +1 @@ -2024-11-01T04:27:15.089Z +2024-12-01T04:32:41.564Z diff --git a/.github/workflows/test_published_package.yml b/.github/workflows/test_published_package.yml new file mode 100644 index 0000000..1e021e4 --- /dev/null +++ b/.github/workflows/test_published_package.yml @@ -0,0 +1,105 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# Workflow name: +name: test_published_package + +# Workflow triggers: +on: + # Run workflow on a weekly schedule: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '39 15 * * 3' + + # Run workflow upon completion of `publish` workflow run: + workflow_run: + workflows: ["publish"] + types: [completed] + + # Allow workflow to be manually run: + workflow_dispatch: + +# Workflow jobs: +jobs: + test-published: + # Define a display name: + name: 'Test running examples of published package' + + # Define the type of virtual host machine: + runs-on: ubuntu-latest + + # Define environment variables: + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + + # Run workflow job if `publish` workflow run is successful or when the workflow is manually run: + if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} + + # Define the job's steps: + steps: + # Checkout the repository: + - name: 'Checkout repository' + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + + # Install Node.js: + - name: 'Install Node.js' + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 + with: + node-version: 20 + timeout-minutes: 5 + + # Create test directory and run examples: + - name: 'Create test directory and run examples' + run: | + cd .. + mkdir test-published + cd test-published + + # Copy example file: + cp $GITHUB_WORKSPACE/examples/index.js . + + # Create a minimal package.json + echo '{ + "name": "test-published", + "version": "1.0.0", + "main": "index.js", + "dependencies": {} + }' > package.json + + # Get package name and modify example file: + PACKAGE_NAME=$(jq -r '.name' $GITHUB_WORKSPACE/package.json) + ESCAPED_PACKAGE_NAME=$(echo "$PACKAGE_NAME" | sed 's/[\/&]/\\&/g') + + sed -i "s/require( '.\/..\/lib' )/require( '$ESCAPED_PACKAGE_NAME' )/g" index.js + + # Extract and install dependencies: + DEPS=$(grep -oP "require\(\s*'([^']+)'\s*\)" index.js | sed "s/require(\s*'//" | sed "s/'\s*)//" | grep -v "^\.") + for dep in $DEPS; do + npm install $dep --save + done + + # Run the example: + node index.js + + # Send Slack notification if job fails: + - name: 'Send notification to Slack in case of failure' + uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 + with: + status: ${{ job.status }} + channel: '#npm-ci' + if: failure() diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c9f811c..a8d0bb6 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3,7 +3,7 @@ # Contributors listed in alphabetical order. Aayush Khanna -AbhijitRaut04 <121740684+AbhijitRaut04@users.noreply.github.com> +Abhijit Raut Adarsh Palaskar Aditya Sapra AgPriyanshu18 <113460573+AgPriyanshu18@users.noreply.github.com> @@ -44,21 +44,22 @@ Joey Reed Jordan Gallivan <115050475+Jordan-Gallivan@users.noreply.github.com> Joris Labie Justin Dennison -Kaif Mohd Karthik Prakash <116057817+skoriop@users.noreply.github.com> Khaldon Kohantika Nath <145763549+kohantikanath@users.noreply.github.com> Krishnendu Das <86651039+itskdhere@users.noreply.github.com> +Kshitij-Dale <152467202+Kshitij-Dale@users.noreply.github.com> Lovelin <100030865+lovelindhoni@users.noreply.github.com> Manik Sharma Marcus Fantham Matt Cochrane Mihir Pandit <129577900+MSP20086@users.noreply.github.com> Milan Raj -Mohammad Kaif <98884589+Kaif987@users.noreply.github.com> +Mohammad Kaif Momtchil Momtchev Muhammad Haris Naresh Jagadeesan +Neeraj Pathak NightKnight Nithin Katta <88046362+nithinkatta@users.noreply.github.com> Nourhan Hasan <109472010+TheNourhan@users.noreply.github.com> @@ -69,6 +70,7 @@ Prajwal Kulkarni Pranav Goswami Praneki <97080887+PraneGIT@users.noreply.github.com> Pratik <97464067+Pratik772846@users.noreply.github.com> +Pratyush Kumar Chouhan Priyansh <88396544+itsspriyansh@users.noreply.github.com> Pushpendra Chandravanshi RISHAV <115060907+rishav2404@users.noreply.github.com> @@ -79,9 +81,12 @@ Ridam Garg <67867319+RidamGarg@users.noreply.github.com> Robert Gislason Roman Stetsyk <25715951+romanstetsyk@users.noreply.github.com> Rutam <138517416+performant23@users.noreply.github.com> +Ruthwik Chikoti <145591715+ruthwikchikoti@users.noreply.github.com> Ryan Seal +Rylan Yang <137365285+rylany27@users.noreply.github.com> Sai Srikar Dumpeti <80447788+the-r3aper7@users.noreply.github.com> SarthakPaandey <145528240+SarthakPaandey@users.noreply.github.com> +Saurabh Singh Seyyed Parsa Neshaei Shashank Shekhar Singh Shivam <11shivam00@gmail.com> @@ -102,6 +107,7 @@ Utkarsh Raj UtkershBasnet <119008923+UtkershBasnet@users.noreply.github.com> Vaibhav Patel <98279986+noobCoderVP@users.noreply.github.com> Varad Gupta +Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Xiaochuan Ye Yernar Yergaziyev naveen diff --git a/package.json b/package.json index 44698e9..8858d6a 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@stdlib/math-base-special-abs": "^0.2.2", "@stdlib/stats-incr-mmean": "^0.2.2", "@stdlib/string-format": "^0.2.2", - "@stdlib/types": "^0.4.1", + "@stdlib/types": "^0.4.3", "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": {