{"id":48776683,"url":"https://github.com/xonsh/xonsh-winget","last_synced_at":"2026-05-23T08:04:45.863Z","repository":{"id":351047109,"uuid":"1209319874","full_name":"xonsh/xonsh-winget","owner":"xonsh","description":"Xonsh shell build tool for WinGet and Windows Installer.","archived":false,"fork":false,"pushed_at":"2026-05-13T06:29:47.000Z","size":2504,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-13T08:36:46.503Z","etag":null,"topics":["windows","windows-installer","windows-package","winget","winget-cli","winget-pkg","winget-pkgs","winget-repo","winget-repository","xonsh","xontrib"],"latest_commit_sha":null,"homepage":"https://xon.sh","language":"Xonsh","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xonsh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"xonsh","custom":"https://github.com/xonsh/xonsh#the-xonsh-shell-community"}},"created_at":"2026-04-13T10:00:59.000Z","updated_at":"2026-05-04T04:03:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xonsh/xonsh-winget","commit_stats":null,"previous_names":["xonsh/xonsh-winget"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/xonsh/xonsh-winget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xonsh%2Fxonsh-winget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xonsh%2Fxonsh-winget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xonsh%2Fxonsh-winget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xonsh%2Fxonsh-winget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xonsh","download_url":"https://codeload.github.com/xonsh/xonsh-winget/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xonsh%2Fxonsh-winget/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33387661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["windows","windows-installer","windows-package","winget","winget-cli","winget-pkg","winget-pkgs","winget-repo","winget-repository","xonsh","xontrib"],"created_at":"2026-04-13T13:03:16.285Z","updated_at":"2026-05-23T08:04:45.842Z","avatar_url":"https://github.com/xonsh.png","language":"Xonsh","funding_links":["https://github.com/sponsors/xonsh","https://github.com/xonsh/xonsh#the-xonsh-shell-community"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./xonsh-winget-pic.png\" width='100px'\u003e\n\u003c/p\u003e\n\n# xonsh-winget\n\nBuild system for creating a [winget](https://learn.microsoft.com/windows/package-manager/) package for the [xonsh](https://xon.sh) shell.\n**No administrator privileges required** — the installer is user-scoped and installs to `%LOCALAPPDATA%\\Programs\\xonsh`.\n\nThe pipeline bundles xonsh into a portable Python distribution (via the official [Python embeddable package](https://docs.python.org/3/using/windows.html#the-embeddable-package) + Inno Setup) and generates multi-file winget manifest YAML ready for submission to [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs).\n\n## Install xonsh\n\nDownload installer from [Releases page](https://github.com/xonsh/xonsh-winget/releases).\n\n## Build\n\n### Prerequisites\n\nFirst of all to build Xonsh WinGet install Git, Python 3.11+ and Inno Setup 6 ([Download](https://github.com/jrsoftware/issrc/releases/download/is-6_7_1/innosetup-6.7.1.exe) / [All releases](https://jrsoftware.org/isdl.php)).\n\nThen install all Python dependencies:\n\n```bash\ngit clone https://github.com/xonsh/xonsh-winget\ncd xonsh-winget\npip install -e .\n```\n\n### Use build tool\n\n```bash\n# Check system info\nxonsh build.xsh info\n\n# Full pipeline — builds distribution, creates installer, generates manifests\nxonsh build.xsh all --version 0.22.8  # Build release.\nxonsh build.xsh all --git  # Build latest commit from xonsh/xonsh repository.\n\n# Or step by step:\nxonsh build.xsh build     --version 0.22.8          # Python embed + xonsh\nxonsh build.xsh installer --version 0.22.8          # Inno Setup\nxonsh build.xsh manifest  --version 0.22.8          # winget YAML\nxonsh build.xsh validate  --version 0.22.8          # winget validate\n```\n\n### Commands\n\n#### `build`\n\nBuilds a xonsh distribution based on the Python embeddable package.\n\n```\nxonsh build.xsh build [--version VER] [--arch x64|x86] [--python-version PYVER]\n```\n\n- Downloads the official Python embeddable zip from python.org\n- Enables `site-packages` and installs `pip` via `get-pip.py`\n- Installs `xonsh[full]` (with prompt\\_toolkit, pygments, etc.)\n- Output: `build/\u003cver\u003e-\u003carch\u003e/dist/xonsh/` — a self-contained Python+xonsh directory\n\nThe result is a **fully functional Python environment**. After installation users can run `xpip install \u003cpackage\u003e` to add Python packages.\n\nIf `--version` is omitted, the latest version is fetched from PyPI.\n\n#### `installer`\n\nCreates a Windows installer using Inno Setup.\n\n```\nxonsh build.xsh installer --version VER [--arch x64|x86]\n```\n\n- Generates an Inno Setup `.iss` script from a Jinja2 template\n- Compiles it with `ISCC.exe`\n- Installs to `%LOCALAPPDATA%\\Programs\\xonsh` (user-scoped, no admin required)\n- Supports silent mode (`/VERYSILENT`), adds `Scripts\\` to user PATH\n- Output: `dist/xonsh-\u003cver\u003e-win-\u003carch\u003e-setup.exe`\n\nRequires Inno Setup 6 to be installed. The script auto-detects `ISCC.exe` in standard locations.\n\n#### `manifest`\n\nGenerates winget manifest files in multi-file format.\n\n```\nxonsh build.xsh manifest --version VER [--arch x64|x86] [--installer-path FILE] [--url URL]\n```\n\n- Produces three YAML files (version, defaultLocale, installer) under `manifests/x/xonsh/xonsh/\u003cver\u003e/`\n- Computes SHA256 of the installer automatically\n- `--url` defaults to `https://github.com/xonsh/xonsh/releases/download/\u003cver\u003e/xonsh-\u003cver\u003e-win-\u003carch\u003e-setup.exe`\n\n#### `validate`\n\nValidates generated manifests against the winget schema.\n\n```\nxonsh build.xsh validate --version VER\n```\n\nRuns `winget validate` on the manifest directory. Requires the winget CLI.\n\n#### `all`\n\nFull pipeline: `build` -\u003e `installer` -\u003e `manifest` -\u003e `validate`.\n\n```\nxonsh build.xsh all [--version VER] [--arch x64|x86] [--url URL]\n```\n\n#### `clean`\n\nRemoves all build artifacts (`build/`, `dist/`, `manifests/`).\n\n```\nxonsh build.xsh clean\n```\n\n#### `info`\n\nShows build environment and checks prerequisites.\n\n```\nxonsh build.xsh info\n```\n\n### What each step does\n\n1. **build** — Downloads the Python embeddable package, enables `site-packages`, installs pip and `xonsh[full]`. The result is a real Python environment where `xpip install` works.\n\n2. **installer** — Wraps the build output in an Inno Setup installer. The resulting `.exe`:\n   - Installs to `%LOCALAPPDATA%\\Programs\\xonsh` (no admin needed)\n   - Supports silent install: `/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-`\n   - Adds `Scripts\\` to user PATH (xonsh, pip, xpip are there)\n   - Registers in Add/Remove Programs\n\n3. **manifest** — Generates the three YAML files required by winget-pkgs:\n   - `Xonsh.Xonsh.yaml` (version)\n   - `Xonsh.Xonsh.locale.en-US.yaml` (metadata, tags, description)\n   - `Xonsh.Xonsh.installer.yaml` (download URL, SHA256, install switches)\n\n#### What the user gets after `winget install xonsh`\n\n```\n%LOCALAPPDATA%\\Programs\\xonsh\\\n├── python.exe                  # Embedded Python\n├── python3XX.dll\n├── python3XX._pth\n├── Lib\\site-packages\\          # Full site-packages (writable)\n│   ├── xonsh\\\n│   ├── prompt_toolkit\\\n│   ├── pygments\\\n│   ├── pip\\\n│   └── ...\n├── Scripts\\                    # Entry points (on PATH)\n│   ├── xonsh.exe               # \u003c-- user runs this\n│   ├── pip.exe\n│   └── ...\n└── license.txt\n```\n\n`xpip install lolcat` works because `Lib\\site-packages\\` is writable.\n\n\n## See also\n\n### winget documentation\n- [Windows Package Manager overview](https://learn.microsoft.com/windows/package-manager/)\n- [Create your package manifest](https://learn.microsoft.com/windows/package-manager/package/manifest)\n- [Submit your manifest to the repository](https://learn.microsoft.com/windows/package-manager/package/repository)\n- [winget validate command](https://learn.microsoft.com/windows/package-manager/winget/validate)\n- [Manifest schema reference (version)](https://learn.microsoft.com/windows/package-manager/package/manifest?tabs=version)\n- [Manifest schema reference (installer)](https://learn.microsoft.com/windows/package-manager/package/manifest?tabs=installer)\n- [Manifest schema reference (locale)](https://learn.microsoft.com/windows/package-manager/package/manifest?tabs=locale)\n\n### winget-pkgs repository\n- [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs) — community package repository\n- [winget-pkgs contribution guide](https://github.com/microsoft/winget-pkgs/blob/master/CONTRIBUTING.md)\n- [Manifest schema docs](https://github.com/microsoft/winget-pkgs/tree/master/doc/manifest)\n\n### winget tools\n- [microsoft/winget-create](https://github.com/microsoft/winget-create) — manifest creation tool\n- [microsoft/winget-cli](https://github.com/microsoft/winget-cli) — winget CLI source\n\n### Build tools\n- [Inno Setup](https://jrsoftware.org/isinfo.php) — Windows installer creator\n- [Inno Setup documentation](https://jrsoftware.org/ishelp/)\n- [Python embeddable package](https://docs.python.org/3/using/windows.html#the-embeddable-package) — official minimal Python distribution\n- [get-pip.py](https://pip.pypa.io/en/stable/installation/#ensurepip) — pip bootstrap installer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxonsh%2Fxonsh-winget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxonsh%2Fxonsh-winget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxonsh%2Fxonsh-winget/lists"}