- Merge project ini over defaults
(
ada1c30)
Project-level hammocking.ini via --config completely replaced the built-in defaults instead of overlaying. This caused critical settings like exclude_pattern to be lost, breaking builds with GCC/MinGW where runtime symbols like _pei386_runtime_relocator leaked through.
- Add HammockIni.merge() to overlay non-None values on top of defaults - HammockRunner always loads package defaults first, then project config - Extend default exclude_pattern with memcpy, memmove, memset, memcmp, bzero, strlen (compiler-generated intrinsics) - Rewrite docs/usage.md: complete CLI reference, config merge docs, output styles, real build examples - Add NmWrapper.mock_it() unit tests for symbol filtering logic
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- Consolidate README and LINUX_QUICKSTART into single README
(
b94e9a0)
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- Replace poetry and bootstrap with uv as package manager
(
d45bef3)
Both build.ps1 and build.sh now follow the same call chain: OS wrapper -> uv -> pypeline, with pypeline.yaml as the single source of truth for pipeline steps.
- Replace poetry with uv for dependency management - Remove bootstrap in favor of direct uv/scoop
installation - build.ps1: install scoop and uv, then
uv run pypeline run- build.sh: install uv, thenuv run pypeline run- pypeline.yaml: ScoopInstall, lint, test, docs - Add types-setuptools to dev dependencies
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- Update libclang to 1.18
(
640b4e1)
-
Add ignore_symbols_outside_project option with INI/CLI support (
1ee2679) -
Add
ignore_symbols_outside_projectto HammockIni and ConfigReader - Set default to true in hammocking.ini (opt-out behavior) - Use None sentinel to allow INI value to override CLI default - Update CLI help text and usage documentation - Fix Function.repr: was using self.type instead of self.return_type - Fix HammockRunner: self.hammock not initialized to None (AttributeError) - Enable inline coverage report in pytest - Improve test coverage from 92% to 95%
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
Add .devcontainer/ with Dockerfile (Python 3.13, clang, llvm, cmake, ninja-build, Poetry) and devcontainer.json (VS Code extensions, GitHub CLI feature, postCreateCommand). Remove .gitpod.yml in favor of the devcontainer spec. Update LINUX_QUICKSTART.md with DevPod instructions.
Closes #80 Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
The PyPI and GitHub Releases publish steps ran unconditionally on develop, even when python-semantic-release found no releasable commits and produced no dist/ directory, causing FileNotFoundError.
Additionally, the released output is true even in --noop mode (dry runs on PRs), so a noop guard is also required.
- Use steps.release.outputs.released with noop guard - Update actions/checkout@v4 to @v6 (Node.js 20 deprecation) - Pin release runner to ubuntu-24.04 to match test-on-linux - Remove disabled LLVM install step and unused publish_release var
Closes #79 Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- Add exclude-method
(
8c16402)
- Do not mock strlen standard library function
(
197cffc)
- Do not mock memcmp standard library function
(
026c210)
- Ignore exp
(
f27782c)
- Ignore memcpy
(
e3996f6)
- Unnecessary python dependency
(
9f18db9)
- Handle nm errors and be more verbose
(
87a0704)