2014-11-16 16:27:32 +00:00
|
|
|
# Contributions Welcome!
|
|
|
|
|
|
|
|
The maintainers of this Copyleft Guide project encourage contribution from
|
|
|
|
the community. Part of the impetus for this project was to create a
|
|
|
|
community around a "copyleft codebase" for information about copyleft. In
|
|
|
|
other words, this project is a tutorial project about Copyleft that is like a
|
|
|
|
Free Software project.
|
|
|
|
|
|
|
|
## Who Is In Charge?
|
|
|
|
|
|
|
|
Currently, [Bradley M. Kuhn](http://ebb.org/bkuhn/) is the editor-in-chief of
|
|
|
|
this Guide project. However, many other contributors have given patches and
|
|
|
|
improvements to the text. Review the
|
|
|
|
[commit log in the Git repository](https://gitorious.org/copyleft-org/tutorial/commits/master)
|
2014-12-20 18:11:40 +00:00
|
|
|
for more details on who has contributed to the project.
|
2014-11-16 16:27:32 +00:00
|
|
|
|
|
|
|
## How Do I Get Involved?
|
|
|
|
|
2014-12-20 18:30:22 +00:00
|
|
|
The Guide is maintained in a copylefted distributed version control system called
|
2014-11-16 16:27:32 +00:00
|
|
|
[Git](http://git-scm.com/). Currently, the project utilizes the services of
|
2014-12-20 18:30:22 +00:00
|
|
|
a Git hosting website called [Gitorious](https://gitorious.org). (The
|
|
|
|
software which runs Gitorious is, itself, copylefted, too.)
|
|
|
|
|
|
|
|
Those who are comfortable with Gitorious can submit
|
2014-11-16 16:27:32 +00:00
|
|
|
[merge requests on copyleft.org's gitorious site](https://gitorious.org/copyleft-org/tutorial/merge_requests).
|
|
|
|
See the section "Merge Request and Patch Workflow" below for more information
|
|
|
|
on the details of doing that.
|
|
|
|
|
2014-12-20 18:36:51 +00:00
|
|
|
However, lack of Git and/or LaTeX knowledge is *not a barrier* for
|
|
|
|
contribution to this project. Useful contributions will be accepted by the
|
|
|
|
following means as well:
|
2014-11-16 16:27:32 +00:00
|
|
|
|
|
|
|
* Patches posted to
|
|
|
|
[the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss).
|
|
|
|
|
|
|
|
* New sections of text or simply ideas and input emailed to
|
|
|
|
[the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss).
|
|
|
|
|
|
|
|
* Ideas and suggestions mentioned on the
|
|
|
|
[irc channel #copyleft on freenode](irc://irc.freenode.net/#copyleft).
|
|
|
|
|
|
|
|
Please, do not worry if your patches or new sections of text are not properly
|
|
|
|
formatted as patches and/or are not formatted in LaTeX properly. Indeed,
|
2014-12-20 18:37:13 +00:00
|
|
|
feel free to offer patches that break LaTeX formatting, or to just write up
|
|
|
|
your suggestion in an email. If the content is appropriate for the Guide,
|
|
|
|
the editor-in-chief or someone else will format your contribution properly
|
|
|
|
for LaTeX.
|
2014-11-16 16:27:32 +00:00
|
|
|
|
|
|
|
Note: by submitting contributions via any of these means, you agree to the
|
|
|
|
"Author's Certificate of Origin" (see below).
|
|
|
|
|
|
|
|
## How Do I Figure Out What To Contribute?
|
|
|
|
|
|
|
|
If you're looking for something to fix, just grep the *.tex files for "FIXME"
|
|
|
|
and you'll find plenty. Many of them are simple and easy to do. Some of
|
2014-12-20 18:37:21 +00:00
|
|
|
them are writing, and some of them are simply formatting-related.
|
|
|
|
|
|
|
|
If you want a larger, more involved writing project, take a look at the
|
|
|
|
[TODO list in this repository](TODO.md). That list has bigger items that
|
|
|
|
other contributors have identified as necessary. (BTW, the project
|
|
|
|
contributors are considering various possible copylefted bug-tracking
|
|
|
|
solutions, but admittedly haven't picked a bug-tracker yet.)
|
2014-11-16 16:27:32 +00:00
|
|
|
|
|
|
|
There is also a [TODO list on the website](https://copyleft.org/todo/), which
|
|
|
|
are mostly related to formatting, layout and infrastructure, but if you'd
|
|
|
|
like to help there, such help is also welcome.
|
2014-11-16 16:53:35 +00:00
|
|
|
|
|
|
|
## Merge Request and Patch Workflow
|
|
|
|
|
2014-12-20 18:42:11 +00:00
|
|
|
Currently, the main location for work on this project is
|
|
|
|
[on Gitorious](https://gitorious.org/copyleft-org/tutorial), and active new
|
|
|
|
development on the project happens on the
|
|
|
|
['next' branch](https://gitorious.org/copyleft-org/tutorial/source/next:)
|
|
|
|
(which is
|
|
|
|
[auto-published on the copyleft.org/guide-next URL](https://copyleft.org/guide-next/)).
|
|
|
|
Here is a suggested workflow for submitting patches — first doing so
|
2014-12-20 22:21:31 +00:00
|
|
|
*with* the Gitorious infrastructure, second *avoiding* the Gitorious
|
|
|
|
infrastructure but still using Git, and third avoiding Git altogether.
|
|
|
|
|
|
|
|
Merge requests and/or patches against
|
|
|
|
['next' branch](https://gitorious.org/copyleft-org/tutorial/source/next:) are
|
|
|
|
typically much preferred, and the workflow explanations below assume that.
|
|
|
|
However, merge requests and/or patches against
|
|
|
|
['master' branch](https://gitorious.org/copyleft-org/tutorial/source/master:)
|
|
|
|
are not necessarily rejected. In fact, if your change is a fix for typo,
|
|
|
|
spelling, grammar, formatting or anything urgent, submitting a patch against
|
|
|
|
'master' may make more sense.
|
2014-11-16 16:53:35 +00:00
|
|
|
|
2014-12-20 22:42:18 +00:00
|
|
|
### Contributing via Gitorious
|
|
|
|
|
|
|
|
First-time contributors may want to do the following four items first:
|
|
|
|
|
|
|
|
0. [Create an account on Gitorious](https://gitorious.org/users/new)
|
|
|
|
|
|
|
|
1. [Visit gitorious.org/copyleft-org/tutorial](https://gitorious.org/copyleft-org/tutorial)
|
|
|
|
and click "Clone".
|
|
|
|
|
|
|
|
Instead of the default, you might call your clone
|
|
|
|
"MYNAME-copyleft-tutorial-suggestions".
|
|
|
|
|
|
|
|
2. On the command line create a *local* clone of your Clone, by typing:
|
|
|
|
|
|
|
|
$ git clone git@gitorious.org:copyleft-org/MYNAME-copyleft-tutorial-suggestions.git copyleft-tutorial
|
|
|
|
$ cd copyleft-tutorial
|
|
|
|
$ git remote rename origin MYNAME-copyleft-tutorial-suggestions
|
|
|
|
|
|
|
|
(The last part isn't strictly necessary; you just might want to name the
|
|
|
|
upstream repository a more descriptive name, since below you'll add the
|
|
|
|
official repository as well).
|
|
|
|
|
|
|
|
3. Now, add to your clone a copy of the "real" Conservancy policies
|
|
|
|
repository, and make a branch that tracks the official version:
|
|
|
|
|
|
|
|
$ git remote add copyleft-tutorial-official git@gitorious.org:copyleft-org/tutorial.git
|
|
|
|
$ git fetch copyleft-tutorial-official
|
|
|
|
$ git branch --track official-master copyleft-tutorial-official/master
|
|
|
|
$ git branch --track official-next copyleft-tutorial-official/next
|
|
|
|
|
|
|
|
That completes the first-time setup. Next is a workflow each proposed merge
|
|
|
|
request.
|
|
|
|
|
|
|
|
0. First, ensure the Git repository points at the right branch and all old
|
|
|
|
changes are committed.
|
|
|
|
|
|
|
|
$ git checkout official-next
|
|
|
|
$ git pull copyleft-tutorial-official
|
|
|
|
$ git status
|
|
|
|
|
|
|
|
The output of the last command should look like this:
|
|
|
|
|
|
|
|
# On branch official-next
|
|
|
|
nothing to commit (working directory clean)
|
|
|
|
|
|
|
|
If you don't get that output, you probably have uncommitted changes, which
|
|
|
|
is beyond the scope of this tutorial.
|
|
|
|
|
|
|
|
1. Next, create a new branch to hold your changes:
|
|
|
|
|
|
|
|
$ git checkout -b my-new-idea-for-tutorial official-next
|
|
|
|
|
|
|
|
Use a name that briefly describes your planned proposal for
|
|
|
|
"my-new-idea-for-tutorial".
|
|
|
|
|
|
|
|
2. Make your edits. If you're editing the tutorial, you likely want to focus
|
|
|
|
on the files ending in '.tex'. Commit frequently while you're editing
|
|
|
|
with:
|
|
|
|
|
|
|
|
$ git commit -a
|
|
|
|
|
|
|
|
Write useful and clear commit messages that explain the purpose of the
|
|
|
|
changes.
|
|
|
|
|
|
|
|
3. When you are done all the changes related to 'my-new-idea-for-tutorial',
|
|
|
|
verify they've all been committed this way:
|
|
|
|
|
|
|
|
$ git status
|
|
|
|
# On branch my-new-idea-for-tutorial
|
|
|
|
nothing to commit (working directory clean)
|
|
|
|
|
|
|
|
4. Next, upload and publish those ideas to your own clone on Gitorious.
|
|
|
|
|
|
|
|
$ git push MYNAME-copyleft-tutorial-suggestions my-new-idea-for-tutorial
|
|
|
|
|
|
|
|
That's the end of the command-line part.
|
|
|
|
|
2014-12-20 22:49:05 +00:00
|
|
|
5. Now, visit Gitorious' merge-request creation web interface at
|
2014-12-20 22:42:18 +00:00
|
|
|
https://gitorious.org/copyleft-org/MYNAME-copyleft-tutorial-suggestions/merge_requests/new
|
2014-12-20 22:49:05 +00:00
|
|
|
|
2014-12-20 22:42:18 +00:00
|
|
|
Initiate your merge request with by setting:
|
|
|
|
|
|
|
|
Summary: Briefly describe your proposal
|
|
|
|
Description: More completely describe your proposal
|
|
|
|
Target: tutorial
|
|
|
|
Target Branch: next
|
|
|
|
Source Branch: my-new-idea-for-tutorial
|
|
|
|
|
2014-12-20 22:50:42 +00:00
|
|
|
6. While it's possible to discuss the details of the merge request via the
|
|
|
|
web interface, for larger changes, it may be worthwhile to start a thread
|
|
|
|
on
|
|
|
|
[the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss)
|
|
|
|
about the merge request. Include the URL of the merge request in the
|
|
|
|
post.
|