Electrical Engineering PhD researcher at CUHK. I maintain public tools for reproducible engineering, Python packaging diagnostics, local-first data work, and explainable security evidence.
I try to make each claim inspectable: public releases, runnable entry points, documented limits, and direct links to upstream work. A download counter or a self-submitted project listing is not presented as independent adoption.
| Project | What it does | Verifiable entry points |
|---|---|---|
| BenchLineage | Records experiment provenance, calibration, uncertainty and evidence, with portable ELN import/export. | PyPI · v0.3.5 · five accepted ELN contributions |
| WheelWhy | Explains why a Python wheel matches or misses a declared interpreter and platform; it is not a full pip or uv resolver. | v0.3.1 · external feedback and fix · upstream follow-up |
| ColdShelf | Builds a private searchable catalog of unplugged drives, including snapshots, duplicate evidence and physical-location notes. | latest release · quick start · limitations |
| VulnFuse | Correlates findings from SARIF, Trivy, Grype, Snyk, CycloneDX, OSV and CSV without hiding merge blockers or scanner disagreement. | browser workbench · v0.4.24 · security model |
| TermScope | Plots Arduino, ESP32 and STM32 telemetry in a terminal over serial, pipes or SSH, with CSV record/replay. | PyPI · v0.4.1 · hardware reports wanted |
See all repositories and published Python packages. The projects above are the small set I currently use to represent my maintenance work.
Recent owned-project maintenance includes VulnFuse PR #73, which closed issue #72 in v0.4.24 by preserving Trivy SARIF image identity for OpenVEX correlation, and TermScope PR #8, which closed issues #6 and #7 in v0.4.1 by tightening labelled-telemetry token boundaries. JSONXray PR #7 closed issues #5 and #6 in v0.2.1 by rejecting malformed streamed arrays. BenchLineage PR #20 closed issue #19 in v0.3.5 by adding explicit ELN data-license metadata, while SlowImports PR #6 closed issues #4 and #5 in v0.2.1 by preserving target failures and Unicode streams. These owner-authored and owner-merged releases demonstrate active maintenance; they are not external contributions or independent adoption.
- Merged: TheELNFileFormat PR #152
adds a reproducible BenchLineage-generated
.elnfixture and mapping. It passed the upstream schema and validator checks and was approved and merged. - Merged: TheELNFileFormat PR #153
clarifies
@type,additionalTypeandgenrein the public specification. It was approved and merged, closing issue #105. - Merged: TheELNFileFormat PR #154
makes parameter checks handle array-valued
DatasetandFiletypes, with regression cases for both invalid and valid nodes. It was approved and merged. - Merged: TheELNFileFormat PR #155
clarifies how child
Datasetrelationships are represented in the public specification. It was approved and merged, closing issue #116. - Merged: TheELNFileFormat PR #156 validates the specification's single-root-folder archive requirement. It passed the upstream check and was approved and merged; related issue #67 remains open.
- Merged: CycloneDX Python PR #1028
encodes local XML-schema paths as file URIs and adds a regression test for
package paths containing
#. All 47 public checks passed; a project member merged it, closed issue #551 and released it in v11.11.2. - Review: CycloneDX Python PR #1016
initially lost a strict-valid CycloneDX 1.7 relationship during model round
trips. I reproduced the defect and requested bounded coverage; the external
author implemented it. I reran 770 related and 6,994 full tests on exact head
ea7d2ca, then approved that revision. The PR remains open and unaccepted. - Review: python-docx-template PR #661 makes the intended license and test contents of source distributions explicit. I compared the published 0.20.2 source distribution with the exact PR head, rebuilt both package formats, ran 36 installed-wheel test scripts and the CLI path, and approved the third-party change. The PR remains open and unaccepted.
- Review: python-docx-template PR #642
adds CLI template-syntax validation and JSON reports. On exact head
c1259ab, I verified source and installed-wheel behavior, all 36 non-runner scripts, flake8 and package builds, then requested changes because two rejected validation invocations printed errors but returned success exit code 0. This is actionable review evidence, not approval, acceptance or maintainer authority. - Review: python-docx-template PR #648
preserves optional
Subdocimports while sorting package imports. I ran all 37 test scripts, flake8, package builds and clean-wheel environments both with and withoutdocxcompose; normal and subdocument outputs rendered and reopened successfully. I approved exact headf583ed34; all 14 upstream checks pass. The PR remains open, so this is review evidence rather than acceptance or maintainer authority. - Review: Argo CD PR #29175
proposed boolean parsing that diverged from bundled Dex v2.45.1. I reproduced
three boundary failures and verified a
strconv.ParseBoolcandidate with focused and fullutil/dextests plusgo vet, then requested compatible parsing and tests. This is actionable review evidence, not delegated Argo CD responsibility or acceptance. - Review: pandas PR #66623
improved Arrow-string memory accounting in a clean installed wheel, but two
exact MultiIndex memory tests failed, the public doctest expectation was
stale, and the branch conflicted with
main. I submitted a testedCHANGES_REQUESTEDreview on exact headece0d447. The PR remains open and this does not establish pandas maintainer authority. - Open maintainer-path work: python-docx-template PR #662 fixes escaped Jinja delimiters split across Word runs for issue #548, including the original attached document and Python 3.9/3.13 regression runs. I also triaged issue #627 with a two-page reproduction and an exact artifact request. The project owner publicly asks maintainer candidates to contribute first; these actions follow that path but do not grant me maintainer authority.
- Merged: Keycloak PR #51697 reports OID4VCI credential-request errors consistently and adds regression coverage for missing claims metadata and invalid proof timing. It fixed help-wanted issue #51692, received maintainer approval, passed the upstream check matrix and was merged into the default branch.
- Review: CycloneDX specification PR #1019 implements the schema defect I reported in issue #1018. I independently ran the Java, Node and Buf gates on its exact head, approved it, and closed my later duplicate #1020 to reduce maintainer work. The third-party PR remains open and unaccepted.
- Merged: eLabFTW PR #7267
adds the licensed BenchLineage v0.3.5 demo as a cross-producer ELN import
fixture after a maintainer welcomed the proposal in issue #7263. A real
PHP/MySQL import selected an experiment and preserved all 20 linked uploads.
Maintainer
NicolasCARPiapproved exact headbaeb6e37; all ten checks passed, and merge77b941e1placed the byte-identical release asset on defaultmaster. This is accepted external integration work, not independent user adoption or eLabFTW maintainer authority. - Open: cibuildwheel PR #2966 removes an unconditional NuGet fallback source and adds regression coverage so configured package sources remain authoritative.
- Open after maintainer feedback:
tox PR #4022
provisions the requested tox version before reading version-specific
configuration. I added exact
tox landtox cbehavior coverage requested in review; the current head passes the full upstream check matrix and the addressed review thread is resolved. The PR remains unaccepted. - Open: BuildKit PR #7038
makes
history.maxEntries=0explicitly disable build-history persistence. The focused integration test passed across nine worker variants and the approved fork workflow matrix is green; no maintainer has accepted it yet. - Open: Airflow PR #71535 refreshes a stale local bare Git origin when a requested bundle tracking ref cannot be resolved. Focused, module, type, packaging and real promotion paths passed locally; the large upstream matrix is still running, so this is not reported as accepted or fully green.
- Open: Astropy PR #20234 rejects FITS tables with more than 999 physical columns before writing a partial file and adds the 999/1000 boundary regression. It remains awaiting maintainer review and is not an accepted contribution.
- Merged: SampleDB PR #91 fixes valid ELN imports that contain explicit ZIP directory entries while preserving rejection of genuine multi-root archives. It was merged into the upstream default branch; GitHub reported no reviews or checks for the PR.
- Merged: SampleDB PR #92
preserves flexible ELN metadata named
partswhile assigning collision-free keys to generated nested-Dataset relationships. It was merged into the upstream default branch; GitHub again reported no reviews or checks.
The five accepted TheELNFileFormat contributions make me a repeat external contributor there. SampleDB #91 and #92 make me a repeat external contributor to that separate project; CycloneDX Python #1028, Keycloak #51697 and eLabFTW PR #7267 are one accepted contribution each. They do not make me a module owner or core maintainer. CycloneDX Python #1016 and specification #1019 are review contributions; python-docx-template #661, #642 and #648, Argo CD #29175 and pandas #66623 are independently tested reviews, while python-docx-template #662 and cibuildwheel #2966 remain unaccepted proposals. The python-docx-template work follows a public candidate route but is not a maintainer appointment. The eLabFTW fixture is cross-producer integration evidence, not independent adoption. Self-submissions that list my own tools in curated lists are excluded from this section because they are promotion, not independent maintenance or adoption.
- I am the primary maintainer of the owned repositories featured above.
- I describe external work as merged or open contributions unless a project publicly grants broader responsibility.
- Synthetic/demo data is labelled as such; it is not presented as a user study or production deployment.
- Security and research tools publish assumptions and failure boundaries.
- Stars, downloads, users, benchmarks and testimonials are never fabricated.
Focused bug reports, real platform results and reviewable pull requests are welcome through each project's public Issues or Discussions.
