git-annex/doc/contribute.mdwn
2023-06-27 20:02:11 -04:00

74 lines
2.6 KiB
Markdown

Help make git-annex better!
## user support
Hang out in git-annex support areas and answer user's questions.
Don't be afraid to get an answer not 100% right, but avoid wild guesses.
If you understand the basics of how git-annex works and know how to use it,
you are ahead of many users, and can help them out tremendously.
## wiki gardening
This website is a wiki, so you can edit and improve any page.
Or, write a [[new_tip|tips]] explaining how to accomplish something with
git-annex.
## advanced wiki editing
To make larger changes to the website, you can
`git clone git://git-annex.branchable.com/ git-annex` and will find the
whole website source in `doc/`.
You can even `git push` doc-only changes back without authentication,
since it is a wiki!
## bug triage
People often file [[bugs]] on git-annex that are easily resolved by helping
them with a problem, and perhaps writing some documentation.
Many bugs are also filed without enough information
to reproduce the problem, and need to be tagged moreinfo and a comment
posted asking the submitter for details.
Once a bug is confirmed to be reproducible, it becomes a lot easier to fix.
So it's very helpful to highlight such bugs.
Joey spends a lot of time dealing with this kind of bug triage. If you can
take the time to pick a bug that is not tagged as "confirmed" or "moreinfo"
from the list of [[bugs]], try to reproduce it and follow up either
confirming that the problem exists, or asking the submitter for more info,
you'll make Joey more productive!
You can add and modify tags by editing the bug's page with this wiki code:
\[[!taglink confirmed]]
\[[!taglink moreinfo]]
## code contributions
[[download]] the source code, [[build|install/fromsource]] it
and send patches!
If you know Haskell, git-annex has lots of Haskell code that
could be improved. See the [[coding_style]] and have at it.
If you don't know Haskell, git-annex has many other coding opportunities.
You could work to improve the Javascript and CSS of the git-annex webapp,
or work on porting libraries needed by the Windows port.
To send patches, either include the patch in a [[bug|bugs]] report (small
patch) or put up a branch in a git repository containing your changes.
## learning some Haskell
Want to learn some Haskell to get hacking on git-annex?
As Haskell programs go, git-annex does not use too many advanced features.
[Learn You A Haskell](http://learnyouahaskell.com/) will teach you enough
to get started.
Of course git-annex does use monads, and particularly the `Annex` monad
which gives access to its state about the git repository as well as
lower-level IO.