Daml DAR file versions

If I do this…

  1. daml build
  2. daml ledger upload-dar .daml/dist/my-models-0.0.1.dar
  3. Make a change to the Daml source files, but leave the version: 0.0.1 unchanged in the daml.yaml file.
  4. Again daml build
  5. Again daml ledger upload-dar .daml/dist/my-models-0.0.1.dar.

… does my second upload replace the first one?

No.

You can see that both files are still in the ledger using this command:

daml packages list

Example output:

Available packages:
    :
1531497db248355015e4bb038ae39e0a17dbb9da7de5e3075cf2a7743de4c9d9 (my-models-0.0.1)
    :
71fdf160ae04de61164d8c5f0ca7e7297b5504338605f082a813b8d3a22f2212 (my-models-0.0.1)
    :

The version: (that appears in the daml.yaml file) does not uniquely identify your code to the ledger. The package id is what actually identifies your “version” of the code.

This is also covered in the documentation here and here