summaryrefslogtreecommitdiff
path: root/docs/CONTRIBUTE
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2016-08-09 11:40:39 +0200
committerDaniel Stenberg <daniel@haxx.se>2016-08-09 11:40:39 +0200
commite24597dc8309e5d388bde4dfa79d1941ccc0e7db (patch)
treecc4f0d9d6944e1300d806b5da75961d0d1bfb1cc /docs/CONTRIBUTE
parent08fd82f370f9f068d90fcda540d7e483e040b7dc (diff)
downloadcurl-e24597dc8309e5d388bde4dfa79d1941ccc0e7db.tar.gz
CONTRIBUTE.md: markdown extension
Diffstat (limited to 'docs/CONTRIBUTE')
-rw-r--r--docs/CONTRIBUTE247
1 files changed, 0 insertions, 247 deletions
diff --git a/docs/CONTRIBUTE b/docs/CONTRIBUTE
deleted file mode 100644
index cbda0c046..000000000
--- a/docs/CONTRIBUTE
+++ /dev/null
@@ -1,247 +0,0 @@
-# Contributing to the curl project
-
-This document is intended to offer guidelines on how to best contribute to the
-curl project. This concerns new features as well as corrections to existing
-flaws or bugs.
-
-## Learning cURL
-
-### Join the Community
-
-Skip over to [https://curl.haxx.se/mail/](https://curl.haxx.se/mail/) and join
-the appropriate mailing list(s). Read up on details before you post
-questions. Read this file before you start sending patches! We prefer
-questions sent to and discussions being held on the mailing list(s), not sent
-to individuals.
-
-Before posting to one of the curl mailing lists, please read up on the
-[mailing list etiquette](https://curl.haxx.se/mail/etiquette.html).
-
-We also hang out on IRC in #curl on irc.freenode.net
-
-If you're at all interested in the code side of things, consider clicking
-'watch' on the [curl repo on github](https://github.com/curl/curl) to get
-notified on pull requests and new issues posted there.
-
-### License and copyright
-
-When contributing with code, you agree to put your changes and new code under
-the same license curl and libcurl is already using unless stated and agreed
-otherwise.
-
-If you add a larger piece of code, you can opt to make that file or set of
-files to use a different license as long as they don't enforce any changes to
-the rest of the package and they make sense. Such "separate parts" can not be
-GPL licensed (as we don't want copyleft to affect users of libcurl) but they
-must use "GPL compatible" licenses (as we want to allow users to use libcurl
-properly in GPL licensed environments).
-
-When changing existing source code, you do not alter the copyright of the
-original file(s). The copyright will still be owned by the original creator(s)
-or those who have been assigned copyright by the original author(s).
-
-By submitting a patch to the curl project, you are assumed to have the right
-to the code and to be allowed by your employer or whatever to hand over that
-patch/code to us. We will credit you for your changes as far as possible, to
-give credit but also to keep a trace back to who made what changes. Please
-always provide us with your full real name when contributing!
-
-### What To Read
-
-Source code, the man pages, the [INTERNALS
-document](https://curl.haxx.se/dev/internals.html),
-[TODO](https://curl.haxx.se/docs/todo.html),
-[KNOWN_BUGS](https://curl.haxx.se/docs/knownbugs.html) and the [most recent
-changes](https://curl.haxx.se/dev/sourceactivity.html) in git. Just lurking on
-the [curl-library mailing
-list](https://curl.haxx.se/mail/list.cgi?list=curl-library) will give you a
-lot of insights on what's going on right now. Asking there is a good idea too.
-
-## Write a good patch
-
-### Follow code style
-
-When writing C code, follow the
-[CODE_STYLE](https://curl.haxx.se/dev/code-style.html) already established in
-the project. Consistent style makes code easier to read and mistakes less
-likely to happen. Run `make checksrc` before you submit anything, to make sure
-you follow the basic style. That script doesn't verify everything, but if it
-complains you know you have work to do.
-
-### Non-clobbering All Over
-
-When you write new functionality or fix bugs, it is important that you don't
-fiddle all over the source files and functions. Remember that it is likely
-that other people have done changes in the same source files as you have and
-possibly even in the same functions. If you bring completely new
-functionality, try writing it in a new source file. If you fix bugs, try to
-fix one bug at a time and send them as separate patches.
-
-### Write Separate Changes
-
-It is annoying when you get a huge patch from someone that is said to fix 511
-odd problems, but discussions and opinions don't agree with 510 of them - or
-509 of them were already fixed in a different way. Then the person merging
-this change needs to extract the single interesting patch from somewhere
-within the huge pile of source, and that gives a lot of extra work.
-
-Preferably, each fix that correct a problem should be in its own patch/commit
-with its own description/commit message stating exactly what they correct so
-that all changes can be selectively applied by the maintainer or other
-interested parties.
-
-Also, separate changes enable bisecting much better when we track problems
-and regression in the future.
-
-### Patch Against Recent Sources
-
-Please try to get the latest available sources to make your patches against.
-It makes the lives of the developers so much easier. The very best is if you
-get the most up-to-date sources from the git repository, but the latest
-release archive is quite OK as well!
-
-### Documentation
-
-Writing docs is dead boring and one of the big problems with many open source
-projects. Someone's gotta do it. It makes it a lot easier if you submit a
-small description of your fix or your new features with every contribution so
-that it can be swiftly added to the package documentation.
-
-The documentation is always made in man pages (nroff formatted) or plain
-ASCII files. All HTML files on the web site and in the release archives are
-generated from the nroff/ASCII versions.
-
-### Test Cases
-
-Since the introduction of the test suite, we can quickly verify that the main
-features are working as they're supposed to. To maintain this situation and
-improve it, all new features and functions that are added need to be tested
-in the test suite. Every feature that is added should get at least one valid
-test case that verifies that it works as documented. If every submitter also
-posts a few test cases, it won't end up as a heavy burden on a single person!
-
-If you don't have test cases or perhaps you have done something that is very
-hard to write tests for, do explain exactly how you have otherwise tested and
-verified your changes.
-
-## Sharing Your Changes
-
-### How to get your changes into the main sources
-
-Ideally you file a [pull request on
-github](https://github.com/curl/curl/pulls), but you can also send your plain
-patch to [the curl-library mailing
-list](https://curl.haxx.se/mail/list.cgi?list=curl-library).
-
-Either way, your change will be reviewed and discussed there and you will be
-expected to correct flaws pointed out and update accordingly, or the change
-risk stalling and eventually just get deleted without action. As a submitter
-of a change, you are the owner of that change until it has been merged.
-
-Respond on the list or on github about the change and answer questions and/or
-fix nits/flaws. This is very important. We will take lack of replies as a
-sign that you're not very anxious to get your patch accepted and we tend to
-simply drop such changes.
-
-### About pull requests
-
-With github it is easy to send a [pull
-request](https://github.com/curl/curl/pulls) to the curl project to have
-changes merged.
-
-We prefer pull requests to mailed patches, as it makes it a proper git commit
-that is easy to merge and they are easy to track and not that easy to loose
-in a flood of many emails, like they sometimes do on the mailing lists.
-
-When you ajust your pull requests after review, consider squashing the
-commits so that we can review the full updated version more easily.
-
-### Making quality patches
-
-Make the patch against as recent sources as possible.
-
-If you've followed the tips in this document and your patch still hasn't been
-incorporated or responded to after some weeks, consider resubmitting it to
-the list or better yet: change it to a pull request.
-
-### Write good commit messages
-
-A short guide to how to write commit messages in the curl project.
-
- ---- start ----
- [area]: [short line describing the main effect]
- -- empty line --
- [full description, no wider than 72 columns that describe as much as
- possible as to why this change is made, and possibly what things
- it fixes and everything else that is related]
- -- empty line --
- [Bug: URL to source of the report or more related discussion]
- [Reported-by: John Doe - credit the reporter]
- [whatever-else-by: credit all helpers, finders, doers]
- ---- stop ----
-
-Don't forget to use commit --author="" if you commit someone else's work,
-and make sure that you have your own user and email setup correctly in git
-before you commit
-
-### Write Access to git Repository
-
-If you are a very frequent contributor, you may be given push access to the
-git repository and then you'll be able to push your changes straight into the
-git repo instead of sending changes as pull requests or by mail as patches.
-
-Just ask if this is what you'd want. You will be required to have posted
-several high quality patches first, before you can be granted push access.
-
-### How To Make a Patch with git
-
-You need to first checkout the repository:
-
- git clone https://github.com/curl/curl.git
-
-You then proceed and edit all the files you like and you commit them to your
-local repository:
-
- git commit [file]
-
-As usual, group your commits so that you commit all changes that at once that
-constitutes a logical change.
-
-Once you have done all your commits and you're happy with what you see, you
-can make patches out of your changes that are suitable for mailing:
-
- git format-patch remotes/origin/master
-
-This creates files in your local directory named NNNN-[name].patch for each
-commit.
-
-Now send those patches off to the curl-library list. You can of course opt to
-do that with the 'git send-email' command.
-
-### How To Make a Patch without git
-
-Keep a copy of the unmodified curl sources. Make your changes in a separate
-source tree. When you think you have something that you want to offer the
-curl community, use GNU diff to generate patches.
-
-If you have modified a single file, try something like:
-
- diff -u unmodified-file.c my-changed-one.c > my-fixes.diff
-
-If you have modified several files, possibly in different directories, you
-can use diff recursively:
-
- diff -ur curl-original-dir curl-modified-sources-dir > my-fixes.diff
-
-The GNU diff and GNU patch tools exist for virtually all platforms, including
-all kinds of Unixes and Windows:
-
-For unix-like operating systems:
-
- - [https://savannah.gnu.org/projects/patch/](https://savannah.gnu.org/projects/patch/)
- - [https://www.gnu.org/software/diffutils/](https://www.gnu.org/software/diffutils/)
-
-For Windows:
-
- - [http://gnuwin32.sourceforge.net/packages/patch.htm](http://gnuwin32.sourceforge.net/packages/patch.htm)
- - [http://gnuwin32.sourceforge.net/packages/diffutils.htm](http://gnuwin32.sourceforge.net/packages/diffutils.htm)