Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add FORKING.md #69

Merged
merged 2 commits into from
Dec 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/CONSTITUTION.md @jaekwon
/DECENTRALISTS.md @jaekwon
/GOVERNANCE.md @giunatale @jaekwon
/FORKING.md @moul @jaekwon

# XXX: Pending Ownership Assignments
# The CODEOWNERS file will be invalid if it lists users without write permissions to the repository.
Expand Down
74 changes: 74 additions & 0 deletions FORKING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Forking Guide

> "The secret of change is to focus all of your energy, not on fighting the old,
> but on building the new." - Socrates.

In a similar fashion to the CONTRIBUTING.md, the FORKING.md file helps people
understand when and how they should fork. This isn't a common practice, so let's
dive into the specifics.

For context, you can refer to this issue: [Proposal: ‘How-to-Fork’ Guide #64](https://github.com/atomone-hub/genesis/issues/64).

## What is this repository about?

This 'genesis' repository is about branching (which is like forking software but chains and communities),
specifically forking and branching cosmoshub-4 aka Gaia. The primary objective here is to help people switch from the perception
that forking and branching is necessarily bad, to the understanding that it could be useful
and eventually the best thing to do.

Forking and branching are not necessarily about competition with the original.
It can also be about exploring alternative paths that could potentially merge or be used in
parallel. A fork or branch is also, by nature, something that can fail and just be an
experiment. But even in failure, the goal is to learn lessons.

Forking and branching are not necessarily bad, but the goal is to avoid making bad ones. We
aim to optimize the forking and branching processes to maximize chances of success and efficiency.

This repository was created with the expectation that it will be forked, a lot,
and probably recursively with many descendants.

## What to Fork or Branch?

You can fork the software of a chain, or more broadly you can branch the chain itself
(with the same software, or with a fork of the software, or even a different choice of
the software altogether; but always with some meaningful subset of the original community
and token distribution, and possibly with new external members and air-drops included).
When the chain branches itself, they need to have a plan; this repo is that emergent plan
to fork and branch Gaia to AtomOne. You can also fork this genesis repository to propose
an alternative plan.

Once our Founding Documents and Plan are finished, the goal is for blockchain(s) to be run using
those documents. The Plan is intended to become finished at some point, so those who want to
change the plan must either get a Constitutional Majority to update the Plan and perhaps
other parts of the Founding Documents including the Constitution; or they must create a new branch
of AtomOne (or Gaia) and they can do so by first forking this repository.

## Why to Fork this Repo?

You can fork this genesis repository for multiple reasons:

1. **Contributing:** If you want to contribute to the development of this
project, forking is the first step.
2. **Maintaining a branch:** You might want to maintain a branch for an
alternate plan for a fork of gaia in the spirit of this repository.
3. **Splitting another project:** If you want to discuss the genesis of a split
for another project.

## How to Fork?

If you want to fork this repo, make sure:
- the vision/mission statements and the development/growth/maintenance plans in
the README are substantially different (you should explain why the fork is
needed).
- Branding, trademark, tickers also need to be unique.
- XXX

### About Trademark Terms and Token Names

GovNo may be used for any chain, if it is preceded by your chain's name, such as
"Osmosis GovNo". Likewise "Osmosis GovNoA" to include abstainers, is acceptable.

AtomOne and Atone, and $ATONE are reserved for the AtomOne branch of Gaia. Unless
you are proposing a contribution to the github.com/atomone-hub/genesis repository,
please choose distinct names for your project name, repo, and token.
XXX