You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Xeno Amess <xe...@gmail.com> on 2020/06/12 23:23:07 UTC

[all] suggestions about ci usage general rules.

Here are several suggestions about usage of travis-ci (or github ci or
other ci like appveyor).
It is not legal or must do or something, but just several simple rules that
make everybody be happier when dealing with ci.

*1. Always have all LST versions tested from project.source to ea.*
For example, if your repo uses jdk6, then it should be at least 6,7,8,11.
  if your repo uses jdk8, then it should be at least 8,11.

However if you want to add other jdks feel free to do so, but keep in mind
that you add more, it gets answered slower, and guys wait longer.

*2. If a known bug/issue causes some jdk version cannot work correctly on
travis-ci (thus you get a red cross instead of a green trigger), you MUST
choose one of the following two operations:(2.1 or 2.2)*
2.1 Track why it fails, and fix it immediately. Until it is finished, you
MUST_NOT merge any other pr into branch master. And you must do it in 3
days.
2.2 Track why it fails, and record the reason. After that you MUST put the
the errored jdk version into allow_failure.

*3. Only merge pr which ci pass. If a pr cannot pass ci, please let
its author fix it to be able to pass ci before you merge.*
The only exception is when situation come that the ci failure is not
related by this pr, but an older(or even ancient) bug, which can cause the
ci sometimes pass, other times fail, or the build script just can not build
normally anymore from some time point (usually when people use some plugin
and forget to force the plugin's version).
If so, record that bug, and choose one of the following three
operations:(2.1 or 2.2 or 3.1)
3.1  Track why it fails, and record the reason. After that you MUST
re-trigger your pr's ci build (by rebase & force-push), and do it until the
ci can pass.

*4. If you suddenly found your master branch cannot pass ci, you MUST pause
any other actions, and choose one of the following three operations:(2.1 or
2.2 or 3.1) *

*5. If all of the recent pending prs fail travis-ci, and the branch master
has not been updated for a long time (a long time here means several
months) then you MUST make a fork of this repo, and retrigger the ci on
your clone. If it also fails ci, you MUST pause any other actions, and
choose one of the following three operations:(2.1 or 2.2 or 3.1) *

*6. If after you merge a pr your branch master fails, first check have you
follow rule 3 and 4 perfectly. Then you MUST pause any other actions, and
choose one of the following three operations:(2.1 or 2.2 or 3.1)  *

This is the general rules me myself follow when managing my own projects.
I hope this will be helpful.
Glad to hear about your opinions.
Thanks.