Overall I think the combination of opam (for knowing what package versions are needed), jbuilder (for building everything very quickly) and topkg (for tagging and releasing new versions) is pretty great.
I just came across this article again, and I think it contains really valuable information on building and packaging standards for an opam package. The formatting could use a little work though, particularly the “Releasing changes” section, I find it a bit hard to follow would you appreciate a contribution for it? Is it still up-to-date with the current status of Mirage dev?