cosmofy 0.2.0 #
Now using uv!
cosmofy 0.2.0 is available. So many things came together for this release:
- Three open source developers I follow (William McGuan, Simon Willison, and Charlie Marsh) were all in a twitter thread where the concept of something like
cosmofywas mentioned. - I learned how to make CLIs sort of work the way Astral's tools do.
- I learned just how many crazy options GNU
lssupports.
If you have uv installed you can use cosmofy:
uvx cosmofy
# or install it
uv tool install cosmofy
Release Notes 0.2.0 - 2025-12-24T03:14:02Z #
This release represents a very large shift from bundling individual python files to using uv to bundle entire venv directories. The behavior of the CLI is now much more similar to uv in form and function.
Fixed
- #14 typo in
--help - #43 exclude
uvartifacts from the bundle - #46
expand_globsto follow all (most?) of the shell rules - #48 getting only the project's
console_scripts - #50
cosmofy bundle --scriptassumes venv in output - #52 avoiding clobbering logging on import
- #56 used context handlers to close temporary directories
- #58 self update on Windows
- #59 assumption that
Last-Modifiedwill be present in headers - #61 replaced
PathDistribution._pathwith appropriate fallbacks - #62 replaced
assertfor validation with actualraiseon error - #66 needless
passin parsing args - #67 command names in logging
- #70 incorrect shebang in
bundle.py - #71 used context handlers to close
ZipFileobjects - #72 download progress indicator shouldn't divide by zero
- #73 missing newline in
bundle.pyerror message - #75 explicit return of default when we can't get the version from a file
- #77
cosmofy fs catusage string - #79
ZipFile2.nowshould not be at module-level - #92 use public API for
SourceFileLoader
Changed
- #16 update examples, readme, usage (HT @Pugio)
- #28 replaced
--debugwith--quiet+--verbose - #29
DEFAULT_PYTHON_URLis now Cosmopolitan Python - #31 replaced
--cachewith--no-cache+--cache-dir - #33 refactored
bundler.pyinto subcommands - #55 switched to JSON parsing
uv versionoutput - #57 switched to using
os.replacefor atomic file moves - #64 replaced
removeprefixwith better cross-platform approach - #79 moved progress indicator to
stderr - #87 marked
cosmofy updatercommands as experimental
Added
- #18 progress when downloading (HT @Pugio)
- #32
cosmofy bundle --script - #33
cosmofy bundle - #33
cosmofy fs add - #33
cosmofy fs args - #33
cosmofy updater remove - #33 dry run banner
- #35
cosmofy fs ls - #36
cosmofy fs cat - #37
cosmofy fs rm - #38
cosmofy fs add -fto overwrite files that exist - #39
--colorglobal option - #40
cosmofy self update - #40
cosmofy self version - #49
--exacttouv syncfor better exact specs - #60 timeouts to network calls
- #81 note that concurrent removals are not supported
- #83 missing docstrings
- #86 log message that only GitHub URLs are inferred
- #89 warning when adding absolute paths
- #91 note about handling weird file names
Removed
- #15
cosmo.yamlworkflow; addedghcommand - #17 default
.comextension - #24 support for python <= 3.9
- #27
--cloneis no longer supported - #30
--downloadis no longer supported
Security