🖋️ Généralise l'orthographe de Publicodes avec un s

cf. https://github.com/betagouv/publicodes/discussions/44#discussioncomment-728631
pull/1580/head
Maxime Quandalle 2021-05-12 16:12:14 +02:00
parent 97b385a01f
commit 0612399fe9
33 changed files with 109 additions and 111 deletions

View File

@ -16,7 +16,7 @@ jobs:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}-v2
- run: yarn install --frozen-lockfile
- working-directory: ./publicodes/example/publicode-react
- working-directory: ./publicodes/example/publicodes-react
run: |
yarn install
yarn test

View File

@ -168,9 +168,9 @@ Pour tester les règles, il est recommandé de:
### Publicodes
Un tutoriel sur publicode est disponible sur https://publi.codes.
Un tutoriel sur publicodes est disponible sur https://publi.codes.
Un wiki contenant des informations intéressantes sur publicode et le
Un wiki contenant des informations intéressantes sur publicodes et le
raisonnement ayant abouti à ce langage sont dispos sur le repository
[betagouv/publicodes](https://github.com/betagouv/publicodes/wiki), qui est par
ailleurs inutilisé.

View File

@ -1,23 +1,24 @@
Ce repo contient :
- Le code source du site [mon-entreprise.fr](https://mon-entreprise.fr)
- La documentation et le code source du langage [publicodes](https://publi.codes)
- Les [règles publicodes](https://github.com/betagouv/mon-entreprise/tree/master/modele-social) pour le calcul des cotisations sociales, des impôts et des droits sociaux.
Ce repo contient :
- Le code source du site [mon-entreprise.fr](https://mon-entreprise.fr)
- La documentation et le code source du langage [publicodes](https://publi.codes)
- Les [règles publicodes](https://github.com/betagouv/mon-entreprise/tree/master/modele-social) pour le calcul des cotisations sociales, des impôts et des droits sociaux.
## <a href="https://mon-entreprise.fr"><img src="https://mon-entreprise.fr/images/logo.svg" alt="mon-entreprise.fr" width="200"/></a>
[![Statut déploiement](https://github.com/betagouv/mon-entreprise/actions/workflows/deploy.yaml/badge.svg?branch=master)](https://github.com/betagouv/mon-entreprise/actions/workflows/deploy.yaml?query=branch%3Amaster++)&nbsp;
[![Statut test](https://github.com/betagouv/mon-entreprise/actions/workflows/test.yaml/badge.svg?branch=master)](https://github.com/betagouv/mon-entreprise/actions/workflows/test.yaml?query=branch%3Amaster++)
Site développé en partenariat avec l'Urssaf, qui a pour mission d'accompagner des créateurs dentreprise dans le développement de leur activité.
Site développé en partenariat avec l'Urssaf, qui a pour mission d'accompagner des créateurs dentreprise dans le développement de leur activité.
Il propose notamment des simulateurs de cotisations sociales très complets, basés sur le language déclaratif publicodes. On peut ainsi calculer le coût d'une embauche, un salaire net après impôt, ses revenus d'auto-entrepreneur ou encore ceux d'un dirigeant de SASU ou d'indépendant
Il propose notamment des simulateurs de cotisations sociales très complets, basés sur le language déclaratif publicodes. On peut ainsi calculer le coût d'une embauche, un salaire net après impôt, ses revenus d'auto-entrepreneur ou encore ceux d'un dirigeant de SASU ou d'indépendant
> 🧮 [Voir la liste des simulateurs](https://mon-entreprise.fr/simulateurs)
Les développeurs ont la possibilité d'intégrer ces simulateurs sur d'autres sites, ou de réutiliser les règles pour effectuer leur propre calculs.
> 🧰 [Voir les outils à disposition des développeurs](https://mon-entreprise.fr/int%C3%A9gration)
## <a href="https://publi.codes"><img src="https://mon-entreprise.fr/images/logo-publicodes.png" alt="Publicodes" width="200"/></a>
[![Npm version](https://img.shields.io/npm/v/publicodes)](https://www.npmjs.com/package/publicodes)
@ -25,16 +26,14 @@ Les développeurs ont la possibilité d'intégrer ces simulateurs sur d'autres s
Publicodes est un langage déclaratif pour encoder les algorithmes d'intérêt public. Il permet de réaliser des calculs généraux tout en fournissant une explication permettant de comprendre et de documenter ces calculs.
Publicode est adapté pour modéliser des domaines métiers complexes pouvant être décomposés en règles élémentaires simples (comme la législation socio-fiscale, un bilan carbone, un estimateur de rendement locatif, etc.). Il propulse les simulateurs de mon-entreprise.fr et ceux de [datagir.ademe.fr](https://datagir.ademe.fr/).
Publicodes est adapté pour modéliser des domaines métiers complexes pouvant être décomposés en règles élémentaires simples (comme la législation socio-fiscale, un bilan carbone, un estimateur de rendement locatif, etc.). Il propulse les simulateurs de mon-entreprise.fr et ceux de [datagir.ademe.fr](https://datagir.ademe.fr/).
> 📖 [Voir la documentation](https://publi.codes)
## Contribuer
Si vous souhaitez contribuer à l'un des deux projet, rendez-vous sur [CONTRIBUTING.md](./CONTRIBUTING.md).
## 🇬🇧 English users
This repository powers [mycompanyinfrance.fr](https://mycompanyinfrance.fr) and [mon-entreprise.fr](https://mon-entreprise.fr) and [publi.codes](https://publi.codes).
@ -48,4 +47,3 @@ The website will run well on modern browsers. Internet Explorer is not supported
This compatibility is tested thanks to [BrowserStack](http://browserstack.com/)'s free open source program.
![Logo de Browserstack, notre solution de tests manuels](https://i.imgur.com/dQwLjXA.png)

View File

@ -113,7 +113,7 @@
"test": "yarn test:file \"./{,!(node_modules)/**/}!(webpack).test.{js,ts}\"",
"test:file": "yarn mocha-webpack --webpack-config ./webpack.dev.js --include test/componentTestSetup.js --require mock-local-storage --require test/helpers/browser.js",
"test:bundlesize": "bundlesize",
"test:dev-e2e:publicode": "cypress open --browser chromium --config baseUrl=http://localhost:8080/publicodes,integrationFolder=cypress/integration/publi.codes",
"test:dev-e2e:publicodes": "cypress open --browser chromium --config baseUrl=http://localhost:8080/publicodes,integrationFolder=cypress/integration/publi.codes",
"test:dev-e2e:mon-entreprise": "cypress open --browser chromium",
"test:dev-e2e:mycompanyinfrance": "cypress open --browser chromium --config baseUrl=http://localhost:8080/infrance",
"i18n:rules:check": "node scripts/i18n/check-missing-rule-translation.js",

View File

@ -10,10 +10,10 @@ import './Notifications.css'
import { Markdown } from './utils/markdown'
import { ScrollToElement } from './utils/Scroll'
// To add a new notification to a simulator, you should create a publicode rule
// To add a new notification to a simulator, you should create a publicodes rule
// with the "type: notification" attribute. The display can be customized with
// the "sévérité" attribute. The notification will only be displayed if the
// publicode rule is applicable.
// publicodes rule is applicable.
type Notification = {
dottedName: RuleNode['dottedName']
description: RuleNode['rawNode']['description']

View File

@ -8,7 +8,7 @@
<0>Oui</0>: <0>Yes</0>
A quoi servent mes cotisations ?: What's included in my contributions?
Accueil: Home
Afficher la description publicode: Display publicode description
Afficher la description publicodes: Display publicodes description
Aide à la déclaration de revenu: Income tax return assistance
Aide à la déclaration de revenus au titre de l'année 2019: Help with your 2019 income tax return
Aides Covid-19: Covid-19 Aids
@ -955,7 +955,7 @@ pages:
library: <0>Using the calculation engine</0><1>The entire socio-fiscal
calculation engine developed by Urssaf, freely available in the form of
an NPM library.</1>
publicode: <0>Publicodes</0><1>Our tools are powered by Publicodes, a new
publicodes: <0>Publicodes</0><1>Our tools are powered by Publicodes, a new
language for encoding "explainable" algorithms.</1>
code:
description: "Here is the code to copy and paste on your site:"

View File

@ -101,7 +101,7 @@ export default function Options() {
href="https://publi.codes"
>
<div className="ui__ big box-icon">{emoji('📚')}</div>
<Trans i18nKey="pages.développeurs.choice.publicode">
<Trans i18nKey="pages.développeurs.choice.publicodes">
<h3>Publicodes</h3>
<p className="ui__ notice">
Nos outils sont propulsés par Publicodes, un nouveau langage pour

View File

@ -4,7 +4,7 @@ import { uniq } from 'ramda'
import rawRules from 'modele-social'
import unitsTranslations from '../source/locales/units.yaml'
it('use unit that exists in publicode', () => {
it('use unit that exists in publicodes', () => {
const rules = parsePublicodes(rawRules)
const units = uniq(
Object.keys(rules).reduce(

View File

@ -1,8 +1,8 @@
Publicode est un langage déclaratif pour encoder les algorithmes d'intérêt
Publicodes est un langage déclaratif pour encoder les algorithmes d'intérêt
public. Il permet de réaliser des calculs généraux tout en fournissant une
explication permettant de comprendre et de documenter ces calculs.
Publicode est adapté pour modéliser des domaines métiers complexes pouvant être
Publicodes est adapté pour modéliser des domaines métiers complexes pouvant être
décomposés en règles élémentaires simples (comme la [législation socio-fiscale](https://github.com/betagouv/mon-entreprise/tree/master/publicodes),
[un bilan carbone](https://github.com/laem/futureco-data/blob/master/co2.yaml),
un estimateur de rendement locatif, etc.).

View File

@ -1,7 +1,7 @@
/*
Les mécanismes sont testés dans mécanismes/ comme le sont les variables
directement dans la base Publicode. On construit dans chaque fichier une base
Publicode autonome, dans laquelle intervient le mécanisme à tester, puis on
directement dans la base Publicodes. On construit dans chaque fichier une base
Publicodes autonome, dans laquelle intervient le mécanisme à tester, puis on
teste idéalement tous ses comportements sans en faire intervenir d'autres.
*/

View File

@ -1,9 +1,9 @@
# Principes de base
La syntaxe de Publicode est basée sur le langage
La syntaxe de Publicodes est basée sur le langage
[Yaml](https://en.wikipedia.org/wiki/YAML).
Un fichier Publicode contient une liste de _règles_ identifiées par leur _nom_ et
Un fichier Publicodes contient une liste de _règles_ identifiées par leur _nom_ et
possédant une _valeur_ :
```yaml
@ -51,7 +51,7 @@ prix total: nombre de repas * prix d'un repas + frais de réservation
# La formule de "prix total" est invalide.
```
Dans l'exemple ci-dessus, Publicode détecte une erreur car les termes de
Dans l'exemple ci-dessus, Publicodes détecte une erreur car les termes de
l'addition ont des unités incompatibles : d'un côté on a des `€` et de l'autre
des `€/repas`.
@ -64,7 +64,7 @@ prix total: nombre de repas * (prix d'un repas + frais de réservation)
> **Attention :** Il ne faut pas insérer d'espace autour de la barre oblique dans
> les unités, l'unité `€ / mois` doit être notée `€/mois`.
Publicode convertit automatiquement les unités si besoin.
Publicodes convertit automatiquement les unités si besoin.
```yaml
salaire: 1500 €/mois
@ -157,7 +157,7 @@ ticket resto:
## Conditions booléennes
Publicode supporte des opérateurs booléens basiques.
Publicodes supporte des opérateurs booléens basiques.
```yaml
âge: 17 ans
@ -281,7 +281,7 @@ particulières et modifier la définition des règles générales pour prendre e
compte ces particularités pose des problèmes de maintenabilité de la base de
règles.
Publicode dispose d'un mécanisme de remplacement qui permet d'amender n'importe
Publicodes dispose d'un mécanisme de remplacement qui permet d'amender n'importe
quelle règle existante sans avoir besoin de la modifier :
```yaml

View File

@ -1,6 +1,6 @@
## Installation ![béta](https://img.shields.io/badge/-beta-blue)
Publicode est distribué sous la forme d'une librairie
Publicodes est distribué sous la forme d'une librairie
[Node.js](https://nodejs.org/fr/) permettant de compiler un jeu de règles
publicodes et de l'évaluer dans une situation donnée.
@ -33,8 +33,8 @@ dépenses primeur:
- prix . avocat * 3 avocat
`
// On initialise un moteur en lui donnant le publicode.
// Ce publicode va être parsé
// On initialise un moteur en lui donnant le publicodes.
// Ce publicodes va être parsé
const engine = new Engine(rules)
```
@ -106,7 +106,7 @@ console.log(
### Évaluation d'expressions
La fonction `evaluate` permet d'évaluer des expressions publicode complètes :
La fonction `evaluate` permet d'évaluer des expressions publicodes complètes :
```js
// On va au marché une fois par semaine, amortissons la dépense sur 7 jours
@ -116,7 +116,7 @@ console.log(`J'ai dépensé ${formatValue(depensesParJour)}.`)
### Conversion d'unité
Publicode permet de réaliser des conversions d'unités. Pour celà il faut
Publicodes permet de réaliser des conversions d'unités. Pour celà il faut
indiquer l'unité désirée via le mécanisme [`unité`](https://publi.codes/documentation/mécanismes#unité) :
```js
@ -132,7 +132,7 @@ console.log(`J'ai dépensé ${formatValue(depensesParMois)}.`)
### Variables manquantes
Publicode calcule automatiquement les dépendances de chaque règle. Si la
Publicodes calcule automatiquement les dépendances de chaque règle. Si la
valeur d'une dépendance est manquante et ne permet pas de faire le calcul, elle
apparaîtra dans la propriété `missingVariables` :
@ -146,7 +146,7 @@ y:
console.log(missingYEngine.evaluate('x').missingVariables)
```
Cette information est utile pour intégrer publicode à votre application.
Cette information est utile pour intégrer publicodes à votre application.
Il est aussi possible d'utiliser des valeurs par défaut. Dans ce cas la règle
sera calculée avec la valeur par défaut de sa dépendance, mais cette dernière

View File

@ -1,52 +0,0 @@
{
"name": "publicode-react",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"publicodes": "../../core/publicodes-1.0.0-beta.15.tgz",
"publicodes-react": "../../ui-react/publicodes-react-1.0.0-beta.15.tgz",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"web-vitals": "^1.0.1"
},
"scripts": {
"preinstall": "cd ../../core && npm pack && cd ../ui-react && npm pack",
"refresh-publicodes": "yarn preinstall && yarn upgrade publicodes publicodes-react",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"msw": "^0.28.1"
},
"jest": {
"moduleNameMapper": {
"CO2-douche.publicodes.yaml$": "<rootDir>/__mocks__/CO2-douche.publicodes.yaml.js"
}
}
}

View File

@ -0,0 +1,52 @@
{
"name": "publicodes-react",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"publicodes": "../../core/publicodes-1.0.0-beta.15.tgz",
"publicodes-react": "../../ui-react/publicodes-react-1.0.0-beta.15.tgz",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"web-vitals": "^1.0.1"
},
"scripts": {
"preinstall": "cd ../../core && npm pack && cd ../ui-react && npm pack",
"refresh-publicodes": "yarn preinstall && yarn upgrade publicodes publicodes-react",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"msw": "^0.28.1"
},
"jest": {
"moduleNameMapper": {
"CO2-douche.publicodes.yaml$": "<rootDir>/__mocks__/CO2-douche.publicodes.yaml.js"
}
}
}

View File

@ -1,19 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Example site for publicode & publicode-react"
/>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Example site for publicodes & publicodes-react"
/>
<!--
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<!--
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
@ -22,12 +22,12 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Publicode demo</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
<title>Publicodes demo</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
@ -37,5 +37,5 @@
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</body>
</html>

View File

@ -11,7 +11,7 @@ douche . fréquence:
par défaut: 1 douche/jour
suggestions:
1 par jour: 1 douche/jour
5 par semaine: 5 douche/semaine * 52 semaines/an # Publicode ne gère pas encore nativement l'unité semaine
5 par semaine: 5 douche/semaine * 52 semaines/an # Publicodes ne gère pas encore nativement l'unité semaine
2 par jour: 2 douche/jour

View File

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -8,7 +8,7 @@ import { useHistory, useLocation } from 'react-router-dom'
import styled from 'styled-components'
const EXAMPLE_CODE = `
# Bienvenue dans le bac à sable du langage publicode !
# Bienvenue dans le bac à sable du langage publicodes !
# Pour en savoir plus sur le langage :
# => https://publi.codes/documentation/principes-de-base

View File

@ -44,7 +44,7 @@ export default function RuleSource({ engine, dottedName }: Props) {
]
const rule = engine.evaluate(engine.getRule(dottedName))
// When we import a rule in the Publicode Studio, we need to provide a
// When we import a rule in the Publicodes Studio, we need to provide a
// simplified definition of its dependencies to avoid undefined references.
const dependenciesValues = dissoc(
dottedName,