Re: git: 94e61d8da52e - main - www/caddy: Update to 2.10.1

From: Adam Weinberger <adamw_at_adamw.org>
Date: Fri, 22 Aug 2025 19:52:21 UTC

> On Aug 22, 2025, at 15:09, Ashish SHUKLA <ashish@freebsd.org> wrote:
> 
> El 2025-08-22 12:00, Adam Weinberger escribió:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA512
>> 
>>> On 2025-08-22 at 18:51, ashish@freebsd.org wrote:
>>> Hi,
>>> 
>>> Thanks for staying on top of Go, and Caddy.
>>> 
>>> I believe this version will require Go 1.25[0]. Maybe you're defaulting
>> to Go 1.25 in your build environment ?
>>> 
>>> 
>> ===================================================================================
>> 
>>> ===> Fetching github.com/caddyserver/caddy/v2 dependencies
>>> go: downloading go1.25.0 (freebsd/amd64)
>>> # get https://proxy.golang.org/cel.dev/expr/@v/v0.24.0.mod
>>> # get
>> https://proxy.golang.org/cloud.google.com/go/compute/metadata/@v/v0.7.0.mod
>>> 
>> ===================================================================================
>> 
>>> 
>>> References:
>>> [0] https://github.com/caddyserver/caddy/blob/v2.10.1/go.mod#L3
>>> 
>>> HTH
>>> --
>>> Ashish SHUKLA | GPG: F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0
>>> 
>>> "If I destroy you, what business is it of yours ?" (Dark Forest, Liu
>> Cixin)
>> 
>> It does, but that's as expected. Go doesn't do "versions" like we're used
>> to anymore. If there's a version specified in go.mod, that version's stdlib
>> will be used no matter what. If it's a future version (i.e. a 1.25 port
>> like caddy on a 1.24 install), it will automatically download the 1.25
>> stdlib (as you noted above) and link against it. If it's an older version,
>> it will adjust its stdlib to have only the features and quirks of that
>> prior version.
>> 
>> In other words, go x can build apps that specify go y, regardless of x <=>
>> y. For this reason, there's no need for multiple lang/go ports, and in the
>> future (i.e. when I have time to get to it) we'll remove all versioned
>> ports and just have a single lang/go port, because it's capable of building
>> stuff targetting any future or prior go version.
>> 
>> TL;DR-- Yes, it requires go 1.25, but older (and newer!) versions will
>> still build the same binary using the same stdlib.
>> 
> 
> I see, so it's only dependency on stdlib, and not the toolchain.
> 
> Sorry for the noise, and thanks for clarification.
> 
> --
> Ashish SHUKLA | GPG: F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0
> 
> "If I destroy you, what business is it of yours ?" (Dark Forest, Liu Cixin)
> 
> <signature.asc>

Great description. I’ve been trying for months now to find the right phrasing to sell the idea. I think it’s going to massively improve the end-user experience, but it’s such a departure from how every other language port is expected to behave. 

Being able to accurately describe the approach is clearly the first and most important step. There’s a big POLA risk inherent to this and I don’t want to just do it until a critical mass is on board; hence, the need for a sales pitch. 


—
Adam Weinberger
adamw@adamw.org
https://www.adamw.org