From fca1f362083d8c588c016e85811cdcb5dbdf5215 Mon Sep 17 00:00:00 2001 From: Pete Januszewski Date: Tue, 19 Sep 2023 15:23:52 -0400 Subject: [PATCH 1/4] removed looking_glass_performance_tests.yaml --- .../looking_glass_performance_tests.yaml | 167 ------------------ 1 file changed, 167 deletions(-) delete mode 100644 .github/workflows/looking_glass_performance_tests.yaml diff --git a/.github/workflows/looking_glass_performance_tests.yaml b/.github/workflows/looking_glass_performance_tests.yaml deleted file mode 100644 index 59416fba42..0000000000 --- a/.github/workflows/looking_glass_performance_tests.yaml +++ /dev/null @@ -1,167 +0,0 @@ -name: Looking Glass performance tests -on: - push: - branches: - - main - workflow_dispatch: - inputs: - current_hash_input: - description: 'The new commit to evaluate (optional)' - required: false - type: string - previous_hash_input: - description: 'The previous commit to evaluate (optional)' - required: false - type: string -jobs: - performance_tests: - name: Looking Glass performance tests - py38 - ${{ matrix.test_type }} - runs-on: ubuntu-latest - strategy: - fail-fast: true - matrix: - test_type: ["pandas", "dask", "spark"] - env: - AWS_ACCESS_KEY_ID: ${{ secrets.LG_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.LG_AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: 'us-east-1' - AWS_SESSION_TOKEN: "" - steps: - - name: Checkout Featuretools - uses: actions/checkout@v3 - with: - repository: 'alteryx/featuretools' - fetch-depth: 2 - - name: Get current commit hash - id: get_current_hash - run: | - if [ -z "${{ inputs.current_hash_input }}" ] - then - current_hash=$(git rev-parse --short HEAD) - else - current_hash=${{ inputs.current_hash_input }} - fi - echo "Latest commit hash: $current_hash" - echo "::set-output name=current_hash::$current_hash" - - name: Get previous commit hash - id: get_previous_hash - run: | - if [ -z "${{ inputs.previous_hash_input }}" ] - then - previous_hash=$(git rev-parse --short HEAD~1) - else - previous_hash=${{ inputs.previous_hash_input }} - fi - echo "Previous commit hash: $previous_hash" - echo "::set-output name=previous_hash::$previous_hash" - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: "3.8" - - name: Checkout looking glass - uses: actions/checkout@v3 - with: - repository: 'alteryx/looking-glass' - ref: master - token: ${{ secrets.LOOKING_GLASS_TOKEN }} - - name: Installing Dependencies - run: | - make installdeps - make installdeps-test - - name: Run performance test (current) - id: current - run: | - response=$( looking-glass run-featuretools-entitysets --username featuretools-github-lg-user --scenarios-yaml entityset_scenarios_${{ matrix.test_type }}.yaml --featuretools-branch ${{ steps.get_current_hash.outputs.current_hash }} --job-desc ${{ steps.get_current_hash.outputs.current_hash }} ) - echo "::set-output name=job_id::$(echo $response | sed 's/.*Job ID: \([^ ]*\).*/\1/')" - - name: Run performance test (previous) - id: previous - run: | - response=$( looking-glass run-featuretools-entitysets --username featuretools-github-lg-user --scenarios-yaml entityset_scenarios_${{ matrix.test_type }}.yaml --featuretools-branch ${{ steps.get_previous_hash.outputs.previous_hash }} --job-desc ${{ steps.get_previous_hash.outputs.previous_hash }} ) - echo "::set-output name=job_id::$(echo $response | sed 's/.*Job ID: \([^ ]*\).*/\1/')" - - name: Await results - id: results - run: | - for id in ${{ steps.current.outputs.job_id }} ${{ steps.previous.outputs.job_id }}; do - echo "Waiting for job id: $id" - result='' - sleep_time=0 - while [ -z "$result" ] - do - sleep $sleep_time - result=$(looking-glass get-job --job-id $id | grep -n 'COMPLETED' || :;) - sleep_time=60 - done - looking-glass get-results --job-id $id --file-path $id - done - shell: bash - - name: Generate reports - run: | - filename_base=${{ steps.get_current_hash.outputs.current_hash }}_v_${{ steps.get_previous_hash.outputs.previous_hash }}_${{ matrix.test_type }} - looking-glass run-local-report --previous-path ${{ steps.previous.outputs.job_id }} -n ${{ steps.current.outputs.job_id }} --output-name ${filename_base} --output-type html - - name: Upload reports to S3 - id: s3_upload - run: | - filename_base=${{ steps.get_current_hash.outputs.current_hash }}_v_${{ steps.get_previous_hash.outputs.previous_hash }}_${{ matrix.test_type }} - url=s3://featuretools-performance-results/${filename_base}.html - aws s3 cp ./${filename_base}.html $url - echo "::set-output name=report_url::$url" - echo "Featuretools Report: $url" - - name: Notify on Slack - run: | - filename_base=${{ steps.get_current_hash.outputs.current_hash }}_v_${{ steps.get_previous_hash.outputs.previous_hash }}_${{ matrix.test_type }} - presigned_url=$( aws s3 presign ${{ steps.s3_upload.outputs.report_url }} --expires-in 604800 ) - response=$( - curl -X POST https://slack.com/api/chat.postMessage -H 'Content-type: application/json;charset=UTF-8' -H 'Authorization: Bearer ${{ secrets.LG_SLACK_TOKEN }}' \ - --data-binary @- << EOF - { - "channel": "CSCENDGLQ", - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "${{ matrix.test_type }} performance tests for commit ${{ steps.get_current_hash.outputs.current_hash }} on Featuretools are complete" - } - }, - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "*Author*: ${{ github.event.head_commit.author.name }}" - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Current Commit*: " - }, - { - "type": "mrkdwn", - "text": "*Previous Commit*: " - }, - { - "type": "mrkdwn", - "text": "*Current Job*: ${{ steps.current.outputs.job_id }}" - }, - { - "type": "mrkdwn", - "text": "*Previous Job*: ${{ steps.previous.outputs.job_id }}" - }, - ] - }, - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "*Report*: <$presigned_url|${{ steps.s3_upload.outputs.report_url }}>" - } - }, - ] - } - EOF - ) - echo $response - ts=$(echo $response | jq .ts) - curl -F "file=@${filename_base}.html" -F channels=CSCENDGLQ -F 'thread_ts=$ts' -H 'Authorization: Bearer ${{ secrets.LG_SLACK_TOKEN }}' https://slack.com/api/files.upload From ebda5f2f8d5693461a201273cac5345aa20a0838 Mon Sep 17 00:00:00 2001 From: Pete Januszewski Date: Tue, 19 Sep 2023 15:25:49 -0400 Subject: [PATCH 2/4] updated release notes --- docs/source/release_notes.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/release_notes.rst b/docs/source/release_notes.rst index 6a0c339c5d..92229543b0 100644 --- a/docs/source/release_notes.rst +++ b/docs/source/release_notes.rst @@ -18,6 +18,7 @@ Future Release * Update readthedocs config to use build.os (:pr:`2601`) * Testing Changes * Update airflow looking glass performance tests workflow (:pr:`2615`) + * Removed old performance testing workflow (:pr:`2620`) Thanks to the following people for contributing to this release: :user:`gsheni`, :user:`thehomebrewnerd`, :user:`petejanuszewski1`, :user:`tosemml` From 43a51c3d6cb8b329a60fa51c6ccd91403fce7e38 Mon Sep 17 00:00:00 2001 From: Pete Januszewski Date: Wed, 20 Sep 2023 09:35:17 -0400 Subject: [PATCH 3/4] pinned holidays<0.33 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 04a2b55863..420c54dc3a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ license = {text = "BSD 3-clause"} requires-python = ">=3.8,<4" dependencies = [ "cloudpickle >= 1.5.0", - "holidays >= 0.13", + "holidays < 0.33", "numpy >= 1.21.0", "packaging >= 20.0", "pandas >= 1.5.0", From 69078c9b247137dff03a86d4e94b60ef4fc9fd22 Mon Sep 17 00:00:00 2001 From: Pete Januszewski Date: Wed, 20 Sep 2023 09:55:03 -0400 Subject: [PATCH 4/4] added min version back to holiday --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 420c54dc3a..31ddb355d9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ license = {text = "BSD 3-clause"} requires-python = ">=3.8,<4" dependencies = [ "cloudpickle >= 1.5.0", - "holidays < 0.33", + "holidays >= 0.13, < 0.33", "numpy >= 1.21.0", "packaging >= 20.0", "pandas >= 1.5.0",