Thanks for your interest in improving Altium Monkey.
This repository is a published mirror for a project developed in a separate upstream workspace. The project uses additional private validation infrastructure and a large file corpus that is not included in this repository.
Because of that, pull requests are welcome as proposals, but they may not be merged directly as submitted. A PR can still be very useful when it shows the intended behavior, expected API shape, a failing case, or a possible implementation strategy. Accepted changes may be adapted or rewritten in the upstream source tree, validated there, and mirrored back to this repository in a later package version.
The most useful contributions are:
- clear bug reports with the smallest reproducible case
- public test files that can be committed or referenced safely
- focused API feedback with concrete examples
- documentation fixes or clarifications
- small proposed patches that demonstrate intent
For parser, serializer, renderer, or round-trip bugs, a minimal Altium file is
usually needed to fix the issue. Please try to provide the smallest .SchDoc,
.SchLib, .PcbDoc, .PcbLib, .PrjPcb, .OutJob, or related file set that
reproduces the behavior.
Only share files that you have permission to publish. Do not attach customer designs, private company files, license keys, credentials, or files containing confidential metadata.
Please keep pull requests focused. A small reproduction, failing check, or clearly explained behavioral change is usually more useful than a broad rewrite.
Public tests are an important first check, but they are not the final acceptance gate. Changes that affect file parsing, writing, rendering, or public APIs are also reviewed against private compatibility and regression tests before they are released.
When a contribution materially informs a released change, we will preserve attribution where practical.
When reporting a bug, include:
- the Altium Monkey version
- the Python version and operating system
- the Altium file type involved
- the command or code snippet that reproduces the issue
- the expected behavior
- the actual behavior
- a minimal public reproduction file or fixture, when possible
If a file cannot be shared publicly, describe how it was created and which objects or settings are involved. Synthetic cases are preferred when they can reproduce the same behavior.
User-visible changes are documented in RELEASE_NOTES.md. Public API changes,
compatibility notes, and migration details should be described there when they
ship.