diff --git a/.github/workflows/publish-publicodes.yaml b/.github/workflows/publish-publicodes.yaml index 6f0c7f383..36fd22e7f 100644 --- a/.github/workflows/publish-publicodes.yaml +++ b/.github/workflows/publish-publicodes.yaml @@ -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 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe2e70b36..c785e8c03 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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é. diff --git a/README.md b/README.md index 6afb190d0..3c5e83d62 100644 --- a/README.md +++ b/README.md @@ -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. ## [![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++) [![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 d’entreprise dans le développement de leur activité. +Site développé en partenariat avec l'Urssaf, qui a pour mission d'accompagner des créateurs d’entreprise 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) - - ## [![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) - diff --git a/mon-entreprise/package.json b/mon-entreprise/package.json index 082b67898..bd0af5bad 100644 --- a/mon-entreprise/package.json +++ b/mon-entreprise/package.json @@ -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", diff --git a/mon-entreprise/source/components/Notifications.tsx b/mon-entreprise/source/components/Notifications.tsx index 7fc85e604..bbcf00355 100644 --- a/mon-entreprise/source/components/Notifications.tsx +++ b/mon-entreprise/source/components/Notifications.tsx @@ -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'] diff --git a/mon-entreprise/source/locales/ui-en.yaml b/mon-entreprise/source/locales/ui-en.yaml index 90b51bdcf..27f61cf6f 100644 --- a/mon-entreprise/source/locales/ui-en.yaml +++ b/mon-entreprise/source/locales/ui-en.yaml @@ -8,7 +8,7 @@ <0>Oui0>: <0>Yes0> 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 engine0><1>The entire socio-fiscal calculation engine developed by Urssaf, freely available in the form of an NPM library.1> - publicode: <0>Publicodes0><1>Our tools are powered by Publicodes, a new + publicodes: <0>Publicodes0><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:" diff --git a/mon-entreprise/source/pages/integration/Options.tsx b/mon-entreprise/source/pages/integration/Options.tsx index 1c25cb0ca..b48c78040 100644 --- a/mon-entreprise/source/pages/integration/Options.tsx +++ b/mon-entreprise/source/pages/integration/Options.tsx @@ -101,7 +101,7 @@ export default function Options() { href="https://publi.codes" >
Nos outils sont propulsés par Publicodes, un nouveau langage pour
diff --git a/mon-entreprise/test/unit-translations.test.js b/mon-entreprise/test/unit-translations.test.js
index 0b32fd0d5..c4da56cbf 100644
--- a/mon-entreprise/test/unit-translations.test.js
+++ b/mon-entreprise/test/unit-translations.test.js
@@ -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(
diff --git a/publicodes/README.md b/publicodes/README.md
index 8c84c8d4f..5024defd2 100644
--- a/publicodes/README.md
+++ b/publicodes/README.md
@@ -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.).
diff --git a/publicodes/core/test/mecanisms.test.js b/publicodes/core/test/mecanisms.test.js
index 2c163991c..38079c214 100644
--- a/publicodes/core/test/mecanisms.test.js
+++ b/publicodes/core/test/mecanisms.test.js
@@ -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.
*/
diff --git a/publicodes/docs/principes-de-base.md b/publicodes/docs/principes-de-base.md
index 187f453f3..175b7ac09 100644
--- a/publicodes/docs/principes-de-base.md
+++ b/publicodes/docs/principes-de-base.md
@@ -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
diff --git a/publicodes/docs/se-lancer.md b/publicodes/docs/se-lancer.md
index 49b124c47..c928fa529 100644
--- a/publicodes/docs/se-lancer.md
+++ b/publicodes/docs/se-lancer.md
@@ -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
diff --git a/publicodes/example/publicode-react/package.json b/publicodes/example/publicode-react/package.json
deleted file mode 100644
index e2b48009a..000000000
--- a/publicodes/example/publicode-react/package.json
+++ /dev/null
@@ -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$": "