git: 642ba027777c - main - devel/sem: Update to 0.11.1
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 15 Jun 2026 22:20:33 UTC
The branch main has been updated by adamw:
URL: https://cgit.FreeBSD.org/ports/commit/?id=642ba027777cd2373b9c570a7a6d566d32be88eb
commit 642ba027777cd2373b9c570a7a6d566d32be88eb
Author: Adam Weinberger <adamw@FreeBSD.org>
AuthorDate: 2026-06-15 22:10:28 +0000
Commit: Adam Weinberger <adamw@FreeBSD.org>
CommitDate: 2026-06-15 22:20:28 +0000
devel/sem: Update to 0.11.1
Sem now ships with opt-out telemetry that sends which sem subcommand and
which flags are used. It does not send filename or file contents.
For FreeBSD, I'm changing it to opt-in. While I appreciate that telemetry
contains minimal end-user data, a notice about telemetry is shown only
once and never again. Data are sent to a private, opaque fly.io container.
I find all of the above insufficient.
Discussed with: portmgr (mat)
---
devel/sem/Makefile | 2 +-
devel/sem/Makefile.crates | 10 +++++-
devel/sem/distinfo | 26 ++++++++++++---
.../files/patch-crates_sem-cli_src_telemetry.rs | 37 ++++++++++++++++++++++
devel/sem/pkg-descr | 3 ++
5 files changed, 71 insertions(+), 7 deletions(-)
diff --git a/devel/sem/Makefile b/devel/sem/Makefile
index 141fe53c4865..96298b06481a 100644
--- a/devel/sem/Makefile
+++ b/devel/sem/Makefile
@@ -1,6 +1,6 @@
PORTNAME= sem
DISTVERSIONPREFIX= v
-DISTVERSION= 0.10.1
+DISTVERSION= 0.11.1
CATEGORIES= devel
MAINTAINER= adamw@FreeBSD.org
diff --git a/devel/sem/Makefile.crates b/devel/sem/Makefile.crates
index f7e5e76b4e04..4763e8dd602c 100644
--- a/devel/sem/Makefile.crates
+++ b/devel/sem/Makefile.crates
@@ -29,6 +29,7 @@ CARGO_CRATES= adler2-2.0.1 \
clap_lex-1.1.0 \
colorchoice-1.0.5 \
colored-2.2.0 \
+ console-0.15.11 \
core-foundation-sys-0.8.7 \
crc32fast-1.5.0 \
crossbeam-deque-0.8.6 \
@@ -40,6 +41,7 @@ CARGO_CRATES= adler2-2.0.1 \
displaydoc-0.2.5 \
dyn-clone-1.0.20 \
either-1.15.0 \
+ encode_unicode-1.0.0 \
equivalent-1.0.2 \
errno-0.3.14 \
fallible-iterator-0.3.0 \
@@ -87,6 +89,7 @@ CARGO_CRATES= adler2-2.0.1 \
idna_adapter-1.2.2 \
ignore-0.4.25 \
indexmap-2.14.0 \
+ indicatif-0.17.11 \
is_terminal_polyfill-1.70.2 \
itoa-1.0.18 \
jobserver-0.1.34 \
@@ -111,6 +114,7 @@ CARGO_CRATES= adler2-2.0.1 \
mio-1.2.0 \
nu-ansi-term-0.50.3 \
num-traits-0.2.19 \
+ number_prefix-0.4.0 \
once_cell-1.21.4 \
once_cell_polyfill-1.70.2 \
openssl-0.10.79 \
@@ -124,6 +128,7 @@ CARGO_CRATES= adler2-2.0.1 \
percent-encoding-2.3.2 \
pin-project-lite-0.2.17 \
pkg-config-0.3.33 \
+ portable-atomic-1.13.1 \
potential_utf-0.1.5 \
prettyplease-0.2.37 \
proc-macro2-1.0.106 \
@@ -215,17 +220,19 @@ CARGO_CRATES= adler2-2.0.1 \
tree-sitter-language-0.1.7 \
tree-sitter-nix-0.3.0 \
tree-sitter-ocaml-0.24.2 \
- tree-sitter-perl-next-0.1.0 \
tree-sitter-php-0.23.11 \
tree-sitter-python-0.23.6 \
tree-sitter-ruby-0.23.1 \
tree-sitter-rust-0.23.3 \
tree-sitter-scala-0.26.0 \
+ tree-sitter-sequel-0.3.11 \
tree-sitter-swift-0.7.2 \
tree-sitter-typescript-0.23.2 \
tree-sitter-xml-0.7.0 \
tree-sitter-zig-1.1.2 \
+ ts-parser-perl-1.1.2 \
unicode-ident-1.0.24 \
+ unicode-width-0.2.2 \
unicode-xid-0.2.6 \
unsafe-libyaml-0.2.11 \
untrusted-0.9.0 \
@@ -250,6 +257,7 @@ CARGO_CRATES= adler2-2.0.1 \
wasm-metadata-0.244.0 \
wasmparser-0.227.1 \
wasmparser-0.244.0 \
+ web-time-1.1.0 \
webpki-roots-0.26.11 \
webpki-roots-1.0.7 \
winapi-util-0.1.11 \
diff --git a/devel/sem/distinfo b/devel/sem/distinfo
index a58eba7eca1b..c0f3c7d97299 100644
--- a/devel/sem/distinfo
+++ b/devel/sem/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1781199766
+TIMESTAMP = 1781559043
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
SIZE (rust/crates/adler2-2.0.1.crate) = 13366
SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
@@ -61,6 +61,8 @@ SHA256 (rust/crates/colorchoice-1.0.5.crate) = 1d07550c9036bf2ae0c684c4297d503f8
SIZE (rust/crates/colorchoice-1.0.5.crate) = 8187
SHA256 (rust/crates/colored-2.2.0.crate) = 117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c
SIZE (rust/crates/colored-2.2.0.crate) = 35062
+SHA256 (rust/crates/console-0.15.11.crate) = 054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8
+SIZE (rust/crates/console-0.15.11.crate) = 37822
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
@@ -83,6 +85,8 @@ SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc
SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134
SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/encode_unicode-1.0.0.crate) = 34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0
+SIZE (rust/crates/encode_unicode-1.0.0.crate) = 56986
SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
@@ -177,6 +181,8 @@ SHA256 (rust/crates/ignore-0.4.25.crate) = d3d782a365a015e0f5c04902246139249abf7
SIZE (rust/crates/ignore-0.4.25.crate) = 59154
SHA256 (rust/crates/indexmap-2.14.0.crate) = d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9
SIZE (rust/crates/indexmap-2.14.0.crate) = 104085
+SHA256 (rust/crates/indicatif-0.17.11.crate) = 183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235
+SIZE (rust/crates/indicatif-0.17.11.crate) = 66577
SHA256 (rust/crates/is_terminal_polyfill-1.70.2.crate) = a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695
SIZE (rust/crates/is_terminal_polyfill-1.70.2.crate) = 7548
SHA256 (rust/crates/itoa-1.0.18.crate) = 8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682
@@ -225,6 +231,8 @@ SHA256 (rust/crates/nu-ansi-term-0.50.3.crate) = 7957b9740744892f114936ab4a57b3f
SIZE (rust/crates/nu-ansi-term-0.50.3.crate) = 29597
SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3
+SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922
SHA256 (rust/crates/once_cell-1.21.4.crate) = 9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50
SIZE (rust/crates/once_cell-1.21.4.crate) = 35010
SHA256 (rust/crates/once_cell_polyfill-1.70.2.crate) = 384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe
@@ -251,6 +259,8 @@ SHA256 (rust/crates/pin-project-lite-0.2.17.crate) = a89322df9ebe1c1578d689c9231
SIZE (rust/crates/pin-project-lite-0.2.17.crate) = 31034
SHA256 (rust/crates/pkg-config-0.3.33.crate) = 19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e
SIZE (rust/crates/pkg-config-0.3.33.crate) = 21590
+SHA256 (rust/crates/portable-atomic-1.13.1.crate) = c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49
+SIZE (rust/crates/portable-atomic-1.13.1.crate) = 197001
SHA256 (rust/crates/potential_utf-0.1.5.crate) = 0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564
SIZE (rust/crates/potential_utf-0.1.5.crate) = 10189
SHA256 (rust/crates/prettyplease-0.2.37.crate) = 479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b
@@ -433,8 +443,6 @@ SHA256 (rust/crates/tree-sitter-nix-0.3.0.crate) = 4952a9733f3a98f6683a0ccd1035d
SIZE (rust/crates/tree-sitter-nix-0.3.0.crate) = 45486
SHA256 (rust/crates/tree-sitter-ocaml-0.24.2.crate) = 7d19db582b3855f56b5f9ec484170fbfb9ee60b938ec7720d76d2ee788e8b640
SIZE (rust/crates/tree-sitter-ocaml-0.24.2.crate) = 3774468
-SHA256 (rust/crates/tree-sitter-perl-next-0.1.0.crate) = 97b02c571f4d63663ade506b1f81dd9f78e37a0014268c521b6e75df0603d911
-SIZE (rust/crates/tree-sitter-perl-next-0.1.0.crate) = 988359
SHA256 (rust/crates/tree-sitter-php-0.23.11.crate) = f066e94e9272cfe4f1dcb07a1c50c66097eca648f2d7233d299c8ae9ed8c130c
SIZE (rust/crates/tree-sitter-php-0.23.11.crate) = 475556
SHA256 (rust/crates/tree-sitter-python-0.23.6.crate) = 3d065aaa27f3aaceaf60c1f0e0ac09e1cb9eb8ed28e7bcdaa52129cffc7f4b04
@@ -445,6 +453,8 @@ SHA256 (rust/crates/tree-sitter-rust-0.23.3.crate) = ca8ccb3e3a3495c8a943f6c3fd2
SIZE (rust/crates/tree-sitter-rust-0.23.3.crate) = 361346
SHA256 (rust/crates/tree-sitter-scala-0.26.0.crate) = de5a4a7ff23a55474ce6a741d52aaeca7a82fe9421bb982b86e98c6ac8629397
SIZE (rust/crates/tree-sitter-scala-0.26.0.crate) = 1503854
+SHA256 (rust/crates/tree-sitter-sequel-0.3.11.crate) = 9d198ad3c319c02e43c21efa1ec796b837afcb96ffaef1a40c1978fbdcec7d17
+SIZE (rust/crates/tree-sitter-sequel-0.3.11.crate) = 887739
SHA256 (rust/crates/tree-sitter-swift-0.7.2.crate) = f3b98fb6bc8e6a6a10023f401aa6a1858115e849dfaf7de57dd8b8ea0f257bd9
SIZE (rust/crates/tree-sitter-swift-0.7.2.crate) = 963002
SHA256 (rust/crates/tree-sitter-typescript-0.23.2.crate) = 6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff
@@ -453,8 +463,12 @@ SHA256 (rust/crates/tree-sitter-xml-0.7.0.crate) = e670041f591d994f54d597ddcd8f4
SIZE (rust/crates/tree-sitter-xml-0.7.0.crate) = 75507
SHA256 (rust/crates/tree-sitter-zig-1.1.2.crate) = ab11fc124851b0db4dd5e55983bbd9631192e93238389dcd44521715e5d53e28
SIZE (rust/crates/tree-sitter-zig-1.1.2.crate) = 212493
+SHA256 (rust/crates/ts-parser-perl-1.1.2.crate) = dff62b91624001556debd009c28ec603c795df8dce96613705c78a4f691672f4
+SIZE (rust/crates/ts-parser-perl-1.1.2.crate) = 1627912
SHA256 (rust/crates/unicode-ident-1.0.24.crate) = e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75
SIZE (rust/crates/unicode-ident-1.0.24.crate) = 49298
+SHA256 (rust/crates/unicode-width-0.2.2.crate) = b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254
+SIZE (rust/crates/unicode-width-0.2.2.crate) = 282768
SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
SHA256 (rust/crates/unsafe-libyaml-0.2.11.crate) = 673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861
@@ -503,6 +517,8 @@ SHA256 (rust/crates/wasmparser-0.227.1.crate) = 0f51cad774fb3c9461ab9bccc9c62dfb
SIZE (rust/crates/wasmparser-0.227.1.crate) = 247368
SHA256 (rust/crates/wasmparser-0.244.0.crate) = 47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe
SIZE (rust/crates/wasmparser-0.244.0.crate) = 265607
+SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
+SIZE (rust/crates/web-time-1.1.0.crate) = 18026
SHA256 (rust/crates/webpki-roots-0.26.11.crate) = 521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9
SIZE (rust/crates/webpki-roots-0.26.11.crate) = 15557
SHA256 (rust/crates/webpki-roots-1.0.7.crate) = 52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d
@@ -601,5 +617,5 @@ SHA256 (rust/crates/zerovec-derive-0.11.3.crate) = 625dc425cab0dca6dc3c3319506e6
SIZE (rust/crates/zerovec-derive-0.11.3.crate) = 22115
SHA256 (rust/crates/zmij-1.0.21.crate) = b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa
SIZE (rust/crates/zmij-1.0.21.crate) = 26665
-SHA256 (ataraxy-labs-sem-v0.10.1_GH0.tar.gz) = 5d458312bbb293a88495f5afdc0f9984dc81fd986bbeb637e12ab92a269f6dec
-SIZE (ataraxy-labs-sem-v0.10.1_GH0.tar.gz) = 531849
+SHA256 (ataraxy-labs-sem-v0.11.1_GH0.tar.gz) = 6d7ec3f41a2a977339e9343c790075038c4658bfa4e334d08d2ec3b1940b89e3
+SIZE (ataraxy-labs-sem-v0.11.1_GH0.tar.gz) = 530364
diff --git a/devel/sem/files/patch-crates_sem-cli_src_telemetry.rs b/devel/sem/files/patch-crates_sem-cli_src_telemetry.rs
new file mode 100644
index 000000000000..9b82f7976285
--- /dev/null
+++ b/devel/sem/files/patch-crates_sem-cli_src_telemetry.rs
@@ -0,0 +1,37 @@
+--- crates/sem-cli/src/telemetry.rs.orig 2026-06-14 20:05:28 UTC
++++ crates/sem-cli/src/telemetry.rs
+@@ -37,10 +37,14 @@ fn telemetry_disabled() -> bool {
+ }
+
+ fn telemetry_disabled() -> bool {
+- let set = |var: &str| std::env::var(var).is_ok_and(|v| !v.is_empty() && v != "0");
+- set("SEM_NO_TELEMETRY") || set("DO_NOT_TRACK") || is_development_build()
++ !telemetry_enabled()
+ }
+
++fn telemetry_enabled() -> bool {
++ let disabled = |var: &str| std::env::var(var).is_ok_and(|v| !v.is_empty() && v == "0");
++ !is_development_build() && (disabled("SEM_NO_TELEMETRY") || disabled("DO_NOT_TRACK"))
++}
++
+ /// True when this binary is a development build rather than a real install,
+ /// so our own work never pollutes usage data. Catches: debug builds
+ /// (`cargo run`, `cargo test`), and any binary run straight out of a Cargo
+@@ -119,7 +123,7 @@ pub fn record(command: &str) {
+ /// Record one command invocation. Cheap (two small file ops); never blocks
+ /// on the network. Call once per CLI run before dispatch.
+ pub fn record(command: &str) {
+- if telemetry_disabled() {
++ if telemetry_enabled() {
+ return;
+ }
+
+@@ -129,7 +133,7 @@ pub fn record(command: &str) {
+ }
+ if !state.notice_shown {
+ eprintln!(
+- "sem collects anonymous usage data (command names only, never code or repo names). Set SEM_NO_TELEMETRY=1 to disable."
++ "If enabled, sem collects anonymous usage data (command names only, never code or repo names). Set SEM_NO_TELEMETRY=0 to enable telemetry."
+ );
+ state.notice_shown = true;
+ save_state(&state);
diff --git a/devel/sem/pkg-descr b/devel/sem/pkg-descr
index 72dc21b36923..b26f09dcc120 100644
--- a/devel/sem/pkg-descr
+++ b/devel/sem/pkg-descr
@@ -6,3 +6,6 @@ changed."
It works in any Git repo with no setup. It can run as the default
`git diff` tool; see the WWW for setup instructions.
+
+This port flips opt-out telemetry to opt-in. Set SEM_NO_TELEMETRY=0 to
+enable telemetry.