9 comments

[ 3.0 ms ] story [ 35.2 ms ] thread
This is the first example I've seen of (what looks to be) a Linux based dev environment picking Dotnet Core. I know the aim of Core seems to be to help distance the Dotnet team from MS and maybe it's working a little bit.
This looks pretty cool, but as a simple piece of advice, when you release applications that can be distributed as source, please include instructions for how to build from source. As it stands, I can go to your friend's AUR PKGBUILD and see a possible build command is this:

    DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet publish \
    --configuration Release \
    --runtime linux-x64 \
    -p:PublishSingleFile=true \
    -p:PublishTrimmed=true \
    -p:PublishReadyToRun=true \
    --self-contained true \
    ./cli
Or I can look at your Dockerfile and see it runs this:

    dotnet publish -r linux-x64 -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true -p:PublishReadyToRun=true --self-contained true -o publish
As for build dependencies, your friend's PKGBUILD says dotnet-runtime, dotnet-sdk, and dotnet-host are required. Your Dockerfile just runs in a Microsoft-provided base image and I'd be left to guess what it has in it that your app requires.

Something like an INSTALL file in your project root that has an example build command, enumerates all the options and what they do, and explicitly tells the packager what the dependencies are, would be very helpful here and not take you much more than a few minutes to create, as obviously you know how to build your own application. This would be helpful both for downstream packagers who create distributions, high-security environments that are required to build everything from source, and hobbyists who just want to know how to do it.

In particular, I'd like to know what the telemetry environment variable is doing. Does 1 turn it on or off? If turned on, is it sending telemetry to you or to Microsoft? What is it sending? Does this tool require an Internet connection to work? It obviously requires networking, but keep in mind plenty of corporate intranets, classified networks, LANs, and otherwise private networks have their own DNS servers and can use tools that query those, but they're on autonomous networks disconnected from the rest of the Internet and can't make connections to your servers or to Microsoft's.

Huh? It does include instructions on how to build from source. Install the dotnet core SDK and run dotnet build ./cli
(comment deleted)
Great point, will do!

I've made a couple issues around your recommendation/questions: https://github.com/unfrl/dug/issues/27 https://github.com/unfrl/dug/issues/28

Pretty much everything, except updating the DNS servers from the default remote source, should work offline. Also dug has no telemetry but the dotnet cli does, hence the DOTNET_CLI_TELEMETRY_OPTOUT variable being present to turn it off.

Thanks so much for the feedback!

"ANTI-CAPITALIST SOFTWARE LICENSE" and yet it's developed with .net.

Can it be built with mono at least?

It definitely can be built with mono, though im more familiar with the dotnet cli and would probably like to keep using it, which is open source. It was also built on a ThinkPad, on stolen land... The license is just an attempt, and probably an unenforceable one at that, to keep certain people from benefiting from the tool. Its also to get people to think about it, which is working :)

Reminds me of this song: https://www.youtube.com/watch?v=NGu__oqMcKM