Page MenuHomePhabricator

Peter (Peter Hedenskog)
Software Engineer, Wikimedia Foundation

Projects (10)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Saturday

  • Clear sailing ahead.

User Details

User Since
Aug 17 2015, 6:48 PM (483 w, 3 d)
Availability
Available
IRC Nick
phedenskog
LDAP User
Unknown
MediaWiki User
PHedenskog (WMF) [ Global Accounts ]

Recent Activity

Today

Peter created T380467: Collect metrics from patch demo.
Thu, Nov 21, 12:20 PM · Catalyst (PatchDemo)
Peter awarded T380391: Test platform learning club a Yellow Medal token.
Thu, Nov 21, 6:18 AM · User-zeljkofilipin

Yesterday

Peter added a comment to T372795: [Bug] (k8s and vm) long load time between clicking the "Create Demo" button and going to the install progress prage.

I'm wondering if flush() directly in the code (yes it will make it uglier) can make the page start to render earlier? It seems like it's still a lot of time before the browser starts to consider to render the page and I'm thinking that is because the server holds the on to the data?

Wed, Nov 20, 1:44 PM · Catalyst (Code Spa)
Peter added a parent task for T380335: Request creation of "mediawiki-quickstart" VPS project: T379222: Setup CI for quickstart.
Wed, Nov 20, 9:00 AM · MediaWiki-Quickstart, User-zeljkofilipin, Cloud-VPS (Project-requests)
Peter added a subtask for T379222: Setup CI for quickstart: T380335: Request creation of "mediawiki-quickstart" VPS project.
Wed, Nov 20, 8:59 AM · Test-Platform (Essential Work), MediaWiki-Quickstart
Peter added a comment to T380012: Add recalculate style alerts.

I added dashboards but not the actual alerts for this yesterday for the English Wikipedia. The thresholds stopped me. Like we probably do not want to alert on just 1 element increase recalculate style. I think an approach would be that if we have a significant change both in number of elements and in time spent in recalculate time, we fire an alert. I can add that later this week.

Wed, Nov 20, 8:37 AM · Synthetic-Performance-Testing, Test-Platform (Essential Work)
Peter created T380342: Rethinking our performance alert setup.
Wed, Nov 20, 8:36 AM · Synthetic-Performance-Testing

Mon, Nov 18

Peter added a comment to T380012: Add recalculate style alerts.

I did a quick check and those metrics are already used in the calculations, so it just a matter of setting up the dashboard. Then you can choose between what's categorised as a small/medium/large regression, it is easier to tune.. Let me setup an example and then we can have a look.

Mon, Nov 18, 5:09 PM · Synthetic-Performance-Testing, Test-Platform (Essential Work)
Peter added a comment to T380012: Add recalculate style alerts.

Let me see if we can use the metrics with Mann Whitney U, then we don't need to set a limit. I'll have look tomorrow and get back.

Mon, Nov 18, 3:37 PM · Synthetic-Performance-Testing, Test-Platform (Essential Work)
Peter added a comment to T378919: JavaScript increase desktop and mobile 2024-10-28 .

For the late loading of banners, the performance team did a study 2019 how it affects user satisfaction: https://techblog.wikimedia.org/2019/06/13/performance-perception-the-effect-of-late-loading-banners/

Mon, Nov 18, 3:11 PM · Performance Issue, MediaWiki-extensions-CentralNotice, WMDE-FUN-Funban-2024, WMDE-FUN-Team, WMDE-Fundraising-Tech, Web-Team-Backlog
Peter placed T372990: Setup a new performance device lab up for grabs.
Mon, Nov 18, 7:52 AM · Quality-and-Test-Engineering-Team, Performance-Device-Lab, Synthetic-Performance-Testing
Peter closed T360898: Investigate unstable metrics in our direct tests as Resolved.

This has been resolved, metrics looks ok.

Mon, Nov 18, 7:52 AM · Synthetic-Performance-Testing
Peter closed T214460: Add synthetic testing for editing process (save timing) as Declined.

Lets T373172 decide which user journeys that will be implemented.

Mon, Nov 18, 7:48 AM · Wikimedia-Performance-recommendation, Synthetic-Performance-Testing
Peter closed T214460: Add synthetic testing for editing process (save timing), a subtask of T255502: Goal: Save Timing median back under 1 second, as Declined.
Mon, Nov 18, 7:48 AM · MediaWiki-Platform-Team
Peter closed T365422: Add report to .gitignore as Resolved.

This has already been done!

Mon, Nov 18, 7:39 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter closed T379524: Upgrade NodeJS to latest LTS as Resolved.
Mon, Nov 18, 7:36 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter edited projects for T365422: Add report to .gitignore, added: Test-Platform (Essential Work); removed Quality-and-Test-Engineering-Team (Test Infrastructure).
Mon, Nov 18, 7:09 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter reopened T379524: Upgrade NodeJS to latest LTS as "Open".

I still need to to update the server version, let me do that today.

Mon, Nov 18, 7:08 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework

Fri, Nov 15

Peter triaged T360898: Investigate unstable metrics in our direct tests as Low priority.
Fri, Nov 15, 1:14 PM · Synthetic-Performance-Testing
Peter closed T371661: Too late last visual change on emulated mobile as Declined.

I think we don't need to spend time on this. It's not perfect but lets keep it as is.

Fri, Nov 15, 1:12 PM · Synthetic-Performance-Testing
Peter closed T355238: Performance Team Alerts: DatasourceNoData unsilencing forthcoming, a subtask of T317887: Upgrade to Grafana 9, as Resolved.
Fri, Nov 15, 1:11 PM · SRE Observability (FY2023/2024-Q3), Observability-Metrics
Peter closed T355238: Performance Team Alerts: DatasourceNoData unsilencing forthcoming as Resolved.

These are fixed.

Fri, Nov 15, 1:11 PM · Synthetic-Performance-Testing
Peter closed T370348: Document the setup as Resolved.

It's documented in https://wikitech.wikimedia.org/wiki/Performance/Synthetic_testing/OnDemandTesting

Fri, Nov 15, 1:10 PM · Documentation, Synthetic-Performance-Testing, Performance-Device-Lab
Peter closed T370348: Document the setup, a subtask of T285203: On-demand performance testing, as Resolved.
Fri, Nov 15, 1:10 PM · Synthetic-Performance-Testing, Performance-Device-Lab
Peter closed T345795: Investigate higher CPU benchmark stdev on the bare metal server for WebPageReplay tests as Resolved.

This is not an issue anymore

Fri, Nov 15, 1:08 PM · Quality-and-Test-Engineering-Team, Synthetic-Performance-Testing
Peter closed T327237: Add documentation on how to dig into Chrome/Firefox performance tab looking at traces as Resolved.

I think we should point to others documentation. Here's another good thing on how to annotate traces: https://developer.chrome.com/blog/devtools-annotations

Fri, Nov 15, 1:04 PM · Synthetic-Performance-Testing, Documentation
Peter closed T344961: "browsertime-alerts" and "webpagereplay" alerts: DatasourceNoData and DatasourceError silenced as Resolved.

I think those has been fixed right?

Fri, Nov 15, 1:01 PM · Quality-and-Test-Engineering-Team, Synthetic-Performance-Testing, Observability-Alerting
Peter closed T344961: "browsertime-alerts" and "webpagereplay" alerts: DatasourceNoData and DatasourceError silenced, a subtask of T317887: Upgrade to Grafana 9, as Resolved.
Fri, Nov 15, 1:00 PM · SRE Observability (FY2023/2024-Q3), Observability-Metrics
Peter closed T327238: Document how to run compare performance between two different versions of a page as Resolved.

This has been added to the on demand testing documentation.

Fri, Nov 15, 1:00 PM · Synthetic-Performance-Testing, Documentation
Peter closed T284470: Measure search suggestions from portal page as Declined.

Lets this be a part of the user journey creation if this one is prio.

Fri, Nov 15, 12:56 PM · Synthetic-Performance-Testing
Peter closed T285203: On-demand performance testing as Resolved.

This is implemented (except the device lab part).

Fri, Nov 15, 12:41 PM · Synthetic-Performance-Testing, Performance-Device-Lab
Peter changed the status of T285203: On-demand performance testing from Stalled to In Progress.
Fri, Nov 15, 12:39 PM · Synthetic-Performance-Testing, Performance-Device-Lab
Peter placed T373172: Create performance tests for our most important user journeys up for grabs.
Fri, Nov 15, 12:38 PM · Web-Team, Synthetic-Performance-Testing
Peter closed T324096: Largest contentful paint for the video stopped worked on emulated mobile test with the banner as Declined.

I think this is because we end the test too early. We also run some banners with a 7.5 second delay.

Fri, Nov 15, 12:37 PM · Synthetic-Performance-Testing
Peter closed T314841: Add alert for missing en.m.wikipedia data from CrUX as Resolved.

I added the alerts when Google fixed their things.

Fri, Nov 15, 12:35 PM · Synthetic-Performance-Testing
Peter closed T307984: Sync TTFB/CPU benchmark for synthetic tests with data from the Chrome User Experience report and our own reporting as Declined.

This works ok and lets not spend any time to do this now.

Fri, Nov 15, 12:33 PM · Synthetic-Performance-Testing, NavigationTiming
Peter closed T302338: Try out run edit tests on test.wikipedia.org as Declined.
Fri, Nov 15, 12:32 PM · Synthetic-Performance-Testing
Peter updated the task description for T285203: On-demand performance testing.
Fri, Nov 15, 12:30 PM · Synthetic-Performance-Testing, Performance-Device-Lab
Peter changed the status of T285203: On-demand performance testing from Open to Stalled.
Fri, Nov 15, 12:28 PM · Synthetic-Performance-Testing, Performance-Device-Lab
Peter closed T332537: LCP from video and API is a missmatch as Invalid.

I created https://github.com/sitespeedio/browsertime/issues/2198 for this issue, I think we can close our version

Fri, Nov 15, 12:27 PM · Upstream, Synthetic-Performance-Testing
Peter closed T279615: Increased first visual change when searching on Obama using the search page mobile as Declined.
Fri, Nov 15, 12:25 PM · Wikimedia-Performance-recommendation, Synthetic-Performance-Testing
Peter closed T267384: Fix broken synthetic test for search as Declined.

These tests has been removed.

Fri, Nov 15, 9:13 AM · Synthetic-Performance-Testing
Peter closed T272860: Fix correct decimals and not to show null values in WebPageReplay dashboards as Resolved.
Fri, Nov 15, 9:10 AM · Synthetic-Performance-Testing
Peter closed T253251: Create synthetic test that measures impact of NavigationTiming activation as Declined.

I don't think is prio.

Fri, Nov 15, 9:09 AM · Synthetic-Performance-Testing, EngProd-Virtual-Hackathon
Peter closed T252506: Out of disk space on wpt-graphite.wmftest.org as Resolved.

We have much more space now running Graphite in a bare metal server.

Fri, Nov 15, 9:08 AM · Synthetic-Performance-Testing
Peter closed T248972: Try out Band-pass filtering and IQR Filtering for performance metrics as Declined.
Fri, Nov 15, 9:08 AM · Synthetic-Performance-Testing
Peter closed T246416: Implement alerts for user journeys as Invalid.

This is the same as T373172

Fri, Nov 15, 9:07 AM · Synthetic-Performance-Testing
Peter closed T239472: Instrument number of processes running on the WebPageReplay servers as Declined.

This is not an issue now with the bare metal servers where we have full control.

Fri, Nov 15, 9:05 AM · observability, Synthetic-Performance-Testing
Peter triaged T234867: Easier dropdown menu and metric path for WPT/WPR Grafana dashboards as Low priority.
Fri, Nov 15, 9:04 AM · Synthetic-Performance-Testing
Peter closed T233803: Really late Last Visual Change for some URLs on emulated mobile WebPageReplay as Resolved.

This has been fixed over time. I don't know exactly when but its not occurring now.

Fri, Nov 15, 9:04 AM · Synthetic-Performance-Testing
Peter closed T233789: Investigate inconsistent server response time in WebPageReplay as Resolved.

This has been fixed when we moved to bare metal server tests.

Fri, Nov 15, 9:03 AM · Synthetic-Performance-Testing
Peter changed the status of T372990: Setup a new performance device lab from Open to Stalled.
Fri, Nov 15, 9:01 AM · Quality-and-Test-Engineering-Team, Performance-Device-Lab, Synthetic-Performance-Testing
Peter created T380012: Add recalculate style alerts.
Fri, Nov 15, 8:12 AM · Synthetic-Performance-Testing, Test-Platform (Essential Work)
Peter triaged T380010: Create best practice documentation for running performance tests as Low priority.
Fri, Nov 15, 7:21 AM · Test-Platform (Essential Work), Documentation, Synthetic-Performance-Testing
Peter created T380010: Create best practice documentation for running performance tests.
Fri, Nov 15, 7:20 AM · Test-Platform (Essential Work), Documentation, Synthetic-Performance-Testing
Peter added a comment to T375152: Investigate Group 1 WebPageReplay alerts 16/9-2024.

@Jdlrobson I agree, I think we can close this as declined and then we can open up a new issue if we see the same with 2022?

Fri, Nov 15, 7:09 AM · Web-Team, Test-Platform (Essential Work), Web-Team-Backlog (FY2024-25 Q2 Sprint 4), Web Team Essential Work 2024, Synthetic-Performance-Testing
Peter added a comment to T379346: Firefox 132 increased first visual change and largest contentful paint.

I've been talking to the Mozilla performance team to try to get some help. This is what I know right now: The regression is only visible when we run tests in a Docker container and only visible in our direct tests. The regression slows down many metrics like for example TTFB, FCP and LCP. However there's no difference in the CPU benchmark.

Fri, Nov 15, 7:06 AM · Test-Platform (Essential Work), Upstream, Synthetic-Performance-Testing

Thu, Nov 14

Peter added a comment to T378919: JavaScript increase desktop and mobile 2024-10-28 .

I've have some input:

Thu, Nov 14, 12:15 PM · Performance Issue, MediaWiki-extensions-CentralNotice, WMDE-FUN-Funban-2024, WMDE-FUN-Team, WMDE-Fundraising-Tech, Web-Team-Backlog
Peter added a comment to T371919: [Spike] Should we exclude banners from our testing?.

Hi, let me know if you want to discuss it! I'll share some thoughts here:

Thu, Nov 14, 11:28 AM · Web-Team
Peter closed T366898: Move crux collection from old webperf (old web performance team) to performance metrics group as Resolved.

This is finally done. The new server crux-metrics.webperformancetest.eqiad1.wikimedia.cloud and documentation has been updated. I have problems with VPS cloud that when I create a new instance, sometimes I cannot login to it. I recreate, the same. I give it a new name, it works! I recreate with the old, it fails. So something going on there, I had the problem before. Need to report it though.

Thu, Nov 14, 10:40 AM · Test-Platform (Essential Work), Quality-and-Test-Engineering-Team (Test Infrastructure), Synthetic-Performance-Testing

Wed, Nov 13

Peter added a comment to T378919: JavaScript increase desktop and mobile 2024-10-28 .

Hi @gabriel-wmde thanks for the investigation. I agree with you that it doesn't look like quick fix and I like your idea that we all need to work together.

Wed, Nov 13, 8:46 AM · Performance Issue, MediaWiki-extensions-CentralNotice, WMDE-FUN-Funban-2024, WMDE-FUN-Team, WMDE-Fundraising-Tech, Web-Team-Backlog
Peter added a comment to T379655: Selenium tests don't stop at `browser.debug()`.

I think this is my fault with the change of removing -it? I'm also thinking it could be fixed by adding an env variable that adds -it to the Selenium container?

Wed, Nov 13, 7:08 AM · User-zeljkofilipin, MediaWiki-Quickstart, Test-Platform (Essential Work)
Peter updated the task description for T379222: Setup CI for quickstart.
Wed, Nov 13, 7:00 AM · Test-Platform (Essential Work), MediaWiki-Quickstart
Peter updated subscribers of T379524: Upgrade NodeJS to latest LTS.

I'm thinking we should wait with that but lets loop in @zeljkofilipin

Wed, Nov 13, 5:36 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework

Tue, Nov 12

Peter added a comment to T379346: Firefox 132 increased first visual change and largest contentful paint.

I also created a bug for the net log on Ubuntu for Firefox that doesn't seem to work.

Tue, Nov 12, 8:03 AM · Test-Platform (Essential Work), Upstream, Synthetic-Performance-Testing
Peter closed T377953: Document synthetic performance alert emails as Resolved.
Tue, Nov 12, 6:31 AM · Test-Platform (Essential Work), Synthetic-Performance-Testing

Mon, Nov 11

Peter created T379556: Increase RAM and storage for webperformancetest.
Mon, Nov 11, 1:46 PM · Cloud-VPS (Quota-requests)
Peter added a comment to T379514: Increase CPUs for webperformancetest.

Thank you!

Mon, Nov 11, 1:40 PM · Cloud-VPS (Quota-requests)
Peter created T379524: Upgrade NodeJS to latest LTS.
Mon, Nov 11, 8:21 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter closed T379516: Increased trace log level for emulated mobile tests as Resolved.
Mon, Nov 11, 5:20 AM · Test-Platform (Essential Work), Synthetic-Performance-Testing
Peter created T379516: Increased trace log level for emulated mobile tests.
Mon, Nov 11, 5:20 AM · Test-Platform (Essential Work), Synthetic-Performance-Testing
Peter added a parent task for T379514: Increase CPUs for webperformancetest: T366898: Move crux collection from old webperf (old web performance team) to performance metrics group.
Mon, Nov 11, 3:45 AM · Cloud-VPS (Quota-requests)
Peter added a subtask for T366898: Move crux collection from old webperf (old web performance team) to performance metrics group: T379514: Increase CPUs for webperformancetest.
Mon, Nov 11, 3:45 AM · Test-Platform (Essential Work), Quality-and-Test-Engineering-Team (Test Infrastructure), Synthetic-Performance-Testing
Peter created T379514: Increase CPUs for webperformancetest.
Mon, Nov 11, 3:45 AM · Cloud-VPS (Quota-requests)
Peter added a project to T366898: Move crux collection from old webperf (old web performance team) to performance metrics group: Test-Platform (Essential Work).
Mon, Nov 11, 3:20 AM · Test-Platform (Essential Work), Quality-and-Test-Engineering-Team (Test Infrastructure), Synthetic-Performance-Testing

Sat, Nov 9

Peter closed T379220: POC: Try running mediawiki-quickstart on GitHub Actions as Resolved.
Sat, Nov 9, 6:26 AM · User-zeljkofilipin, MediaWiki-Quickstart, Test-Platform (Essential Work)
Peter closed T379220: POC: Try running mediawiki-quickstart on GitHub Actions, a subtask of T379222: Setup CI for quickstart, as Resolved.
Sat, Nov 9, 6:26 AM · Test-Platform (Essential Work), MediaWiki-Quickstart

Fri, Nov 8

Peter closed T379411: Remove unneeded '-it' flags from Docker calls as Resolved.

Thanks for the fix, I could see the Selenium tests running now.

Fri, Nov 8, 9:12 PM · Test-Platform (Essential Work), MediaWiki-Quickstart
Peter added a comment to T378919: JavaScript increase desktop and mobile 2024-10-28 .

Hi @gabriel-wmde , sorry for being slow on this. Ok, let me explain the performance tests:

Fri, Nov 8, 4:05 PM · Performance Issue, MediaWiki-extensions-CentralNotice, WMDE-FUN-Funban-2024, WMDE-FUN-Team, WMDE-Fundraising-Tech, Web-Team-Backlog
Peter renamed T379043: Login through Grafana using the login link do not work from Grafana login gives forbidden to Login through Grafana using the login link do not work.
Fri, Nov 8, 3:00 PM · SRE Observability (FY2024/2025-Q2), Grafana, Observability-Metrics
Peter added a comment to T379346: Firefox 132 increased first visual change and largest contentful paint.

I've pinged the Mozilla performance team about it. Checking the changelog for 132 I could see anything obvious.

Fri, Nov 8, 10:15 AM · Test-Platform (Essential Work), Upstream, Synthetic-Performance-Testing
Peter updated the task description for T379346: Firefox 132 increased first visual change and largest contentful paint.
Fri, Nov 8, 10:00 AM · Test-Platform (Essential Work), Upstream, Synthetic-Performance-Testing
Peter created T379346: Firefox 132 increased first visual change and largest contentful paint.
Fri, Nov 8, 9:31 AM · Test-Platform (Essential Work), Upstream, Synthetic-Performance-Testing
Peter closed T375189: Document web performance alerts as Resolved.

I've updated https://wikitech.wikimedia.org/wiki/Performance/Alerts

Fri, Nov 8, 6:45 AM · Documentation, Synthetic-Performance-Testing

Thu, Nov 7

Peter closed T336460: Make it is easy to compare two different URLs as Resolved.

This has been implemented and documented https://wikitech.wikimedia.org/wiki/Performance/Synthetic_testing/Run_a_test

Thu, Nov 7, 9:55 PM · Synthetic-Performance-Testing
Peter updated subscribers of T379220: POC: Try running mediawiki-quickstart on GitHub Actions.

I added two jobs in https://github.com/soulgalore/mediawiki-quickstart-test/actions as a test. @Mhurd and @zeljkofilipin
you are invited. The ci job is stuck on rm permissions. The fresh install seems to work, but lets add some tests to verify it.

Thu, Nov 7, 11:15 AM · User-zeljkofilipin, MediaWiki-Quickstart, Test-Platform (Essential Work)
Peter closed T378926: Add documentation and dashboard links to all performance alerts as Resolved.

All webpagereplay and direct test now links to https://wikitech.wikimedia.org/wiki/Performance/Guides/Regressions

Thu, Nov 7, 11:04 AM · Synthetic-Performance-Testing
Peter added a subtask for T379222: Setup CI for quickstart: T379220: POC: Try running mediawiki-quickstart on GitHub Actions.
Thu, Nov 7, 8:30 AM · Test-Platform (Essential Work), MediaWiki-Quickstart
Peter added a parent task for T379220: POC: Try running mediawiki-quickstart on GitHub Actions: T379222: Setup CI for quickstart.
Thu, Nov 7, 8:30 AM · User-zeljkofilipin, MediaWiki-Quickstart, Test-Platform (Essential Work)
Peter closed T379192: Simplify deploy to production as Resolved.
Thu, Nov 7, 8:30 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter created T379224: Pixel codex errors.
Thu, Nov 7, 7:48 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter added a comment to T379192: Simplify deploy to production.

I made a test release to verify that it really works.

Thu, Nov 7, 7:22 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter updated subscribers of T379192: Simplify deploy to production.

This is done and the documentation is updated. Lets sync with @Mhurd before we communicate with the web team.

Thu, Nov 7, 6:59 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter added a comment to T377914: Create a runbook for Pixel.

@Mhurd I've added sections for updates and revert version, please check when you have time that its correct.

Thu, Nov 7, 6:57 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter updated the task description for T379222: Setup CI for quickstart.
Thu, Nov 7, 6:28 AM · Test-Platform (Essential Work), MediaWiki-Quickstart
Peter created T379222: Setup CI for quickstart.
Thu, Nov 7, 6:26 AM · Test-Platform (Essential Work), MediaWiki-Quickstart
Peter changed the status of T379220: POC: Try running mediawiki-quickstart on GitHub Actions from Open to In Progress.
Thu, Nov 7, 5:21 AM · User-zeljkofilipin, MediaWiki-Quickstart, Test-Platform (Essential Work)
Peter changed the status of T379192: Simplify deploy to production from Open to In Progress.
Thu, Nov 7, 5:20 AM · Test-Platform (Essential Work), Web Team Visual Regression Framework
Peter created T379220: POC: Try running mediawiki-quickstart on GitHub Actions.
Thu, Nov 7, 4:45 AM · User-zeljkofilipin, MediaWiki-Quickstart, Test-Platform (Essential Work)

Wed, Nov 6

Peter created T379192: Simplify deploy to production.
Wed, Nov 6, 7:05 PM · Test-Platform (Essential Work), Web Team Visual Regression Framework