Maintaining custom package forks

There have been multiple times now where I have considered maintaining my own fork of a registered package. But, I’m wondering if there are any tools that might make it easier to do so, and if anybody else is doing anything like this…

Two simple examples: Both PkgSkeleton.jl and DrWatson.jl are great and I use them whenever possible. However, I want a slightly different template than what they provide. For example, I delete some files that I’m not going to use, create some that I know I want, rename things – simple stuff like that. Nothing that would warrant a PR because they are personal changes.

I could easily modify the packages to my liking in my own fork, but the problem is then that my fork will inevitably become stale. Are there ways/tools to prevent this? Can I have Github automatically register a PR to my fork whenever the package gets a new tagged release or something is committed to master?

1 Like

Interesting question. However, I would add features to the original package to allow a user make these modifications/customizations in away that default remains, but keywords would enable those things that you need.

PkgSkeleton.generate(dest_dir; template = "/path/to_your/template")

should work.

I am happy to consider PRs for extra functionality, but this use case is actually allowed for in the package.

1 Like

Fair point! I actually didn’t know about that – hadn’t checked the repo/docs in a while. I’ll start making use of that.

My general question still stands as sometimes the customization is not something that would be covered by this.

I am not sure I understand the question, but you can always subscribe to notifications for Github repos and then keep merging the changes from the original one.

Various levels of automated solutions exist, search for “keeping a git fork up to date”. You can eg put it in a cron job that errors out if a clean merge is impossible.