Description
When using Revise via IJulia (Jupyter notebook) with a local dev package, after the package is precompiled, Revise fails to track all source files and reports that none of them are stored in the source-text cache. Live reloading does not work.
This has worked seamlessly in julia 1.11 and only when i upgraded to 1.12 it broke.
Error
┌ Error: Failed to revise ...\src\TrypColonies.jl
│ exception = (ErrorException("...\src\TrypColonies.jl is not stored in the source-text cache"),
│ Union{Ptr{Nothing}, Base.InterpreterIP}[...])
└ @ Revise ...\Revise\src\packagedef.jl:900
The same error is repeated for every source file of the package (Agent_grid.jl, Position.jl, Direction.jl, Analysis.jl, Sweep_functions.jl, Visu.jl, Auxiliary.jl, Division.jl, Diffusion.jl, Adsorption.jl).
Followed by:
┌ Warning: The running code does not match the saved version for the following files:
│ ...\src\Agent_grid.jl
│ ...\src\Division.jl
│ ... (all source files)
│ If the error was due to evaluation order, it can sometimes be resolved by calling `Revise.retry()`.
└ @ Revise ...\src\packagedef.jl:1031
Steps to Reproduce
- Have a local Julia package with multiple source files (dev’d or activated via
Pkg.activate). - Open a Jupyter notebook using IJulia.
- In the first cell, activate the project:
import Pkg; Pkg.activate("."). - In a subsequent cell, run
using Revisethenusing <PackageName>. - The package precompiles successfully, but Revise immediately reports the above errors for all source files.
Expected Behavior
Revise should track all source files of the activated local package and enable live reloading without errors.
Actual Behavior
All source files fail with is not stored in the source-text cache, and Revise warns that the running code does not match the saved version. Revise.retry() does not resolve the issue.
Environment
- Revise version: 3.14.2
- IJulia version: 1.34.4
- Julia version:
- OS: Windows 11
- Package structure: Multi-file package with a top-level
.jlfile that includes sub-files
Notes
The error originates at packagedef.jl:900. The issue appears to be that when the package is loaded from the precompile cache (.ji file) rather than parsed fresh by Revise, the source-text cache is never populated. This may be specific to IJulia’s kernel startup order or the interaction between precompilation and Revise’s cache initialization. Maybe this has also sth. to do that the package is store in my dropbox folder ?