Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.org
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
#+title: Changelog
#+author: Hayden Stanko

* 0.3.4 — 2026-04-14

** Bug fixes
- Fix =--install-from-content= failing when =root-directory= doesn't exist ::
=call-process= requires =default-directory= to be a valid path. When
=root-directory= in the spec pointed to a not-yet-cloned directory, the
install pipeline crashed with "No such file or directory". Now
=(make-directory default-directory t)= is called before the pipeline runs.

** Tests
- 1 new spec: non-existent =root-directory= is created before pipeline
stages execute.
- Total spec count: 105 (up from 104 in 0.3.3).

* 0.3.3 — 2026-03-21

** Bug fixes
Expand Down
3 changes: 2 additions & 1 deletion declarative-project-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
;; Maintainer: Hayden Stanko <system.cuttle@gmail.com>
;; Created: January 13, 2023
;; Modified: March 21, 2026
;; Version: 0.3.3
;; Version: 0.3.4
;; Keywords: convenience, tools, project
;; Homepage: https://github.com/cuttlefisch/declarative-project-mode
;; Package-Requires: ((emacs "28.1") (yaml "0.5.1"))
Expand Down Expand Up @@ -215,6 +215,7 @@ EXTRA-KEYS is an alist of additional keys to set in the resource hash."
(file-name-as-directory (expand-file-name rd))))
(default-directory (or root-from-spec
(file-name-as-directory (expand-file-name project-dir)))))
(make-directory default-directory t)
(puthash 'project-root default-directory project-resources)
(dolist (pair extra-keys)
(puthash (car pair) (cdr pair) project-resources))
Expand Down
2 changes: 1 addition & 1 deletion declarative-project-treemacs.el
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
;; Maintainer: Hayden Stanko <system.cuttle@gmail.com>
;; Created: January 14, 2023
;; Modified: March 21, 2026
;; Version: 0.3.3
;; Version: 0.3.4
;; Keywords: convenience, tools, project
;; Homepage: https://github.com/cuttlefisch/declarative-project-mode
;; Package-Requires: ((emacs "28.1") (treemacs "2.10") (declarative-project-mode "0.3.3"))
Expand Down
2 changes: 1 addition & 1 deletion ob-declarative-project.el
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
;; Maintainer: Hayden Stanko <system.cuttle@gmail.com>
;; Created: March 15, 2026
;; Modified: March 21, 2026
;; Version: 0.3.3
;; Version: 0.3.4
;; Keywords: convenience, tools, project
;; Homepage: https://github.com/cuttlefisch/declarative-project-mode
;; Package-Requires: ((emacs "28.1") (org "9.0") (declarative-project-mode "0.3.3"))
Expand Down
20 changes: 19 additions & 1 deletion test/test-declarative-project.el
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,25 @@
(expect (gethash 'project-root result)
:to-equal (file-name-as-directory
(expand-file-name root-dir)))))
(delete-directory root-dir t))))))
(delete-directory root-dir t)))))

(it "creates non-existent root-directory before running pipeline"
(with-temp-project-dir
(let* ((novel-root (concat (make-temp-file "dpm-novel-" t) "/subdir")))
(unwind-protect
(progn
(spy-on 'declarative-project--check-required-resources)
(spy-on 'declarative-project--install-project-dependencies)
(spy-on 'declarative-project--copy-local-files)
(spy-on 'declarative-project--create-symlinks)
(spy-on 'declarative-project--apply-treemacs-workspaces)
(let* ((yaml (format "name: Test\nroot-directory: %s\n" novel-root))
(result (declarative-project--install-from-content
yaml project-dir)))
(expect (gethash 'project-root result)
:to-equal (file-name-as-directory
(expand-file-name novel-root)))))
(delete-directory (file-name-directory novel-root) t))))))

;;; ==========================================================================
;;; declarative-project--install-project (parsing)
Expand Down
Loading