- Use
.cdx.jsonas the default extension for CycloneDX SBOM reports (#1118) - Embed base64-encoded license text in SBOM
licenses[].textwhen a license is successfully identified (#1112) - Set SBOM
licensesto the SPDX expressionNOASSERTIONwhen a license file is not found or cannot be classified (#1112) - Add a
dfetch:license:findingproperty to SBOM whenNOASSERTIONis set, explaining the reason (#1112) - Add
dfetch:license:thresholdanddfetch:license:toolSBOM properties (#1116) - Add
dfetch:license:<spdx-id>:confidenceSBOM property for per-licence confidence scores (#1116) - Use github purl, repo and version for a github release archive in SBOM (#1063)
- Allow
dfetch freezeto accept project names to freeze only specific projects (#1063) - Edit manifest in-place when freezing inside a git or SVN superproject, preserving comments and layout (#1063)
- Add new
removecommand to remove projects from manifest and disk (#26) - Fix "unsafe symlink target" error for archives containing relative
..symlinks (#1122) - Fix
dfetch addcrashing with aValueErrorwhen the remote URL has a trailing slash (#1137) - Fix unhelpful error message when a metadata file is malformed (#1145)
- Fix arbitrary file write via malicious tar/zip symlink (#1152)
- Prevent SSH command injection (#1152)
- Add archive (
vcs: archive) support for fetching dependencies from.tar.gz,.tgz,.tar.bz2,.tar.xzand.zipfiles via HTTP, HTTPS or file URLs (#1058) - Fix path-traversal check using character-based prefix comparison instead of path-component comparison (#1058)
- Fix directory hash being non-deterministic across filesystem traversal orders, causing false local-change detection (#1058)
- Fix
dfetch freezenot capturing branch information for SVN projects when only the revision matched (#1058) - Rename child-manifests to sub-manifests in documentation and code (#1027)
- Fix missing closing quote in unfetched-project diagnostic command example (#1070)
- Fetch git submodules in git subproject at pinned revision (#1013)
- Add nested projects in subprojects to project report (#1017)
- Make
dfetch reportoutput more yaml-like (#1017) - Don't break when importing submodules with space in path (#1017)
- Warn when
src:glob pattern matches multiple directories (#1017) - Introduce new
addcommand with optional interactive mode (-i) (#25)
- Fix missing unicode data in standalone binaries (#1014)
- Internal refactoring: introduce superproject & subproject (#896)
- Switch from pykwalify to StrictYAML (#922)
- Show line number when manifest validation fails (#36)
- Add Fuzzing (#819)
- Don't allow NULL or control characters in manifest (#114)
- Allow multiple patches in manifest (#897)
- Fallback and warn if patch is not UTF-8 encoded (#941)
- Skip patches outside manifest dir (#942)
- Make patch path in metadata platform independent (#937)
- Fix extra newlines in patch for new files (#945)
- Replace colored-logs and Halo with Rich (#960)
- Respect NO_COLOR (#960)
- Group logging under a project name header (#953)
- Introduce new
update-patchcommand (#614) - Introduce new
format-patchcommand (#943) - Drop python 3.9 support (#988)
- Support python 3.14
- Drop python 3.7, 3.8 support (#801)
- Don't show animation when running in CI (#702)
- Improve logic for creating Purls in SBoM (#780)
- Add External VCS reference to SBoM if possible (#780)
- Use CycloneDX schema version 1.6 (#542)
- Add security policy (#784)
- Add provenance / release attestation to pypi package (#784)
- Support multiple licenses per project (#788)
- Add evidence to sbom report (#788)
- Let action work outside of dfetch repo (#816)
- Handle SVN tags with special characters (#811)
- Don't return non-zero exit code if tool not found during environment (#701)
- Create standalone binaries for Linux, Mac & Windows (#705)
- Don't make metadata file part of diff (#267)
- Fix unneeded project prefix in SVN diffs (#888)
- Add more tests and documentation for patching (#888)
- Restrict
srcto string only in schema (#888) - Don't consider ignored files for determining local changes (#350)
- Avoid waiting for user input in
git&svncommands (#570) - Extend git ssh command to run in BatchMode (#570)
- Use native line breaks in
dfetch freeze&dfetch import(#327)
- Support python 3.13
- Fix too strict overlapping path check (#684)
- Show complete URL of child manifests (#683)
- Show remote name when using default remote (#445)
- Select HEAD branch as default in git (#689)
- Fix pypi publishing
- Warn user if the remote does not exist (#185, #171)
- Report unavailable project version during check (#381)
- Don't look for update on random branch if only revision is provided in git (#393)
- Don't report update available if revision on disk matches revision in manifest for git (#393)
- Report the revision available in git if only revision is in git (#393)
- Add
ignorelist to project entries in the manifest (#571)
- Don't break if no suggestion found (#358)
- Drop python 3.6 support (#386)
- Fix checking project from svn branch (#383)
- Move all configuration into single
pyproject.toml(#401) - Also build for python 3.11, 3.12 in CI
- Add 3.11, 3.12 classifier to pyproject
- When importing non-std SVN external, identify
srcpath
- Warn about local changes during check (#286)
- Add support for Gitlab-CI/Code Climate check reports (#18)
- Improve Sarif/github messages (#292)
- Update to CycloneDX spec 1.4 (#296)
- Never overwrite main project folder and manifest (#302)
- Add codespell and fix typo's (#303)
- Add warning to metadata file, not to change it (#170)
- Fix SBoM report (#337)
- Suggest a correct project name if not found (#320)
- Handle relative urls during dfetch import (#339)
- Pin dependencies
- Recommend child-projects instead of fetching (#242)
- Show spinner when fetching (#264)
- Don't allow path traversal for dst path
- Check for casing issues in
dst:path during update (#256) - Check for overlapping destinations of projects (#173)
- Handle invalid metadata file (#280)
- Update to CycloneDX spec 1.3 (#282)
- Make it possible to generate jenkins and sarif json report for check (#18)
- Pin dependencies
- Add diff command for svn projects (#24)
- Also add binary files as part of generated patch (#251)
- Create diff on working copy instead of current revision (#254)
- Deprecate
dfetch listcommand fordfetch reportcommand - Add Software Bill-of-Materials (sBoM) export to
dfetch reportcommand (#154) - Guess license for sbom export (#50)
- Match more licenses (#260)
- Add patch info to list command (#198)
- Don't break when there is a space in SVN dest path (#223)
- Fix unittest (#229)
- Allow using glob pattern for src key in manifest (#228)
- Add diff command (#24)
- Make dfetch work for python 3.6 (#32)
- Add list command (#20)
- Add warning when patch file isn't found (#191)
- Add project argument to check, update & list (#188)
- Add freeze command (#95)
- Add patch option (#22)
- Fix second update fails with non-standard SVN repo's (#167)
- Don't retain licenses in subfolders (#178)
- Import unpinned and non-std svn externals (#133)
- Fix empty folder remains after using
src:with subfolder in git (#163) - New logo
- Support for non-standard SVN repositories (#135)
- Fix dst usage for single source file with git (#120)
- Add copyright notices to documentation
- Make it possible to check/update child-projects (#99)
- Keep license files from repo, even when only checking only subdir (#50)
- Guard against overwriting local changes (#93)
- Add
--forceflag todfetch update
- Fix wrong version check (#101)
- Don't mandate remote section in manifest (#102)
- Add
tag:attribute to manifest (#92) - Remove branches/tags prefix for svn in manifest (#88)
- Branch name missing when not in manifest (#82)
- Interpret tags when checking for updates (#46)
- Add feature tests (#84)
- Make import command available for svn projects with externals.
- Improve documentation.
- Fix #73: Don't fail if svn or git is not installed.
- Fix #74: Don't default to SVN for non-ssh url.
- Add
vcs:field to manifest. - Make
src:partial checkouts available for git. - Drop support for shortened git sha (#80).
- Fix
dfetch importcommand. - Improve template.
- If no
dstis given for a project, use name of project instead. - Fixes #28: Rename manifest.yaml to dfetch.yaml
- Increase readability in terminals.
- Fix template generated by
dfetch init.
- Added release procedure.
- Added
importcommand.
- Added
dfetch environmentcommand. - Added changelog.
- Initial release