Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
6b0b001
cardano-wasm demo: staking (certificates, pool picker, stake witnesses)
palas Jul 18, 2026
a9d18a3
cardano-wasm demo: address review feedback
palas Aug 12, 2026
363eb0d
Complete the era eons for Dijkstra
palas Aug 18, 2026
84ea317
haskell-wasm CI: add archive.org fallback for the ghc-wasm-meta input
palas Aug 19, 2026
5ec7ba8
Address review feedback
palas Aug 19, 2026
5e8c7bb
Deprecate the LedgerTxBody wrapper lenses that have ledger equivalents
palas Aug 19, 2026
5eb13aa
Fix the build on GHC 9.6 and 9.10
palas Aug 20, 2026
8157d70
Make the Eon Era instance exhaustive and sort the ledger re-exports
palas Aug 21, 2026
7414325
Type-gate the deprecated reqSignerHashesTxBodyL
palas Aug 21, 2026
c852c35
Support Dijkstra protocol parameters
palas Aug 18, 2026
bbf01be
Dispatch ledger queries in the Dijkstra era
palas Aug 18, 2026
ab1cfc3
Fix the era wording in the Conway-onwards query error messages
palas Aug 22, 2026
c808d7c
Enable Dijkstra-era transaction construction and balancing
palas Aug 18, 2026
a47d58c
Serialise and witness Dijkstra-era transactions
palas Aug 18, 2026
e1df987
Expose the Dijkstra era in AnyCardanoEra, AnyShelleyBasedEra and SomeEra
palas Aug 18, 2026
7fe6082
Update herald tool to 0.2.0
carbolymer Aug 18, 2026
e225c89
cardano-rpc: resolve genesis initial funds from sgExtraConfig. Add ti…
carbolymer Aug 20, 2026
3e0aa6d
Release cardano-api-11.6.0.0
github-actions[bot] Aug 25, 2026
bb4c034
Add release changelog fragment for cardano-api 11.6.0.0
github-actions[bot] Aug 25, 2026
dcd3f1a
Release cardano-rpc-11.2.0.0
github-actions[bot] Aug 25, 2026
ddffc4c
Add release changelog fragment for cardano-rpc 11.2.0.0
github-actions[bot] Aug 25, 2026
e0b3582
Honour TestDijkstraHardForkAtEpoch when parsing the node configuration
palas Aug 25, 2026
f7664ca
JSON round-trip fails for TxOut with non-canonical inline datum
v0d1ch Jun 25, 2026
29d06f5
Re-export ledger accessors auxDataTxL and metadataTxAuxDataL
Jimbo4350 Jul 22, 2026
a1f9cb4
Add changelog fragment for auxDataTxL/metadataTxAuxDataL re-export
Jimbo4350 Jul 22, 2026
504ec9c
Re-export ledger TxOut accessors for reading outputs
Jimbo4350 Jul 22, 2026
198afc0
Fix fourmolu import ordering and drop redundant test imports
Jimbo4350 Jul 30, 2026
1d0f02c
Fix redeemer pointer indexing in the experimental witness machinery
carbolymer Aug 11, 2026
fe07f65
cardano-rpc: Update UTxO RPC v1beta protos to latest upstream spec
carbolymer Aug 19, 2026
6afc059
cardano-rpc: Fix conflicting field re-exports after the proto update
carbolymer Aug 19, 2026
0961e7d
cardano-rpc: Expose all UTxO RPC v1beta service methods
carbolymer Aug 19, 2026
04fe6bb
cardano-rpc: Populate Tx.votes with governance voting procedures
carbolymer Aug 19, 2026
8fe30da
cardano-rpc: Populate TxOutput.original_cbor
carbolymer Aug 19, 2026
3a3dcac
cardano-rpc: Reset FetchBlock to the upstream repeated shape
carbolymer Aug 20, 2026
e792d14
cardano-rpc: Mark indexer-dependent methods in the README
carbolymer Aug 20, 2026
565d088
cardano-rpc: Add changelog fragment for the UTxO RPC spec update
carbolymer Aug 27, 2026
08b5d4e
Add TCP listening support to the gRPC server
carbolymer Aug 28, 2026
726931a
Add TLS listening support to the gRPC server
carbolymer Aug 28, 2026
79c2bd4
Bound per-connection RPC parallelism via explicit HTTP/2 settings
carbolymer Aug 31, 2026
f97ee89
Harden the gRPC server against abuse of the network endpoints
carbolymer Sep 2, 2026
7062407
Bump `ouroboros-consensus-4.2.1.0`
palas Sep 3, 2026
59f9df9
Release cardano-api-11.7.0.0
github-actions[bot] Sep 4, 2026
545506d
Add release changelog fragment for cardano-api 11.7.0.0
github-actions[bot] Sep 4, 2026
c97c8a1
Release cardano-rpc-11.3.0.0
github-actions[bot] Sep 4, 2026
7f58483
Add release changelog fragment for cardano-rpc 11.3.0.0
github-actions[bot] Sep 4, 2026
018b606
Remove caseShelleyEraOnlyOrAllegraEraOnwards
Jimbo4350 Sep 3, 2026
c0b5072
Remove caseByronOrShelleyBasedEra
Jimbo4350 Sep 3, 2026
9cf58c4
Prefer inEonForShelleyBasedEra over caseShelleyToBabbageOrConwayEraOn…
Jimbo4350 Sep 3, 2026
7cb1963
Remove caseShelleyToBabbageOrConwayEraOnwards
Jimbo4350 Sep 3, 2026
78b9abc
Add changelog fragment
Jimbo4350 Sep 3, 2026
3f476c6
cardano-rpc: Encapsulate NodeKernelAccess internals
carbolymer Sep 3, 2026
fcfe27a
cardano-rpc: Implement ReadEraSummary gRPC method
carbolymer Sep 3, 2026
17201a7
Updates for crypton/memory/ram changes
erikd Aug 13, 2026
b69b0e5
Use SRPs to pull in dependencies that use crypton >= 1.1
erikd Aug 13, 2026
45b4fb8
Update all DSIGN operations to FixedSizeCodec ops
erikd Aug 13, 2026
6f06938
Fix cardano-api for the validation package's 1.1 -> 1.2 breaking rewrite
erikd Aug 13, 2026
134c950
Adapt to cardano-crypto-class-2.5.0.0's BLS12381SignContext/testlib c…
erikd Aug 13, 2026
f0686e1
Bridge cardano-addresses' vendored XPrv to cardano-crypto's in Mnemon…
erikd Aug 13, 2026
f5ff452
Update cardano-ledger SRP
erikd Aug 20, 2026
9b62c53
Update SRPs
erikd Aug 20, 2026
4d379fb
cabal.project: Update index-states
erikd Sep 1, 2026
3db5a03
cardano-rpc: fix serverExceptionToClient for grapesy-1.2.0's ExactExc…
erikd Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changes/20260718_cardano_wasm_demo_staking.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
project: cardano-wasm

pr: 1290

kind:
- feature

description: |
Demo: staking certificates (register/delegate/unregister), paginated pool picker, stake witnesses.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
description: |
Made the WASM CI job resilient to gitlab.haskell.org outages by pre-fetching the ghc-wasm-meta flake input with a fallback to a byte-identical, narHash-verified mirror on archive.org
kind:
- maintenance
pr: 1304
project: cardano-wasm
7 changes: 7 additions & 0 deletions .changes/20260903_cardano_rpc_read_era_summary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project: cardano-rpc
pr: 1325
kind:
- feature
- breaking
description: |
Implement the `ReadEraSummary` gRPC method, returning the era name and the start and end boundaries (Unix-epoch milliseconds, slot, epoch) of every era in the chain's history. The `NodeKernelAccess` type is now abstract; use the functions of `Cardano.Rpc.Server.NodeKernelAccess` instead of its record fields.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
description: Release cardano-api 11.7.0.0
kind:
- release
pr: 1329
project: cardano-api
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
description: Release cardano-rpc 11.3.0.0
kind:
- release
pr: 1330
project: cardano-rpc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project: cardano-api
pr: 1326
kind:
- breaking
- refactoring
description: |
Removed the era case combinators `caseByronOrShelleyBasedEra` and `caseShelleyToBabbageOrConwayEraOnwards`, along with the internal `caseShelleyEraOnlyOrAllegraEraOnwards`, and the now-empty `Cardano.Api.Era.Internal.Case` module. Use `inEonForEra` / `inEonForShelleyBasedEra` with the appropriate eon, or match on the era constructors where both branches need era constraints.
2 changes: 1 addition & 1 deletion .github/workflows/check-pr-changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ jobs:
extra_nix_config: |
accept-flake-config = true

- uses: input-output-hk/cardano-dev/actions/herald-validate@herald-validate-0.0.1.0
- uses: input-output-hk/cardano-dev/actions/herald-validate@herald-validate-0.0.1.1
23 changes: 23 additions & 0 deletions .github/workflows/haskell-wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,29 @@ jobs:
extra_nix_config: |
accept-flake-config = true

# ghc-wasm-meta is the only flake input hosted on gitlab.haskell.org, whose
# availability is flaky, and an outage breaks every nix invocation below.
# Pre-fetch that input, falling back to a byte-identical mirror on
# archive.org. The narHash taken from flake.lock guarantees that whichever
# source responds yields exactly the locked content, and the nix
# invocations below then resolve the input locally without re-downloading.
- name: Fetch ghc-wasm-meta flake input (with archive.org mirror fallback)
run: |
rev=$(jq -r '.nodes["ghc-wasm-meta"].locked.rev' flake.lock)
narHash=$(jq -r '.nodes["ghc-wasm-meta"].locked.narHash' flake.lock)
hashQuery=${narHash//=/%3D}
if nix flake prefetch --option connect-timeout 60 --option download-attempts 2 \
"gitlab:haskell-wasm/ghc-wasm-meta/${rev}?host=gitlab.haskell.org&narHash=${hashQuery}"; then
echo "Fetched ghc-wasm-meta@${rev} from gitlab.haskell.org"
else
echo "::warning::gitlab.haskell.org is unavailable, falling back to the archive.org mirror of ghc-wasm-meta@${rev}"
nix flake prefetch \
"tarball+https://archive.org/download/ghc-wasm-meta-${rev}/ghc-wasm-meta-${rev}-${rev}.tar.gz?narHash=${hashQuery}" || {
echo "::error::The archive.org mirror does not serve ghc-wasm-meta@${rev}. If the flake input was re-pinned, upload the new GitLab archive tarball to an archive.org item named ghc-wasm-meta-${rev} (keeping GitLab's file name), or wait for gitlab.haskell.org to recover."
exit 1
}
fi

- uses: rrbutani/use-nix-shell-action@v1
with:
devShell: .#wasm
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ jobs:
extra_nix_config: |
accept-flake-config = true

- uses: input-output-hk/cardano-dev/actions/herald-release@herald-release-0.0.1.0
- uses: input-output-hk/cardano-dev/actions/herald-release@herald-release-0.0.3.0
with:
package: ${{ inputs.package }}
version: ${{ inputs.version }}
base-branch: ${{ inputs.branch || github.ref_name }}
chap-instructions: true
103 changes: 96 additions & 7 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ repository cardano-haskell-packages
-- See CONTRIBUTING for information about these, including some Nix commands
-- you need to run if you change them
index-state:
, hackage.haskell.org 2026-08-02T17:21:34Z
, cardano-haskell-packages 2026-08-11T14:53:43Z
, hackage.haskell.org 2026-09-01T20:29:07Z
, cardano-haskell-packages 2026-09-03T10:20:53Z

packages:
cardano-api
Expand Down Expand Up @@ -48,11 +48,6 @@ jobs: $ncpus
semaphore: True


constraints:
-- haskell.nix patch does not work for 1.6.8
, any.crypton-x509-system < 1.6.8


-- WASM compilation specific

if arch(wasm32)
Expand Down Expand Up @@ -166,3 +161,97 @@ if impl(ghc >=9.14)
, time-locale-compat:time
, with-utf8:base
-- cabal-allow-newer end

-- TEMPORARY: switching to crypton >= 1.1 (which depends on `ram` instead of
-- `memory`) needs cardano-crypto-class-2.6.0.0 (the first version depending
-- on crypton ^>=1.1 and `ram`), but the released ouroboros-consensus-4.1.0.0
-- pins `cardano-crypto-class ^>=2.5`, which excludes it. The blocks below
-- replicate the (draft, do-not-merge) upstream fix in
-- https://github.com/IntersectMBO/ouroboros-consensus/pull/2213, which widens
-- ouroboros-consensus's bound to also allow cardano-crypto-class-2.6.0.0 and
-- pulls in the handful of other packages that need to move in lockstep with
-- it. Remove all of this once these land upstream and a release picks them up.
Comment on lines +165 to +173
allow-newer:
cardano-ledger-mary:cardano-crypto-class,
cardano-ledger-shelley:cardano-crypto-class,
cardano-ledger-binary:cardano-crypto-class,
cardano-ledger-core:cardano-crypto-class,
cardano-protocol:cardano-crypto-class,
cardano-protocol-tpraos:cardano-crypto-class,
kes-agent:cardano-crypto-class,
kes-agent-crypto:cardano-crypto-class,
Comment on lines +174 to +182

source-repository-package
type: git
location: https://github.com/IntersectMBO/ouroboros-consensus
tag: 206dffef96e76e42e15a1fb9fd6796394aef3409

-- TEMPORARY: pulls in cardano-base PR #694 (erikd/contra-tracer, not yet
-- merged) https://github.com/IntersectMBO/cardano-base/pull/694, which widens
-- cardano-crypto-class:testlib's contra-tracer bound so it builds against the
-- same contra-tracer version as everything else here. Needed by the
-- ouroboros-consensus pin above. Remove once this PR (or an equivalent fix)
-- is released.
source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-base
tag: ad3afec8113872652ec8edf19ae1280552ce2a20
subdir: cardano-crypto-class

-- TEMPORARY: pulls in kes-agent PR #105 (erikd/contra-tracer, not yet merged)
-- https://github.com/input-output-hk/kes-agent/pull/105, which widens the
-- same contra-tracer bound for kes-agent/kes-agent-crypto, on top of the
-- FixedSizeCodec migration cardano-crypto-class-2.6.0.0 needs. Needed by the
-- ouroboros-consensus pin above. Remove once this PR (or an equivalent fix)
-- is released.
source-repository-package
type: git
location: https://github.com/input-output-hk/kes-agent
tag: 0e9a16c61ecc6b5cc747ae0ebdb718a02eae8ddc
subdir:
kes-agent
kes-agent-crypto

-- TEMPORARY: pulls in cardano-ledger PR #5999 (erikd/ram, not yet merged)
-- https://github.com/IntersectMBO/cardano-ledger/pull/5999, which switches
-- cardano-crypto-wrapper from `memory` to `ram` so it builds against crypton
-- >=1.1. Needed by the ouroboros-consensus pin above. Remove once this PR (or
-- an equivalent fix) is released.
source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-ledger
tag: 407b27ad62459cccf346145f97f63a259ae7ec75
subdir: eras/byron/crypto

-- TEMPORARY: cardano-addresses-4.0.2 (the latest released on CHaP) still pins
-- `crypton >=0.32 && <1.1` and depends on the standalone `cardano-crypto`
-- package (capped at <1.4.0, i.e. before its own `memory`->`ram` switch).
-- master (unreleased, 4.0.7) has already moved to `crypton >=1.1 && <1.2` /
-- `ram` and dropped the `cardano-crypto` dependency entirely. Remove once a
-- release picks this up.
source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-addresses
tag: 63c2497f965e96610c6e3df1127dbd0b9481228f

-- TEMPORARY: grapesy-1.1.1 (the latest released on Hackage) pins
-- `tls >=1.7 && <2.2`, which excludes tls-2.4.3 (needed for crypton >=1.1,
-- since older tls versions pull in crypton-x509-validation <1.7, which caps
-- crypton <1.1). well-typed/grapesy's master widens that to
-- `tls >=1.7 && <2.5`, still version 1.1.1 (unreleased bump). Remove once a
-- release picks this up.
source-repository-package
type: git
location: https://github.com/well-typed/grapesy
tag: bd6af64f69ff89e3a8fc02e2c81262e648f4715d
subdir:
grapesy
grpc-spec

-- TEMPORARY: this pin (working around a haskell.nix patch that doesn't apply
-- to crypton-x509-system-1.6.8) forces an old crypton-x509-system, which
-- conflicts with the crypton >=1.1 migration above (that needs
-- crypton-x509-system-1.9.0). Dropped for now; revisit once the crypton
-- migration lands and re-check whether the haskell.nix issue still applies.
-- constraints:
-- , any.crypton-x509-system < 1.6.8
68 changes: 68 additions & 0 deletions cardano-api/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,73 @@
# Changelog for cardano-api

## 11.7.0.0 -- 2026-09-04

- Bumped ouroboros-consensus to address issue that affected queries `kes-period-info` and `tip`.
(bugfix)
[PR 1327](https://github.com/intersectmbo/cardano-api/pull/1327)

- `foldBlocks` and the rest of the ledger-state machinery now honour `TestDijkstraHardForkAtEpoch` in the node configuration file, so they can follow a chain into the Dijkstra era.
(bugfix)
[PR 1321](https://github.com/intersectmbo/cardano-api/pull/1321)

- Fix plutus redeemer pointer indexing: proposal pointers now follow the transaction's insertion order and certificate pointers count unwitnessed certificates, in both the experimental and the deprecated transaction builders. Remove the unused StakeCredential field from the WitTxCert constructor. Add property tests checking every redeemer pointer against the ledger's own resolution.
(bugfix, breaking, test)
[PR 1288](https://github.com/intersectmbo/cardano-api/pull/1288)

- Re-export additional ledger accessors from `Cardano.Api.Ledger` so downstream code can read a transaction and its outputs through the ledger lenses without depending on `cardano-ledger` directly: `auxDataTxL` (via `EraTx`), `metadataTxAuxDataL` (via `EraTxAuxData`), `addrTxOutL` / `valueTxOutL` (via `EraTxOut`), `datumTxOutF` (via `AlonzoEraTxOut`), plus `Datum (..)`, `hashBinaryData`, and `hashScript`.
(compatible)
[PR 1262](https://github.com/intersectmbo/cardano-api/pull/1262)

- FromJSON (TxOut) no longer crashes when parsing a TxOut whose inline datum was encoded with non-canonical CBOR bytes (e.g. definite-length arrays instead of the indefinite-length form Plutus normally emits).
(bugfix)
[PR 1238](https://github.com/intersectmbo/cardano-api/pull/1238)

## 11.6.0.0 -- 2026-08-25

- The Dijkstra era can now be selected and enumerated like the other eras: `maxBound` and `[minBound .. maxBound]` for `AnyCardanoEra`, `AnyShelleyBasedEra` and the experimental `Some Era` include it, and the era-name parsers (`anyCardanoEraFromStringLike` and the JSON instances) accept "Dijkstra".

Also fixed an `Enum` roundtrip crash: `fromEnum` already mapped Dijkstra to 7 for `AnyCardanoEra` and `AnyShelleyBasedEra`, but `toEnum 7` errored.
(feature, bugfix)
[PR 1317](https://github.com/intersectmbo/cardano-api/pull/1317)

- Dijkstra transactions can now be serialised and witnessed: the `Tx DijkstraEra` text-envelope types work (witnessed and unwitnessed), Plutus V1-V3 scripts are supported in the era (the ledger's maximum for Dijkstra is V3 for now), and `createCompatibleTx` handles Dijkstra. By the era's design, transactions cannot be marked script-invalid in Dijkstra.
(feature)
[PR 1313](https://github.com/intersectmbo/cardano-api/pull/1313)

- Dijkstra transactions can now be built, fee-estimated and auto-balanced with the experimental API (`makeUnsignedTx`, `estimateBalancedTxBody`, `makeTransactionBodyAutoBalance`). Extra key witnesses become key-hash guards, the era's replacement for required signer hashes — the same keys must sign.

Breaking: `BalanceIsNegative` now carries the era's `UnsignedTx` instead of a Conway-specific one; code matching on it needs the more general type.
(feature, breaking)
[PR 1312](https://github.com/intersectmbo/cardano-api/pull/1312)

- All Conway-onwards ledger queries can now be run in the Dijkstra era: constitution, governance state, DRep and SPO state and stake distributions, committee state, vote delegatees, proposals, ratification state and future protocol parameters, default votes, and DRep delegations. Previously they errored for Dijkstra.
(feature)
[PR 1310](https://github.com/intersectmbo/cardano-api/pull/1310)

- Protocol-parameter updates can now be created and inspected for `DijkstraEra`, via the new `DijkstraEraBasedProtocolParametersUpdate`. It adds the four parameters introduced in Dijkstra: the maximum reference-script size per block and per transaction, and the reference-script cost stride and multiplier.
(feature)
[PR 1309](https://github.com/intersectmbo/cardano-api/pull/1309)

- Export resolveShelleyInitialFunds from Cardano.Api.LedgerState. It takes a ShelleyGenesis and resolves its initial funds against its sgExtraConfig the way ledger's own genesis state construction does, including streaming InjectionFromFile sources with content-hash verification.
(compatible)
[PR 1305](https://github.com/intersectmbo/cardano-api/pull/1305)

- `DijkstraEra` now works everywhere the API dispatches on eras: the era helpers and instances that used to error out or not exist for Dijkstra are implemented.

Extra key witnesses keep working in Dijkstra: the era replaces required signer hashes with guards, so `TxExtraKeyWitnesses` becomes key-hash guards. The effect is the same — those keys must sign.

Simple scripts are still unsupported in Dijkstra.

Most `LedgerTxBody` wrapper lenses are deprecated: use the same-named ledger lenses from `Cardano.Api.Ledger` (through `txBodyL`). `coinTxOutL` replaces `valueTxOutAdaAssetL`, and `reqSignerHashesTxBodyG` covers era-generic reads. `Cardano.Api.Ledger` now also re-exports the era tx-body classes and these lenses. The validity-interval lenses, `adaAssetL` and `multiAssetL` stay: the ledger has no equivalent for them. `reqSignerHashesTxBodyL` now also carries the ledger's `AtMostEra "Conway"` constraint, so using it in Dijkstra is a compile error.

Breaking: the era constraint bundles (`AllegraEraOnwardsConstraints`, `MaryEraOnwardsConstraints`, `BabbageEraOnwardsConstraints`, `ConwayEraOnwardsConstraints`) no longer provide `ShelleyEraTxCert` or `TxCert era ~ ConwayTxCert era`, because Dijkstra does not support those certificates. If your code needs them, add the constraint explicitly.
(feature, breaking)
[PR 1298](https://github.com/intersectmbo/cardano-api/pull/1298)

- Fixed `queryStateForBalancedTx` to skip the DRepState query when transaction contains no DRep unregistration certificates
(bugfix)
[PR 1297](https://github.com/intersectmbo/cardano-api/pull/1297)

## 11.5.0.0 -- 2026-08-17

- On POSIX, the `WithOwnerPermissions` family of functions (`writeFileTextEnvelopeWithOwnerPermissions`, `writeByteStringFileWithOwnerPermissions`, `writeLazyByteStringFileWithOwnerPermissions`, `writeTextFileWithOwnerPermissions`) and `writeSecrets` now write atomically: the contents go to a temporary file, are synced to disk, and the temporary file is renamed over the target, as was already the case on Windows.
Expand Down
Loading