Page MenuHomeSoftware Heritage
Feed Advanced Search

Jul 23 2021

anlambert added a comment to T3405: GraphQL apis for SWH.

I stumbled across GitLab GraphQL API while working on T3442, could be a great source of inspiration.

Jul 23 2021, 2:45 PM · GraphQL API
anlambert added a comment to T3127: Compute and display distribution of origins by forge.
In T3127#67581, @anlambert wrote:

    I am a bit puzzled by the numbers shown: eeally we have only 200k origins for GitLab.com.?

Indeed there is something weird here as we have more than one million gitlab.com origins in database.

softwareheritage=> select count(*) from origin where url like 'https://gitlab.com/%';
  count  
---------
 1023499
(1 row)

Looks like something was missed when computing lister metrics from scheduler database, this needs further investigations.

Indeed, please do look into this, thanks.

Jul 23 2021, 12:17 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jul 22 2021

anlambert added a comment to T3127: Compute and display distribution of origins by forge.

Thanks for these details: this count is missing the 800k git origins: @ardumont and @olasd should be able to tell you how to find them

Jul 22 2021, 12:29 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
KShivendu removed a watcher for Web app: KShivendu.
Jul 22 2021, 10:08 AM
rdicosmo added a comment to T3127: Compute and display distribution of origins by forge.

I am a bit puzzled by the numbers shown: eeally we have only 200k origins for GitLab.com.?

Indeed there is something weird here as we have more than one million gitlab.com origins in database.

softwareheritage=> select count(*) from origin where url like 'https://gitlab.com/%';
  count  
---------
 1023499
(1 row)

Looks like something was missed when computing lister metrics from scheduler database, this needs further investigations.

Jul 22 2021, 9:01 AM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jul 21 2021

anlambert added a comment to T3127: Compute and display distribution of origins by forge.

I am a bit puzzled by the numbers shown: eeally we have only 200k origins for GitLab.com.?

Jul 21 2021, 5:26 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
rdicosmo added a comment to T3127: Compute and display distribution of origins by forge.

I am a bit puzzled by the numbers shown: eeally we have only 200k origins for GitLab.com.?
And we know we had some 1.5m origins for Google code, why only 700k shown here?

Jul 21 2021, 3:40 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

Instead, we could split the coverage widget into two tabs

  • one giving a high level overview of the archived origins, similar to what we have now with logos and counters
  • one giving the details of all forges we archived so far, displayed in a table as you suggested with relevant metrics and links to search origins for a given forge
Jul 21 2021, 3:23 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a revision to T3437: Review guided tour and collect feedback from testers: D6013: assets/guided_tour: Improve tour and fix redirection bug.
Jul 21 2021, 2:13 PM · Web app

Jul 20 2021

moranegg added a comment to T3437: Review guided tour and collect feedback from testers.
  1. after the lines slides, you can imagine how it is a qualifier on a SWHID but you can't see it. Might be useful to open again the permalink box to see.
Jul 20 2021, 4:30 PM · Web app
moranegg added a comment to T3437: Review guided tour and collect feedback from testers.

Thanks @anlambert for this very intuitive guided tour!

Jul 20 2021, 12:52 PM · Web app
ardumont closed T3436: api: raw extrinsic metadata endpoint api fails with python exception about missing attribute as Resolved.
Jul 20 2021, 12:33 PM · Web app, System administration
ardumont moved T3436: api: raw extrinsic metadata endpoint api fails with python exception about missing attribute from in-progress to deployed/landed/monitoring on the System administration board.
Jul 20 2021, 12:33 PM · Web app, System administration
ardumont moved T3436: api: raw extrinsic metadata endpoint api fails with python exception about missing attribute from Backlog to in-progress on the System administration board.
Jul 20 2021, 12:33 PM · Web app, System administration
ardumont renamed T3436: api: raw extrinsic metadata endpoint api fails with python exception about missing attribute from raw extrinsic metadata endpoint api fails with python exception about missing attribute to api: raw extrinsic metadata endpoint api fails with python exception about missing attribute.
Jul 20 2021, 12:31 PM · Web app, System administration
moranegg triaged T3437: Review guided tour and collect feedback from testers as Normal priority.
Jul 20 2021, 12:07 PM · Web app
olasd triaged T3435: Provide web API endpoints for object lookups by ExtID as Wishlist priority.
Jul 20 2021, 12:04 PM · Web app

Jul 19 2021

anlambert added a revision to T3127: Compute and display distribution of origins by forge: D6007: common/utils: Wrap deposits list retrieval in a function.
Jul 19 2021, 5:29 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
ardumont added a comment to T3202: Help new users discover the features available in the archive browsing view.

That's awesome! I did not spot any typos.

Jul 19 2021, 4:28 PM · Web app
anlambert added a comment to T3202: Help new users discover the features available in the archive browsing view.

First version of guided tour has been deployed to production for ambassador and staff users.

Jul 19 2021, 4:17 PM · Web app
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

I think we could also get an accurate count of deposit origins (HAL, IPOL) using swh-deposit API

Jul 19 2021, 3:54 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jul 16 2021

anlambert added a comment to T3127: Compute and display distribution of origins by forge.

Only one nit about the display. Using modal windows/popover will mean that there will be no easy way to have, as a user, the full list: one will have to click on each logo one by one, which could be quite annoying. Would it be possible to have a page with a rendering of the table above? (not sure if we want all columns, but at least the last update time and the number of origins per forge instance looks relevant and interesting to me). It coule be either in addition of what you propose (e.g., as a "coverage details" link, leading to the full page), or as a replacement of it (e.g., by making each forge icon just a link to the relevant anchor within the table on the "coverage details" page).

Jul 16 2021, 11:43 AM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
zack added a comment to T3127: Compute and display distribution of origins by forge.

Thanks for this update, great work!

Jul 16 2021, 11:29 AM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jul 15 2021

vlorentz closed T2938: Create API endpoint to access raw_extrinsic_metadata, a subtask of T2088: Specify and draw metadata view on web-app, as Resolved.
Jul 15 2021, 12:18 PM · Roadmap 2020, Web app, Metadata workflow
vlorentz closed T2938: Create API endpoint to access raw_extrinsic_metadata as Resolved.
Jul 15 2021, 12:18 PM · Web app, Metadata workflow

Jul 13 2021

anlambert added a comment to T3127: Compute and display distribution of origins by forge.

Some reports of what have been done so far and some future directions regarding the display of those data in swh-web.

Jul 13 2021, 3:39 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jul 9 2021

anlambert closed T3368: Upgrade to highlight.js 11.x as Resolved by committing rDWAPPS66b3a6c480c8: assets: Upgrade highlight.js to version 11.x.
Jul 9 2021, 6:00 PM · Web app
anlambert added a revision to T3368: Upgrade to highlight.js 11.x: D5987: assets: Upgrade highlight.js to version 11.x.
Jul 9 2021, 5:11 PM · Web app
olasd changed the status of T3403: Use forge URL network location as default lister instance name, a subtask of T3127: Compute and display distribution of origins by forge, from Open to Work in Progress.
Jul 9 2021, 3:37 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert closed T3402: Deploy swh-counters v0.8.0 and backfill origins, a subtask of T3127: Compute and display distribution of origins by forge, as Wontfix.
Jul 9 2021, 2:34 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jul 8 2021

anlambert added a comment to T3368: Upgrade to highlight.js 11.x.

highlight.js 11.1.0 has been released fixing numerous regressions since the 11.0 release, so it is time to perform the upgrade.

Jul 8 2021, 7:12 PM · Web app

Jul 7 2021

anlambert added a comment to T3423: Execute cypress tests in parallel on Jenkins.

After some hacks on the current Jenkins pipeline for swh-web to test if it was feasible, I managed to setup the use of sorry-cypress but could not run multiple cypress in parallel as Jenkins pipelines forbid nested parallel stages.
So this would require setting up a dedicated pipeline build job for cypress tests as currently Python and cypress tests are executed in parallel in a single job.

Jul 7 2021, 2:40 PM · Continuous Integration, Web app

Jul 6 2021

anlambert updated the task description for T3423: Execute cypress tests in parallel on Jenkins.
Jul 6 2021, 2:09 PM · Continuous Integration, Web app
anlambert triaged T3423: Execute cypress tests in parallel on Jenkins as Normal priority.
Jul 6 2021, 2:03 PM · Continuous Integration, Web app

Jul 4 2021

moranegg triaged T3419: Store the download list in swh-web database for authenticated users as Wishlist priority.
Jul 4 2021, 10:55 PM · Web app
moranegg created T3419: Store the download list in swh-web database for authenticated users .
Jul 4 2021, 10:50 PM · Web app

Jul 1 2021

anlambert added a revision to T1805: Public API v2: D4629: [POC] OpenAPI and Django REST Framework to specify / implement API v2.
Jul 1 2021, 1:45 PM · meta-task, Web app

Jun 29 2021

moranegg added a comment to T3376: Visualize metadata of a deposit in the admin (moderation) view.

An example of a metadata icon for the deposit-admin view:
https://thenounproject.com/term/metadata/77940/

Jun 29 2021, 9:22 PM · Monitoring, SWORD deposit, Web app
jayeshv claimed T3405: GraphQL apis for SWH.
Jun 29 2021, 3:57 PM · GraphQL API
jayeshv closed T3404: Add a search feature to snapshot releases view as Resolved.
Jun 29 2021, 3:54 PM · Web app
jayeshv closed T3157: Add a search feature to snapshot branches view as Resolved.
Jun 29 2021, 3:53 PM · Easy hack, Web app
ardumont renamed T3173: Provide access to deposit-clients to view dedicated moderation page from Create profiles in keycloack for the deposit-client to view dedicated moderation page to Create profiles in keycloak for the deposit-client to view dedicated moderation page.
Jun 29 2021, 11:48 AM · Monitoring, SWORD deposit, Web app
moranegg added a subtask for T3128: Improve deposit integration, management and display: T2858: Use keycloak authentication for the deposit.
Jun 29 2021, 11:12 AM · meta-task, Roadmap 2021, Monitoring, SWORD deposit, Web app
moranegg renamed T3174: Filter deposit-admin view by deposit client on admin (moderation) page from Filter deposit-admin view by deposit client on moderation page to Filter deposit-admin view by deposit client on admin (moderation) page.
Jun 29 2021, 10:57 AM · Monitoring, SWORD deposit, Web app
moranegg moved T3128: Improve deposit integration, management and display from Backlog to Work in progress on the Roadmap 2021 board.
Jun 29 2021, 10:53 AM · meta-task, Roadmap 2021, Monitoring, SWORD deposit, Web app
moranegg removed a project from T3174: Filter deposit-admin view by deposit client on admin (moderation) page: Roadmap 2021.
Jun 29 2021, 10:52 AM · Monitoring, SWORD deposit, Web app
vlorentz removed a project from T3377: Add icon/button in moderation view to go to deposit in new tab: Roadmap 2021.
Jun 29 2021, 10:51 AM · Monitoring, SWORD deposit, Web app
moranegg removed projects from T3376: Visualize metadata of a deposit in the admin (moderation) view: meta-task, Roadmap 2021.
Jun 29 2021, 10:50 AM · Monitoring, SWORD deposit, Web app
jayeshv added a revision to T3404: Add a search feature to snapshot releases view: D5939: Search inside the origin releases with name.
Jun 29 2021, 10:42 AM · Web app
moranegg renamed T3376: Visualize metadata of a deposit in the admin (moderation) view from Visualize metadata of a deposit in the moderation view to Visualize metadata of a deposit in the admin (moderation) view.
Jun 29 2021, 10:40 AM · Monitoring, SWORD deposit, Web app
moranegg placed T3376: Visualize metadata of a deposit in the admin (moderation) view up for grabs.
Jun 29 2021, 10:39 AM · Monitoring, SWORD deposit, Web app

Jun 28 2021

vlorentz added a revision to T2938: Create API endpoint to access raw_extrinsic_metadata: D5936: Add an endpoint to list metadata authorities for a given SWHID.
Jun 28 2021, 4:06 PM · Web app, Metadata workflow
vlorentz added a revision to T2938: Create API endpoint to access raw_extrinsic_metadata: D5934: Add endpoint raw_extrinsic_metadata_get_authorities.
Jun 28 2021, 4:06 PM · Web app, Metadata workflow
ardumont closed T3378: Improve save code now status report so the status and browse experience stay consistent, a subtask of T3082: Improve Save Code Now handling, as Resolved.
Jun 28 2021, 1:56 PM · Save Code Now, meta-task, Roadmap 2021, Web app
ardumont closed T3411: Deploy api endpoint to access raw extrinsic metadata, a subtask of T2938: Create API endpoint to access raw_extrinsic_metadata, as Resolved.
Jun 28 2021, 12:26 PM · Web app, Metadata workflow
ardumont closed T3411: Deploy api endpoint to access raw extrinsic metadata as Resolved.
Jun 28 2021, 12:26 PM · System administration, Web app, Metadata workflow
ardumont moved T3411: Deploy api endpoint to access raw extrinsic metadata from Backlog to deployed/landed/monitoring on the System administration board.
Jun 28 2021, 12:17 PM · System administration, Web app, Metadata workflow
ardumont added a project to T3411: Deploy api endpoint to access raw extrinsic metadata: System administration.
Jun 28 2021, 12:17 PM · System administration, Web app, Metadata workflow
ardumont added a comment to T3411: Deploy api endpoint to access raw extrinsic metadata.

The example link [3] does return information

Jun 28 2021, 12:17 PM · System administration, Web app, Metadata workflow
ardumont updated the task description for T3411: Deploy api endpoint to access raw extrinsic metadata.
Jun 28 2021, 12:15 PM · System administration, Web app, Metadata workflow
ardumont updated the task description for T3411: Deploy api endpoint to access raw extrinsic metadata.
Jun 28 2021, 11:48 AM · System administration, Web app, Metadata workflow
ardumont triaged T3411: Deploy api endpoint to access raw extrinsic metadata as Normal priority.
Jun 28 2021, 11:28 AM · System administration, Web app, Metadata workflow
ardumont added a project to T3174: Filter deposit-admin view by deposit client on admin (moderation) page: Roadmap 2021.
Jun 28 2021, 10:56 AM · Monitoring, SWORD deposit, Web app
ardumont added a subtask for T3174: Filter deposit-admin view by deposit client on admin (moderation) page: T2996: Add possibility to fetch a list of deposits on the deposit cli.
Jun 28 2021, 10:56 AM · Monitoring, SWORD deposit, Web app
ardumont removed a subtask for T3082: Improve Save Code Now handling: T3256: Propose reason for rejecting a save code now.
Jun 28 2021, 9:39 AM · Save Code Now, meta-task, Roadmap 2021, Web app
ardumont added a subtask for T3252: Better handling of erroneous origins submitted to save code now: T3256: Propose reason for rejecting a save code now.
Jun 28 2021, 9:39 AM · System administration, Save Code Now, Web app
ardumont edited parent tasks for T3256: Propose reason for rejecting a save code now, added: T3252: Better handling of erroneous origins submitted to save code now; removed: T3082: Improve Save Code Now handling.
Jun 28 2021, 9:39 AM · Save Code Now, Easy hack, Web app

Jun 25 2021

vlorentz added revisions to T2938: Create API endpoint to access raw_extrinsic_metadata: D5921: Make api_raw_extrinsic_metadata_get set Content-disposition, D5875: Add an endpoint to list and access raw extrinsic metadata., D5865: Add endpoints to access REMD by id.
Jun 25 2021, 4:26 PM · Web app, Metadata workflow
jayeshv renamed T3404: Add a search feature to snapshot releases view from Add a search feature to snapshot origin view to Add a search feature to snapshot releases view.
Jun 25 2021, 3:12 PM · Web app

Jun 24 2021

ardumont closed T3213: Enable save code now of software source code archives for specific users, a subtask of T3082: Improve Save Code Now handling, as Resolved.
Jun 24 2021, 3:57 PM · Save Code Now, meta-task, Roadmap 2021, Web app
ardumont closed T3213: Enable save code now of software source code archives for specific users as Resolved.
Jun 24 2021, 3:57 PM · Save Code Now, Web app
ardumont added a comment to T3213: Enable save code now of software source code archives for specific users.

The issue mentioned ^ has been fixed and deployed.
Everything is deployed.

Jun 24 2021, 3:57 PM · Save Code Now, Web app
ardumont closed T2750: mercurial loader fails on save code now, a subtask of T3082: Improve Save Code Now handling, as Resolved.
Jun 24 2021, 3:48 PM · Save Code Now, meta-task, Roadmap 2021, Web app
vlorentz removed a project from T3266: Improve save code now failed/uneventful status reporting: meta-task.
Jun 24 2021, 2:36 PM · Save Code Now, Roadmap 2021, System administrators, Web app
moranegg removed a project from T3377: Add icon/button in moderation view to go to deposit in new tab: meta-task.
Jun 24 2021, 11:00 AM · Monitoring, SWORD deposit, Web app
moranegg placed T3377: Add icon/button in moderation view to go to deposit in new tab up for grabs.
Jun 24 2021, 11:00 AM · Monitoring, SWORD deposit, Web app

Jun 23 2021

olasd added a comment to T3127: Compute and display distribution of origins by forge.

As @olasd said in a previous comment, even if we compute the metrics, we will miss counters about origins not tight to a lister
(googlecode and gitorious for instance). So I am thinking again about an hybrid approach using the swh-counters metrics
implemented yersteday which gives a rough estimation on the number of origins by network location (as visit statuses are not
processed, only origins) and the scheduler metrics.

Jun 23 2021, 9:16 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
vlorentz triaged T3405: GraphQL apis for SWH as Normal priority.
Jun 23 2021, 5:20 PM · GraphQL API
jayeshv created T3405: GraphQL apis for SWH.
Jun 23 2021, 5:03 PM · GraphQL API
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

I guess the cli to update metrics is executed periodically in production ?

I don't think that they are yet but that just got a priority increase now ;)

Jun 23 2021, 2:08 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
jayeshv added a project to T3404: Add a search feature to snapshot releases view: Web app.
Jun 23 2021, 2:08 PM · Web app
ardumont added a comment to T3127: Compute and display distribution of origins by forge.

I guess the cli to update metrics is executed periodically in production ?

Jun 23 2021, 1:59 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

The existing scheduler metrics are probably not complete enough for all we want to display (we should review them so they are), but the swh.scheduler journal client already gathers all the information needed, so we > should be able to compute all that we need from the scheduler tables.

Jun 23 2021, 12:49 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

After more thoughts about all those metrics, we could revamp the coverage widget into two tabs:

  • one tab displaying metrics about loaded origins with detailed counts by forge and links to search interface to browse them
  • one tab displaying metrics about listed origins from the data extracted from the scheduler database
Jun 23 2021, 12:13 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.
Jun 23 2021, 12:05 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

@anlambert @rdicosmo

For information, discussing with @olasd, he reminded me that we had already a cli entrypoint [1]
to compute stats about what we want scheduler side.

What's missing implementation wise would be to expose an endpoint to actually display said information.

So, the question is, even though the implementation swh.counter started, do we really want that there
or this ^ scheduler side would be enough?

[1] https://forge.softwareheritage.org/source/swh-scheduler/browse/master/swh/scheduler/cli/origin.py$148-182

Jun 23 2021, 12:04 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
olasd added a comment to T3127: Compute and display distribution of origins by forge.

Sorry @anlambert, I was late at Monday's meeting and I completely missed this in your weekly plan, I would have pointed this out earlier.

Jun 23 2021, 12:04 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
ardumont added a comment to T3127: Compute and display distribution of origins by forge.

For information, discussing with @olasd, he reminded me that we had already a cli entrypoint [1]
to compute stats about what we want scheduler side.

Jun 23 2021, 11:53 AM · Metrics/monitoring, Web app, Roadmap 2021, meta-task

Jun 22 2021

anlambert added a revision to T3127: Compute and display distribution of origins by forge: D5910: journal_client: Add origins processing.
Jun 22 2021, 4:50 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a revision to T3127: Compute and display distribution of origins by forge: D5907: interface: Add get_listers method.
Jun 22 2021, 2:36 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

Nice to see this moving forward!

These entries in the counter log look suspicious, though, they are not origins:

b'atlassian@bitbucket.org' 2
b'taylorhakes@github.com' 2
b'bunnyhero@bitbucket.org' 1
b'dtrebbien@bitbucket.org' 1
b'eldargab@github.com' 1
b'git@github.com' 1
b'schierlm@git.code.sf.net' 1
b'tomakehurst@github.com' 1
b'wenshao@github.com' 1
b'zimbra-mirror@bitbucket.org' 1
Jun 22 2021, 2:05 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
rdicosmo added a comment to T3127: Compute and display distribution of origins by forge.

Nice to see this moving forward!

Jun 22 2021, 1:59 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

Regarding this, to ease the mapping between a lister and an instance name, we may want to rework the instance names in the scheduler
model (listers table) so that the value is actually the netloc of the origin.

Jun 22 2021, 12:18 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
ardumont added a comment to T3127: Compute and display distribution of origins by forge.

Great work! Awesome.

Jun 22 2021, 12:16 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
anlambert added a comment to T3127: Compute and display distribution of origins by forge.

After some analysis, the data we need to properly implement this are:

  • the set of lister names and their instance names in order to organize origins by forge types (gitlab, cgit, sourceforge, ...)
  • a precise or estimated count for the origins listed by a given lister instance
Jun 22 2021, 12:07 PM · Metrics/monitoring, Web app, Roadmap 2021, meta-task
jayeshv added a revision to T3157: Add a search feature to snapshot branches view: D5905: Search inside the origin branches with name.
Jun 22 2021, 11:33 AM · Easy hack, Web app

Jun 18 2021

ardumont added a subtask for T3082: Improve Save Code Now handling: T3378: Improve save code now status report so the status and browse experience stay consistent.
Jun 18 2021, 2:51 PM · Save Code Now, meta-task, Roadmap 2021, Web app

Jun 17 2021

moranegg triaged T3386: View the difference between non-related two revisions as Low priority.
Jun 17 2021, 1:06 PM · Web app

Jun 16 2021

ardumont added a comment to T1524: save code now: also add new origins for unknown repos.

Remain the runner to actually consume those regularly to be deployed (or maybe it's already the case, i need to check that part).

Jun 16 2021, 3:27 PM · Save Code Now, Web app
douardda updated the task description for T3384: create an online service allowing to compute SWHIDs of submitted content.
Jun 16 2021, 11:59 AM · Web app