Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pill: we can use the autoprop tooling from byob #6231

Open
Fang- opened this issue Jan 20, 2023 · 5 comments
Open

pill: we can use the autoprop tooling from byob #6231

Fang- opened this issue Jan 20, 2023 · 5 comments
Assignees

Comments

@Fang-
Copy link
Member

Fang- commented Jan 20, 2023

#5470, which is presently still unreleased (stuck in mars/urth limbo), comes with an "autoprop" app for auto-building pills and new-style boot props.

This app doesn't really have a hard dependency on any of the changes in that PR, it works perfectly fine without them, except that we can't use the jam files it creates yet. But it can also create pill files, which we can use already!

We don't presently have a good process for uploading new pills (for booting new ships) whenever desk contents change. We do not want to do this at the moment of a release, because this risks booting you into something newer than what your sponsor has. The autoprop app has a five-day delay to accommodate this, but can also be told to re-build pills or props on-demand.

The tool outputs the configured file(s) into the pier/.urb/put directory, with the runtime version string in its path, and as such a simple script[1] can be used to upload these to an appropriate place in the bootstrap bucket automatically.

(The app has a little bit of logic for stripping the "vere" out of the version string, but maybe we want to intentionally leave that in at this point.)

All of this already exists, and has been running since that PR, on the autoprop-builder instance, and is still live... except its vere version is still 1.10. We should just bring this back up to latest, set it up to build pills, and make a point to update its binary for new releases. If we do that, and maybe update vere to use a new pill url format (#5470 will do this anyway), then we can have nearly fully-automated pill generation.
(Edit: probably just massage the current thing into being compatible with existing runtime pill fetching practices.)

[1]:

upload-props.sh

#!/bin/bash
inotifywait -e close_write -m -r $1 |
while read -r directory events filename; do
  # skip events on the directories
  if [[ $events == *"ISDIR"* ]]; then
    continue;
  fi
  # props get written to folder with runtime version name
  version=$(basename $directory);
  sleep 2;
  date;
  echo $version/$filename;
  gsutil cp $directory$filename gs://bootstrap.urbit.org/props/$version/$filename;
  echo;
done
@zalberico
Copy link
Collaborator

tagging @jalehman and @belisarius222 for context - this is the way we can make creating and shipping pills automatic (and something we can ship now)

@Fang-
Copy link
Member Author

Fang- commented Jan 20, 2023

We'll probably also want to update the autoprop builder to support auto-building new azimuth snapshots.

@belisarius222
Copy link
Contributor

belisarius222 commented Jan 20, 2023 via email

@belisarius222
Copy link
Contributor

belisarius222 commented Jan 20, 2023 via email

@jalehman
Copy link
Member

jalehman commented Jan 20, 2023

I'd be curious to do a little speccing on the system resilience line of work, as having that would reduce a significant amount of complexity in the release process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants