{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.emcd/python-project-common","documentNamespace":"https://spdx.org/spdxdocs/protobom/f06b6eca-f707-40a0-884c-e2818a0efe5a","comment":"Exact versions could not be resolved for some packages. For more information: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#dependencies-included.","creationInfo":{"creators":["Tool: protobom-v0.0.0-20260130170711-0b8e67cacb3b+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-02-10T20:11:43Z"},"packages":[{"name":"emcd/python-project-common/.github/actions/python-hatch","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubactions-python-hatch-master-75c946","versionInfo":"master","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/actions/python-hatch@master"}]},{"name":"actions/setup-node","SPDXID":"SPDXRef-githubactions-actions-setup-node-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/setup-node@4.%2A.%2A"}]},{"name":"anthropics/claude-code-action","SPDXID":"SPDXRef-githubactions-anthropics-claude-code-action-1..-75c946","versionInfo":"1.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/anthropics/claude-code-action@1.%2A.%2A"}]},{"name":"actions/deploy-pages","SPDXID":"SPDXRef-githubactions-actions-deploy-pages-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/deploy-pages@4.%2A.%2A"}]},{"name":"actions/upload-pages-artifact","SPDXID":"SPDXRef-githubactions-actions-upload-pages-artifact-3..-75c946","versionInfo":"3.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/upload-pages-artifact@3.%2A.%2A"}]},{"name":"actions/upload-artifact","SPDXID":"SPDXRef-githubactions-actions-upload-artifact-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/upload-artifact@4.%2A.%2A"}]},{"name":"icecream-truck","SPDXID":"SPDXRef-pypi-icecream-truck-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/icecream-truck"}]},{"name":"dynadoc","SPDXID":"SPDXRef-pypi-dynadoc-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/dynadoc"}]},{"name":"typing-extensions","SPDXID":"SPDXRef-pypi-typing-extensions-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/typing-extensions"}]},{"name":"absence","SPDXID":"SPDXRef-pypi-absence-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/absence"}]},{"name":"emcd-appcore","SPDXID":"SPDXRef-pypi-emcd-appcore-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/emcd-appcore"}]},{"name":"jinja2","SPDXID":"SPDXRef-pypi-jinja2-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/jinja2"}]},{"name":"packaging","SPDXID":"SPDXRef-pypi-packaging-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/packaging"}]},{"name":"defusedxml","SPDXID":"SPDXRef-pypi-defusedxml-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/defusedxml"}]},{"name":"frigid","SPDXID":"SPDXRef-pypi-frigid-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/frigid"}]},{"name":"emcd/python-project-common/.github/workflows/xrepo--claude.yaml","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--claude.yaml-gha-1-75c946","versionInfo":"gha-1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/workflows/xrepo--claude.yaml@gha-1"}]},{"name":"actions/download-artifact","SPDXID":"SPDXRef-githubactions-actions-download-artifact-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/download-artifact@4.%2A.%2A"}]},{"name":"actions/attest-build-provenance","SPDXID":"SPDXRef-githubactions-actions-attest-build-provenance-2..-75c946","versionInfo":"2.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/attest-build-provenance@2.%2A.%2A"}]},{"name":"emcd/python-project-common/.github/workflows/xrepo--tester.yaml","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--tester.yaml-gha-1-75c946","versionInfo":"gha-1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/workflows/xrepo--tester.yaml@gha-1"}]},{"name":"emcd/python-project-common/.github/workflows/xrepo--reporter.yaml","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--reporter.yaml-gha-1-75c946","versionInfo":"gha-1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/workflows/xrepo--reporter.yaml@gha-1"}]},{"name":"emcd/python-project-common/.github/workflows/xrepo--documenter.yaml","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--documenter.yaml-gha-1-75c946","versionInfo":"gha-1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/workflows/xrepo--documenter.yaml@gha-1"}]},{"name":"emcd/python-project-common/.github/workflows/xrepo--packager.yaml","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--packager.yaml-gha-1-75c946","versionInfo":"gha-1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/workflows/xrepo--packager.yaml@gha-1"}]},{"name":"emcd/python-project-common/.github/actions/python-hatch","SPDXID":"SPDXRef-githubactions-emcdpython-project-common.githubactions-python-hatch-gha-1-75c946","versionInfo":"gha-1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/emcd/python-project-common/.github/actions/python-hatch@gha-1"}]},{"name":"pypa/gh-action-pypi-publish","SPDXID":"SPDXRef-githubactions-pypa-gh-action-pypi-publish-releasev1-75c946","versionInfo":"release/v1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/pypa/gh-action-pypi-publish@release%2Fv1"}]},{"name":"com.github.emcd/python-project-common","SPDXID":"SPDXRef-github-emcd-python-project-common-master-1907e3","versionInfo":"master","downloadLocation":"git+https://github.com/emcd/python-project-common","filesAnalyzed":false,"licenseDeclared":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/emcd/python-project-common@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--reporter.yaml-gha-1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--packager.yaml-gha-1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-frigid-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--claude.yaml-gha-1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--documenter.yaml-gha-1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-emcd-appcore-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-jinja2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-packaging-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubactions-python-hatch-master-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-anthropics-claude-code-action-1..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-actions-deploy-pages-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-actions-upload-pages-artifact-3..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-icecream-truck-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-actions-upload-artifact-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-dynadoc-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-typing-extensions-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-actions-download-artifact-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubworkflows-xrepo--tester.yaml-gha-1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-emcdpython-project-common.githubactions-python-hatch-gha-1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-pypa-gh-action-pypi-publish-releasev1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-defusedxml-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-actions-setup-node-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-pypi-absence-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-emcd-python-project-common-master-1907e3","relatedSpdxElement":"SPDXRef-githubactions-actions-attest-build-provenance-2..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-emcd-python-project-common-master-1907e3","relationshipType":"DESCRIBES"}]}