Wayseer.dev

Import paths

Go import paths that will not move.

Wayseer's public Go code is imported from wayseer.dev, not from wherever its source happens to be hosted. A path, once published, is permanent: the domain is kept for good and an entry is never removed or changed.

Published: wayseer.dev/sdk, and the free modules self, localhost, file and prometheus under wayseer.dev/modules/. Each is public, MIT-licensed, and stays at its path for good.

The scheme

Two shapes of path.

The paths belong to the company, not to one product, which is why they live on wayseer.dev rather than a product's site.

  • wayseer.dev/sdkThe SDK published
    The one package a module imports, with the module contract and the conformance suite beside it. Public, MIT-licensed. It goes first, since every module and the app itself depend on it. It stays at v0 while the module platform is built and is tagged v1.0.0 when the platform ships; the compatibility promise starts there.
  • wayseer.dev/modules/nameA first-party module published
    One path per module, each in a public source tree of its own. The free modules are public and serve as reference code; the paid modules are private and have no path here.

Paid, first-party modules stay built into the app and are not published; nothing under wayseer.dev ever points at private code. Modules written by other developers are not hosted here either: they live wherever their authors put them and are signed under a developer certificate or published through the marketplace.

How a path resolves

One small page per module, and nothing clever.

The go command finds a module's source by fetching its import path over HTTPS and reading two tags from the page: go-import, which names the source tree to clone, and go-source, which lets tools link to a file and line. Each path on wayseer.dev is one static page carrying those tags, and a short note for a person who lands on it.

The pages are generated from one list, which is published with the site and checked against the pages before every deploy. It lists five paths today. When a path is added, the page appears; a page is never removed.

what a path's page carriesthe host and the tree are illustrative
<meta name="go-import" content="wayseer.dev/sdk git https://host/tree">
<meta name="go-source" content="wayseer.dev/sdk https://host/tree …">

What is promised

Four things a path holder can rely on.

  • The path stays

    A published path is never removed or repointed to different code. If a module is retired, its last version stays fetchable.

  • The domain stays

    wayseer.dev is kept for as long as any path on it is published, which is to say for good.

  • The contract is versioned

    From v1.0.0 the SDK follows semantic versioning, and a breaking change to the wire contract is caught in its checks before it can be tagged.

  • Nothing is tracked

    The pages are static files with no analytics, no cookies and nothing loaded from third parties. The host keeps short-lived connection logs, as the privacy page explains; Wayseer does not use them to identify anyone.