Skip to content

Releases: fonsp/Pluto.jl

v0.20.3

29 Oct 10:08
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

New features

Fixes

  • Fix binder (this time really!) by downgrading from Julia 1.11 to Julia 1.10 (#3070)

Diff since v0.20.1

v0.20.1

22 Oct 16:30
b34e0e1
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

New features

Fixes

  • Fix binder build (Julia 1.11)
  • "Multiple definitions" error message on begin ... end is misleading (#3061)

Diff since v0.20.0

v0.20.0

14 Oct 15:10
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

Breaking changes in 0.20

  • Julia 1.10 is now the minimum compatible version (#3050). And after a lot of work, Pluto is compatible with Julia 1.11 (#2928).

The following deprecated methods have been removed from Pluto's API (#3051):

  • init_with_file_viewer
  • downstream_cells_map
  • upstream_cells_map(cell::Cell, notebook::Notebook)
  • delete_vars
  • where_referenced(notebook::Notebook, topology::NotebookTopology, something) (drop the notebook arg)
  • where_assigned(notebook::Notebook, topology::NotebookTopology, something) (drop the notebook arg)

New features

Fixes

Diff since v0.19.47

v0.19.47

10 Oct 10:02
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

Julia 1.10 became the Long-Term Support version (used to be 1.6). This is the last Pluto version that will support Julia versions older than 1.10. Updating to future Pluto versions will require updating Julia.

New features

  • Warn about using Julia version before 1.10 (#3049) (@fonsp)

New features – error display

Fixes

  • make using .A syntax work (#2955) (@Pangoraw)
  • Fix out of order state update messages (#3009) (#3010) (@fonsp)
  • Fix fallback for errors in logging (#3013) (@danielwe)
  • apply unicode completion to all matching cursors (#3037) (#3047) (@Pangoraw)
  • using .Module does not work anymore (#1795)
  • Pluto does not run on nigthly due to changes in REPL code (#2939)
  • Error in fallback path for catching logging errors (#3012)

Internal changes

Diff since v0.19.46

v0.19.46

16 Aug 08:28
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

Comment

This is the fastest version of Pluto ever! This release optimises the overhead of Pluto: the extra time it takes to run a cell (on top of the time that your codes takes). You mostly notice this overhead for large notebooks (>100 cells), and when using @bind.

The overhead in Pluto 0.19.46, compared to the previous version, is:

  • 2x lower on a notebook with 100 cells
  • 5x lower on a notebook with 200 cells
  • 40x lower on a notebook with 500 cells

This means that notebooks with >500 cells are super snappy again! A notebook with 500 cells can do a reactive run in 20ms, this used to take 1 second.

I also tested some old Pluto versions. The overhead in Pluto 0.19.46 is 1.6x lower than any previous Pluto version from the past 2 years.

Performance improvements

  • Speedup large notebooks: fix cache miss in notebook_to_js (#2973) (@fonsp)
  • Optimize deep_enough_copy for faster notebook updates (#2974) (@fonsp)
  • Speedup large notebooks: cache cell dependencies in notebook_to_js (#2976) (@fonsp)
  • Backend performance: delete stale connections (#2977) (@fonsp)
  • Performance: state update throttle rework (#2979) (@fonsp)
  • Performance: skip background status sync throttle during reactive run (#2981) (@fonsp)
  • Properly cache some useEffects (#2995) (@fonsp)
  • Substantial slowdown (>x10) opening large notebooks starting from version 0.19.37 (#2958)
  • Performance: throttled status update loop impacts performance on large notebooks (#2978)

New features

  • Add support for custom name in @progress (ProgressLogging.jl) (#2966) (@disberd)

Accessibility improvements

  • Keyboard navigation for interactive array viewer (#2996) (@fonsp)

Fixes

  • Pkg complete_remote_package Julia 1.11 compat (#2975) (@fonsp)
  • Fix state out of sync issue caused by race condition (#2989) (@fonsp)
  • Fix macroexpand on Julia 1.11 (#3000) (@fonsp)
  • Too many intermediate bond values (#1891) (#2992) (@fonsp)
  • Infinite stalls on bonds when computer is very fast (#2557)
  • All cells appear as running when executing the notebook the first time (#2755)
  • Open button doesn't work on Windows (#2762)
  • Don't clear main menu file picker on blur (#2990) (@fonsp)
  • IOContext not properly set for stdout, disables ANSI colors (#2823) (#2824) (@danielwe, @ReubenJ)
  • Cell running forever (#2904)
  • Warning in terminal with Base.Threads.@threads and Plots.@gif and Plots.@Animate macros on Julia 1.11 (#2907)
  • BitIntegers does not work in Julia 1.11 (#2984)
  • @bind inside table always renders in "Safe Preview" mode (#2994)

Internal changes

Diff since v0.19.45

v0.19.45

16 Jul 10:07
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

Fixes

  • Firefox stuck with 0.19.44 (#2959)

Diff since v0.19.44

v0.19.44

15 Jul 20:22
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

New features

Fixes

  • autocomplete: defer string check to when completion is applied (#2946) (@Pangoraw)
  • Fix HTTP error messages: "Server never wrote a response" (#2734) (#2931) (@fonsp)
  • auto Pkg manager fails when using JULIA_DEPOT_PATH different from default ".julia" (#2586)

Internal changes

  • Support mixed use of _ and - in launch parameter HTML attributes (#2953) (@fonsp)
  • Bump braces, babel-jest and jest in /test/frontend (#2934) (@dependabot[bot])
  • Bump ws from 6.2.2 to 6.2.3 in /frontend-bundler (#2938) (@dependabot[bot])
  • fix compiler options test windows Julia 1.11 (#2956) (@fonsp)
  • Fix CI on macos Julia 1.6 (#2957) (@fonsp)

Diff since v0.19.43

v0.19.43

25 Jun 11:16
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

New features

  • ⌨️ Keyboard shortcut for folding cell (#2922) (#2917) (@fonsp)
  • Add featured notebooks from plutojl.org/en/docs (#2927) (@fonsp)
  • 🐑 Better error message when package fails to load (#2925) (@fonsp)
  • Message "πŸ‘€ Reading hidden code" (#2920) (@fonsp)
  • Capture IO from Pkg.rm (#2924) (@fonsp)

Fixes

  • Julia 1.11 compat: Use Base.BufferStream for capturing Pkg IO (#2915) (@fonsp)
  • Julia 1.11 beta MemoryRef bounds violation (#2910)
  • Packages do not update (Safari) (#2918)

Internal changes

  • Bump follow-redirects from 1.15.0 to 1.15.6 in /frontend-bundler (#2851) (@dependabot[bot])
  • CI: upgrade some actions (#2923) (@DilumAluthge)
  • πŸ“ƒ WS message log for debugging (#2926) (@fonsp)
  • Bump braces from 3.0.2 to 3.0.3 in /frontend-bundler (#2937) (@dependabot[bot])
  • JS API: support metadata API in static preview (#2914)

Diff since v0.19.42

v0.19.42

08 May 09:10
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

New features

  • Rework horizontal spacing code to better support embedded notebooks (#2903) (@fonsp)
  • Font sizing rework (#2896) (@fonsp)
  • Give "Loading more cells..." lots of vertical space so scroll restoration works better on Firefox (#2901) (@fonsp)

Performance improvements

  • Try to add already installed versions of packages with Pkg.PRESERVE_ALL_INSTALLED (#2902) (@fonsp)

Fixes

  • Disable fake CM on firefox to fix highlighting in PDF export (#2900) (@fonsp)
  • Fix disappearing frontmatter entries (#2909) (@fonsp)

Internal changes

  • Use ch CSS unit to simplify awesome_line_wrapping CM plugin (#2899) (@fonsp)
  • Bump ejs from 3.1.7 to 3.1.10 in /frontend-bundler (#2906) (@dependabot[bot])

Diff since v0.19.41

v0.19.41

15 Apr 09:46
Compare
Choose a tag to compare

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

Big release! This release includes many improvements to autocomplete, which will soon be enabled automatically as you type! To preview this feature today, open a notebook, then press F12 to open the Firefox/Chrome dev tools, then Console, and then type PLUTO_TOGGLE_CM_AUTOCOMPLETE_ON_TYPE(true). πŸ™‹ Please let us know what you think! Is the autocomplete-on-type good enough to be enabled by default for everyone?

New features – autocomplete

  • Autocomplete 15x faster (#2857) (@fonsp)
  • Autocomplete: improve keyword argument completions (#2863) (@fonsp)
  • No autocomplete in do arguments and variable names (#2872) (@fonsp)
  • ⚑️ Autocomplete latex and emoji super fast (#2876) (@fonsp)
  • Autocomplete: stop at a keyword (#2877) (@fonsp)
  • Autocomplete improvements (#2843) (@fonsp)
  • Allow autocomplete in strings and comments with (#2892) (@fonsp)
  • Completion in function arguments doesn't work in julia 1.9 (#2629)
  • Autocomplete "Operators" wrong for package entries (#2865)
  • Don't show anon functions in autocomplete (#2866, #2870) (@fonsp)
  • Autocomplete: select completion with comma key (#2871)
  • Autocomplete: show exported fields first when listing everything (#2873)
  • Autocomplete: disable inside comments (#2879)

New features

  • ⚑️ AbstractPlutoDingetjes.Display.with_js_link to request calculations and data from Julia dynamically (#2726, #2780) (@fonsp)
  • Show task failures in red in Status tab (#2858) (@fonsp)
  • Add copy button for markdown code blocks (#2668, #2799) (@chayandatta)

Performance improvements

  • Faster page load: delay rendering codemirror until in view (#2885) (@fonsp)
  • Static HTML: faster page load by preloading statefile (#2887) (@fonsp)
  • Show progress bar earlier during load (#2889) (@fonsp)
  • Fix broken editor.js prefetch (#2890) (@fonsp)

Fixes – Julia compatibility

  • call _get_registries() in __init__ of PkgCompat.jl (#2815) (@j-fu)
  • PlutoRunner.jl use take!(::IOBuffer) instead of resize! (#2828) (@fonsp)
  • Fix method tables in Julia 1.12 (#2841) (@fonsp)
  • Fix similar docs search on Julia 1.11 (#2842) (@fonsp)
  • Fix misaligned line numbers + line wrapping in PDF output (#2848) (@fonsp)
  • Fix Julia 1.11 Pkg tests (#2860) (@fonsp)
  • Precompilation problem on 1.11 with complete_remote_package (#2810)
  • Method table test failures on Julia nightly (#2840)
  • ERROR: Failed to precompile Pluto on Julia Nightly version 1.12.0-DEV (#2847)
  • Cannot use Pluto with Julia 1.11 (alpha2) (#2854)

It is taking a lot of work to make Pluto compatible with the latest Julia releases... And tests are still failing on Julia 1.11, frustrating!

Fixes

Internal changes

  • Save HTML snapshots of all backend test notebooks (#2861) (@fonsp)
  • Disable Julia nightly tests (#2867) (@fonsp)
  • Update codemirror to latest versions (#2874) (@fonsp)

Diff since v0.19.40