Skip to content

Scope "shippeable" v1 of this js client #26

Closed
@humitos

Description

@humitos

What's is required to ship a v11 of this client and expose to users using build.commands, which currently have 0 integrations with Read the Docs?

After some talks, we started to treat each feature as a separated feature that can be deployed without deploying the "whole flyout". In fact, we decided we want to deploy other features first without a flyout at all.

Functionality

There are some features that require zero configuration from the user at this point (they can always be expanded to be customized, of course, but we are not there yet. See #13 for that)

Some of these features are:

Feature Description Data required Triggered by
Analytics Hits an API endpoint to show analytics in the dashboard Project (slug, language, programming language), Version (slug), Global analytics code Automatic (always)
External version warning Shows a warning banner if the version is external Version (type), Domain (dashboard), Project (slug, repository_url), Build (id) Automatic (when the version is external)
Search as you type Presents a modal to search using our own backend Project (slug) Manual (by hitting /)

Backend

Where the data required will come from?

  • I'm currently using the new endpoint /_/readthedocs-config/?url= with a data structured that was not thought completely and returns a bunch of duplicated data for now
  • We could polish it a little to return the real objects and define it in an extendable way so we can include more data in the future
  • The actual structure proposes an idea for this. In particular using:
    • Top level keys for "generic" data, like project, version, domain objects that are not tied to a specific feature
    • Feature-specific data under features.<feature>, like features.external_version_warning, features.analytics, etc

CF worker that doesn't randomly 500

We are not sure why, but our script running in CF sometimes it break for some reason and returns an error 1/2 the times we hit it. We will need to debug this.

Return X-RTD-Hosting-Integrations on versions with build.commands

We will need to modify the Proxito middleware to check if the version is using build.commands and inject the header in that case so CF includes our client.

Frontend

It would be good if I can get some review on the current HTML structure of these features. I can make the required adjustments to it. However, I would avoid getting too deep into creating the perfect structure since we are not going to officially allow people to style/customize/change them for now.

Footnotes

  1. we are calling internally v1. This does not mean it will be a v1 for our customers/users. It will be a beta feature for now until we establish some standards and we feel comfortable with it to promote it and write documentation about it.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions