Description
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>
, likefeatures.external_version_warning
,features.analytics
, etc
- Top level keys for "generic" data, like
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
-
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. ↩