Bug 294549 - [NEW PORT] lang/nickel The universal configuration language
Summary: [NEW PORT] lang/nickel The universal configuration language
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Michael Osipov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-04-15 13:39 UTC by Derek Anderson
Modified: 2026-04-17 06:52 UTC (History)
1 user (show)

See Also:


Attachments
Patch for port files (114.42 KB, application/zip)
2026-04-15 13:39 UTC, Derek Anderson
no flags Details
Patch for port files (114.42 KB, patch)
2026-04-15 14:02 UTC, Derek Anderson
no flags Details | Diff
patch file with Makefile.crates (114.70 KB, patch)
2026-04-16 19:18 UTC, Derek Anderson
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Derek Anderson 2026-04-15 13:39:14 UTC
Created attachment 269816 [details]
Patch for port files

Provides the nickel binary on FreeBSD systems. Nickel is a configuration programming language which allows users to create contracts which other data formats (such as YAML or JSON) can be validated against. Additionally, configurations can be written in the .ncl format which allows the user to use variables, loops, and functions in the configuration as well.
Comment 1 Derek Anderson 2026-04-15 14:02:49 UTC
Created attachment 269818 [details]
Patch for port files

The previous attachment was accidentally downloaded as a zip file from my CICD. This is the raw patch file.
Comment 2 Michael Osipov freebsd_committer freebsd_triage 2026-04-16 12:08:49 UTC
It is customary to move crates listing to Makefile.crates. See also other Rust-based ports.
Comment 3 Derek Anderson 2026-04-16 19:18:52 UTC
Created attachment 269855 [details]
patch file with Makefile.crates

Ah, using Makefile.crates actually makes maintenance way easier for me. Thanks for the direction, patch file updated.
Comment 4 Michael Osipov freebsd_committer freebsd_triage 2026-04-16 20:03:39 UTC
Here is your patch after portclippy and portlint: https://github.com/freebsd/freebsd-ports/compare/main...michael-o:freebsd-ports:nickel?expand=1

Before I run it in poudriere, can you confirm that the duplicate crates, but different versions are on purpose and no error?
Comment 5 Derek Anderson 2026-04-16 20:31:41 UTC
I believe that is intentional and is related to the transitive dependencies. For example I tracked down the arrayvec as being a transitive dependency 3 times with 2 different versions. I think all these dependencies were evaluated when I ran make cargo-crates, resulting in duplicates.
Comment 6 Michael Osipov freebsd_committer freebsd_triage 2026-04-16 20:34:22 UTC
(In reply to Derek Anderson from comment #5)

Right, this is exactly what I have assumed. Will run tomorrow.
Comment 7 Derek Anderson 2026-04-16 20:52:10 UTC
Thank you!
Comment 8 commit-hook freebsd_committer freebsd_triage 2026-04-17 05:37:27 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=96a7b88af89729c5ac1711ca0f9b5db5c86620e7

commit 96a7b88af89729c5ac1711ca0f9b5db5c86620e7
Author:     Derek Anderson <ports@nxtrn.dev>
AuthorDate: 2026-04-16 19:09:26 +0000
Commit:     Michael Osipov <michaelo@FreeBSD.org>
CommitDate: 2026-04-17 05:36:32 +0000

    [NEW PORT] lang/nickel Universal configuration language

    Co-authored-by: Michael Osipov <michaelo@FreeBSD.org>
    PR:             294549

 lang/Makefile                     |    1 +
 lang/nickel/Makefile (new)        |   25 +
 lang/nickel/Makefile.crates (new) |  609 ++++++++++++++++++
 lang/nickel/distinfo (new)        | 1221 +++++++++++++++++++++++++++++++++++++
 lang/nickel/pkg-descr (new)       |   16 +
 5 files changed, 1872 insertions(+)