Trademarks, patents, and copyrights are different types of intellectual property.
And they are all annoying.
So are licenses.
And all of this.
Wherever it's a choice, MIT+Apache-2.0 dual-license.
Same for documents if they are embedded.
Consider CC0 or CC-BY for dedicated documents and media.
You could use CC licenses for code, but this is less common.
If you feel this need for copyleft in your life, if that helps you,
then look at MPL-2.0 for a modern, readable approach.
CC-BY-SA is your copyleft document & media counterpart.
Wherever you go, chances for tedium and boilerplate are abound.
Copyright assignment is generally gross.
May be fine when paid for work.
CLA is a fine-line, generally avoid this.
Paperwork, hassle, friction, issues which do not foster community, understanding.
Circumstances may force these matters, but
you will lose good developers if you implement a CLA.
A DCO, that might be another thing.
I don't know that you technically need a DCO,
especially if you rely exclusively on GitHub
which explicitly enforces inbound = outbound in ToS.
While DCO still adds some effort,
it isn't a hassling legal contract to read and analyze,
that you might have to ask lawyers about if you work somewhere.
DCO protects the normal forms and usages of the open-source community
and doesn't grant special privileges more than the licensing allows.
There are lingering doubts around enforceability of DCO,
whether it's enough of a contract, basically.
A properly-managed CLA may be needed for true-protection,
plus ability to easily relicense could easily be needed,
if a popular license fails in court.
Gathering all contributors together for a re-licensing ceremony sounds like a blast.
One thing is clear, we're going to need a few more drinks.