Skip to content

Releases: PCART-tools/PCREQ

PCREQ-1.0.1

17 Jun 14:08

Choose a tag to compare

What's Changed

v1.0.1 fixes bugs introduced in v1.0.0 when removing hardcoded local paths from the repository for public release.

The most critical fix is a missing {} in an f-string (f"library_path_prefix..."f"{library_path_prefix}...") that caused all METADATA and setup.py constraint lookups to silently fail. The variable was treated as a string literal, so every lookup fell through to PyPI JSON. The same change guards download_from_data against write errors on read-only KB directories.

Additional reliability improvements:

  • Thread-safe extraction cache with atomic writes (tmp + os.replace) under extraction/cache/, eliminating data races in parallel batch execution.

  • _safe_load_json across all 10 call_graph read sites to handle empty or corrupted JSON files from interrupted writes.

  • Constraint keys normalized (lowercase, extras stripped) to match library_version.json key format.

  • remove_redundant_dependencies now checks other resolved packages' deps before removing a candidate, preventing loss of legitimate transitive dependencies.

  • Non-KB versions (e.g., post-releases in requirements.txt but absent from the KB) are prepended to candidate lists rather than appended or inserted at sort position, so the Z3 maximize strategy never prefers them over KB-validated versions.

  • Versions normalized via packaging.version.parse throughout to prevent duplicate Z3 variables from inconsistent version representations.

  • sorted() in save_dict_to_file for deterministic requirements.txt output.

  • knowledgePath normalized with rstrip("/"), original target_version used for report directory naming, end_available_versions guarded against orphaned FDG keys.

Full Changelog: v1.0.0...v1.0.1

PCREQ-1.0.0

16 Jun 12:40
5f00aaf

Choose a tag to compare

PCREQ 1.0.0 Release