Skip to content

Commit

Permalink
Use pre-commits hooks instead of ruff directly
Browse files Browse the repository at this point in the history
  • Loading branch information
klmp200 committed Jun 26, 2024
1 parent d97602e commit f8b0c11
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 48 deletions.
16 changes: 7 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,15 @@ on:
workflow_dispatch:

jobs:
ruff:
name: Ruff lint & format
pre-commit:
name: Launch pre-commits checks (ruff)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: ruff format
uses: chartboost/ruff-action@v1 # format
with:
args: format --diff
- name: ruff check
uses: chartboost/ruff-action@v1 # lint
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: pre-commit/[email protected]
with:
extra_args: --all-files --show-diff-on-failure

tests:
name: Run tests and generate coverage report
Expand Down
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.4.10
hooks:
# Run the linter.
- id: ruff
args: ["--fix"]
# Run the formatter.
- id: ruff-format
36 changes: 32 additions & 4 deletions doc/start/devtools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,28 @@ Pour donner une idée, Skia a écrit une énorme partie de projet avec l'éditeu
alors que Sli a utilisé *Sublime Text* sur MacOS et que Maréchal travaille avec PyCharm
sur ~~Windows muni de WSL~~ Arch Linux btw.

Configurer les pre-commit hooks
--------------------------------

Les pre-commits hooks sont, une fois configuré sur votre système, une suite de commande automatiquement appliqués lors d'un commit.

C'est très pratique pour ne pas oublier de formater le code et autre.

Les pre-commits sont également utilisés dans la CI, si les pre-commits fonctionnent localement, vous avez la garantie que la pipeline ne sera pas fachée ;).

Pour installer les pre-commits hoosk, nous utilisons le logiciel [pre-commit](https://pre-commit.com/) pour simplifier leur gestion.

Une fois installé comme indiqué dans la documentation, il suffit de commit et tout est automatique.

Configurer Ruff pour son éditeur
---------------------------------

.. note::

Ruff est inclus dans les dépendances du projet.
Si vous avez réussi à terminer l'installation, vous n'avez donc pas de configuration
supplémentaire à effectuer.
Ruff est inclus dans les pre-commits du projet
Si vous les avez déjà configurés, ruff sera automatiquement appliqué lors d'un commit du projet

Pour utiliser Ruff, placez-vous à la racine du projet et lancez la commande suivante :
Pour utiliser Ruff manuellement, après l'avoir installé sur votre machine, placez-vous à la racine du projet et lancez la commande suivante :

.. code-block::
Expand Down Expand Up @@ -60,6 +72,22 @@ Sublime Text
Vous devez installer ce plugin : https://packagecontrol.io/packages/LSP-ruff.
Suivez ensuite les instructions données dans la description du plugin.

Dans la configuration de votre projet, ajoutez ceci:

.. sourcecode:: json

{
"settings": {
"lsp_format_on_save": true,
"LSP": {
"LSP-ruff": {
"enabled": true,
}
}
}
}


Si vous utilisez le plugin `anaconda <http://damnwidget.github.io/anaconda/>`__, pensez à modifier les paramètres du linter pep8 pour éviter de recevoir des warnings dans le formatage de ruff comme ceci :

.. sourcecode:: json
Expand Down
40 changes: 7 additions & 33 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,11 @@ Sphinx = "^5" # Needed for building xapian
tomli = "^2.0.1"

[tool.poetry.group.dev.dependencies]
freezegun = "^1.2.2" # used to test time-dependent code
django-debug-toolbar = "^4.0.0"
ipython = "^7.28.0"
ruff = "^0.4.10"

[tool.poetry.group.tests.dependencies]
freezegun = "^1.2.2" # used to test time-dependent code
pytest = "^8.2.2"
pytest-cov = "^5.0.0"
pytest-django = "^4.8.0"
Expand All @@ -71,6 +70,7 @@ version = "1.4.25"

[tool.ruff.lint]
select = ["I", "F401"]
extend-select = ["I"]

[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "sith.settings"
Expand Down

0 comments on commit f8b0c11

Please sign in to comment.