Skip to content

Publish uc-picker packages and rebuild bilingual documentation - #116

Merged
Makiras merged 8 commits into
masterfrom
docs/bilingual-documentation
Oct 24, 2026
Merged

Makiras merged 8 commits into
masterfrom
docs/bilingual-documentation

Conversation

@Makiras

@Makiras Makiras commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Description

Publish Picker as uc-picker, depending on uc-xcomm>=1.1,<2 and swig>=4.2.1,<5, while preserving the picker command and the bilingual documentation overhaul in this PR.

  • Build the Linux x86-64 release wheel with a modern compiler in the pinned manylinux 2.28 image, using generic CPU flags and fully static linking, including libc. Audit and publish it as py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.

  • Install the static C library development package and require PICKER_REQUIRE_STATIC=ON. Reject an ELF interpreter, shared-library dependencies, versioned external symbols, and bundled native bindings before labeling the wheel.

  • Reuse the portable wheel build in PR CI and Tagged CI. Install the same wheel with Python 3.11/3.12 on GLIBC 2.17/2.28 and check the CLI and installed templates. Tagged releases additionally install the selected published xcomm and SWIG wheels, check dependencies, import the runtime, pack RTL and export a Python DUT in all four environments.

  • Verify installed release wheels with the latest SWIG allowed by swig>=4.2.1,<5, without a separate SWIG version matrix. Use SWIG 4.5.1 in the pinned native toolchain.

  • Keep wheels independent of the Python minor version by excluding bundled xcomm bindings. Raw CMake builds can still include xcomm. Preserve native AppImage/archive architectures and names, and disable XSPCOMM_NATIVE for tagged native releases.

  • Select a compatible stable uc-xcomm release present on both GitHub and PyPI. Publish the exact verified release wheel using PyPI Trusted Publishing.

  • Pin development builds to Publish uc-xcomm manylinux wheels and native source distributions xcomm#32 (b3f48f40d3aa362b021fb8e4955ebd3765d56705) with test-only version 1.1.0. Preserve the English/Chinese tutorials, guides, references, MkDocs site, Wiki export and documentation CI.

  • Add matching six-badge rows to both READMEs: PyPI version, Python 3.11/3.12, PR CI, license, documentation and Stars. Preconfigure the dynamic uc-picker PyPI version badge and final project URL for the first release. CI tracks pull-request events because Development CI excludes master pushes. Use absolute README links; new bilingual documentation points to the existing documentation commit so it is readable before merge. Stars links to the repository homepage.

Type of change

  • Packaging and release functionality
  • Documentation and documentation tooling

How Has This Been Tested?

  • Built the actual fully static wheel in the pinned GLIBC 2.28 image. The ELF guard and auditwheel confirmed no external shared libraries or versioned symbol dependencies; repair produced the 2.17/2014 tags and strict Twine checks passed.

  • Installed that same wheel in all four Python 3.11/3.12 × GLIBC 2.17/2.28 containers. Standalone CLI and installed-template checks passed.

  • Repeated all four environments with test-only uc-xcomm==1.1.0 wheels built from the pinned source on GLIBC 2.17 and SWIG 4.5.1. Pip resolved the declared dependencies; pip check, runtime imports, RTL-to-UVM packing and Python DUT export passed.

  • Verified the existing full installed-wheel checks, including CMake discovery of pip SWIG and xcomm ABI/protocol, clock, coverage and expression interfaces.

  • Rebuilt the wheel with the relaxed SWIG metadata. The installed-wheel checks and CMake discovery passed with both SWIG 4.2.1 and 4.5.1. With SWIG 4.2.1 and an xcomm wheel built using SWIG 4.5.1, generated and compiled a real 128-bit Adder through Verilator; direct simulation and Toffee execution each passed all three arithmetic/carry cases. pip check and strict Twine checks passed.

  • Confirmed the original image without static libc fails configuration with the new required-static option, and the old dynamically linked Picker wheel is rejected.

  • Passed 14 release tests, including real static/dynamic ELF regression cases; checked 32 localized documentation pages and 154 links, workflow/TOML syntax and git diff --check.

  • Container tests cover the target userspace and share the host kernel; they do not independently establish an old-kernel support guarantee.

  • README update validation: both READMEs render six badges and use absolute URLs; repository and documentation targets were checked online; the final PyPI badge and project URL become available after the first publication; 32 translated pages and 116 local links pass; strict MkDocs build and whitespace checks pass.

Dependencies and publishing

uc-xcomm==1.1.0 is now available on PyPI and GitHub Releases. Configure a pending PyPI publisher for project uc-picker, owner XS-MLVP, repository picker, workflow release.yml, environment pypi; create the matching GitHub environment. No API token is required. The related Toffee rename is XS-MLVP/toffee#27.

Checklist

  • Preserve the existing picker command and native release artifacts.
  • Maintain paired Chinese/English documentation and executable examples.
  • Validate the actual portable wheel and installed dependency chain locally.
  • Keep documentation and exactly one version label (release:minor).
  • Configure the PyPI publisher and obtain maintainer confirmation before merging or publishing.

Organize the Chinese and English documentation into tutorials, task
instructions, API references and explanations. Add a complete Adder
walkthrough and practical guidance for RTL export, simulation, internal
signals, language bindings and UVM transactions. Keep README and legacy
pages as entry points to the canonical documentation.

Add a searchable MkDocs site with language switching and a Wiki exporter
that uses the same Markdown sources. Provide checks for page and navigation
parity, local links and anchors, Python example syntax and matching runnable
examples across translations.

Run documentation checks, strict site builds and Wiki exports for relevant
master PRs, master/docs branch pushes and manual runs. Upload the site and
Wiki as review artifacts, and document the authoring workflow.

Validation: bilingual/link/syntax checks, strict site build and Wiki export
passed. Four Python documentation examples passed against generated models;
site navigation, search, language switching and mobile layout were checked.
@Makiras Makiras added documentation Improvements or additions to documentation release:patch Patch release after the PR merges labels Oct 23, 2026
@Makiras Makiras removed the release:patch Patch release after the PR merges label Oct 23, 2026
@Makiras Makiras added the release:minor Minor release after the PR merges label Oct 23, 2026 — with ChatGPT Codex Connector
@Makiras Makiras changed the title docs: rebuild bilingual guides and add site/Wiki previews Publish uc-picker packages and rebuild bilingual documentation Oct 23, 2026

@SFangYy SFangYy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Makiras
Makiras merged commit 983c6ef into master Oct 24, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation release:minor Minor release after the PR merges

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants