# PSA for SnoopPrecompile: turning off extra workload for specific packages

**URL:** https://discourse.julialang.org/t/psa-for-snoopprecompile-turning-off-extra-workload-for-specific-packages/92865
**Category:** General Usage
**Tags:** development
**Created:** [January 12, 2023, 10:37am UTC](https://discourse.julialang.org/t/psa-for-snoopprecompile-turning-off-extra-workload-for-specific-packages/92865 "2023-01-12T10:37:59Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)
#### Post date: [March 8, 2023, 11:48am UTC](https://discourse.julialang.org/t/psa-for-snoopprecompile-turning-off-extra-workload-for-specific-packages/92865/5 "2023-03-08T11:48:47Z")

</div>

Many of you have probably noticed this already, but

> [@tim.holy](#):
>
> The biggest disadvantage of the Preferences system is that if you change the packages you list in `skip_precompile`, you will likely have to re-precompile every package that depends (directly or indirectly) on SnoopPrecompile

does not really seem to be a problem in practice. The reason? The best time to set this preference is when you’re in the package’s environment (because you’re developing it), and in that case `LocalPreferences.toml` will be just that: local to that environment. This gives you the best of both worlds:

- when you’re developing the project (`julia --project` or `Pkg.activate` the package’s environment, or select it in VSCode), you’re not running the extra precompile workloads
- when you’re using the package externally, you do run the precompile workload. This is likely what you want: once you stop developing the project, it’s more likely to be worth investing in extensive precompilation. Of course you can also turn it off in external environments, too, and in cases where you frequently “co-develop” certain package combinations it might be wise to set up a project environment that disables precompilation for all of them. But again, it will take effect only when you’re in that environment.

This is a great example of where the locality of the Preferences system and Julia’s environments really pays handsomely. I’ve found this split to be a huge win for my enjoyment of package development.

Another tip: consider putting `LocalPreferences.toml` in your [global .gitignore](https://stackoverflow.com/questions/7335420/global-git-ignore). That will prevent you from accidentally checking it in.

---

_[View the full topic](https://discourse.julialang.org/t/psa-for-snoopprecompile-turning-off-extra-workload-for-specific-packages/92865)._
