Repository navigation
Publish uc-picker packages and rebuild bilingual documentation - #116
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Publish Picker as
uc-picker, depending onuc-xcomm>=1.1,<2andswig>=4.2.1,<5, while preserving thepickercommand 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_NATIVEfor tagged native releases.Select a compatible stable
uc-xcommrelease 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 version1.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
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.0wheels 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 checkand 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.0is now available on PyPI and GitHub Releases. Configure a pending PyPI publisher for projectuc-picker, ownerXS-MLVP, repositorypicker, workflowrelease.yml, environmentpypi; create the matching GitHub environment. No API token is required. The related Toffee rename is XS-MLVP/toffee#27.Checklist
pickercommand and native release artifacts.documentationand exactly one version label (release:minor).