guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 083021eb30b118a0c4fca25cf3a8cedb5059aff2
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Sun Aug 2 18:18:30 2026 +0900
build/node: Clean-up deprecation.
(guix build json-utils): should not be deprecating things that are to be
deprecated in (guix build node-build-system). For things now defined in
(guix
build json-utils), opt to re-export rather than define a deprecation, as
this
would otherwise cause warnings that cannot be resolved (due to the
conflicting
definitions).
* guix/build/json-utils.scm: Export with-atomic-json-file-replacement*. Do
not
define/export delete-fields, replace-fields and add-fields. Avoid double
definition of with-atomic-json-file-replacement and modify-json.
* guix/build/node-build-system.scm: Streamline imports/re-exports. Do not
deprecate things that were newly added to (guix build json-utils).
* tests/node.scm: Add (guix build json-utils) import.
---
guix/build/json-utils.scm | 20 +++++-------------
guix/build/node-build-system.scm | 44 ++++++++++------------------------------
tests/node.scm | 1 +
3 files changed, 17 insertions(+), 48 deletions(-)
diff --git a/guix/build/json-utils.scm b/guix/build/json-utils.scm
index 5090daf770e..027f919bdab 100644
--- a/guix/build/json-utils.scm
+++ b/guix/build/json-utils.scm
@@ -35,14 +35,12 @@
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
- #:export (with-atomic-json-file-replacement
+ #:export (with-atomic-json-file-replacement ;deprecated
+ with-atomic-json-file-replacement*
modify-json
modify-json-fields
- delete-fields
delete-json-fields
- replace-fields
replace-json-fields
- add-fields
add-json-fields
&modify-json-invalid-field-value-error
@@ -65,13 +63,11 @@ a value to be written as JSON to the replacement FILE."
;; removed in favor of with-atomic-json-file-replacement*'s content eventually.
;; On removal, also remove the (guix deprecation) modules and their closures
;; from node-build-system imported-modules.
-(define* (with-atomic-json-file-replacement proc
- #:optional (file "package.json"))
+(define-deprecated (with-atomic-json-file-replacement proc
+ #:optional (file "package.json"))
+ with-atomic-json-file-replacement*
(with-atomic-json-file-replacement* file proc))
-(define-deprecated/public-alias with-atomic-json-file-replacement
- with-atomic-json-file-replacement*)
-
;; This is the function we eventually want to migrate to.
(define* (modify-json* file #:rest modifications)
"Modify JSON FILE with successive callbacks."
@@ -205,8 +201,6 @@ invalid field value provided, expected string or list of
strings, got ~s~%")
(assoc-remove! data key))
#:strict? strict?))
-(define-deprecated/alias delete-fields delete-json-fields)
-
(define* (replace-json-fields fields #:key (strict? #t) insert?)
"Provides a lambda to supply to modify-json which replaces the value of the
supplied field. `fields` is a list of pairs, where the first element is the
@@ -225,14 +219,10 @@ invalid field value provided, expected string or list of
strings, got ~s~%")
#:insert? insert?
#:strict? strict?))
-(define-deprecated/alias replace-fields replace-json-fields)
-
(define* (add-json-fields fields)
"Like `replace-json-fields', but can insert new fields as well."
(replace-json-fields fields #:insert? #t))
-(define-deprecated/alias add-fields add-json-fields)
-
;;; Local Variables:
;;; eval: (put 'with-atomic-json-file-replacement 'scheme-indent-function 1)
;;; eval: (put 'modify-json* 'scheme-indent-function 1)
diff --git a/guix/build/node-build-system.scm b/guix/build/node-build-system.scm
index 102fc1e0cf1..3767ae68a39 100644
--- a/guix/build/node-build-system.scm
+++ b/guix/build/node-build-system.scm
@@ -25,15 +25,8 @@
(define-module (guix build node-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
- #:use-module ((guix build json-utils)
- #:select ((modify-json . modify-json*)
- (modify-json-fields . modify-json-fields*)
- (delete-json-fields . delete-json-fields*)
- (replace-json-fields . replace-json-fields*)
- (add-json-fields . add-json-fields*)
- (with-atomic-json-file-replacement
- . with-atomic-json-file-replacement*)))
#:use-module (guix deprecation)
+ #:use-module (guix build json-utils)
#:use-module (guix build utils)
#:use-module (ice-9 format)
#:use-module (ice-9 ftw)
@@ -49,16 +42,16 @@
delete-dev-dependencies
delete-dev-dependencies/except
node-build
- modify-json
+
+ ;; The following are deprecated and have been moved to the (guix
+ ;; build json-utils) module.
+ ;; TODO: Remove after 2027/08.
delete-fields
replace-fields
add-fields)
- #:re-export ((modify-json-fields* . modify-json-fields)
- (delete-json-fields* . delete-json-fields)
- (replace-json-fields* . replace-json-fields)
- (add-json-fields* . add-json-fields)
- (with-atomic-json-file-replacement*
- . with-atomic-json-file-replacement)))
+ ;; Also deprecated.
+ #:re-export (with-atomic-json-file-replacement
+ modify-json))
;;;
;;; Helpers
@@ -74,33 +67,18 @@
'("devDependencies"
"peerDependencies"))
-(define-deprecated/alias with-atomic-json-file-replacement
- (@ (guix build json-utils) with-atomic-json-file-replacement))
-
-(define-deprecated/alias modify-json
- (@ (guix build json-utils) modify-json))
-
(define-deprecated/alias modify-json-fields
(@ (guix build json-utils) modify-json-fields))
(define-deprecated/alias delete-fields
(@ (guix build json-utils) delete-json-fields))
-(define-deprecated/alias delete-json-fields
- (@ (guix build json-utils) delete-json-fields))
-
(define-deprecated/alias replace-fields
(@ (guix build json-utils) replace-json-fields))
-(define-deprecated/alias replace-json-fields
- (@ (guix build json-utils) replace-json-fields))
-
(define-deprecated/alias add-fields
(@ (guix build json-utils) add-json-fields))
-(define-deprecated/alias add-json-fields
- (@ (guix build json-utils) add-json-fields))
-
(define* (delete-dependencies dependencies-to-remove
#:key negate?
(dependency-keys %dependency-keys))
@@ -142,8 +120,8 @@ dependencies."
#:dependency-keys %dev-dependency-keys))
(define (delete-dev-dependencies)
- (delete-json-fields* (list "devDependencies" "peerDependencies")
- #:strict? #f))
+ (delete-json-fields (list "devDependencies" "peerDependencies")
+ #:strict? #f))
;;;
;;; Phases.
@@ -200,7 +178,7 @@ dependencies."
(assoc-set! pkg-meta key
(resolve-dependencies (getter pkg-meta)))))
- (modify-json* "package.json"
+ (modify-json "package.json"
(resolve "devDependencies"
(lambda (pkg-meta)
(or (assoc-ref pkg-meta "devDependencies") '())))
diff --git a/tests/node.scm b/tests/node.scm
index 96048cf5cb5..a833bbfe35b 100644
--- a/tests/node.scm
+++ b/tests/node.scm
@@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(use-modules (json)
+ (guix build json-utils)
(guix build node-build-system)
(guix tests)
(srfi srfi-64))