poncho_package_create(1)

πŸ“¦
version 7.15.9 Β· 2 versions
, in ubuntu resolute, ubuntu stonking

πŸ¦‹ poncho_package_create β€” the NAME section, bestie

okay so this little cutie lives in the Cooperative Computing Tools manual, and its whole job is:

poncho_package_create β€” a command-line utility for creating a Conda virtual environment given a Python dependencies file πŸ’…

that's it. that's the name. she's a package-maker. she makes environments. periodt. ✨


✨ SYNOPSIS ✨

first, the vibe: here's what a specification file can look like, okay? like, this is the shape of the JSON you feed her:

Example Specification:
{
    "conda": {
        "channels": [
            "conda-forge"
        ],
        "dependencies": [
            "matplotlib=3.7.1=py311h38be061_0",
            "numpy=1.24.2=py311h8e6699e_0",
            "pip=23.0.1=pyhd8ed1ab_0",
            "python=3.11.0=he550d4f_1_cpython",
            {
                "pip": [
                    "uproot==5.0.5"
                ]
            }
        ]
    },

    "git": {
                "DATA_DIR": {
                        "remote": "http://.../repo.git",
                }
    },

    "http": {
                "REFERENCE_DB": {
                        "type": "file",
                        "url": "https://.../example.dat"
                },
                "TRAINING_DATASET": {
                        "type": "tar",
                        "compression": "gzip",
                        "url": "http://.../dataset.tar.gz"
                }
    }
}

and then the actual command line? literally:

poncho_package_create [options] <dependency-file> <<output-path>>

yes. both sets of angle brackets. that's canon, don't @ me 🫢


🌸 DESCRIPTION 🌸

so poncho_package_create is a simple command-line utility that creates a local Conda environment from an input JSON dependency file. no cap, that's the whole premise.

the command creates an environment tarball at output-path that can be sent to and run on different machines β€” as long as those machines have the same architecture. (same arch or it's not gonna slay, sorry bestie 😭)

the dependency-file argument is the path (relative or absolute) to the JSON specification file. yes, either kind of path works, she's flexible like that.

the output-path argument specifies the path for the environment tarball that gets created β€” and it should usually end in .tar.gz. like, strongly usually. it's giving "please name it right" πŸ’…


πŸ’… OPTIONS πŸ’…

  • --conda-executable=<path> β€” where's your conda executable at?? point her to it with this. if you don't give her one, she'll try mamba, then $CONDA_EXE, then conda, then microconda β€” in that exact order. it's a whole audition lineup 🎀
  • --no-microconda β€” do NOT go downloading microconda if a conda executable can't be found. like, hands off the downloads, tyvm πŸ™ˆ
  • -h, --help β€” show the help message. she'll explain herself. iconic behavior πŸ‘‘

πŸ”₯ EXIT STATUS πŸ”₯

  • success β†’ returns zero ✨
  • failure β†’ returns non-zero πŸ’€

that's the whole status report, she keeps it simple.


πŸ“ EXAMPLE πŸ“

poncho_package_create dependencies.json example_venv.tar.gz

This will create an example_venv.tar.gz environment tarball within the current working directory, which can then be exported to different machines for execution. so like β€” build once, yeet it everywhere, run it there. main character energy fr fr 🌈


The Cooperative Computing Tools are Copyright (C) 2022 The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.


okay that's the whole page bestie, you ate it, go make some environments 🧚

CCTools 7.15.9 FINAL β€” poncho_package_create(1) β€” mwah, that's a wrap, ily πŸ’œ
πŸ“¦ where this page comes from