MakeMake The Dwarf Planet is a feed agregator.

Just, make, task : trois outils pour faire (des trucs)

by ascendances from ascendances

Sous Unix, un fichier Makefile est le moyen classique d’exécuter diverses tâches (en premier lieu des compilations de binaires). Récemment, deux outils (just et task) ont gagné en popularité. Ils ont le même objectif, tout en cherchant à être plus adaptés aux usages de développement actuels.

L’installation des différents outils est simple :

  • Le binaire make est dans le paquet make (incroyable !) et est probablement déjà installé.
  • Le binaire just est dans le paquet just (bis).
  • Debian ne contient pas de paquet task. Un binaire task est bien disponible dans le paquet taskwarrior mais c’est un outil pour décompter le temps passé. Les développeurs de Taskfile fournissent un paquet Debian, déclaré comme incompatible avec taskwarrior à cause du nom identique de l’exécutable. Compiler le binaire soi-même est facile une fois que les outils pour compiler du Go sont déjà présents sur la machine.

A. Formats de fichier

Voici des exemples minimaux pour les trois outils :

1. Makefile

cible:
commande


Les fichiers Makefile utilisent des tabulations. Aujourd’hui, on s’attend plutôt à des espaces. Un éditeur correct sait déjà le gérer donc ça ne devrait pas être vraiment un problème mais peut surprendre un nouvel arrivant.

2. Justfile

cible:
commande

Il n’y a pas de différence visible avec le Makefile précédent car les fichiers Justfile en sont proches. Le format est simple et utilise des espaces plutôt que des tabulations.

C’est un format spécifique que les autres outils ne prennent pas toujours bien en charge (ou pas par défaut). Par exemple, bat (dans le paquet Debian nommé batcat) ou pygments ne savent pas faire de la coloration syntaxique sur ce format. Par contre, il existe des greffons pour Codium ou pour emacs (par exemple, just-mode, son code source et le dépôt Melpa), etc. De même, WordPress ne le prend pas en compte donc tous les codes source de Justfile ne bénéficieront pas de coloration syntaxique dans cet article.

Exemple de fichier Justfile dans Codium
Exemple de fichier Justfile dans Codium

3. Taskfile

version: '3'
tasks:
cible:
cmd: commande

Taskfile réutilise le format YAML. Cela permet d’avoir une syntaxe connue et un outillage déjà prêt (coloration syntaxique et vérification de la syntaxe). Cependant, cela donne aussi des contenus plus verbeux que les Justfiles.

À noter que la ligne version est indispensable aux Taskfile car des versions antérieures du format de fichier sont incompatibles.

B. Exemples équivalents

Voici trois fichiers d’exemple montrant les mêmes commandes basiques pour les Makefile, Justfile et Taskfile :

1. Makefile

BINNAME = hellomake
.PHONY: build clean test
build: ## Compile le binaire
gcc -o $(BINNAME) main.c
./gen_assets.sh
clean: ## Supprime les fichiers générés
rm -f $(BINNAME)
test: ## Exécute les tests
./tests.sh

Historiquement, les Makefile étaient (et sont encore) utilisés pour produire des fichiers. Les cibles peuvent être des fichiers et donc on se retrouve régulièrement à utiliser .PHONY. C’est pratique mais ça ne me semble pas très élégant.

2. Justfile

BINNAME := "hellojust"
# Compile le binaire
build:
gcc -o {{BINNAME}} main.c
./gen_assets.sh
# Supprime les fichiers générés
clean:
rm -f {{BINNAME}}
# Exécute les tests
test:
./tests.sh

La syntaxe reste très proche d’un Makefile. En terme de possibilité, il n’y a pas de dépendances sur les fichiers pour exécuter (ou non) une commande.

3. Taskfile.yml

version: '3'
vars:
BINNAME: hellotask
tasks:
build:
desc: Compile le binaire
cmds:
- gcc -o {{.BINNAME}} main.c
- ./gen_assets.sh
clean:
desc: Supprime les fichiers générés
cmd: rm -f {{.BINNAME}}
test:
desc: Exécute les tests
cmd: ./tests.sh

Le format YAML permet de faire des listes ou de laisser sur une seule ligne s’il n’y a qu’une seule instruction (cf. cmd). L’ensemble des attributs rend le contenu assez explicite. Il n’y a pas de dépendances sur les fichiers (comme just).

C. Paramètres à passer à la commande

1. Makefile

Il est possible de fournir une valeur par défaut, modifiable sur la ligne de commande :

PORT ?= 8000
staticserver:
python3 -m http.server $(PORT)

Le résultat dans un terminal :

$ make staticserver
python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
[...]
$ make staticserver PORT=8888
python3 -m http.server 8888
Serving HTTP on 0.0.0.0 port 8888 (http://0.0.0.0:8888/) ...

2. Justfile

Justfile a des paramètres avec des valeurs par défaut :

staticserver port="8000":
python3 -m http.server {{port}}

Le résultat dans un terminal :

$ just staticserver
python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …
[...]
$ just staticserver 8888
python3 -m http.server 8888
Serving HTTP on 0.0.0.0 port 8888 (http://0.0.0.0:8888/) …

À noter que just staticserver PORT=8888 provoque une erreur (invalid int value: 'PORT=8888').

3. Taskfile

version: '3'
tasks:
staticserver:
vars:
PORT: '{{default "8000" .PORT}}'
cmds:
- python3 -m http.server {{.PORT}}

Le résultat dans un terminal :

$ task staticserver
task: [staticserver] python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
[...]
$ task staticserver PORT=8888
task: [staticserver] python3 -m http.server 8888
Serving HTTP on 0.0.0.0 port 8888 (http://0.0.0.0:8888/) ...

D. Prise en compte de fichier .env

La prise en charge est plus ou moins directe mais rien d’insurmontable.

1. Makefile

Contrairement à just et task, make ne prend pas nativement les fichiers .env en charge. Il suffit d’ajouter ces lignes en début de fichier pour que le fichier .env soit chargé :

# Chargement du fichier .env
ifneq (,$(wildcard ./.env))
include .env
export
endif

C’est simplement du code valide pour make : ici, la fonction wildcard permet de détecter l’existence du fichier .env. La directive include charge le fichier donc les données du fichier .env deviennent disponibles comme variables dans le Makefile. La directive export passe l’ensemble des variables en tant que variables d’environnement aux commandes exécutées par le Makefile.

C’est plus simple pour just et task car le chargement de fichiers d’environnement est déjà intégré aux outils.

2. Justfile

Il suffit d’activer l’usage de fichier .env puis de récupérer la variable d’environnement souhaitée :

set dotenv-load
port := env("PORT", "8000")

La variable port dans just vaudra ce que contient la variable d’environnement PORT si elle est disponible, sinon elle vaudra 8000.

3. Taskfile 

Il est possible de définir plusieurs fichiers qui écrasent leurs valeurs selon l’ordre de leur définition :

dotenv:
- .env.local # config locale (priorité la plus haute)
- [...]
- .env # fichier par défaut (priorité la plus faible)

La variable d’environnement PORT définie (ou redéfinie) par le fichier d’environnement de plus grande priorité sera disponible via $PORT.

E. Lister les commandes disponibles

Cette possibilité est disponible nativement pour just et task :

  • just --list utilise le commentaire situé au-dessus de la commande.
  • task --list utilise la valeur de desc si elle est disponible pour documenter la commande.

L’usage est visible dans les exemples de la section « B. Exemples équivalents ».

Pour make, cela devrait être possible avec --print-targets dans le futur lorsqu’une nouvelle version sera publiée.

En attendant, il faut écrire une cible dédiée. Par exemple :

help: ## Montre les commandes disponibles
@echo "Commandes disponibles :"
@grep -E '^[a-zA-Z_-]+:.*?##' $(MAKEFILE_LIST) | \
sort | \
awk 'BEGIN{FS=":.*?## "}{printf " %-10s %s\n", $$1, $$2}'

Cela suppose que l’on a un commentaire qui suit la convention attendue par la cible help :

cible: ## viser le centre
guillaume --tell --vise=pomme

F. Ne pas afficher la commande exécutée

Dans ce cas, seules les sorties standard et d’erreur sont affichées.

make et just utilisent la même astuce : préfixer la commande par @.

task utilise l’attribut silent qui peut être inséré à plusieurs endroits. Une variable d’environnement est aussi disponible.

tasks:
echo:
cmds:
- cmd: echo "Print something"
silent: true

Conclusion

Les trois outils ont des capacités non abordées dans cet article. J’ai l’impression que les cas d’usage entre just et task se recoupent complètement.

make est le choix classique avec la barrière à l’entrée la plus faible pour entrer sur une base de code. Cependant, si just ou task est déjà installé pour développer des services web par exemple, autant le mettre partout.

Entre les deux, j’ai une préférence pour just qui est moins verbeux. La popularité des deux projets est grandissante mais just a l’air de prendre l’avantage :

Comparaison des étoiles Github au 7 juin 2026
Comparaison des étoiles Github au 7 juin 2026

Actuellement :

Les restes

Versions utilisées pour l’article :

  • make 4.4.1
  • just 1.50.0
  • task 3.41.0

Un serveur HTTP de fichiers statiques est vraiment fourni avec Python : la commande python3 -m http.server est fonctionnelle. C’est pratique pour du réseau local mais une mauvaise idée en production.

Le graphique montrant l’évolution des étoiles Github a été téléchargé depuis https://www.star-history.com/?repos=go-task%2Ftask%2Ccasey%2Fjust&type=timeline&legend=top-left. Le service permet aussi de télécharger un fichier .csv si besoin.

Lire la suite…

AFPy

by AFPy - Mastodon from AFPy - Mastodon

Promotional image for PyConFR 2026 in Biarritz at the ESTIA campus, and announcement of the Call for Proposals, open through July 31, 2026

Lire la suite…

AFPy

by AFPy - Mastodon from AFPy - Mastodon

Image d'annonce de la PyConFR 2026 à Biarrtiz au campus ESTIA et annonce de l''ouverture du Call for Proposals jusqu'au 31 juillet 2026 inclus

Lire la suite…

PyConFR 2026, à Biarritz du 29 octobre au 1 novembre

by ReiNula,Benoît Sibaud from Linuxfr.org

L’Association Francophone Python (AFPy) organise la PyConFR 2026 du jeudi 29 octobre au dimanche 1 novembre. Pour cette 17e édition, nous sommes accueillis par l'école ESTIA de Biarritz !

Logo de la PyConFR 2026

La PyConFR, c’est un évènement gratuit sur 4 jours autour du langage de programmation Python. Elle est composée deux jours de développements participatifs (sprints), puis de deux jours de conférences et ateliers.

L’appel à propositions est ouvert jusqu’au 31 juillet 2026. Peu importe votre niveau en Python, vous pouvez proposer un sujet de sprint, de conférence ou d’atelier ! Venez parler de développement logiciel, de diversité, de communauté, faire un retour d’expérience sur un outil, présenter votre projet, un domaine d’activité…

Comme tous les ans, nous proposons aux personnes habituellement peu représentées en conférence de l’aide pour trouver un sujet, rédiger la proposition de conférence, rédiger le support de conférence et pour répéter. Vous pouvez nous contacter à l’adresse diversite@afpy.org si vous pensez en avoir besoin.

Enfin, la PyConFR est entièrement financée par les sponsors. Si vous connaissez des sponsors potentiels, n’hésitez pas à leur parler de l’évènement !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Entr'ouvert recrute un·e développeur·euse Python/Django [Paris, Lyon, télétravail]

by thomasnoel from AFPy discuss

Entr’ouvert est un éditeur de logiciels libres dont l’activité s’est développée autour de la gestion de la relation usager. Notre mission, c’est de simplifier les démarches des citoyens puis de les proposer en ligne… en ce moment cela a un certain succès.

Entr’ouvert est une SCOP fonctionnant depuis 2002 de manière démocratique, détenue intégralement et à parts égales par ses salarié·es et où chacun, en tant qu’associé·e, participe aux prises de décision. Et parce que nous ne faisons pas les choses à moitié, nous avons institué la stricte égalité salariale.

Nous sommes actuellement 29 : 13 développeuses·eurs, 13 fonctionnel·le·s, 2 administrateurs·rices systèmes, une responsable administratif et pratiquement aucun raton laveur.

Nous n’utilisons et ne produisons que des logiciels libres. Nous avons développé une relation de confiance avec nos clients, basée sur la qualité, l’importance accordée aux détails, le travail bien fait. Et cela ne nous empêche pas de rigoler, c’est même recommandé, l’esprit de sérieux étant un mauvais esprit. Au-delà des compétences professionnelles, nous recherchons des personnes qui sauront intégrer notre équipe et s’impliquer dans notre structure coopérative.

Nous cherchons un·e développeur·euse

  • Vous connaissez bien Django, vous possédez des connaissances basiques en HTML, CSS et Javascript.

  • Vous savez faire un git commit et un git push (sans -f).

  • Vous êtes à l’aise avec l’écriture de tests, unitaires ou fonctionnels.

  • On suit les recommandations PEP8, on aime le code propre et maintenable et on espère que vous aussi.

  • Vous savez exprimer une situation ou une solution à vos collègues et aux clients.

  • Vous appréciez la relation directe avec les client·e·s afin de bien cerner leurs demandes.

  • Vous savez gérer les priorités et aimez tenir vos échéances.

  • La programmation non assistée par un LLM ne vous fait pas peur : les contributions générées par intelligence artificielle sont interdites dans nos logiciels.

  • A priori pour savoir faire tout cela, vous avez déjà quelques années d’expérience.

  • … et au minimum une certaine sensibilité aux logiciels libres.

Votre mission

  • Après un temps de formation avec l’équipe, vous travaillerez à l’amélioration et sur les évolutions de Publik suivant les tickets et la roadmap.

  • Vous relirez des patches proposés par les collègues, chercherez à les améliorer, bref, vous ferez du code review.

  • Selon les projets vous serez développeur·euse ou chef·fe de projet technique (c’est-à-dire en charge de la coordination des développements et de la relation technique avec le client).

Quelques exemples de notre quotidien

Les conditions de travail

  • CDI de 52 000 € brut annuel, soit environ 3300 € net par mois — même salaire pour tout le monde.

  • 99% des bénéfices répartis à parts égales entre les travailleuses·eurs, sous forme de participation, intéressement, primes (voir pappers.fr pour vous donner une idée).

  • Organisation du temps de travail sur 4 jours de la semaine.

  • Travail à Paris XIVème ou à Lyon, télétravail possible depuis partout en France.

  • Horaires souples.

  • Mutuelle familiale.

  • 8½ semaines de congés payés.

  • 50% de la carte Navigo, café, thé et chocolat inclus dans les bureaux parisiens et lyonnais.

  • Un bon ThinkPad, accompagné d’un grand écran, avec un beau clavier et une souris optique qui brille dans le noir (sans oublier un budget annuel pour tout type de matériel utile pour le télétravail).

  • Coopératrice·teur, associé·e de la SCOP, à part égale de tous les autres.

C’est trop beau

Si vous avez lu notre annonce jusqu’ici et que vous vous dites, « c’est trop beau un job pareil, où est le piège ? », quelques éléments sur les difficultés à travailler dans une société comme Entr’ouvert :

  • Nous sommes tous partiellement patrons de notre entreprise, ce qui est souvent synonyme d’un engagement plus conséquent que si nous n’étions que salarié·es.

  • Ne pas avoir de patrons dans une entreprise à n coopérateurs·rices, cela veut dire avoir n-1 « quasi-patrons » avec qui échanger : de bonnes capacités de communication, voire de diplomatie, sont nécessaires.

  • Pour les personnes en télétravail, la frontière est parfois ténue entre autonomie et isolement.

Vous avez l’impression de ne pas correspondre entièrement au profil, cette annonce vous fait très envie mais vous doutez de vos capacités ? Écoutez votre cœur et postulez ! Les offres d’emploi décrivent toujours une personne qui n’existe pas : vous avez toutes vos chances.

Le processus de recrutement

Les candidatures doivent être envoyées avant le dimanche 7 juin 2026 à 23h59. Le déroulé est ensuite l’organisation d’un entretien de présentation mutuelle, suivi de l’envoi d’un court test technique puis un second entretien de débrief et discussion avec des membres de l’équipe technique. Les deux entretiens auront lieu par visio-conférence. Le processus complet prend du temps, la décision finale de l’embauche devrait être prise autour du lundi 13 juillet.

Pour postuler, rendez-vous sur ce formulaire.


Post-scriptum : merci aux cabinets de recrutement de ne pas nous contacter ; nous recherchons des coopératrices·eurs voulant s’impliquer dans notre structure et non des salarié·es proposés sur catalogue.

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

AFPy

by AFPy - Mastodon from AFPy - Mastodon

Promotional image for PyConFR 2026 in Biarritz at the ESTIA campus, and announcement of the Call for Proposals, open through July 31, 2026

Lire la suite…

AFPy

by AFPy - Mastodon from AFPy - Mastodon

Image d'annonce de la PyConFR 2026 à Biarrtiz au campus ESTIA et annonce de l''ouverture du Call for Proposals jusqu'au 31 juillet 2026 inclus

Lire la suite…

Sortie de Tryton 8.0

by Cédric Krier,Maxime Richez,Nicolas Évrard,Xavier Teyssier from Linuxfr.org

Le 20 avril 2026 est sortie la version 8.0 de long support de Tryton un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

La version 8.0 de Tryton s'inscrit dans la continuité des versions précédentes en améliorant la stabilité, les performances et les fonctionnalités (dont ci-dessous les principales).
Cette version a un support long de cinq ans comparé à une année pour version précédentes.

Interface et usage quotidien

Quand un champ a été modifié par les actions de l'utilisateur, il est identifié afin de permettre une vérification visuelle avant de sauvegarder.

Champ langue du tiers modifié

Les onglets peuvent être réorganisés maintenant aussi pour le client web et l'action de déconnexion est désormais dans le même menu qui contient déjà les notifications et les préférences utilisateurs afin de donner encore plus d'espace dans l'entête pour les onglets.

Modules métiers

Sur le plan fonctionnel, la version 8.0 s'enrichit avec de nouveaux modules : gestion des chèques, gestion des accises et suivi d’alcool ainsi que le suivi de la vente de service par des tâches de projet.

Les modules comptables espagnols et allemands ont été sortis du dépôt standard afin d'être gérés plus simplement par la communauté.

Administration et développement

La version 8.0 ajoute le support de Python 3.14 et arrête celui de Python 3.9.
La librairie psycopg est mise à jour à la version 3 ce qui permet d'envoyer les requêtes SQL et leurs paramètres séparément et ainsi lever les limitations sur la taille des paramètres (entre autre le nombre d'IDs dans les clause column IN (...)).

Il est maintenant possible de définir des champs Function (c-à-d calculés par l'ORM) uniquement par une expression SQL. Cette expression sera utilisée pour la lecture, la recherche et le tri.

La définition des modules a été améliorée pour permettre l'utilisation de sous-répertoires plus facilement. En effet, on peut maintenant créer un fichier tryton.cfg dans un sous-répertoire et utiliser un chemin relatif depuis celui-ci vers ses fichiers ressources.

Une API REST a été ajoutée au serveur et une librairie cliente naiad a été publiée. Elle permet de remplacer l'utilisation du module trytond directement pour la création d'applications connexes telles que des sites web. C'est une architecture plus flexible que celle utilisée jusqu'à maintenant comme dans le module flask-tryton.

Les sessions pour le client web sont maintenant stockées comme cookie pour plus de sécurité.
Le client web utilise à présent uniquement des chemins relatifs, ce qui permet de le servir depuis un sous-répertoire.

Appel à sponsor

Pour préparer l'obligation de facturation électronique en France, un appel à sponsor a été lancé pour intégrer la plateforme agrée SUPER PDP.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…