113498266Sopenharmony_ci# How to get started helping out in the curl project
213498266Sopenharmony_ci
313498266Sopenharmony_ciWe are always in need of more help. If you are new to the project and are
413498266Sopenharmony_cilooking for ways to contribute and help out, this document aims to give a few
513498266Sopenharmony_cigood starting points.
613498266Sopenharmony_ci
713498266Sopenharmony_ciYou may subscribe to the [curl-library mailing
813498266Sopenharmony_cilist](https://lists.haxx.se/listinfo/curl-library) to keep track of the
913498266Sopenharmony_cicurrent discussion topics; or if you are registered on GitHub, you can use the
1013498266Sopenharmony_ci[Discussions section](https://github.com/curl/curl/discussions) on the main
1113498266Sopenharmony_cicurl repository.
1213498266Sopenharmony_ci
1313498266Sopenharmony_ci## Scratch your own itch
1413498266Sopenharmony_ci
1513498266Sopenharmony_ciOne of the best ways is to start working on any problems or issues you have
1613498266Sopenharmony_cifound yourself or perhaps got annoyed at in the past. It can be a spelling
1713498266Sopenharmony_cierror in an error text or a weirdly phrased section in a man page. Hunt it
1813498266Sopenharmony_cidown and report the bug. Or make your first pull request with a fix for that.
1913498266Sopenharmony_ci
2013498266Sopenharmony_ci## Smaller tasks
2113498266Sopenharmony_ci
2213498266Sopenharmony_ciSome projects mark small issues as "beginner friendly", "bite-sized" or
2313498266Sopenharmony_cisimilar. We do not do that in curl since such issues never linger around long
2413498266Sopenharmony_cienough. Simple issues get handled fast.
2513498266Sopenharmony_ci
2613498266Sopenharmony_ciIf you are looking for a smaller or simpler task in the project to help out
2713498266Sopenharmony_ciwith as an entry-point into the project, perhaps because you are a newcomer or
2813498266Sopenharmony_cieven maybe not a terribly experienced developer, here's our advice:
2913498266Sopenharmony_ci
3013498266Sopenharmony_ci - Read through this document to get a grasp on a general approach to use
3113498266Sopenharmony_ci - Consider adding a test case for something not currently tested (correctly)
3213498266Sopenharmony_ci - Consider updating or adding documentation
3313498266Sopenharmony_ci - One way to get started gently in the project, is to participate in an
3413498266Sopenharmony_ci   existing issue/PR and help out by reproducing the issue, review the code in
3513498266Sopenharmony_ci   the PR etc.
3613498266Sopenharmony_ci
3713498266Sopenharmony_ci## Help wanted
3813498266Sopenharmony_ci
3913498266Sopenharmony_ciIn the issue tracker we occasionally mark bugs with [help
4013498266Sopenharmony_ciwanted](https://github.com/curl/curl/labels/help%20wanted), as a sign that the
4113498266Sopenharmony_cibug is acknowledged to exist and that there is nobody known to work on this
4213498266Sopenharmony_ciissue for the moment. Those are bugs that are fine to "grab" and provide a
4313498266Sopenharmony_cipull request for. The complexity level of these will of course vary, so pick
4413498266Sopenharmony_cione that piques your interest.
4513498266Sopenharmony_ci
4613498266Sopenharmony_ci## Work on known bugs
4713498266Sopenharmony_ci
4813498266Sopenharmony_ciSome bugs are known and have not yet received attention and work enough to get
4913498266Sopenharmony_cifixed. We collect such known existing flaws in the
5013498266Sopenharmony_ci[KNOWN_BUGS](https://curl.se/docs/knownbugs.html) page. Many of them link
5113498266Sopenharmony_cito the original bug report with some additional details, but some may also
5213498266Sopenharmony_cihave aged a bit and may require some verification that the bug still exists in
5313498266Sopenharmony_cithe same way and that what was said about it in the past is still valid.
5413498266Sopenharmony_ci
5513498266Sopenharmony_ci## Fix autobuild problems
5613498266Sopenharmony_ci
5713498266Sopenharmony_ciOn the [autobuilds page](https://curl.se/dev/builds.html) we show a
5813498266Sopenharmony_cicollection of test results from the automatic curl build and tests that are
5913498266Sopenharmony_ciperformed by volunteers. Fixing compiler warnings and errors shown there is
6013498266Sopenharmony_cisomething we value greatly. Also, if you own or run systems or architectures
6113498266Sopenharmony_cithat are not already tested in the autobuilds, we also appreciate more
6213498266Sopenharmony_civolunteers running builds automatically to help us keep curl portable.
6313498266Sopenharmony_ci
6413498266Sopenharmony_ci## TODO items
6513498266Sopenharmony_ci
6613498266Sopenharmony_ciIdeas for features and functions that we have considered worthwhile to
6713498266Sopenharmony_ciimplement and provide are kept in the
6813498266Sopenharmony_ci[TODO](https://curl.se/docs/todo.html) file. Some of the ideas are
6913498266Sopenharmony_cirough. Some are well thought out. Some probably are not really suitable
7013498266Sopenharmony_cianymore.
7113498266Sopenharmony_ci
7213498266Sopenharmony_ciBefore you invest a lot of time on a TODO item, do bring it up for discussion
7313498266Sopenharmony_cion the mailing list. For discussion on applicability but also for ideas and
7413498266Sopenharmony_cibrainstorming on specific ways to do the implementation etc.
7513498266Sopenharmony_ci
7613498266Sopenharmony_ci## You decide
7713498266Sopenharmony_ci
7813498266Sopenharmony_ciYou can also come up with a completely new thing you think we should do. Or
7913498266Sopenharmony_cinot do. Or fix. Or add to the project. You then either bring it to the mailing
8013498266Sopenharmony_cilist first to see if people will shoot down the idea at once, or you bring a
8113498266Sopenharmony_cifirst draft of the idea as a pull request and take the discussion there around
8213498266Sopenharmony_cithe specific implementation. Either way is fine.
8313498266Sopenharmony_ci
8413498266Sopenharmony_ci## CONTRIBUTE
8513498266Sopenharmony_ci
8613498266Sopenharmony_ciWe offer [guidelines](https://curl.se/dev/contribute.html) that are
8713498266Sopenharmony_cisuitable to be familiar with before you decide to contribute to curl. If
8813498266Sopenharmony_ciyou are used to open source development, you will probably not find many
8913498266Sopenharmony_cisurprises there.
90