Tired of using PacletInstall
and having your packages stored in obscure locations? Not receiving updates? Frustrated with publishing updates on GitHub and then again on the Wolfram Repository every time?
It sucks
Working with paclets the standard way has many issues:
- Deployment requires using a Mathematica notebook.
- Packages are deployed globally vs. locally (where are my packages actually located?!).
- Version conflicts are common.
- Complete dependency on Wolfram servers.
- It’s impossible to store dependencies individually for each project.
Let me know if you’d like any further adjustments!
Keep your modules up-to date with just github and locally to your projects just like npm
Just add a few lines to your project
PacletRepositories[{
Github -> "https://github.com/KirillBelovTest/HTTPHandler"
}]
<<KirillBelov`HTTPHandler`
It overrides all installed paclets and let Mathematica find them in wl_packages
folder in your project.
Everything is done automatically and does not mess with Needs
you have.
By the default it looks for the latest release and downloads it, otherwise just master
branch will be downloaded
PacletRepositories[{
Github -> "https://github.com/KirillBelovTest/HTTPHandler"
}]
One can specify which branch should be downloaded
PacletRepositories[{
Github -> "https://github.com/KirillBelovTest/HTTPHandler" -> "master"
}]
Using a special option
PacletRepositories[{
Github -> "https://github.com/KirillBelovTest/HTTPHandler" -> "master"
}, "Passive"->True]
will ignore any changes made to repos list and updates and directly load all local packages into WL.
In the case of no internet connection possible, it will use local files
There is a known problem of WL's priorities to the package version (see discussion)
All conflicts are resolved by an option "ConflictResolutionFunction"
, which by the default just uninstalls a global conflicting paclet.
Install it once and forget about PacletInstall
command forever
Get["https://raw.githubusercontent.com/JerryI/wl-localpackages/main/Kernel/LPM.wl"]
or paste this single file to your project
No updates are expected