aboutsummaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
Diffstat (limited to 'org')
-rw-r--r--org/config_env.org18
-rw-r--r--org/config_git.org35
-rw-r--r--org/config_nix.org257
-rw-r--r--org/nix-develop-dlang-shared.org123
4 files changed, 178 insertions, 255 deletions
diff --git a/org/config_env.org b/org/config_env.org
index 5974b90..151435b 100644
--- a/org/config_env.org
+++ b/org/config_env.org
@@ -9,7 +9,7 @@
#+STARTUP: content hideblocks hidestars noindent entitiespretty
#+PROPERTY: header-args :exports code
#+PROPERTY: header-args+ :noweb yes
-#+PROPERTY: header-args+ :results output none
+#+PROPERTY: header-args+ :results silent
#+PROPERTY: header-args+ :cache no
#+PROPERTY: header-args+ :padline no
#+PROPERTY: header-args+ :mkdirp yes
@@ -33,6 +33,7 @@ fi
#+NAME: envrc
#+HEADER: :tangle ../.envrc
+#+HEADER: :tangle-mode (identity #o644)
#+HEADER: :shebang "# -*- mode: sh -*-"
#+BEGIN_SRC shell
if [ -f .envrc-git-init ]; then
@@ -56,15 +57,16 @@ fi
- ${NixDirEnvVersion}
#+HEADER: :tangle ../.envrc-nix
+#+HEADER: :tangle-mode (identity #o644)
#+HEADER: :shebang "# -*- mode: nix -*-"
#+BEGIN_SRC shell
NIX_ENFORCE_PURITY=1
-# - https://github.com/nix-community/nix-direnv
-NixDirEnvVersion="<<direnv_version>>"
-NixDirEnvSHA="<<direnv_hash>>"
-if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then
- source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}"
-fi
+## - https://github.com/nix-community/nix-direnv
+#NixDirEnvVersion="<<direnv_version>>"
+#NixDirEnvSHA="<<direnv_hash>>"
+#if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then
+# source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}"
+#fi
watch_file flake.lock
watch_file flake.nix
watch_file shell.nix
@@ -145,6 +147,7 @@ echo "•
** .envrc-git-init
#+HEADER: :tangle ../.envrc-git-init
+#+HEADER: :tangle-mode (identity #o644)
#+HEADER: :shebang "# -*- mode: sh -*-"
#+HEADER: :noweb yes
#+BEGIN_SRC shell
@@ -159,6 +162,7 @@ fi
- bespoke modify appropriately and generate if needed
#+HEADER: :tangle ../.envrc-local_
+#+HEADER: :tangle-mode (identity #o644)
#+HEADER: :shebang "# -*- mode: sh -*-"
#+HEADER: :noweb yes
#+BEGIN_SRC shell
diff --git a/org/config_git.org b/org/config_git.org
index 1bd016e..220cad7 100644
--- a/org/config_git.org
+++ b/org/config_git.org
@@ -44,12 +44,12 @@
!configuration.txt
!*.json
!*.sdl
-!*.md
-!*.txt
!tangle
!*.org
!org
!org/*.org
+!*.md
+!*.txt
!.dr
!.dr/*
!markup/
@@ -92,6 +92,30 @@
!markup/pod-samples/pod/*/tools/po4a/po/*/index.html.in.po
!markup/pod-samples/pod/.dr
!markup/pod-samples/pod/.dr/*
+#!markup/pod-samples-playground/
+#!markup/pod-samples-playground/*
+#!markup/pod-samples-playground/*/
+#!markup/pod-samples-playground/*/pod/
+#!markup/pod-samples-playground/*/pod
+#!markup/pod-samples-playground/*/pod/**/
+#!markup/pod-samples-playground/*/pod/**/*
+#!markup/pod-samples-playground/*/pod/**/pod.manifest
+#!markup/pod-samples-playground/*/pod/**/pod.manifest
+#!markup/pod-samples-playground/*/pod/**/conf/
+#!markup/pod-samples-playground/*/pod/**/conf/document_make
+#!markup/pod-samples-playground/*/pod/**/media/
+#!markup/pod-samples-playground/*/pod/**/media/text/
+#!markup/pod-samples-playground/*/pod/**/media/text/*/
+#!markup/pod-samples-playground/*/pod/**/media/text/*/*.sst
+#!markup/pod-samples-playground/*/pod/**/media/text/*/*.ssm
+#!markup/pod-samples-playground/*/pod/**/media/text/*/*.ssi
+#!markup/pod-samples-playground/*/pod/**/media/image/
+#!markup/pod-samples-playground/*/pod/**/media/image/*.png
+#!markup/pod-samples-playground/*/pod/**/media/image/*.jpg
+#!markup/pod-samples-playground/*/pod/**/media/image/*.PNG
+#!markup/pod-samples-playground/*/pod/**/media/image/*.JPG
+#!markup/pod-samples-playground/*/pod/.dr
+#!markup/pod-samples-playground/*/pod/.dr/*
!markup/non-pod-samples/
!markup/non-pod-samples/*.sst
!markup/non-pod-samples/image/
@@ -105,18 +129,17 @@
,**/.dub/**
tmp/**
,*_.org
-,*_.md
-,*_.txt
-,*_.json
,*_.nix
,*_.d
+,*_.md
,*_.txt
+,*_.json
,*_
+!.envrc-local_
,*.swp
,*~
\#*
,*.\#*
-!.envrc-local_
#!*/
#\#*
#*.\#*
diff --git a/org/config_nix.org b/org/config_nix.org
index b6a0a01..a5b2839 100644
--- a/org/config_nix.org
+++ b/org/config_nix.org
@@ -29,12 +29,10 @@
inputs.spine = {
url = "<<sisudoc_spine_nix_src>>";
inputs.nixpkgs.follows = "nixpkgs";
- flake = true;
};
inputs.d-overlay = {
url = "<<sisudoc_dlang_nix_overlay_src>>";
inputs.nixpkgs.follows = "nixpkgs";
- flake = true;
};
outputs = {
self,
@@ -42,7 +40,7 @@
spine,
d-overlay,
...
- } @ inputs: let
+ }@inputs: let
version = "<<spine_version>>";
shell = ./shell.nix;
devEnv = ./nixDevEnv.sh;
@@ -50,9 +48,7 @@
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); # nixpkgs instantiated for supported system types
in {
- packages = forAllSystems (system: let
- pkgs = nixpkgsFor.${system};
- in {
+ packages = forAllSystems (system: {
default = spine.packages.${system}.default;
spine-nixpkgs-dmd = spine.packages.${system}.spine-nixpkgs-dmd;
spine-overlay-dmd = spine.packages.${system}.spine-overlay-dmd;
@@ -70,7 +66,7 @@
pkgs = nixpkgsFor.${system};
shellHook = ''
export DFLAGS="-O2 -boundscheck=on"
- export Date=`date "+%Y%m%d"`
+ export Date=$(date "+%Y%m%d")
## set local values in .envrc-local (or here if you must)
'';
in
@@ -89,15 +85,17 @@
inherit shellHook;
};
dsh-spine = spine.devShells.${system}.default;
- dsh-overlay-dmd = d-overlay.devShells.${system}.dsh-overlay-dmd-dub;
- dsh-nixpkgs-dmd = d-overlay.devShells.${system}.dsh-nixpkgs-dmd-dub;
- dsh-overlay-ldc = d-overlay.devShells.${system}.dsh-overlay-ldc-dub;
- dsh-nixpkgs-ldc = d-overlay.devShells.${system}.dsh-nixpkgs-ldc-dub;
+ dsh-overlay-dmd = d-overlay.devShells.${system}.dsh-overlay-dmd;
+ dsh-nixpkgs-dmd = d-overlay.devShells.${system}.dsh-nixpkgs-dmd;
+ dsh-overlay-ldc = d-overlay.devShells.${system}.dsh-overlay-ldc;
+ dsh-nixpkgs-ldc = d-overlay.devShells.${system}.dsh-nixpkgs-ldc;
dsh-epub = mkShell {
- name = "spine-<<spine_version>> dev shell for epub output";
+ name = "spine-${version} dev shell for epub output";
inherit shell;
inherit devEnv;
packages = [
+ direnv
+ nix-direnv
ldc
#dmd
dub
@@ -106,9 +104,6 @@
libxml2
html-tidy
xmlstarlet
- libxml2
- html-tidy
- xmlstarlet
epubcheck
ebook_tools
epr
@@ -120,10 +115,12 @@
inherit shellHook;
};
dsh-html = mkShell {
- name = "spine-<<spine_version>> dev shell for html output";
+ name = "spine-${version} dev shell for html output";
inherit shell;
inherit devEnv;
packages = [
+ direnv
+ nix-direnv
ldc
#dmd
dub
@@ -140,10 +137,12 @@
inherit shellHook;
};
dsh-latex-pdf = mkShell {
- name = "spine-<<spine_version>> dev shell for latex & pdf output";
+ name = "spine-${version} dev shell for latex & pdf output";
inherit shell;
inherit devEnv;
packages = [
+ direnv
+ nix-direnv
ldc
#dmd
dub
@@ -156,10 +155,12 @@
inherit shellHook;
};
dsh-sqlite = mkShell {
- name = "spine-<<spine_version>> dev shell for sqlite3 output";
+ name = "spine-${version} dev shell for sqlite3 output";
inherit shell;
inherit devEnv;
packages = [
+ direnv
+ nix-direnv
ldc
#dmd
dub
@@ -169,10 +170,12 @@
inherit shellHook;
};
dsh-i18n = mkShell {
- name = "spine-<<spine_version>> dev shell for internationalization, po4a";
+ name = "spine-${version} dev shell for internationalization, po4a";
inherit shell;
inherit devEnv;
packages = [
+ direnv
+ nix-direnv
ldc
#dmd
dub
@@ -183,7 +186,7 @@
inherit shellHook;
};
dsh-build-spine-generate-samples-env-defaults = mkShell {
- name = "spine-<<spine_version>> dev shell test build spine and generate samples env defaults";
+ name = "spine-${version} dev shell test build spine and generate samples env defaults";
inherit shell;
inherit devEnv;
packages = [
@@ -203,7 +206,7 @@
'';
};
dsh-build-spine-generate-samples-test = mkShell {
- name = "spine-<<spine_version>> dev shell test build spine and generate samples test";
+ name = "spine-${version} dev shell test build spine and generate samples test";
inherit shell;
inherit devEnv;
packages = [
@@ -222,7 +225,8 @@
echo "./result/bin/spine -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=./OUTPUT_TEST_sisudocSpine ./markup/pod-samples/pod/*"
'';
};
- default = import ./shell.nix {inherit pkgs;};
+ default = self.devShells.${system}.dsh;
+ #default = import ./shell.nix {inherit pkgs;};
});
};
}
@@ -235,46 +239,39 @@
#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --pure\n#!nix-shell -i bash"
#+HEADER: :noweb yes
#+BEGIN_SRC nix
-{pkgs ? import <nixpkgs> {}}:
+# Development environment for sisudoc-spine-samples.
+# Basic dev shell mirroring the flake's default devShell (`dsh`),
+# with the flake's default package (spine) built and put on PATH.
+#
+# Usage:
+# nix-shell # enters shell, builds spine via the flake
+# nix-shell --run 'spine --version' # runs spine after build
+#
+# Requires: experimental-features = nix-command flakes
+{
+ pkgs ? import <nixpkgs> {},
+ flake ? builtins.getFlake (toString ./.),
+ # captured at eval time - nix-shell rewrites $SHELL at runtime,
+ # so we must remember the user's real login shell here.
+ userShell ? builtins.getEnv "SHELL",
+}:
+let
+ spine = flake.packages.${pkgs.stdenv.hostPlatform.system}.default;
+in
with pkgs;
mkShell {
- buildInputs = [
- # ❯❯❯ nix_related
- ##nix
- #direnv
- #nixVersions.latest #nixVersions.latest #nixVersions.git
- #nix-prefetch-git
- #validatePkgConfig
- nix-output-monitor
- #nix-tree
- #jq
- #nixfmt-rfc-style
- #git
- # ❯❯❯ dev
- #gnumake
- #ps
+ name = "spine base dev shell";
+ packages = [
+ # ❯❯❯ flake default build (spine binary)
+ spine
# ❯❯❯ d_build_related
- # ❯❯ package manager
- #dub
- # ❯❯ compiler
+ ldc
#dmd
- #ldc
- #rund
- # ❯❯ linker
- #lld
- #mold
- # ❯❯ builder
- #ninja
- #meson
- # ❯❯ tools
- #dtools
+ dub
+ # ❯❯❯ dev
+ gnumake
# ❯❯❯ sqlite search related
- #sqlite
- # ❯❯❯ pdf_latex_related
- # source-sans-pro
- # source-serif-pro
- # source-code-pro
- # texlive.combined.scheme-full
+ sqlite
# ❯❯❯ xml_and_epub_related
# libxml2
# html-tidy
@@ -286,84 +283,40 @@ with pkgs;
# calibre #(suite includes: ebook-viewer)
# koreader
# foliate
+ # ❯❯❯ pdf reader
+ # evince
# ❯❯❯ i18n translation related
# perlPackages.Po4a
];
shellHook = ''
+ export DFLAGS="-O2 -boundscheck=on"
+ export Date=$(date "+%Y%m%d")
+ ## set local values in .envrc-local (or here if you must)
+ echo "spine: $(command -v spine)"
+ ## hand off to the user's login shell (e.g. zsh) only when this is
+ ## an interactive nix-shell entry - not under `nix-shell --run` or
+ ## `--command`, where exec would swallow the command. Guard env var
+ ## prevents re-entry loops.
+ __spine_user_shell=${if userShell == "" then "" else "\"" + userShell + "\""}
+ if [ -z "$__SPINE_SHELL_HANDOFF" ] \
+ && [ -n "$__spine_user_shell" ] \
+ && [ "$(basename "$__spine_user_shell")" != "bash" ] \
+ && [[ $- == *i* ]]; then
+ export __SPINE_SHELL_HANDOFF=1
+ spine --version
+ exec "$__spine_user_shell"
+ fi
+ unset __spine_user_shell
+ spine --version
'';
}
#+END_SRC
-** default.nix :default:
-
-#+HEADER: :tangle ../default.nix
-#+HEADER: :tangle-mode (identity #o755)
-#+HEADER: :shebang "#!/usr/bin/env -S nix-build"
-#+BEGIN_SRC nix
-{pkgs ? import <nixpkgs> {}}:
-pkgs.callPackage ./devenv.nix {}
-#+END_SRC
-
-* devEnv
-** devenv.nix :default:devenv:
-
-nix profile install .
-
-#+HEADER: :tangle ../devenv.nix
-#+HEADER: :tangle-mode (identity #o644)
-#+BEGIN_SRC nix
-{
- pkgs ? import <nixpkgs> {},
- name ? "user-env",
-}:
-with pkgs;
- buildEnv {
- inherit name;
- extraOutputsToInstall = ["out" "man" "lib"]; # to get all needed symlinks
- paths = [
- # ❯❯❯ nix_related
- #nix # if not on NixOS, this is needed
- direnv
- nixVersions.latest #nixVersions.latest #nixVersions.git #nixVersions.nix_2_29 #nixVersions.nix_2_29
- nix-prefetch-git
- validatePkgConfig
- nix-output-monitor
- nix-tree
- jq #gx
- #nixfmt-rfc-style
- git
- # ❯❯❯ dev
- gnumake
- ps
- # ❯❯❯ d_build_related
- # ❯❯ package manager
- dub
- # ❯❯ compiler
- #dmd
- ldc
- # ❯❯❯ sqlite search related
- sqlite
- # this will create a script that will rebuild and upgrade your setup; using shell script syntax
- (writeScriptBin "nix-rebuild" ''
- #!${stdenv.shell}
- #cd <path-to-flake> || exit 1
- nix flake update
- nix profile upgrade '.*'
- '')
- # puts in your root the nixpkgs version
- (writeTextFile {
- name = "nixpkgs-version";
- destination = "/nixpkgs-version";
- text = lib.version;
- })
- ];
- }
-#+END_SRC
-
** derivation.nix :default:
#+HEADER: :tangle ../derivation.nix
-#+HEADER: :tangle-mode (identity #o644)
+#+HEADER: :tangle-mode (identity #o755)
+#+HEADER: :shebang "#!/usr/bin/env -S nix-build derivation.nix"
#+HEADER: :noweb yes
#+BEGIN_SRC nix
{
@@ -461,10 +414,13 @@ with (
mkDubDerivation rec {
pname = "spine";
version = "<<spine_version>>";
- #zipfile = "spine-0.12.0-tag-0.11.2.r107.gf89a107.tar.gz";
- src = fetchTarball {
- url = "<<spine_tarball_path_url>>";
- sha256 = "<<spine_tarball_sha256>>";
+ # fetched from the same upstream the flake's `inputs.spine` points at
+ # (git://git.sisudoc.org/software/sisudoc-spine). Unlike flake inputs,
+ # builtins.fetchGit is usable from a plain (non-flake) derivation.nix.
+ src = builtins.fetchGit {
+ url = "git://git.sisudoc.org/software/sisudoc-spine";
+ ref = "main";
+ shallow = true;
};
nativeBuildInputs = with pkgs; [dub ldc];
buildInputs = with pkgs; [nixVersions.latest sqlite];
@@ -487,46 +443,6 @@ with (
/srv/www/spine
#+END_SRC
-#+NAME: spine_tarball_path
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-/home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/tarball
-#+END_SRC
-
-#+NAME: spine_tarball_path_url
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-file://<<spine_tarball_path>>/<<spine_tarball_filename>>
-#+END_SRC
-
-#+NAME: spine_git_file_path
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-/home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/sisudoc-spine
-#+END_SRC
-
-#+NAME: nixpkgs_local
-#+BEGIN_SRC shell
-/srv/nixpkgs-dev/nixpkgs
-#+END_SRC
-
-#+NAME: spine_git_file_path_url
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-git+file://<<spine_git_file_path>>
-#+END_SRC
-
-#+NAME: spine_tarball_filename
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-spine-0.12.0-tag-0.11.2.r107.gf89a107.tar.gz
-#+END_SRC
-
-#+NAME: spine_tarball_sha256
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-sha256:03dr7dn7kq6arw4ry7qar13iqmi1caw70imfjwi8qr7g2j4mnk2q
-#+END_SRC
#+NAME: project_path_local_out_static_
#+BEGIN_SRC nix
@@ -551,11 +467,6 @@ github:NixOS/nixpkgs/nixpkgs-unstable
"nixpkgs/nixos-unstable";
#+END_SRC
-#+HEADER: :noweb yes
-#+BEGIN_SRC nix
-<<nixpkgs_path_local>>
-#+END_SRC
-
* SHARED
** version and other things shared
*** spine project VERSION :version:set:project:
diff --git a/org/nix-develop-dlang-shared.org b/org/nix-develop-dlang-shared.org
index 1b9129e..d11b752 100644
--- a/org/nix-develop-dlang-shared.org
+++ b/org/nix-develop-dlang-shared.org
@@ -9,7 +9,7 @@
#+STARTUP: content hideblocks hidestars noindent entitiespretty
#+PROPERTY: header-args :noweb yes
#+PROPERTY: header-args+ :exports code
-#+PROPERTY: header-args+ :results no
+#+PROPERTY: header-args+ :results silent
#+PROPERTY: header-args+ :cache no
#+PROPERTY: header-args+ :padline no
#+PROPERTY: header-args+ :mkdirp yes
@@ -63,68 +63,12 @@ update flake.lock:
sha256-yMJ2OVMzrFaDPn7q8nCBZFRYpL/f0RcHzhmw/i6btJM=
#+END_SRC
-**** 3.0.7
-
-#+NAME: direnv_version_3_0_7
-#+BEGIN_SRC org
-3.0.7
-#+END_SRC
-
-#+NAME: direnv_hash_3_0_7
-#+BEGIN_SRC org
-sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc=
-#+END_SRC
-
-**** 3.0.6
-
-#+NAME: direnv_version_3_0_6
-#+BEGIN_SRC org
-3.0.6
-#+END_SRC
-
-#+NAME: direnv_hash_3_0_6
-#+BEGIN_SRC org
-sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=
-#+END_SRC
-
-**** 3.0.4
-
-#+NAME: direnv_version_3_0_4
-#+BEGIN_SRC org
-3.0.4
-#+END_SRC
-
-#+NAME: direnv_hash_3_0_4
-#+BEGIN_SRC org
-sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=
-#+END_SRC
-
-**** 3.0.0
-
-#+NAME: direnv_version_3_0_0
-#+BEGIN_SRC org
-3.0.0
-#+END_SRC
-
-#+NAME: direnv_hash_3_0_0
-#+BEGIN_SRC org
-sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=
-#+END_SRC
-
-**** 2.4.0
-
-#+NAME: direnv_version_2_4_0
-#+BEGIN_SRC org
-2.4.0
-#+END_SRC
-
-#+NAME: direnv_hash_2_4_0
-#+BEGIN_SRC org
-sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=
-#+END_SRC
-
* dlang
** ldc
+*** tags link
+
+- https://github.com/ldc-developers/ldc/tags
+
*** NOTES to update ldc
check for latest version:
@@ -168,20 +112,41 @@ sha256 = "<<ldc-hash>>";
#+NAME: ldc-version
#+BEGIN_SRC org
-<<ldc_version_1_41_0>>
+<<ldc_version_1_42_0>>
#+END_SRC
#+NAME: ldc-hash
#+BEGIN_SRC org
-<<ldc_hash_1_41_0>>
+<<ldc_hash_1_42_0>>
#+END_SRC
#+NAME: ldc-llvm-set
#+BEGIN_SRC org
-<<ldc_llvm_set_1_41_0>>
+<<ldc_llvm_set_1_42_0>>
#+END_SRC
*** versions
+**** 1.42 OK ✓
+***** 1.42.0 OK ✓
+
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.42.0.tar.gz
+ - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz
+
+#+NAME: ldc_version_1_42_0
+#+BEGIN_SRC nix
+1.42.0
+#+END_SRC
+
+#+NAME: ldc_hash_1_42_0
+#+BEGIN_SRC nix
+sha256-adA14tx/bruGvHVoODz13f8h/U2ol1lK0ytxnypsLv8=
+#+END_SRC
+
+#+NAME: ldc_llvm_set_1_42_0
+#+BEGIN_SRC nix
+llvm_21
+#+END_SRC
+
**** 1.41 OK ✓
***** 1.41.0 OK ✓
@@ -337,6 +302,7 @@ sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0=
#+END_SRC
** dmd
+*** tags link
- https://github.com/dlang/dmd/tags
@@ -514,20 +480,39 @@ sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s=
#+END_SRC
** dub
+*** tags link
+
+- https://github.com/dlang/dub/releases
+
*** version SET
#+NAME: dub-version
#+HEADER: :noweb yes
#+BEGIN_SRC org
-<<dub_version_1_39_0>>
+<<dub_version_1_40_0>>
#+END_SRC
#+NAME: dub-hash
#+BEGIN_SRC org
-<<dub_hash_1_39_0>>
+<<dub_hash_1_40_0>>
#+END_SRC
*** versions
+**** 1.40 OK ✓
+***** 1.40.0
+
+- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.40.0.tar.gz
+
+#+NAME: dub_version_1_40_0
+#+BEGIN_SRC nix
+1.40.0
+#+END_SRC
+
+#+NAME: dub_hash_1_40_0
+#+BEGIN_SRC nix
+sha256-OirchEKf66gis70gCSTOYcrHLyHhCsyt/rTEGT83Vcc=
+#+END_SRC
+
**** 1.39 OK ✓
***** 1.39.0
@@ -709,17 +694,17 @@ sha256-Pfj8Kwf5AlcrHhLs5A/0vIFWLZaNR3ro+esbs7oWN9I=
** sha256 blank_hash
#+NAME: blank_hash
-#+BEGIN_SRC nix
+#+BEGIN_SRC org
<<sha256-blank>>
#+END_SRC
#+NAME: sha256-blank
-#+BEGIN_SRC nix
+#+BEGIN_SRC org
sha256-0000000000000000000000000000000000000000000=
#+END_SRC
#+NAME: assumed_hash
-#+BEGIN_SRC nix
+#+BEGIN_SRC org
sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
#+END_SRC