Awesome
Sentry Release Registry
This is a meta repository holding release information for Sentry repositories.
It centralizes information that used to be in different locations. It is known to be used by at least:
- The SDK docs
- The Sentry Loader for JavaScript
- The SDK update prompt in Sentry event pages
Layout
api-server
: A small web service that services up the contents of this repoapps
: A registry of all binary apps and utilities we distributebin
: Some utility scripts to maintain the files herepackages
: A registry of all packages we publish that we want to collect releases ofsdks
: Canonical representations of packages that together form an sdkmarketing-slugs
: Short names for sdks the docs would use
Some of the information here is maintained as symlinks, so this repo only works on unix platforms.
Adding New SDKs
-
Create
packages/<registry>/<package_name>/<exact_version>.json
for each version you want to register.<registry>
: The package index used. Just create a new directory if you are missing one. Stick to alphanumeric characters and you should be fine.<package_name>
: Can be multiple folders, e.g.@sentry/node
.<exact_version>
:0.3.0
, not0.3
or0
. Preview versions such as0.3.0-preview2
or0.3.0-rc2
also work.
-
Add the following contents:
{ "name": "Name of your platform", "canonical": "<registry>:<package_name>", "version": "<exact_version>", "package_url": "Link to PyPI, RubyGems, npmjs.com", "repo_url": "Link to GitHub repo", "main_docs_url": "Link to platform page" }
If your SDK provides API docs, add the
api_docs_url
config as well:{ "name": "Name of your platform", "canonical": "<registry>:<package_name>", "version": "<exact_version>", "package_url": "Link to PyPI, RubyGems, npmjs.com", "repo_url": "Link to GitHub repo", "main_docs_url": "Link to platform page", "api_docs_url": "Link to API docs" }
-
cd sdks && ln -s ../packages/<registry>/<package_name> <sdk_name>
-
<sdk_name>
: The same identifier used in thesdk_info.name
field of the event.E.g. the Python SDK sends events like this:
{ "message": "Hello world!", ..., "sdk_info": {"name": "sentry.python", ...} }
-
-
Run
make sync-all-links
to fix up symlinks.
Adding New Apps
-
Create
apps/<app_name>/<exact_version>.json
for each version you want to register.<package_name>
: Can be multiple folders, e.g.@sentry/node
.<exact_version>
:0.3.0
, not0.3
or0
. Preview versions such as0.3.0-preview2
or0.3.0-rc2
also work.
-
Add the following contents:
{ "name": "Human readable application name", "canonical": "app:<app_name>", "version": "<exact_version>", "repo_url": "Link to GitHub repo", "main_docs_url": "Link to docs page", "file_urls": { "<filename_with_ext>": "https://downloads.sentry-cdn.com/<app_name>/<exact_version>/<filename_with_ext>" } }
-
Run
make sync-all-links
to fix up symlinks.
Releasing
Basically add a new JSON file like above, and run make sync-all-links
again.
You might want to use Craft which can do
this for you as part of your release process.