Simple Private Distribution
I have a set of evolving private packages I want to make available for my coworkers to use through our shared file server. What’s the easiest way to set this up so they can call the main
branch functions while I am working on a feature
branch? This is half a Git question and half a Pkg question.
Git Setup
I noticed if I am working on a feature
branch directly on the file server, then File Explorer shows the files in the feature
state. I only want the main
branch to be (easily) accessible. For this reason, I am now developing the package in a local directory, pushing it to a private GitHub repository, and then manually pulling all merges down to a clone on the shared file server. That seems like a lot of unnecessary steps though. Is there a safe way for me to work on updates directly from the server without these other copies and steps?
Environement Setup
My coworkers do not know how to code or use a terminal. When they call one of my functions, I prompt them to enter each input or select each file. I wrote up a set of instructions for them on how to create separate shared environments for each package and install my packages into these environments by copying the path from File Explorer into Julia’s terminal.
Add vs Dev
Is add
the correct instruction for installing my cloned packages into their shared environments? I know dev
is used more commonly when pointing to local files, but I figured dev
would slow them down with unnecessary precompilation every time?
Shared vs Local Environments
I realized after writing out the instructions that they are not going to be able to follow them to a.) get it set up properly and b.) remember to activate the correct environment before trying to run the analysis. I now think an easier way will be to get them to click on or
from the server folder and configure their startup files to auto-load local environments.
if isfile("Project.toml") && isfile("Manifest.toml")
import Pkg
Pkg.activate(".")
end
Does that sound like a good approach?
Tamper Prevention
Can I still git pull
to the server if I make the server clone read-only so they don’t accidently edit stuff in VSCode when they open it? If not, I’ll probably write the instructions to run in Windows terminal away from the code.
(I know the correct future solution is a binary app with a GUI interface, but I need something I can implement more quickly.)