Skip to content

Package/export command#760

Merged
lacraig2 merged 3 commits intomainfrom
package
Mar 31, 2026
Merged

Package/export command#760
lacraig2 merged 3 commits intomainfrom
package

Conversation

@lacraig2
Copy link
Copy Markdown
Collaborator

This PR adds a new command for penguin: package/export (aliased names) which packages a project based at a config into a minimal distributable archive file.

penguin package --help
Usage: penguin package [OPTIONS] PROJECT_DIR

  Package a penguin project into a distributable archive.

  Creates a tar.gz pulling in configs, base, and static patches while omitting
  results and qcows.

Options:
  -o, --out TEXT  Output tar.gz file path. Defaults to
                  <project_dir_name>.tar.gz
  -v, --verbose   Set log level to debug
  --help          Show this message and exit.

The purpose is to enable quickly distributing projects between people and keeping versions of projects around.

A project can be unpacked in the following way:

mkdir o
cd o
tar -xvf $PROJECT_TAR_PATH

There is a .penguin_packaged_version accompanying each tar to give you some context on which version was used when packaging this system. It is yaml with the following format:

format_version: 1
penguin_version: VERSION

I suspect that we'll add more information to this over time and maybe add an import/reproduction process, but for the moment it seemed sufficient to make this versioned and contain the penguin version.

CLOSES: #564

@lacraig2 lacraig2 merged commit c7c6826 into main Mar 31, 2026
14 checks passed
@lacraig2 lacraig2 deleted the package branch March 31, 2026 14:20
@zestrada zestrada mentioned this pull request Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Standard mechanism for packaging rehostings

1 participant