mirror of
https://github.com/martinvonz/jj.git
synced 2025-05-05 15:32:49 +00:00
docs: Add Jujutsu's Developers core values
This was taken out of the "Jujutsu from first principles" doc in another PR. It represents some of the common ideas which the project had around a year ago. I think this can be modernized if the maintainers want it.
This commit is contained in:
parent
30134e523b
commit
1b7fda946e
24
docs/core_tenets.md
Normal file
24
docs/core_tenets.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
## Jujutsu's Core Tenets
|
||||||
|
|
||||||
|
Jujutsu's core tenets are:
|
||||||
|
|
||||||
|
* Separation of logic and UI: It should be as easy to create new UIs (CLIs,
|
||||||
|
GUIs, TUIs, servers) without having to duplicate logic.
|
||||||
|
* Easy-to-use APIs: It should be easy to create new commands. For example,
|
||||||
|
each command should not have to worry about concurrency, working-copy state,
|
||||||
|
and rebasing descendants of rewritten commits.
|
||||||
|
* User-friendliness: Making the working copy a commit is simpler. This is
|
||||||
|
how the project started.
|
||||||
|
* The repository is the source of truth: Most commands should operate on the
|
||||||
|
commit graph. The working copy is just one way of editing commits.
|
||||||
|
* Pluggable storage: Must be easy to integrate with different commit storage,
|
||||||
|
virtual file systems and more.
|
||||||
|
* Git-interop: Git is everywhere. We need to have good interop to be adopted.
|
||||||
|
* All operations must be able to scale to Google-scale repos (lots of commits,
|
||||||
|
lots of files): Laziness is important, must avoid accessing data
|
||||||
|
unnecessarily.
|
||||||
|
* Having as few states as possible.
|
||||||
|
* Make it incredibily hard to lose work in your repository.
|
||||||
|
* Concurrent modifications to the repo should be safe.
|
||||||
|
* Allow concurrent edits on any commit, pending or finished.
|
||||||
|
* Make a "stacked diffs" workflow as easy as possible.
|
@ -125,6 +125,7 @@ nav: # This lists all the files that become part of the documentation
|
|||||||
- Other related work: 'related-work.md'
|
- Other related work: 'related-work.md'
|
||||||
|
|
||||||
- Technical details:
|
- Technical details:
|
||||||
|
- Core tenets: 'core_tenets.md'
|
||||||
- Architecture: 'technical/architecture.md'
|
- Architecture: 'technical/architecture.md'
|
||||||
- Concurrency: 'technical/concurrency.md'
|
- Concurrency: 'technical/concurrency.md'
|
||||||
- Conflicts: 'technical/conflicts.md'
|
- Conflicts: 'technical/conflicts.md'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user