5
54
Fork
You've already forked blue
4

WIP: feat: Implement shadow-fields #290

Draft
pastor wants to merge 1 commit from shadow-fields into main
pull from: shadow-fields
merge into: lapislazuli:main
lapislazuli:main
lapislazuli:pipeline-operators
lapislazuli:documentation
lapislazuli:instance-walker
lapislazuli:blue-shell
lapislazuli:promote-serializers-to-metacommands
  • blue/types.scm (common-ancestor): New procedure.
    (shadow-fields): New procedure.

Example:

(map buildable-inputs-relative-to
 (buildable-requirements
 (run-with-states '((srcdir "/tmp")
 (builddir "/tmp/build"))
 (shadow-fields (copy-file
 (requirements (list (copy-file)))
 (inputs-relative-to "pipo"))
 '(inputs-relative-to)))))

Notice how the nested copy-file object has it's inputs-relative-to field
shadowed by the parent.

Fixes: #278

* blue/types.scm (common-ancestor): New procedure. (shadow-fields): New procedure. Example: ```scheme (map buildable-inputs-relative-to (buildable-requirements (run-with-states '((srcdir "/tmp") (builddir "/tmp/build")) (shadow-fields (copy-file (requirements (list (copy-file))) (inputs-relative-to "pipo")) '(inputs-relative-to))))) ``` Notice how the nested `copy-file` object has it's `inputs-relative-to` field shadowed by the parent. Fixes: #278
feat: Implement shadow-fields
Some checks failed
ci/woodpecker/pr/debian Pipeline failed
ci/woodpecker/pr/fedora Pipeline failed
ci/woodpecker/pr/arch Pipeline failed
ci/woodpecker/pr/ubuntu Pipeline failed
cd98448afc
* blue/types.scm (common-ancestor): New procedure.
(shadow-fields): New procedure.
Example:
```scheme
(map buildable-inputs-relative-to
 (buildable-requirements
 (run-with-states '((srcdir "/tmp")
 (builddir "/tmp/build"))
 (shadow-fields (copy-file
 (requirements (list (copy-file)))
 (inputs-relative-to "pipo"))
 '(inputs-relative-to)))))
```
Notice how the nested `copy-file` object has it's `inputs-relative-to` field
shadowed by the parent.
Fixes: #278 
pastor added this to the alpha milestone 2026年06月10日 14:39:00 +02:00
pastor force-pushed shadow-fields from cd98448afc
Some checks failed
ci/woodpecker/pr/debian Pipeline failed
ci/woodpecker/pr/fedora Pipeline failed
ci/woodpecker/pr/arch Pipeline failed
ci/woodpecker/pr/ubuntu Pipeline failed
to 06d5e5a4d6
Some checks failed
ci/woodpecker/pr/fedora Pipeline failed
ci/woodpecker/pr/arch Pipeline failed
ci/woodpecker/pr/ubuntu Pipeline failed
ci/woodpecker/pr/debian Pipeline was successful
2026年06月10日 20:35:11 +02:00
Compare
pastor force-pushed shadow-fields from 06d5e5a4d6
Some checks failed
ci/woodpecker/pr/fedora Pipeline failed
ci/woodpecker/pr/arch Pipeline failed
ci/woodpecker/pr/ubuntu Pipeline failed
ci/woodpecker/pr/debian Pipeline was successful
to 9277c0dec1
All checks were successful
ci/woodpecker/pr/arch Pipeline was successful
ci/woodpecker/pr/debian Pipeline was successful
ci/woodpecker/pr/ubuntu Pipeline was successful
ci/woodpecker/pr/fedora Pipeline was successful
2026年06月10日 21:56:15 +02:00
Compare
pastor changed title from (削除) feat: Implement shadow-fields (削除ここまで) to WIP: feat: Implement shadow-fields 2026年06月11日 09:46:50 +02:00
Author
Owner
Copy link

After some testing I've realized that for this kind of helpers to be really useful we would like to be able to not resolve delayed computation in the getters so we don't need to worry about the context where this evaluates.

It's still useful as it is, but let's discuss whether we can do better. A very similar patter is the one from #291.

After some testing I've realized that for this kind of helpers to be really useful we would like to be able to not resolve delayed computation in the getters so we don't need to worry about the context where this evaluates. It's still useful as it is, but let's discuss whether we can do better. A very similar patter is the one from #291.
pastor force-pushed shadow-fields from 9277c0dec1
All checks were successful
ci/woodpecker/pr/arch Pipeline was successful
ci/woodpecker/pr/debian Pipeline was successful
ci/woodpecker/pr/ubuntu Pipeline was successful
ci/woodpecker/pr/fedora Pipeline was successful
to 6ade7362c8
Some checks failed
ci/woodpecker/pr/arch Pipeline was successful
ci/woodpecker/pr/debian Pipeline failed
ci/woodpecker/pr/ubuntu Pipeline was successful
ci/woodpecker/pr/fedora Pipeline was successful
2026年06月11日 09:57:26 +02:00
Compare
Some checks failed
ci/woodpecker/pr/arch Pipeline was successful
ci/woodpecker/pr/debian Pipeline failed
ci/woodpecker/pr/ubuntu Pipeline was successful
ci/woodpecker/pr/fedora Pipeline was successful
This pull request has changes conflicting with the target branch.
  • blue/types.scm
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin shadow-fields:shadow-fields
git switch shadow-fields
Sign in to join this conversation.
No reviewers
old
Labels
Clear labels
bug
Something is not working
contribution welcome
Contributions are very welcome, get started here
discussion
duplicate
This issue or pull request already exists
enhancement
New feature
good first issue
Interested in contributing? Get started here.
help wanted
Need some help
invalid
Something is wrong
optimization
question
More information is needed
upstream
Related to an upstream repository, already reported there
bug
Something is not working
contribution welcome
Contributions are very welcome, get started here
duplicate
This issue or pull request already exists
enhancement
New feature
good first issue
Interested in contributing? Get started here.
help wanted
Need some help
invalid
Something is wrong
question
More information is needed
upstream
Related to an upstream repository, already reported there
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapislazuli/blue!290
Reference in a new issue
lapislazuli/blue
No description provided.
Delete branch "shadow-fields"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?