Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
e57e3b6
add multi-package.yaml
matteolimberto-da Nov 4, 2025
b311cf3
start fixing dependencies
matteolimberto-da Nov 4, 2025
ecf26aa
more fixing
matteolimberto-da Nov 5, 2025
397998b
fix local build
matteolimberto-da Nov 14, 2025
e0465a3
fixup
matteolimberto-da Nov 14, 2025
016f11e
Merge remote-tracking branch 'origin/karen/daml-3.x-upgrade' into use…
matteolimberto-da Nov 14, 2025
c94cb67
Merge karen/daml-3.x-upgrade and resolve daml.yaml conflicts for mult…
karenstaner-bit Nov 25, 2025
97196e5
Replace all symlinks with real directories + add splice/daml-ctl DARs
karenstaner-bit Nov 26, 2025
f537361
Fix DAR paths, remove obsolete .lib/splice directory
karenstaner-bit Nov 26, 2025
1a33c89
Fix DAR naming and local data-dependency resolution in packell
karenstaner-bit Dec 2, 2025
7abf6f8
packell_new data-dependencies dry-run - Passes
karenstaner-bit Dec 2, 2025
90a1cc3
packell: trigger rebuild (version bump)
karenstaner-bit Dec 2, 2025
e58c786
Simplified - DataDependencies
karenstaner-bit Dec 2, 2025
b72902a
Fixed layout DataDependencies.hs
karenstaner-bit Dec 2, 2025
56d8f3c
Update Packell to 0.0.3
karenstaner-bit Dec 3, 2025
3a127bc
Fix default.nix
karenstaner-bit Dec 3, 2025
d9c44e1
Test - changed packell-x86_64-linux.tar.gz
karenstaner-bit Dec 3, 2025
89d041a
Trying to fix NIX for packell
karenstaner-bit Dec 4, 2025
3b2eacf
Trying to fix NIX for packell - 2
karenstaner-bit Dec 4, 2025
87fec4d
Trigger CI on use-multi-package-build
karenstaner-bit Dec 4, 2025
54d616d
Fix CI to use correct packell
karenstaner-bit Dec 4, 2025
0d1068d
which packell
karenstaner-bit Dec 4, 2025
5f536ad
Fix packell-x86_64-linux.tar.gz in packell/0.0.3
karenstaner-bit Dec 4, 2025
7e8ea8f
Fix - validate generated docs
karenstaner-bit Dec 4, 2025
5f54d69
Migrate daml-finance to multi-package structure and remove symlink-ba…
karenstaner-bit Dec 5, 2025
d174977
Migrate daml-finance to multipackage build; update all daml.yaml file…
karenstaner-bit Dec 8, 2025
3a8a3d3
Migrate daml-finance to multipackage build; update all daml.yaml file…
karenstaner-bit Dec 8, 2025
16e69ad
Merge branch 'origin/use-multi-package-build' into use-multi-package-…
karenstaner-bit Dec 15, 2025
f862bfd
packell: update data-dependencies for multipackage build
karenstaner-bit Dec 16, 2025
44f157a
packell: update data-dependencies for multipackage build (update head…
karenstaner-bit Dec 16, 2025
e71cf24
Fix make docs with multi-package dpm
karenstaner-bit Dec 16, 2025
e0321af
Regenerate DAML Finance documentation after DPM multi-package migration
karenstaner-bit Dec 16, 2025
e6db0fd
Merge branch karen/daml-3.x-upgrade into use-multi-package: SDK 3.4.…
karenstaner-bit Dec 16, 2025
830ac72
Merge branch karen/daml-3.x-upgrade into use-multi-package: SDK 3.4.…
karenstaner-bit Dec 16, 2025
549056e
Fixed some PR feedback
karenstaner-bit Dec 16, 2025
3f9f01d
Address PR review comments
karenstaner-bit Jan 27, 2026
b8f3207
Fix shell.nix
karenstaner-bit Jan 27, 2026
a1b326e
Testing sheellHook in shell.nix --> dpm install 3.4.x automatically
karenstaner-bit Jan 27, 2026
86eaafc
Fix docs
karenstaner-bit Jan 27, 2026
b3c63db
Fix SDK_NOT_INSTALLED by using repo-local DPM_HOME in nix-shell
karenstaner-bit Jan 27, 2026
72bdcee
Upgrade SDK to 3.4.10 + dpm + multi-package file
karenstaner-bit Jan 27, 2026
093a09a
Upgrade SDK to 3.4.10 + dpm + multi-package file
karenstaner-bit Jan 27, 2026
2b534a1
Upgrade SDK to 3.4.10 + dpm + multi-package file
karenstaner-bit Feb 5, 2026
b72b681
Upgrade SDK to 3.4.10 + dpm + multi-package file
karenstaner-bit Feb 5, 2026
c4d7211
Upgrade SDK to 3.4.10 + dpm + multi-package file - style format changes
karenstaner-bit Feb 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 24 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ commands:
- /home/circleci/.nix-channels
- /home/circleci/.nix-defexpr
- /home/circleci/.config/nix

import_gpg_key:
description: "Setup GPG for signing artifacts as part of a release"
steps:
Expand Down Expand Up @@ -272,11 +273,13 @@ jobs:
command: |
set -euo pipefail

SDK_VERSION="$(yq e '.sdk-version' daml.yaml)"

echo "Persisting DPM environment variables..."
echo "export REPO_ROOT=$(pwd)" >> $BASH_ENV
echo "export DPM_REGISTRY=europe-docker.pkg.dev/da-images/public-all" >> $BASH_ENV
echo "export DPM_HOME=$(pwd)/.dpm" >> $BASH_ENV
echo "export DPM_SDK_VERSION=3.4.9" >> $BASH_ENV
echo "export DPM_SDK_VERSION=${SDK_VERSION}" >> "$BASH_ENV"
echo "Configure DPM environment complete."

- run:
Expand Down Expand Up @@ -371,10 +374,28 @@ jobs:
- run:
name: Build Packell
command: |
echo "Building Packell with nix-build"
nix-shell tools/packell/default.nix --run 'echo "Done building Packell."'
cp /nix/store/*packell*/bin/packell .
cp /nix/store/*packell-*/bin/packell .

# Verify Packell works
- run:
name: Verify Packell binary
command: |
echo "[Packell] Running packell --help"
./packell --help

# Create tar.gz
- run:
name: Package packell into tar.gz
command: |
mkdir packell-linux
cp ./packell packell-linux/
tar -czvf packell-x86_64-linux.tar.gz packell-linux

# Upload tar.gz artifact
- store_artifacts:
path: packell
path: packell-x86_64-linux.tar.gz

workflows:
version: 2
Expand Down
18 changes: 16 additions & 2 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ PATH_add bin

# --- DPM configuration ---
export REPO_ROOT=$(pwd)
export DPM_HOME="$REPO_ROOT/.dpm"
export DPM_REGISTRY="europe-docker.pkg.dev/da-images/public-all"
export DPM_HOME="${REPO_ROOT}/.dpm/"
export DPM_SDK_VERSION="3.4.9"

# Single source of truth: daml.yaml
export DPM_SDK_VERSION="$(yq e '.sdk-version' daml.yaml)"

# Ensure SDK is present in repo-local DPM_HOME
if command -v dpm >/dev/null 2>&1; then
if ! dpm version --all -o json 2>/dev/null \
| jq -e --arg v "$DPM_SDK_VERSION" \
'any(.[]; .version == $v and .installed == true)' \
>/dev/null 2>&1
then
echo "Installing DPM SDK $DPM_SDK_VERSION into $DPM_HOME..."
dpm install "$DPM_SDK_VERSION"
fi
fi
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,15 @@
*.log
**/.DS_Store
.cache/
.lib/

# Ignore .lib by default
.lib/*
# Allow required subfolders
!.lib/splice/
!.lib/splice/*
!.lib/daml-ctl/
!.lib/daml-ctl/*

.dars/
.vscode/
docs/build/
Expand All @@ -14,3 +22,4 @@ __pycache__
.bundle/
.idea
log/
.lib/
43 changes: 25 additions & 18 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
SCRIPTS_DIR := scripts

##########################
# Project Source (./src) #
##########################
# Project (workspace) #
##########################

.PHONY: install
Expand All @@ -10,11 +9,11 @@ install:

.PHONY: build
build: install
dpm build
dpm build --all

.PHONY: test
test: build
dpm test
dpm test --all

.PHONY: clean
clean:
Expand Down Expand Up @@ -53,8 +52,8 @@ validate-packages: build-packages
update-packages:
git fetch
packell versioning update
packell data-dependencies update
make headers-update
# Remove: packell data-dependencies update

###############################
# Project Source and Packages #
Expand All @@ -64,10 +63,11 @@ update-packages:
build-all: build build-packages

.PHONY: test-all
test-all: test test-packages
test-all: build
make ci-test

.PHONY: clean-all
clean-all: clean clean-packages clean-docs
clean-all: clean clean-packages clean-docs clean-cache

.PHONY: generate-docs
generate-docs: doc-code
Expand Down Expand Up @@ -110,7 +110,7 @@ ci-build-js:
--run 'dpm codegen-js -o .dars/.js .dars/*'

# Find all test projects that contain a daml.yaml in BOTH locations:
daml-test-projects := $(shell find package/test src/test -maxdepth 6 -name daml.yaml -exec dirname {} \; 2>/dev/null)
daml-test-projects := $(shell find package/test -maxdepth 6 -name daml.yaml -exec dirname {} \; 2>/dev/null)

.PHONY: ci-test
ci-test:
Expand Down Expand Up @@ -193,25 +193,31 @@ headers-update:
# Documentation Generation #
############################

DAML_SRC := $(shell find src/main/daml -name '*.daml')
DAML_SRC := $(shell \
find package/main/daml \
-path '*/.daml' -prune -o \
-name '*.daml' -print)
SDK_VERSION := $(shell yq e '.sdk-version' daml.yaml)
DPM_HOME ?= $(HOME)/.dpm
DAML_ROOT := $(shell if [ -z ${DAML_HOME} ]; then echo ~/.daml; else echo ${DAML_HOME}; fi)

DPM_HOME := $(shell if [ -z $${DPM_HOME} ]; then echo $$HOME/.dpm; else echo $${DPM_HOME}; fi)
DOCS_BUILD_DIR := docs/build

.PHONY: doc-code-json
doc-code-json: $(DAML_SRC)
doc-code-json: build
@mkdir -p $(DOCS_BUILD_DIR)
dpm docs \
--output=docs/build/daml-finance.json \
--combine \
--package-name=daml-finance \
--format Json \
$(DAML_SRC)
--output=$(DOCS_BUILD_DIR)/daml-finance.json \
$(DAML_SRC)

.PHONY: doc-code
doc-code: doc-code-json
dpm docs \
--output=docs/build/daml-finance-rst \
--output-hoogle=docs/build/daml-finance-hoogle.txt \
--output=$(DOCS_BUILD_DIR)/daml-finance-rst \
--output-hoogle=$(DOCS_BUILD_DIR)/daml-finance-hoogle.txt \
--input-format=json \
--format=Rst \
--exclude-instances=HasField,HasImplementation,HasFromInterface,HasToInterface,HasInterfaceView,HasExercise,HasExerciseGuarded,HasFromAnyChoice,HasToAnyChoice \
Expand All @@ -221,9 +227,10 @@ doc-code: doc-code-json
--hoogle-template=docs/code-documentation-templates/base-hoogle-template.txt \
--base-url=https://docs.daml.com/daml-finance/reference/code-documentation/daml-finance-rst \
--input-anchor=$(DAML_ROOT)/sdk/$(SDK_VERSION)/damlc/resources/daml-base-anchors.json \
docs/build/daml-finance.json

$(DOCS_BUILD_DIR)/daml-finance.json
@echo "Daml Finance documentation generated successfully"

.PHONY: clean-docs
clean-docs:
./$(SCRIPTS_DIR)/clean-docs.sh

17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,20 @@ When developing please adhere to the [style guide](./STYLEGUIDE.md).
### Releases

To perform a release of this project, please follow the guide [here](./RELEASE.MD).

## Important Compatibility Notice (Canton Network)
The `main` branch of this repository currently targets **Daml SDK 3.x** and uses an **unstable Ledger Fragment (LF) version (`2.dev`)**.

As a result:

- Artifacts built from `main` cannot be deployed to the Canton Network / MainNet
- They are not compatible with any production Canton deployment
- This setup is intended for development, experimentation, and forward-looking SDK work only

The use of `LF 2.dev` is required for ongoing development on Daml 3, but is not supported on Canton MainNet, which only accepts stable LF versions.

### What should I use instead?

- For production Canton deployments, use a released version of Daml Finance that targets a stable LF version

This notice will be updated once Daml 3 and its corresponding LF version are fully supported on Canton MainNet.
11 changes: 5 additions & 6 deletions daml.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# update the hashes. The sdk-version refers to the release folder names (or tags) found here:
# https://github.com/digital-asset/daml/releases
# For example 2.9.0-rc1 (in case of a release candidate) or 2.8.0 (for a regular release)
sdk-version: 3.4.9
sdk-version: 3.4.10
# daml-version is not used by the daml assistant, only by the finance nix config
# It refers to the version number of the files of the release folder.
# For example, if you use a release candidate like:
Expand All @@ -16,7 +16,7 @@ sdk-version: 3.4.9
# On the other hand, if you use a regular release like:
# https://github.com/digital-asset/daml/releases/tag/v2.8.0
# the daml-version would simply be: 2.8.0
daml-version: 3.4.9
daml-version: 3.4.10
# To use a custom daml, you must update the sdk-version across the project to that of the tar you have (likely 0.0.0)
# daml-version above will be ignored
# and uncomment the below tar path to point to your release tar.
Expand All @@ -26,7 +26,7 @@ daml-version: 3.4.9
# NOTE: This must be an absolute path to the release tarball.
# daml-tar-path: <daml>/sdk/bazel-bin/release/sdk-release-tarball-ce.tar.gz
name: daml-finance
source: src/test/daml
source: daml
# version is independent of the actual sdk-version. It is used to create an assembly artifact here
# https://digitalasset.jfrog.io/ui/repos/tree/General/assembly/daml-finance which is referenced by
# docs.daml.com (in the docs/<sdk-version>/version.json files). The purpose of having an independent
Expand All @@ -39,11 +39,10 @@ dependencies:
- daml-script
data-dependencies:
- .lib/daml-ctl/v4.0.0/daml-ctl-4.0.0.dar
- .lib/splice/splice-api-token-holding-v1-1.0.0.dar
- .lib/splice/splice-api-token-metadata-v1-1.0.0.dar
- lib/splice-api-token-holding-v1-1.0.0.dar
- lib/splice-api-token-metadata-v1-1.0.0.dar

build-options:
- --include=src/main/daml
- --target=2.dev
- -Wno-upgrade-interfaces
- -Wno-upgrade-exceptions
Expand Down
6 changes: 0 additions & 6 deletions dev-protocol.conf

This file was deleted.

4 changes: 2 additions & 2 deletions docs/generated/finance-lifecycling/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/generated/finance-lifecycling/daml.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions docs/generated/finance-payoff-modeling/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/generated/finance-payoff-modeling/daml.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions docs/generated/finance-settlement/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/generated/finance-settlement/daml.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions docs/generated/finance-upgrades/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/generated/finance-upgrades/daml.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/generated/overview/intro.rst

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions docs/generated/quickstart-finance/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/generated/quickstart-finance/daml.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading