2 points par GN⁺ 2025-06-05 | 1 commentaires | Partager sur WhatsApp
  • L’IRS a publié en open source sur GitHub une grande partie du code source de Direct File
  • En tant qu’œuvre du gouvernement américain, ce code relève du domaine public et peut être examiné par tous
  • Cette publication s’inscrit dans le cadre de l’application du SHARE IT Act et a été annoncée 3 semaines avant l’échéance légale
  • La publication en open source vise à renforcer la transparence et à bâtir la confiance des contribuables
  • L’équipe de Direct File accorde aussi une grande importance à la sécurité des données, à l’application équitable des avantages fiscaux et au renforcement de l’accessibilité pour le public

Publication du code source de Direct File sur GitHub

Le 30 mai 2025, l’IRS a publié en tant que logiciel open source sur GitHub la majeure partie du code source du service Direct File. En tant qu’œuvre du gouvernement américain, ce code relève du domaine public, et chacun peut librement en consulter le contenu.

Objet et contexte de la publication

Cette publication du code source constitue une mesure de conformité au SHARE IT Act (projet de loi fédéral n° 9566 du 118e Congrès), réalisée 3 semaines avant la date limite officielle. On s’attend à ce que davantage de code logiciel exploité par l’IRS devienne à l’avenir accessible à tous.

L’importance de l’open source

Le passage en open source du code du service Direct File n’est pas une initiative récente, mais un projet de longue date. Comme l’avait indiqué l’équipe de Direct File l’an dernier, l’open source présente les avantages suivants :

  • l’IRS peut renforcer la confiance du public grâce à une plus grande transparence et permettre une évaluation indépendante de son travail
  • il devient possible de démontrer à l’extérieur que le logiciel est conçu pour que tous les contribuables puissent pleinement bénéficier des avantages fiscaux auxquels ils ont droit
  • un logiciel public permet de montrer techniquement que ces engagements sont tenus

Confiance des contribuables et principes de Direct File

La confiance des contribuables était une stratégie centrale dans la conception de Direct File. À cette fin, les éléments suivants ont été mis en avant :

  • fournir l’option de déclaration fiscale la plus précise
  • permettre à l’ensemble de la population d’accéder au système de déclaration fiscale et de l’utiliser
  • respecter strictement les principes de sécurité des données des contribuables
  • mettre la transparence en pratique par la publication directe du code

Mention personnelle

L’auteur a officiellement quitté l’IRS il y a 2 semaines. Le présent texte reflète uniquement son opinion personnelle.

Adresse du dépôt GitHub

1 commentaires

 
GN⁺ 2025-06-05
Avis Hacker News
  • Direct File inclut une structure de données de graphe de connaissances déclarative et basée sur XML appelée Fact Graph, conçue pour raisonner à partir d’informations incomplètes, comme une déclaration fiscale partiellement remplie. Fact Graph est écrit en Scala, s’exécute côté backend sur la JVM, et côté client après transpilation via Scala.js. Le Fact Graph de Direct File n’est pas limité à un domaine spécifique, et pourrait donc aussi servir utilement de référence pour mettre en œuvre des administrations fiscales ou d’autres moteurs de règles métier

    • Le code qui définit le fonctionnement du fact graph peut être consulté ici. Les définitions fiscales réelles et les calculs dérivés peuvent être vus ici. On y trouve par exemple la déduction standard (Standard Deduction) et le calcul du taux d’imposition. Ces définitions semblent reposer sur le schéma MeF (Modernized e-File). En effet, le système doit convertir les données d’entrée en XML conforme au schéma MeF pour les transmettre au système MeF. Plus de détails sont disponibles sur la page officielle de l’IRS

    • C’est suffisamment intéressant pour donner envie d’en lire davantage

  • J’ai travaillé à l’IRS jusqu’à il y a environ deux semaines, mais je parle ici à titre personnel. Je trouve regrettable que l’administration actuelle supprime Direct File et ait licencié toutes les personnes qui y travaillaient

  • Malheureusement, ce programme est actuellement interrompu par l’administration en place. Le dépôt de code est vraiment excellent, et la structure Scala du fact graph est vraiment remarquable. On voit aussi qu’un soin énorme a été apporté aux tutoriels

    • Je pense que les personnes impliquées dans ce projet savaient, avant même d’écrire une ligne de code, que son destin était déjà scellé. Elles savaient qu’au prochain retour au pouvoir d’un élu (R, républicain), le projet serait immédiatement condamné. Le fait d’avoir réussi à produire le logiciel et à le publier est un accomplissement impressionnant, mais tout le monde savait aussi qu’il ne durerait pas. Le lobby de la déclaration fiscale payante est trop puissant et trop corrompu

    • Cette loi a été présentée par Nick Langworthy, du Parti républicain, et co-parrainée par William Timmons. Merci de ne pas diffuser d’informations erronées ou mensongères

  • Question sur le fait de savoir si cette manière de faire est courante en Java, avec partage d’un exemple de code

    • C’est un exemple de programmation réactive en Java. Cela renvoie un callback qui sera exécuté lorsque le travail sera terminé. Le type Mono<T> en est une caractéristique représentative

    • J’utilise Java depuis longtemps, mais on voit rarement ce genre de code. Cela vient beaucoup du style de programmation réactive (reactor.core.publisher.Mono). C’était peut-être aussi une façon d’essayer de faire tenir tout le code sur un seul écran. Si j’étais responsable d’équipe, j’aurais envie de demander une simplification

    • Ce style de code se voit souvent dans les projets publics quand quelqu’un veut s’assurer un emploi à vie, ou pense qu’il est avantagé si les autres ont du mal à lire son code. Ou alors quand le véritable objectif est de vendre des écrans ultra-larges

    • Les atomics sont maladroits, mais quand on utilise reactor, le besoin d’un comportement bloquant séquentiel finit souvent par désorganiser complètement la structure du code

    • On voit parfois des choses similaires en Java comme dans d’autres langages. Il est peu probable que ce soit une manière de faire que je préfère

  • Je pense que, pour l’IRS, le plus difficile dans cette publication n’était pas tant le code source lui-même que l’intégration avec le système de collecte fiscale et la garantie de conformité avec le droit fiscal en vigueur. Même si le code source est public, l’administration peut toujours interrompre cette partie quand elle le souhaite

    • Entièrement d’accord. D’après les explications du dépôt, Direct File traduisait le droit fiscal américain (26 USC) en questions simples, afin que le contribuable puisse y répondre directement sans explications supplémentaires. Les réponses du contribuable étaient ensuite converties en formulaires fiscaux standard et transmises à l’API officielle Modernized e-File (MeF). En théorie, on pourrait peut-être l’utiliser immédiatement, mais comme vous le dites, un changement de politique pourrait le rendre inutile

    • En plus, parmi les difficultés, il faut compter des décennies de lobbying de l’industrie de la préparation fiscale pour protéger ses intérêts. Le nombre d’États autorisant la déclaration directe gratuite a augmenté par rapport à l’an dernier, et on en est maintenant à 25 juridictions en comptant DC, mais on ne voit pas clairement pourquoi ce n’est pas possible dans les 25 autres. (J’habite à DC.)

    • C’est vrai. Les responsables politiques ou fonctionnaires qui travaillent pour le lobby de la déclaration fiscale peuvent modifier le droit fiscal comme ils le veulent afin de rendre le logiciel inutile

    • Je ne sais pas si cette fonctionnalité existe actuellement, mais si eFile est suffisamment complet, il devrait être possible de générer aussi des déclarations papier

    • Cela ressemble même plutôt à une opportunité commerciale

  • Dans la section Exempted Code, il est indiqué que tout le code source, la documentation et les métadonnées utilisés pour développer Direct File ne sont pas inclus dans le dépôt public. Le code source contenant des PII, des Federal Tax Information (FTI), des données sensibles mais non classifiées (SBU), ainsi que le code destiné aux National Security Systems (NSS), est exclu conformément à la loi. Il est aussi indiqué que, du fait de ces restrictions, certaines fonctionnalités ont été supprimées ou réécrites. Je suis très curieux de savoir quelles parties ont été retirées

  • Tout le monde a déjà fait au moins une fois l’erreur d’ajouter seulement un pointeur de sous-module au lieu de publier les vrais fichiers dans un dépôt. Voir cet exemple de commit. C’est aussi intéressant de voir que, comme ce code vient des États-Unis, on ne peut pas simplement utiliser CC0 et qu’il faut préciser séparément qu’il relève du domaine public

    • En d’autres termes, cela signifie que Creative Commons, dont le siège est en Californie, n’a pas publié de licence adaptée au logiciel du plus grand acteur public des États-Unis. Et cela laisse aussi une certaine curiosité sur les raisons de cette différence
  • Pour celles et ceux que cela intéresserait, voici le lien vers le dépôt

    • Il pourrait être judicieux de le forker rapidement avant que quelqu’un ne supprime le dépôt. On pourrait finir par arriver à une situation où même le simple fait de le consulter deviendrait passible de sanctions
  • Pas seulement le code : le dossier /docs/design contient aussi d’excellents documents de conception et notes. Il comprend également des diagrammes de procédure détaillés par parcours utilisateur (pas consultables en direct, fournis sous forme d’archives zip, voir flow1.zip et flow2.zip)

  • Il y a aussi eu une discussion à ce sujet la semaine dernière (en date de mai 2025) : IRS Direct File - Hacker News (62 commentaires)