fastify / website

Home Page:https://fastify.dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Benchmarks page

Eomm opened this issue · comments

Migrate the benchmarks web page:

https://www.fastify.io/benchmarks/

image

Challanges

In scope

Sometimes the bench repo doesn't work as shown in the image
Here the broken result file

In this case, we should ignore the results and go back in the file history to get the last valid one. Here a valid file example

This should work to get it:

  • GET /repos/{owner}/{repo}/commits?path={file_path}
  • GET /repos/{owner}/{repo}/git/commits/{commit_sha}
  • GET /repos/{owner}/{repo}/git/blobs/{blob_sha}
  • validate the file or next commit sha

I can work on this

Go for it!

@Eomm is it ok if the implementation is like this:

  1. MDX page downloads the link to data
  2. Checks if data is corrupted
  3. If not, displays the data
  4. If corrupted searches for a version of the file which is ok (max depth of 10)

I'm taking the assumption that the file is unfrequently corrupted and that and history of 10 past revision will provide a valid file.

What do you think about this?

Giving a suggestion for the data visualization: what about this?

MDX page downloads the link to data

The page would be very heavy - we should aim to be a static website (we don't need real time updates). So the mdx page should just show a json, meanwhile the benchmark data are fetched during build time.

So I would expect a script/download-banchmark that produces the json file that will be consumed by the mdx page.

I'm taking the assumption that the file is unfrequently corrupted and that and history of 10 past revision will provide a valid file.

Yes, totally fair to retry max 10 times - otherwise the script will throw an error and the website build will fail

Giving a suggestion for the data visualization: what about this?

I would keep the bar visualization for now

OK, sounds good. Will implement

@Eomm Some additional questions:

  1. Original page has fewer framework comapred to the JSON file. Are we sticking with those in the original page or display all?
  2. The Github icon on each card points to the project repo which is not available in the JSON. Not a problem if we stick to a subset (will add manually) but should be fetched elsewhere if we make a dynamic thing out of this.
  3. How is the bar value exactly calculated?