Skip to content

Releases: metaist/cosmofy

0.2.1

24 Dec 18:54

Choose a tag to compare

0.2.1 - 2025-12-24T18:35:27Z

Fixed

  • #42 minor typos; added links in README
  • #58 only do the Windows dance if literally trying to replace sys.executable
  • #96 files not saving to cache
  • #97, #98 executable permissions for Cosmopolitan Python
  • #99 nothing being logged in binary build
  • #95 don't search for pyproject.toml when you only have --script to bundle
  • #104 error when using cosmofy fs ls with --sort none
  • #105 restore working directory after error when using cosmofy fs add with --chdir
  • #103 use context manager for urlopen even for HEAD

Changed

  • #106 cosmofy fs cat outputs raw bytes to sys.stdout instead of decoding to UTF-8

Added

  • #94 pure Python limitation to README
  • #107 clearer docstring for expand_glob; literal paths are returned exactly
  • #100 document that pythonoid.run_python intentionally destroys sys.argv

Security

  • #102 call validate_url at the start of all the download_* functions
  • #109 reject paths with null bytes
  • #108 don't follow circular symlinks endlessly

0.2.0

24 Dec 04:05

Choose a tag to compare

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 uv artifacts from the bundle
  • #46 expand_globs to follow all (most?) of the shell rules
  • #48 getting only the project's console_scripts
  • #50 cosmofy bundle --script assumes 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-Modified will be present in headers
  • #61 replaced PathDistribution._path with appropriate fallbacks
  • #62 replaced assert for validation with actual raise on error
  • #66 needless pass in parsing args
  • #67 command names in logging
  • #70 incorrect shebang in bundle.py
  • #71 used context handlers to close ZipFile objects
  • #72 download progress indicator shouldn't divide by zero
  • #73 missing newline in bundle.py error message
  • #75 explicit return of default when we can't get the version from a file
  • #77 cosmofy fs cat usage string
  • #79 ZipFile2.now should not be at module-level
  • #92 use public API for SourceFileLoader

Changed

  • #16 update examples, readme, usage (HT @Pugio)
  • #28 replaced --debug with --quiet + --verbose
  • #29 DEFAULT_PYTHON_URL is now Cosmopolitan Python
  • #31 replaced --cache with --no-cache + --cache-dir
  • #33 refactored bundler.py into subcommands
  • #55 switched to JSON parsing uv version output
  • #57 switched to using os.replace for atomic file moves
  • #64 replaced removeprefix with better cross-platform approach
  • #79 moved progress indicator to stderr
  • #87 marked cosmofy updater commands 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 -f to overwrite files that exist
  • #39 --color global option
  • #40 cosmofy self update
  • #40 cosmofy self version
  • #49 --exact to uv sync for 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.yaml workflow; added gh command
  • #17 default .com extension
  • #24 support for python <= 3.9
  • #27 --clone is no longer supported
  • #30 --download is no longer supported

Security

  • #53 added validate_url to avoid non-HTTPS URLs
  • #53 added security considerations note
  • #54 removed shell=True in places that don't need it
  • #63 added sanitize_zip_path to avoid bad entry names

0.1.0

18 Sep 19:09

Choose a tag to compare

0.1.0 - 2024-09-18T18:55:19Z

Initial release.

Added

  • #1, #4, #12: bootstrap cosmofy to build itself
  • #2, #6, #8, #9, #13: JSON receipt and schema
  • #3, #5: --receipt-url, --release-url, --release-version
  • #7: --self-update, --self-update --help, --self-update --version
  • #10: release notes
  • #11: auto-upload build artifacts to GitHub Release