Skip to content

perf: Reduce Outlook Calendar & Availability Response Size#10570

Merged
emrysal merged 3 commits intomainfrom
perf/reduce-outlook-response
Aug 10, 2023
Merged

perf: Reduce Outlook Calendar & Availability Response Size#10570
emrysal merged 3 commits intomainfrom
perf/reduce-outlook-response

Conversation

@joeauyeung
Copy link
Copy Markdown
Contributor

What does this PR do?

  • Getting availabilities
    In this example, for three events, the JSON size was reduced from 5kb to 1kb (80% reduction). This improvement is multiplied if we consider team events that pull from multiple calendars.

Listing calendars

  • In this example, for ten calendars, the JSON size was reduced from 7.7kb to 2.9 kb (63% reduction).

Fixes # (issue)

Requirement/Documentation

  • If there is a requirement document, please, share it here.
  • If there is ab UI/UX design document, please, share it here.

Type of change

  • Chore (refactoring code, technical debt, workflow improvements)

How should this be tested?

  • Are there environment variables that should be set?

  • What are the minimal test data to have?

  • What is expected (happy path) to have (input and output)?

  • Any other important info that could help to test that PR

  • Connect an Outlook calendar

  • On the calendars page, your Outlook calendars should be loaded

  • Create events on the Outlook calendar

  • When trying to create a booking, those slots should be blocked off

Mandatory Tasks

  • Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.

Checklist

  • I haven't added tests that prove my fix is effective or that my feature works
  • I haven't checked if new and existing unit tests pass locally with my changes

@vercel
Copy link
Copy Markdown

vercel Bot commented Aug 3, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
api ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 3, 2023 3:49pm
cal-demo ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 3, 2023 3:49pm
dev ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 3, 2023 3:49pm
3 Ignored Deployments
Name Status Preview Comments Updated (UTC)
cal ⬜️ Ignored (Inspect) Visit Preview Aug 3, 2023 3:49pm
qa ⬜️ Ignored (Inspect) Visit Preview Aug 3, 2023 3:49pm
ui ⬜️ Ignored (Inspect) Visit Preview Aug 3, 2023 3:49pm

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Aug 3, 2023

Thank you for following the naming conventions! 🙏

@alwaysmeticulous
Copy link
Copy Markdown

alwaysmeticulous Bot commented Aug 3, 2023

🤖 Meticulous spotted visual differences in 59 of 138 screens tested: view and approve differences detected.

Last updated for commit 9a2ae4a. This comment will update as new commits are pushed.

@zomars zomars added the core area: core, team members only label Aug 3, 2023
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Aug 3, 2023

📦 Next.js Bundle Analysis for @calcom/web

This analysis was generated by the Next.js Bundle Analysis action. 🤖

Three Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load % of Budget (350 KB)
/_error 28.32 KB 182.25 KB 52.07% (🟢 -4.94%)
/settings/teams/[id]/members 378.89 KB 532.82 KB 152.24% (🟢 -0.24%)
/settings/teams/[id]/profile 448.12 KB 602.06 KB 172.02% (🟢 -0.29%)
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

The "Budget %" column shows what percentage of your performance budget the First Load total takes up. For example, if your budget was 100kb, and a given page's first load size was 10kb, it would be 10% of your budget. You can also see how much this has increased or decreased compared to the base branch of your PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this. If you see "+/- <0.01%" it means that there was a change in bundle size, but it is a trivial enough amount that it can be ignored.

@deploysentinel
Copy link
Copy Markdown

deploysentinel Bot commented Aug 3, 2023

Current Playwright Test Results Summary

✅ 115 Passing - ⚠️ 2 Flaky

Run may still be in progress, this comment will be updated as current testing workflow or job completes...

(Last updated on 08/03/2023 04:00:14pm UTC)

Run Details

Running Workflow PR Update on Github Actions

Commit: 9a2ae4a

Started: 08/03/2023 03:55:46pm UTC

⚠️ Flakes

📄   apps/web/playwright/booking-pages.e2e.ts • 1 Flake

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
pro user can reschedule a booking
Retry 1Initial Attempt
0.34% (1) 1 / 295 run
failed over last 7 days
8.47% (25) 25 / 295 runs
flaked over last 7 days

📄   packages/embeds/embed-core/playwright/tests/action-based.e2e.ts • 1 Flake

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Popup Tests should be able to reschedule
Retry 1Initial Attempt
2.03% (6) 6 / 295 runs
failed over last 7 days
95.93% (283) 283 / 295 runs
flaked over last 7 days

View Detailed Build Results


Copy link
Copy Markdown
Contributor

@emrysal emrysal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't forget to assign reviewers 🙏 - looks good to me.

@emrysal emrysal merged commit 2de5f57 into main Aug 10, 2023
@emrysal emrysal deleted the perf/reduce-outlook-response branch August 10, 2023 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core area: core, team members only

Projects

No open projects
Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants