<commit_before># Development

Please [open an issue](https://help.github.com/articles/creating-an-issue/) to discuss any concerns or ideas for the project.

## Environment

[`git`](https://git-scm.com/doc) and [`pip`](https://pip.pypa.io/) are the primary development tools:
``` sh
git clone https://github.com/dmtucker/backlog
cd backlog/
python -m venv venv
venv/bin/pip install --editable .[dev]
```

### Tests

[`tox`](https://tox.readthedocs.io/) and [`pytest`](https://docs.pytest.org/) are used for validation:
``` sh
venv/bin/tox -- --pdb
```

## Submitting Changes

1. All change proposals are submitted by [creating a pull request (PR)](https://help.github.com/articles/creating-a-pull-request/).
   - PRs and [branch protection](https://help.github.com/articles/about-protected-branches/) are used to enforce acceptance criteria.

2. All PRs are associated with a [milestone](https://help.github.com/articles/about-milestones/).
   - Milestones serve as a change log for the project.

3. Any PR that directly changes any release artifact gets 1 of 3 [labels](https://help.github.com/articles/applying-labels-to-issues-and-pull-requests/): `Major`, `Minor`, `Patch`.
   - This helps with release versioning.

### Making Releases

1. Releases are versioned according to [Semantic Versioning](http://semver.org/).
   - https://semver.org/#why-use-semantic-versioning

2. All releases are tagged.
   - This permanently associates a version with a commit and triggers automatic deployment.

3. Every release closes a milestone.
   - Milestones serve as release notes for the project.
<commit_msg>Add links to the contributing guide<commit_after># Development

Please [open an issue](https://help.github.com/articles/creating-an-issue/) to discuss any concerns or ideas for the project.

## Environment

[`git`](https://git-scm.com/doc) and [`pip`](https://pip.pypa.io/) are the primary development tools:
``` sh
git clone https://github.com/dmtucker/backlog.git
cd backlog/
python -m venv venv
venv/bin/pip install --editable .[dev]
```

### Tests

[`tox`](https://tox.readthedocs.io/) and [`pytest`](https://docs.pytest.org/) are used for validation:
``` sh
venv/bin/tox -- --pdb
```

## Merges

1. All change proposals are submitted by [creating a pull request (PR)](https://help.github.com/articles/creating-a-pull-request/).
   - PRs and [branch protection](https://help.github.com/articles/about-protected-branches/) are used to enforce acceptance criteria.

2. All PRs are [associated with a milestone](https://help.github.com/articles/associating-milestones-with-issues-and-pull-requests/).
   - Milestones serve as a change log for the project.

3. Any PR that directly changes any release artifact gets 1 of 3 [labels](https://help.github.com/articles/applying-labels-to-issues-and-pull-requests/): `Major`, `Minor`, `Patch`.
   - This helps with release versioning.

## Releases

1. Releases are versioned according to [Semantic Versioning](http://semver.org/).
   - https://semver.org/#why-use-semantic-versioning

2. All releases are [tagged](https://git-scm.com/book/en/v2/Git-Basics-Tagging).
   - This permanently associates a version with a commit.

3. Every release closes a [milestone](https://help.github.com/articles/about-milestones/).
   - This permanently associates a version with a milestone.

{'fraction_non_alphanumeric': 0.14470517448856798, 'fraction_numerical': 0.005114320096269555, 'mean_word_length': 3.9775449101796405, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 24, 'lorem ipsum': 0, 'www.': 0, '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': '6561958', 'n_tokens_mistral': 1085, 'n_tokens_neox': 1022, 'n_words': 307}