Skip to content

Open source: public deps, remove private auth, docs - #93

Merged
Wenzel merged 10 commits into
masterfrom
feat/use-oswatcher-plugins-from-pypi
Jul 9, 2026
Merged

Wenzel merged 10 commits into
masterfrom
feat/use-oswatcher-plugins-from-pypi

Conversation

@Wenzel

@Wenzel Wenzel commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Switch all dependencies (neogit, oswatcher-plugins) from private git refs to PyPI
  • Remove all private auth (PAT_TOKEN, GHCR_TOKEN, GIT_AUTH_TOKEN) from CI workflows and Dockerfile — packer-templates submodule and GHCR image are now public
  • Purge private ISO URLs from default_settings.yaml (32 entries → null with source guidance)
  • Add full Divio-structured documentation + GitHub Pages deployment workflow
  • Write README covering architecture, prerequisites, installation, and configuration
  • Remove debug artifacts (debug_guestfs.py, domain.xml) from git tracking
  • Fix null-source crashes in __main__.py and build.py (AttributeError/TypeError on source: null entries)
  • Fix unguarded [0] on Packer output file list (IndexError → clear RuntimeError)
  • Remove leftover PAT_TOKEN refs in deploy.yml and dead pat_token input in composite action

Test plan

  • CI passes on this branch (fmt, lint, typecheck, unit tests)
  • poetry install works without any private git credentials
  • git clone --recurse-submodules works without PAT (packer-templates is public)
  • Docs build: poetry run poe docs produces output in docs/build/
  • Running osw-builder capture_os win95 with no source configured gives a clear error message instead of AttributeError

🤖 Generated with Claude Code

https://claude.ai/code/session_01UZqAo8uNBhVYbisBa2UQfa

Wenzel and others added 10 commits June 16, 2026 02:38
Points to master instead of dead win10_pro branch. Picks up the
open-source cleanup commits (Apache 2.0 license, README rewrite,
XP VLK key removal).
All 32 source: fields pointing to storage.grapheos.cc are replaced
with null placeholders. Legacy Vagrant boxes (win95-win2000) get a
note to build your own; ISO entries point to the header comment.
A 3-line header documents where to obtain ISOs legally.
The packer-templates image on ghcr.io/oswatcher is public — no login
required to pull it. Remove GHCR_TOKEN env var check, docker login
call, associated tests, and CI workflow step.
Covers what the project does, prerequisites, installation,
configuration (config.yaml, default_settings.yaml, neogit credentials),
CLI usage, architecture overview, module descriptions, and supported images.
Restructure docs/ into the four Divio quadrants — tutorials, how-to
guides, reference, and explanation — plus a contributing page:

- Tutorials: end-to-end first Ubuntu capture
- How-to: install system deps, provide ISOs, build without capture,
  add a new image
- Reference: CLI, configuration schema, modules
- Explanation: pipeline architecture, image inheritance model,
  response files / unattended installs

Add sphinx-design for grid-card landing page, replace the old
LLM-spec overview, and add a docs.yml workflow that builds and
publishes to GitHub Pages on push to master.
packer-templates submodule is public on GitHub, neogit and
oswatcher-plugins are on PyPI. No private auth needed for checkout
or poetry install.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UZqAo8uNBhVYbisBa2UQfa
- __main__.py: guard entry["source"] is not None before .endswith(".box")
  at both call sites (lines 139 and 165) — source: null in
  default_settings.yaml would raise AttributeError on every Windows image
- build.py: raise clear RuntimeError in validate_source_and_compute_sha1
  when source is None, instead of crashing with TypeError from urlparse(None)
- build.py: guard [0] on .box file list with explicit RuntimeError if
  Packer produces no output file
- deploy.yml: remove leftover PAT_TOKEN refs missed by earlier cleanup
- setup-python-poetry/action.yml: remove dead pat_token input

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UZqAo8uNBhVYbisBa2UQfa
Fixes E303 (too many blank lines) flake8 error and black formatting
check failure in CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UZqAo8uNBhVYbisBa2UQfa
@Wenzel
Wenzel merged commit 5bb019b into master Jul 9, 2026
7 checks passed
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.

1 participant