metaplex
I've seen projects publicly forking Metaplex directly for production launch of their NFTs.
You should avoid that - for Metaplex or any other production project for that matter. There is a serious risk someone in your team might push sensitive information (keypairs, custom RPC provider URLs, art assets, etc). Or if you don't want anyone finding your releases ahead of time.
Follow this guide to learn how to keep your project safe, updated, and clean.
You can't privately fork a repository on GitHub, but this guide explains how to duplicate a repository and achieving a similar result.
I've added a few tweaks of my own.
Make sure your private target repository is really empty.
That's it. Let's break it down.
--bare
This is just a hosted repo but not for edition.--no-tags
Currently cmv2
rendered the semantic versioning for the current tag outdated, so there's no point bringing the tags as of today.--single-branch -b master
You only need one branch. I'm choosing master
today but this might change (read below).Why master
you may ask? You may choose another one, but it's the one that received the most fixes as of the time of this writing, and the one I successfully minted a client's project on mainnet
. It has bugs yes, but I found it easier to fix it than others.
I'm definitely not an authority here and you should keep a look at what the Metaplex team brings in the next releases.
This is all optional but it's a final touch.
master
is the default.master
to main
(I really don't care, but it is the new convention).Keep an eye on Metaplex updates which will bring new features and fixes that you should definitely merge in your code as well.
You should update as soon as changes are released, but close to launch day keep it for critical bugs and security fixes. Always re-test everything.
First add the upstream & fetch the changes:
Now rebase
you repository:
You might need to force the update:
Create a single folder on the root directory which you'll store all your custom code.
Otherwise your files will end up all over the place.
I recommend doing as little change as possible to the Metaplex structure.
You'll inevitability need to change some of the code that is delivered in the Metaplex boilerplate, for example, the fair-launch
, or even in the libraries and CLI.
In such cases, try creating a new class (file, module, etc) to host the majority of your code, import it into the Metaplex code, and call it.
This will reduce the headaches and possible merge conflicts in the future.
Let me know of any additions or corrections via comments or Twitter: @EvandroPomatti