In our terms a contribution is already to share a good analysed bug report Found a bug? If you want to go deeper and you want to contribute test cases, e.g. for a quality contribution (identify a bug) or to help us to keep the lib clean and stable. Or you have even a nice idea, which you would like to contribute as code? You are always welcome. We suggest you before you contribute a bigger work to get prior permission, since we want to verify first if the contribution will bring the lib forward. We will give quickly a feedback if we will accept the contribution.
In the most cases (e.g. bug fixes and little enhancements) you can create a pull request to the
develop branch. For bigger improvements please open an issue to discuss your plans.
masterbranch will not be accepted
Take a look at the branching model to get an overview. You can fork and clone the repository and set up the develop branch as follows:
// fork repositroy on Git UI from https://github.com/ta4j/ta4j.git to https://github.com/yourAccount/ta4j.git git clone https://github.com/yourAccount/ta4j.git cd ta4j git remote add develop https://github.com/yourAccount/ta4j.git git checkout develop
You should always create a new branch (forked from
develop branch) for enhancements or bug fixes:
git checkout -b feature/name-of-your-feature-branch git push --set-upstream origin feature/*
mvn test. There are github actions checking for code format and licence header as well:
// implement changes on your branch // format code, add license header and run unit tests with maven: mvn -B clean license:format formatter:format test git add myNewFiles.java CHANGELOG.md git commit git push
The last step would be to do a pull request from your branch to the
develop branch of the ta4j repository. If you want to do a pull-request, the best way is to do is via Git UI:
developat the last step). Your pull-request will be reviewed and changes could be requested. Please maintain your PR if necessary.
First things first: Feel free to write awesome code! Do not hesitate to open an issue or a pull request just because you fear making a mistake. Others can review your code, give you tips and can correct you.
int startIndex = timeSeries.getBeginIndex()instead of
int startIndex = 0to get the first valid index of a TimeSeries.
Numimplementations because they will be determined at runtime. If necessary store primitives and use the
numOf(Number n)or the
numFunctionof series in the constructor. If you are using
BigDecimalNum::valueOfyou most probably do something wrong.
intand a percentage value parameter should be
Num). You can convert a
numOffunction. This prevents that the user has to convert primitive input values to
If you want to add a new indicator to this repository, please open an issue first to discuss your plans.