How_to_contribute_to_OpenSSL

  1. 阅读OpenSSL自带的CONTRIBUTING文档,其中要注意的有以下几点:

  2. 在GitHub上forkOpenSSL的项目

  3. 克隆fork之后的OpenSSL到本地

    1
    git clone https://github.com/[username]/openssl.git
  4. (可选)对于已克隆到本地的项目,要让fork的项目和原项目保持同步,使用以下指令更新本地和远端项目

    1
    2
    3
    4
    cd path/to/repo
    git fetch --all
    git merge [original_repo_name]/master
    git push -u origin
  5. 定位缺陷

  6. issue页面提交issue。Title要写清楚缺陷位置及内容,如#6822中写道Missing return value check of BN_sub() in crypto/rsa/rsa_ossl.c;在comment位置适当加上详细的描述,包括具体位置、为什么这是一个缺陷并附上一小段代码片段。

  7. (可选)新建分支用于修改代码

    1
    git checkout -b [new_branch_name]
  8. 修复缺陷,保存

  9. 提交修改

    1
    2
    git add [modified_files]
    git commit

    commit message一般包含两部分:

    1. title:用简短的话说明本次修改的内容,一般格式为:[file_name]: do something。如#6585中写道ssl/statem/statem_srvr.c: add missing check for EVP_PKEY_get0_DH()
    2. body:解释本次修改的原因,如果修复了某个issue,使用Fixes #[issue_ID]来引用
  10. push commit

    1
    git push
  11. 在fork项目网页上可以发现可以create pull request,如果前面步骤规范的话,直接点击create即可