fluent-templates icon indicating copy to clipboard operation
fluent-templates copied to clipboard

Static Loader doesn't notice new files when rebuilding

Open ecton opened this issue 5 years ago • 4 comments

When I use include_str or similar macros, if I change the referenced file and rebuild, cargo notices the change and rebuilds the source file.

Unfortunately, in my initial testing, I can't seem to get the static_loader! to reload new content without changing some other source file. Is there a way to get the static_loader! macro to notify Cargo that it's depending on those files and to rebuild if they change?

The way I'm testing is I have this snippet:

fluent_templates::static_loader! {
    // Declare our `StaticLoader` named `LOCALES`.
    pub static LOCALES = {
        // The directory of localisations and fluent resources.
        locales: "./shared/src/strings",
        // The language to fallback on if something is not present.
        fallback_language: "en-US",
    };
}

And I load it and render a string out from the referenced LOCALES, and if I run the program once, change the string, cargo run again I don't see the new value. If I cargo clean I do.

Thank you for the great library; it is very easy to use.

ecton avatar Jun 10 '20 17:06 ecton

Just a quick update, a simple workaround for me was to use include_dir to include the directory a second time. However include_dir references the files, it notices when I re-run my project.

I found how this would be accomplished during a build.rs process, but not how it's done inside of a macro.

Good luck and thanks again for the awesome crate. I like the ergonomics a lot.

ecton avatar Jun 10 '20 18:06 ecton

Did a little research, found this relevant thread: https://users.rust-lang.org/t/equivalent-of-cargo-rerun-if-changed-for-procedural-macros/37036

ecton avatar Jun 11 '20 15:06 ecton

Thank you for your issue! There's also https://internals.rust-lang.org/t/let-proc-macros-pass-information-to-the-compiler/8350

XAMPPRocky avatar Jun 11 '20 22:06 XAMPPRocky

I've just pushed a fix to master that should mean that rustc will notice changes to existing files, though you still need a clean build to add files.

XAMPPRocky avatar Jun 12 '20 07:06 XAMPPRocky