Sorry if these questions are very basic, I am a social scientist with no formal exposure to software development techniques, especially on how to integrate to an ecosystem of packages, so my knowledge about this is pretty haphazard.
I have a few packages which are maturing and I plan to register them (possibly after we get Pkg3). This means that while I could just push commits to
master previously since I was pretty much the only user, now I have to think about tagging versions, managing dependencies, etc, doing my best to make life for the users of these packages convenient.
I have read up on semantic versioning, but I wonder what the best practices are for getting from tagged version to tagged version. Should I just keep pushing into
master, and tag releases occasionally? Or should I branch, eg into
dev, and merge into
master when I feel ready, then tag?
How to manage dependencies? Should packages depend on specific versions, or version ranges? If
A.jl depends on
B.jl and both are under my control, should I tag a new version of
B.jl first, then make
A.jl depend on it and tag that, too?
I am happy to do some reading if you can recommend good sources (preferably not long books, what I am looking for must be intro material). Writeup of how you do things would also be useful.