Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 40 additions & 33 deletions src/content/docs/Packaging/Workflow/basic-workflow.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Basic packaging workflow'
lastUpdated: 2025-06-23T00:00:00Z
lastUpdated: 2026-06-19T00:00:00Z
description: "Building packages locally and testing them"
---

Expand Down Expand Up @@ -52,41 +52,47 @@ Boulder will need to have its list of "build profiles" be updated before it will
boulder profile list
# output
default-x86_64:
- volatile = https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index [0]
- volatile = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/volatile, arch=x86_64) [0]


# add new local-x86_64 build profile
# note: ${HOME} will be replaced by the actual home directory of the user
# invoking the command. In the example below, ${HOME} = /home/ermo
Comment thread
ermo marked this conversation as resolved.
boulder profile add \
--repo name=volatile,uri=https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index,priority=0 \
--repo name=volatile,base-uri=https://cdn.aerynos.dev,version=stream/unstable,priority=0 \
--repo name=local,uri=file://${HOME}/.cache/local_repo/x86_64/stone.index,priority=100 \
local-x86_64
boulder profile list
# output
default-x86_64:
- volatile = https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index [0]
- volatile = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/volatile, arch=x86_64) [0]
local-x86_64:
- volatile = https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index [0]
- local = file:///home/ermo/.cache/local_repo/x86_64/stone.index [100]
- volatile = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/volatile, arch=x86_64) [0]
- local = file:///home/live/.cache/local_repo/x86_64/stone.index [100]
```

Behind the scenes, `boulder` builds and saves an appropriately named build profile to `~/.config/boulder/profile.d/`.

This is what `local-x86_64.yaml` should look like after the above commands have been run successfully:

```yaml
local-x86_64:
repositories:
local:
description: ''
uri: file:///home/ermo/.cache/local_repo/x86_64/stone.index
priority: 100
active: true
volatile:
description: ''
uri: https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index
priority: 0
active: true
This is what `local-x86_64.kdl` should look like after the above commands have been run successfully:

```kdl
local-x86_64 {
repositories {
volatile {
description "AerynOS volatile stream (CDN)"
base-uri "https://cdn.aerynos.dev/"
channel "main"
version "stream/volatile"
arch "x86_64"
priority 0
}
local {
description "Local repository"
uri "file:///home/live/.cache/local_repo/x86_64/stone.index"
priority 100
}
}
}
```


Expand All @@ -98,17 +104,18 @@ Listing and adding moss-format repositories containing stone.index files is done
```bash
moss repo list
# output
- unstable = https://cdn.aerynos.dev/stream/unstable/x86_64/stone.index [0]
- unstable = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/unstable, arch=x86_64) [0]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For an existing user (after they have synced to the latest moss and are on the new repo, the unstable repo is still in the old format.

Image

I'm guessing this will be true until we roll out a new iso with the new moss and format already baked in.

It's not hard to change it to the new format with the following command

sudo moss repo add unstable https://cdn.aerynos.dev --root-index channel=main,version=stream/unstable -p 0

I'm guessing this won't make a difference to existing installs as it will figure it out but would it make sense to add that users may see

moss repo list
 - unstable = https://cdn.aerynos.dev/stream/unstable/x86_64/stone.index [0]

and therefore guide them on how to update from that too if that is the case?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As of now it seems to be correct since unstable is currently still a legacy repo. Only will change when there is a new unstable stream update done. I assume local repos will stay at the legacy format ...

@ermo ermo Jun 19, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also flags for me if/when we should do a new ISO so new users fall into the new kdl format as soon as possible?

The goal was to get the ball rolling, because we've been sitting on this change for too long already.

Currently, we may need to do some re-jiggering repo wise, where we manually downgrade the infra to legacy repo format (= pretend that we didn't just upgrade), add the fixed moss that also works for system-model users to the legacy repo for correct user-facing upgrades for system-model users, then re-run the infra upgrade.

It will be interesting to see what this does for users who were already converted. 😬

In any case, as soon as this upgrade has been rectified (current plan is the coming Tuesday), we should then aim to sync, so we get everyone onto the new repository (and config) format.

# add repositories
# note: ${HOME} will be replaced by the actual home directory of the user
# invoking the command. In the example below, ${HOME} = /home/ermo"
sudo moss repo add volatile https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index -p 10
# invoking the command. In the example below, ${HOME} = /home/live"
sudo moss repo add unstable https://cdn.aerynos.dev --root-index channel=main,version=stream/unstable -p 0
sudo moss repo add volatile https://cdn.aerynos.dev --root-index channel=main,version=stream/volatile -p 10
Comment thread
ermo marked this conversation as resolved.
sudo moss repo add local file://${HOME}/.cache/local_repo/x86_64/stone.index -p 100
moss repo list
# output
- unstable = https://cdn.aerynos.dev/stream/unstable/x86_64/stone.index [0]
- volatile = https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index [10]
- local = file:///home/ermo/.cache/local_repo/x86_64/stone.index [100]
- unstable = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/unstable, arch=x86_64) [0]
- volatile = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/volatile, arch=x86_64) [10]
- local = file:///home/live/.cache/local_repo/x86_64/stone.index [100]
```


Expand All @@ -128,9 +135,9 @@ sudo moss repo disable volatile
sudo moss repo disable local
moss repo list
# output
- unstable = https://cdn.aerynos.dev/stream/unstable/x86_64/stone.index [0]
- volatile = https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index [10] (disabled)
- local = file:///home/ermo/.cache/local_repo/x86_64/stone.index [100] (disabled)
- unstable = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/unstable, arch=x86_64) [0]
- volatile = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/volatile, arch=x86_64) [10] (disabled)
- local = file:///home/live/.cache/local_repo/x86_64/stone.index [100] (disabled)
```


Expand All @@ -145,9 +152,9 @@ sudo moss repo enable volatile
sudo moss repo enable local
moss repo list
# output
- unstable = https://cdn.aerynos.dev/stream/unstable/x86_64/stone.index [0]
- volatile = https://cdn.aerynos.dev/stream/volatile/x86_64/stone.index [10]
- local = file:///home/ermo/.cache/local_repo/x86_64/stone.index [100]
- unstable = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/unstable, arch=x86_64) [0]
- volatile-stream = (base-uri=https://cdn.aerynos.dev/, channel=main, version=stream/volatile, arch=x86_64) [10] (disabled)
- local-x86_64 = file:///home/live/.cache/local_repo/x86_64/stone.index [100] (disabled)
```


Expand Down