HTTP/2 302
date: Thu, 31 Jul 2025 01:53:42 GMT
content-type: text/html; charset=utf-8
content-length: 0
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
location: https://github.com/ocaml/dune/releases/tag/3.20.0_alpha1
cache-control: no-cache
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
set-cookie: _gh_sess=1eu4prS44X2GYITu47VgItJwzOCCq8nrwtrLO1NuaX%2BLp64TiR8GWSs90zowpya%2FH1hTJn0lmHPA110n%2FIjefGkTV8iF9Zy2crJR%2FZEUY7cad6o4T%2FjMuMPAMp1P8O%2FoDN8EMZJg5ODNiM56xOnZqCQ8ovGFRExB%2BI1RPv9IubZUR7jtNt2MFwfLDYLUHPMwOTfazHmYFT7kYkGejrBpSxVLcoRi5XHg2ly1X4b3OCP9tj032ccz9gmry3JWiW7XlWXIFBDLLlfVn%2BeHfA8GpQ%3D%3D--qL%2FkY76cUAJeB6O6--c307J6rnUQ5zSgGf8kqQ9A%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.83350144.1753926822; Path=/; Domain=github.com; Expires=Fri, 31 Jul 2026 01:53:42 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 31 Jul 2026 01:53:42 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: AB34:1E1938:14A981:1F3082:688ACCA6
HTTP/2 200
date: Thu, 31 Jul 2025 01:53:43 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"f7c2950090bfa530e141af34eff18960"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: AB34:1E1938:14A990:1F3097:688ACCA6
Release 3.20.0~alpha1 · ocaml/dune · GitHub
Releases
3.20.0_alpha1
maiste
released this
30 Jul 12:51
CHANGES:
Fixed
Stop re-running cram tests after promotion when it's not necessary (#11994 ,
@rgrinberg )
fix: $ dune subst
should not fail when adding the version field in opam
files (#11801 , fixes #11045 , @btjorge )
Kill all processes in the process group after the main process has
terminated; in particular this avoids background processes in cram tests to
stick around after the test finished (#11841 , fixes #11820 , @Alizter ,
@Leonidas-from-XIV )
Added
(tests)
stanzas now generate aliases with the test name. To run
(test (name a))
you can do dune build @runtest-a
. (#11558 , grants part of #10239 ,
@Alizter )
Inline test libraries now produce aliases runtest-name_of_lib
allowing users to run specific inline tests as dune build @runtest-name_of_lib
. (#11109 , partially fixes #10239 , @Alizter )
feature: $ dune subst
use version from dune-project
when no version
control repository has been detected (#11801 , @btjorge )
Allow dune exec
to run concurrently with another instance of dune in watch
mode (#11840 , @gridbugs )
Introduce %{os}
, %{os_version}
, %{os_distribution}
, and %{os_family}
percent forms. These have the same values as their opam counterparts.
(#11863 , @rgrinberg )
Introduce option (implicit_transitive_deps false-if-hidden-includes-supported)
that is equivalent to (implicit_transitive_deps false)
when -H
is
supported by the compiler (OCaml >= 5.2) and equivalent to
(implicit_transitive_deps true)
otherwise. (#11866 , fixes #11212 , @nojb )
Add dune describe location
for printing the path to the executable that
would be run (#11905 , @gridbugs )
dune runtest
can now understand absolute paths as well as run tests in
specific build contexts (#11936 , @Alizter ).
Added 'empty' alias which contains no targets. (#11556 #11952 #11955 #11956 ,
grants #4161 , @Alizter and @rgrinberg )
Allow dune promote
to properly run while a watch mode server is running
(#12010 , @ElectreAAS )
Add --alias
and --alias-rec
flags as an alternative to the @@
and @
syntax in the command line (#12043 , fixes #5775 , @rgrinberg )
Added a (timeout <float>)
field to the (cram)
stanza to specify per-test
time limits. Tests exceeding the timeout are terminated with an error.
(#12041 , @Alizter )
Changed
Format long lists in s-expressions to fill the line instead of
formatting them in a vertical way (#10892 , fixes #10860 , @nojb )
Switch from MD5 to BLAKE3 for digesting targets and rules. BLAKE3 is both more
performant and difficult to break than MD5 (#11735 , @rgrinberg , @Alizter )
Print a warning when dune build
runs over RPC (#11833 , @gridbugs )
Stop emitting empty module group wrapper .js
file in melange.emit
(#11987 , fixes #11986 , @anmonteiro )
You can’t perform that action at this time.