<commit_before># JabRef's development strategy

We aim to keep up to high-quality code standards and use code quality tools wherever possible.

To ensure high code-quality,

* we follow the principles of [Java by Comparison](https://java.by-comparison.com/).
* we follow the principles of [Effetcive Java](https://www.oreilly.com/library/view/effective-java-3rd/9780134686097/).
* we use [Design Pattners](https://java-design-patterns.com/patterns/) when applicable.
* we document our design decisions using the lightweight architectural decision records [MADR](https://adr.github.io/madr/).
* we review each external pull request by at least two [JabRef Core Developers](https://github.com/JabRef/jabref/blob/master/DEVELOPERS).

## Continuos integration

Since end of 2019, we just use GitHub actions to execute our tests and to creates binaries. The binaries are create using [gradle](https://gradle.org/) and are uploaded to to [https://builds.jabref.org](https://builds.jabref.org). These binaries are created without any checks to have them available as quickly as possible, even if the localization or some fetchers are broken. Deep link: [https://github.com/JabRef/jabref/actions?workflow=Deployment](https://github.com/JabRef/jabref/actions?workflow=Deployment).

## Branches

The branch [master](https://builds.jabref.org/master/) is the main development line and is intended to incorporate fixes and improvements as soon as possible and to move JabRef forward to modern technologies such as the latest Java version.

Other branches are used for discussing improvements with the help of [pull requests](https://github.com/JabRef/jabref/pulls). One can see the binaries of each branch at [https://builds.jabref.org/](https://builds.jabref.org/). Releases mark milestones and are based on the master at a point in time.

## How JabRef aquires contributors

* We participate in [Hacktoberfest](https://hacktoberfest.digitalocean.com/). See [https://www.jabref.org/hacktoberfest/](https://www.jabref.org/hacktoberfest/) for details.
* We participate in [Google Summer of Code](https://developers.google.com/open-source/gsoc/).

## Historical notes

### JabRef 4.x

The main roadmap for JabRef 4.x was to modernize the UI, make the installation easier and reduce the number of opened issues.

### JabRef 3.x
<commit_msg>Add link to code quality.<commit_after># JabRef's development strategy

We aim to keep up to high-quality code standards and use code quality tools wherever possible.

To ensure high code-quality,

* we follow the principles of [Java by Comparison](https://java.by-comparison.com/).
* we follow the principles of [Effective Java](https://www.oreilly.com/library/view/effective-java-3rd/9780134686097/).
* we use [Design Pattners](https://java-design-patterns.com/patterns/) when applicable.
* we document our design decisions using the lightweight architectural decision records [MADR](https://adr.github.io/madr/).
* we review each external pull request by at least two [JabRef Core Developers](https://github.com/JabRef/jabref/blob/master/DEVELOPERS).

Read on on our automated quality checks at [Code Quality](code-quality.md).

## Continuos integration

Since end of 2019, we just use GitHub actions to execute our tests and to creates binaries. The binaries are create using [gradle](https://gradle.org/) and are uploaded to to [https://builds.jabref.org](https://builds.jabref.org). These binaries are created without any checks to have them available as quickly as possible, even if the localization or some fetchers are broken. Deep link: [https://github.com/JabRef/jabref/actions?workflow=Deployment](https://github.com/JabRef/jabref/actions?workflow=Deployment).

## Branches

The branch [master](https://builds.jabref.org/master/) is the main development line and is intended to incorporate fixes and improvements as soon as possible and to move JabRef forward to modern technologies such as the latest Java version.

Other branches are used for discussing improvements with the help of [pull requests](https://github.com/JabRef/jabref/pulls). One can see the binaries of each branch at [https://builds.jabref.org/](https://builds.jabref.org/). Releases mark milestones and are based on the master at a point in time.

## How JabRef aquires contributors

* We participate in [Hacktoberfest](https://hacktoberfest.digitalocean.com/). See [https://www.jabref.org/hacktoberfest/](https://www.jabref.org/hacktoberfest/) for details.
* We participate in [Google Summer of Code](https://developers.google.com/open-source/gsoc/).

## Historical notes

### JabRef 4.x

The main roadmap for JabRef 4.x was to modernize the UI, make the installation easier and reduce the number of opened issues.

### JabRef 3.x

{'fraction_non_alphanumeric': 0.103397341211226, 'fraction_numerical': 0.008862629246676515, 'mean_word_length': 4.697115384615385, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 36, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2239842', 'n_tokens_mistral': 1409, 'n_tokens_neox': 1316, 'n_words': 508}