Publishing to Dalea Community
From workspace template to public package, with versioning.
Once a template is stable in your workspace, you can publish it as a package on dalea.market so other teams (in your org or in the wider community) can install it.
Everything published through the app is packaged as a bundle: one or more workspace items shipped together, with the references between them rewired when someone imports them. A bundle can carry six kinds of member:
| Member | What it is |
|---|---|
| Document template | A reusable document blueprint, with optional locking. |
| Block template | A single block (e.g. a configured 96-well plate, a complex chart) reusable across documents. |
| Environment | A data schema: tables, columns, naming schemes, without rows. Shared as a starting point for studies that need the same shape. |
| Document | A finished document, packed by its current content. It imports as a document-type template the recipient applies. |
| Saved query | A saved traversal query, rewired onto the recipient's tables and columns. |
| Addon | Executable code. See Publishing & installing addons. |
The registry also knows the standalone template, block and environment
package types, but those are legacy listings. If you pick a package id that
already exists as one, the publish page tells you and suggests <id>-bundle.
Scopes — your namespace on dalea.market
Every package on dalea.market lives under a scope, written @scope/name.
Scopes are like npm namespaces:
- Personal scope (@your-handle)
- Your own dalea.market handle. Only you can publish under it. Useful for personal templates and experiments.
- Organisation scope (@your-org)
- Registered automatically the first time any member of the org signs in to Dalea, so the org page exists before its first publish. The org slug is unique on dalea.market.
Org scopes are the right choice for shared institutional templates (your IACUC template, your standard ELISA SOP, your cell-line registration form). Personal scopes are right for individual contributions and experiments.
Permissions
There is no org-side publish permission to grant. Every member of the organisation gets publish rights on the org scope automatically, the first time they use Dalea: whoever registers the scope first is recorded as its owner and administers it on dalea.market, and everyone after that joins as a publisher.
To publish under a personal scope you need only your own account.
The publish flow
Publishing is a hand-off: you assemble and sign the package in Dalea, then finish it on dalea.market.
- Open the Templates page and pick your template
Its menu carries Publish to Community, or Update in Community if it is already listed.
- Assemble the package
The dialog seeds itself with your template and crawls what it references. Include any environment, saved query, block template or document that should ship with it, then fill in the package name, a short description and a markdown README (the README seeds the listing page, and you can polish it there afterwards).
- Choose 'Publish on dalea.market'
Dalea packages and signs the content, stages it on dalea.market and sends you there. The other destination, Download file, writes a
.daleapkgyou can hand to another workspace instead. - Set the coordinates on dalea.market
- Publish as: the scope, your personal handle, or any org scope you belong to.
- Package id: kebab-case, unique within the scope (
iacuc-submission-acme). - Version: semver. Bump the patch for fixes, the minor for non-breaking additions, the major for changes that break documents already using the package. It prefills the next patch when the package exists.
- Changelog: optional, markdown, frozen with the version.
- Publish
The registry verifies every content hash, countersigns and lists the version. A declarative package is installable immediately; a package containing addon code waits for moderator review.
- Polish the listing
The confirmation page opens the listing editor: display name, category, short description, tags, preview image and the full README. Those live on the listing, not on the version, so you can fix them any time.
There is no license picker and no homepage or repository field in the publish
flow. Every package's license reads MIT unless it is set through the registry
API.
After publishing
Each published version is immutable. To "edit" a package you publish a new version (1.0.1, 1.1.0, 2.0.0…). Old versions stay listed and remain installable until you yank them.
Maintenance you'll do over time:
- Updates: publish new versions as your template evolves. Update the changelog so consumers know what changed.
- Reviews and discussions: community members can leave 1–5 star reviews and start discussions on your package page. Respond promptly; high-quality packages have engaged maintainers.
- Stars: track which versions are popular. Useful signal for what to invest in.
- Unpublish: the listing editor's danger zone hides the package from browse and import. Publishing a new version re-lists it.
- Yank: pull a specific version if it has a serious bug. The version stays
in history, shown as
yankedwith your reason, but it no longer downloads andlatestmoves off it. - Deprecation: a package can be flagged deprecated with a message, which drops it out of search and the featured lists. It is a registry API flag; there is no button for it.
A realistic example
Your institution wants every research group to use the same IACUC template:
Publish as: @acme
Package id: iacuc-submission-mouse
Version: 1.0.0
Changelog: First institutional release.
On the listing afterwards:
Display name: IACUC submission, mouse studies (Acme institutional)
Tags: iacuc, protocol, in-vivo, mouse, regulatory
Description: Acme's institutional IACUC submission template for mouse
studies. Pre-filled with our reviewer language; structure
and default text are locked. Editable form fields cover
study justification, animal counts, route-of-administration.
Publishing this once means every new programme inside Acme starts the same
way. When the institutional language changes, you publish v2, and every team
that imported it sees update available on Community → Installed.
Tips
A bundle is the right shape when a template only makes sense alongside its
environment. Example: the cell-line registry bundle ships an
environment (Cell lines table with STR, authentication, freeze
locations) plus the registration template that writes into it. Installing
the bundle gets users both pieces in one click.
Anything you publish, under a personal or an org scope, is listed on
dalea.market for everyone. For internal-only sharing between workspaces, choose
Download file as the destination instead and import the
resulting .daleapkg in the other workspace with
Community → Import from file.