In this page we document the process by which the developers of the project collaborate and get things done. If you're interested in contributing or getting involved please consider the guidelines and tips that are outlined in this page. Please check-in often as we flesh out this document further.
The first thing contributors and developers have to do is introduce themselves to the community. We'd like to have all contributors involved in the decision making process with regards to the development of both the community and the library. We value individuals and their personal styles, so the more everyone knows about everyone the better we can work together to achieve the same goal.
If you haven't yet, please subscribe to the developers mailing list and introduce yourself before proceeding.
The maintainers of the project review and merge Pull Requests (from here on out referred to as PR's) from contributors using the GitHub Pull Request feature. This allows the project to move forward using the Git distributed development workflow. If you need an introduction to git, please refer to the following links for git-specific information.
What follows in this section assumes that you're already familiar with the basic git workflow.
Forking the RepoForking requires that you already have a GitHub account. Before continuing, please make sure that you've signed up for a GitHub account (it's free to develop for open source projects) and have familiarized yourself with the different development workflows. It's important that you understand the GitHub workflow before continuing.
The official repository is located in GitHub at https://github.com/cpp-netlib/cpp-netlib. Before you can submit PR's you should first create your own fork of the repository on GitHub. You can fork the repository by clicking on Fork at the upper right portion of the page.
Preparing a PROnce you have a fork of the repo, determine to which branch you'd like to send a PR to. In the next section we describe the various branches we'll be dealing with in the course of development of a release.
When you've determined the branch to which you'd like to send a PR to you can follow these steps to prepare your change for inclusion in the library.
cpp-netlib/master
and your fork is user/master
, you should create a user/master-integration
branch.In case you have multiple PR's in flight, you may want to have multiple integration branches — that is, one integration branch per PR should be good to keep.
Working BranchesThe project always has the latest bleeding edge versions of the library under development in the master
branch. This version is explicitly unstable and subject to (potentially massive) changes over time.
Once the state of master
has stabilized and a release process is initiated by the project maintainers (it will be announced on the mailing list) a version-devel
branch is started from master and a release candidate is prepared. For example, if a 1.0 release is initiated, a branch 1.0-devel
is started off master.
A release candidate is tagged off of the version-devel
branch on a regular basis, and is publicized as widely as possible. The tag name should be of the form version-rcN
. Again as an example, the first release candidate for a 1.0 release will be tagged as 1.0.0-rc0
.
All PR's for the upcoming version should go directly to the version-devel
branch.
During the stabilization of the version-devel
branch, master remains open for PR's for new functionality, new accepted libraries, and API breaking changes.
Once a release candidate is deemed "good to go" by the maintainers we tag the library (and submodules appropriately) with a tag of the form version-final
. As with earlier examples, the tag for the 1.0 release would be 1.0.0-final
.
Critical bug fixes go into the version-devel
branch after a final release has been packaged. In case there's a need for update releases, the release candidate process is followed until another final version of the patch release is tagged.
In our on-going example, this will be of the form 1.0.1-rc0
, 1.0.1-rc1
, and so on until it's stabilized — at which time a 1.0.1-final
is tagged and packaged.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4