@@ -30835,3 +30835,65 @@ (define-public python-hatchling
(description "Modern, extensible Python project management")
;; MIT License
(license license:expat)))
+
+(define-public python-hatch-vcs
+ ;; Tags are not accurate; just use the commit itself.
+ (let ((commit "367daedb23ba906f3e0714c64392fdd6ffa69ab2")
+ (revision "1"))
+ (package
+ (name "python-hatch-vcs")
+ (version (git-version "0.2.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ofek/hatch-vcs")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nlnv32jqiz8ikc013h5simmiqqg0qa7pm0qcbd8yiqq1p43iw05"))))
+ (build-system python-build-system)
+ (inputs (list python
+ python-pypa-build
+ python-pathspec
+ python-pluggy-1.0
+ python-editables
+ git))
+ ;; python-setuptools-scm-6.4 minimum
+ (propagated-inputs (list python-hatchling))
+ (native-inputs (list python-pytest python-setuptools-scm-7))
+ (arguments
+ ;; Copied directly from the build process for
+ ;; python-jsonschema-next.
+ (substitute-keyword-arguments (package-arguments python-jsonschema)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'build
+ (lambda _
+ (setenv "SOURCE_DATE_EPOCH" "315532800")
+ (invoke "python"
+ "-m"
+ "build"
+ "--wheel"
+ "--no-isolation"
+ ".")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((whl (car (find-files "dist" "\\.whl$"))))
+ (invoke "pip"
+ "--no-cache-dir"
+ "--no-input"
+ "install"
+ "--no-deps"
+ "--prefix"
+ #$output
+ whl))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vvv"))))))))
+ (home-page "https://ofek.dev/projects/hatch/")
+ (synopsis "Hatch plugin for versioning with your preferred VCS")
+ (description "Hatch plugin for versioning with your preferred VCS")
+ ;; MIT License
+ (license license:expat))))