📦 Publicodes v1.0.0-beta.14

pull/1492/head
Johan Girod 2021-04-15 10:43:56 +02:00
parent 3ea5f4e311
commit 5a1c204eb6
12 changed files with 69 additions and 58 deletions

View File

@ -1,2 +1,3 @@
node_modules
dist
publicodes/example/

View File

@ -6,7 +6,7 @@ on:
jobs:
test:
if: contains(join(github.event.commits.*.message, ' | '), '📦 Publicodes v1.')
if: contains(join(github.event.commits.*.message, ' | '), '📦 Publicodes v1.0.0-beta.')
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
@ -14,8 +14,6 @@ jobs:
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}-v2
- if: "!contains(join(github.event.commits.*.modified.*, 'publicodes/CHANGELOG.md')"
run: echo "::error file={name},line={line},col={col}::{message}"
- run: yarn install --frozen-lockfile
- working-directory: ./publicodes/example/publicode-react
run: |
@ -35,6 +33,6 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_SECRET }}
- working-directory: ./publicodes/core
run: npm publish ${{ github.ref != 'refs/heads/master' && '--dry-run' || ''}}
run: npm publish ${{ github.ref != 'refs/heads/master' && '--dry-run' || ''}} --tag next
- working-directory: ./publicodes/ui-react
run: npm publish ${{ github.ref != 'refs/heads/master' && '--dry-run' || ''}}
run: npm publish ${{ github.ref != 'refs/heads/master' && '--dry-run' || ''}} --tag next

View File

@ -18,15 +18,15 @@ L'application est écrite en JavaScript, elle est exécuté uniquement côté cl
Nous utilisons :
- [TypeScript](https://www.typescriptlang.org) pour ajouter un système de typage à notre code JavaScript. Le typage n'est pas utilisé partout et il n'est pas obligatoire de le prendre en compte pour contribuer.
- [Yarn](https://yarnpkg.com/fr) pour la gestion des dépendances (à la place de NPM qui est souvent utilisé dans les applications JavaScript)
- [React](https://reactjs.org) pour la gestion de l'interface utilisateur
- [Redux](https://redux.js.org) pour gérer le “state” de l'application côté client
- [Prettier](https://prettier.io/) pour formater le code source, l'idéal est de configurer votre éditeur de texte pour que les fichiers soit formatés automatiquement quand vous sauvegardez un fichier. Si vous utilisez [VS Code](https://code.visualstudio.com/) cette configuration est automatique.
- [Webpack](https://webpack.js.org) pour le “bundling”
- [Eslint](http://eslint.org) qui permet par exemple d'éviter de garder des variables inutilisées
- [Ramda](https://ramdajs.com) comme libraire d'utilitaires pour manipuler les listes/objects/etc (c'est une alternative à lodash ou underscore)
- [Mocha](https://mochajs.org), [Jest](https://jestjs.io) et [Cypress](https://www.cypress.io) pour les l'execution des tests. Plus d'informations dans la section consacrée aux tests.
- [TypeScript](https://www.typescriptlang.org) pour ajouter un système de typage à notre code JavaScript. Le typage n'est pas utilisé partout et il n'est pas obligatoire de le prendre en compte pour contribuer.
- [Yarn](https://yarnpkg.com/fr) pour la gestion des dépendances (à la place de NPM qui est souvent utilisé dans les applications JavaScript)
- [React](https://reactjs.org) pour la gestion de l'interface utilisateur
- [Redux](https://redux.js.org) pour gérer le “state” de l'application côté client
- [Prettier](https://prettier.io/) pour formater le code source, l'idéal est de configurer votre éditeur de texte pour que les fichiers soit formatés automatiquement quand vous sauvegardez un fichier. Si vous utilisez [VS Code](https://code.visualstudio.com/) cette configuration est automatique.
- [Webpack](https://webpack.js.org) pour le “bundling”
- [Eslint](http://eslint.org) qui permet par exemple d'éviter de garder des variables inutilisées
- [Ramda](https://ramdajs.com) comme libraire d'utilitaires pour manipuler les listes/objects/etc (c'est une alternative à lodash ou underscore)
- [Mocha](https://mochajs.org), [Jest](https://jestjs.io) et [Cypress](https://www.cypress.io) pour les l'execution des tests. Plus d'informations dans la section consacrée aux tests.
### Démarrage
@ -51,33 +51,32 @@ Pour activer le tracing Redux:
REDUX_TRACE=true yarn start
```
### Messages de commit
A mettre sans retenue dans les messages de commit :
https://github.com/atom/atom/blob/master/CONTRIBUTING.md#git-commit-messages
- 🎨 `:art:` when working on the app's visual style
- 🐎 `:racehorse:` when improving performance
- 📝 `:memo:` when writing docs
- 🐛 `:bug:` when fixing a bug
- 🔥 `:fire:` when removing code or files
- 💚 `:green_heart:` when fixing the CI build
- ✅ `:white_check_mark:` when adding tests
- ⬆️ `:arrow_up:` when upgrading dependencies
- :sparkles: `:sparkles:` when formatting, renaming, reorganizing files
- 🎨 `:art:` when working on the app's visual style
- 🐎 `:racehorse:` when improving performance
- 📝 `:memo:` when writing docs
- 🐛 `:bug:` when fixing a bug
- 🔥 `:fire:` when removing code or files
- 💚 `:green_heart:` when fixing the CI build
- `:white_check_mark:` when adding tests
- ⬆️ `:arrow_up:` when upgrading dependencies
- :sparkles: `:sparkles:` when formatting, renaming, reorganizing files
Et ceux spécifiques au projet :
- :gear: `:gear:` pour une contribution au moteur qui traite les YAML
- :hammer: `:hammer:` pour une contribution à la base de règles
- :calendar: `:calendar:` pour un changement de règle du à une évolution temporelle (en attendant mieux)
- :chart_with_upwards_trend: `:chart_with_upwards_trend:` pour une amélioration du tracking
- :alien: `:alien:` pour ajouter des traductions
- :wheelchair: `:wheelchair:` pour corriger les problèmes liés à l'accessibilité
- :fountain_pen: `:fountain_pen:` pour séparer les commits liés à la modification du contenu
- :mag: `:mag:` pour les modifications liées au référencement naturel
- :gear: `:gear:` pour une contribution au moteur qui traite les YAML
- :hammer: `:hammer:` pour une contribution à la base de règles
- :calendar: `:calendar:` pour un changement de règle du à une évolution temporelle (en attendant mieux)
- :chart_with_upwards_trend: `:chart_with_upwards_trend:` pour une amélioration du tracking
- :alien: `:alien:` pour ajouter des traductions
- :wheelchair: `:wheelchair:` pour corriger les problèmes liés à l'accessibilité
- :fountain_pen: `:fountain_pen:` pour séparer les commits liés à la modification du contenu
- :mag: `:mag:` pour les modifications liées au référencement naturel
### Tests
@ -133,10 +132,10 @@ N'oubliez pas de vérifier sur le diff que rien n'est choquant.
### CI/CD
- [CircleCI](https://circleci.com/) s'occupe de faire tourner les builds et
tests.
- [Netlify](https://www.netlify.com/), s'occupe de lhébergement du site sur Internet
sur internet avec gestion des DNS.
- [CircleCI](https://circleci.com/) s'occupe de faire tourner les builds et
tests.
- [Netlify](https://www.netlify.com/), s'occupe de lhébergement du site sur Internet
sur internet avec gestion des DNS.
### Analyse des bundles
@ -144,15 +143,15 @@ La commande `yarn run build:analyse-bundle` gènere une visualisation interactiv
contenu packagé, cf.
[webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer)
## Développement de modèles Publicodes
## Développement de modèles Publicodes
### Traduction des normes (lois) en règles Publicodes
Checklist:
- [ ] Lire les articles de vulgarisation (sur le site de l'URSSAF, des impôts, etc.).
- [ ] Utiliser un moteur de recherche spécialisé, comme [RFPaye](https://rfpaye.grouperf.com/).
- [ ] [Lire les normes][wiki normes] et noter leurs référence dans les règles Publicodes.
- [ ] Lire les articles de vulgarisation (sur le site de l'URSSAF, des impôts, etc.).
- [ ] Utiliser un moteur de recherche spécialisé, comme [RFPaye](https://rfpaye.grouperf.com/).
- [ ] [Lire les normes][wiki normes] et noter leurs référence dans les règles Publicodes.
[wiki normes]: https://github.com/betagouv/mon-entreprise/wiki/Comment-lire-les-normes-(la-loi)-efficacement-pour-r%C3%A9diger-des-r%C3%A8gles-Publicodes%3F
@ -160,10 +159,10 @@ Checklist:
Pour tester les règles, il est recommandé de:
- faire tourner un simulateur et vérifier à la main l'adéquation des règles avec les normes
traduites ;
- créer des cas de tests de non-régression sous la forme de nouveaux snapshots (cf.
`mon-entreprise/test/regressions`).
- faire tourner un simulateur et vérifier à la main l'adéquation des règles avec les normes
traduites ;
- créer des cas de tests de non-régression sous la forme de nouveaux snapshots (cf.
`mon-entreprise/test/regressions`).
## Documentation
@ -183,3 +182,16 @@ s'avérer assez abrupt.
Essayez plutôt de jeter un oeil [aux tests](./publicodes/test/mécanismes/expressions.yaml)
dans un premier temps, puis au [mécanismes en
place](./publicodes/source/mecanisms).
## Publier une nouvelle version des paquets publicodes
Voici la marche à suivre pour publier une nouvelle version :
1. Renseigner les modifications dans publicodes/CHANGELOG.md
2. Remplacer les références à la précédente version par la nouvelle version dans les packages.json
3. Ajouter tous les changement dans un commit avec le message suivant :
```
📦 Publicodes v1.0.0-beta.<n>
```
> **Important** Le message doit être exactement celui-ci (emoji compris), car le script de déploiement automatique sur le CI se base sur ce dernier.
4. Laisser faire le CI, une fois le commit mergé sur master, le paquet sera déployé effectivement

View File

@ -16,11 +16,11 @@
"dist/index.js"
],
"devDependencies": {
"publicodes": "^1.0.0-beta.13",
"publicodes": "^1.0.0-beta.14",
"yaml": "^1.10.0"
},
"peerDependencies": {
"publicodes": "^1.0.0-beta.13"
"publicodes": "^1.0.0-beta.14"
},
"scripts": {
"build": "node build.js",

View File

@ -70,8 +70,8 @@
"fuse.js": "5.2.1",
"iframe-resizer": "^4.1.1",
"modele-social": "^0.2.0",
"publicodes": "^1.0.0-beta.13",
"publicodes-react": "^1.0.0-beta.13",
"publicodes": "^1.0.0-beta.14",
"publicodes-react": "^1.0.0-beta.14",
"ramda": "^0.27.0",
"react": "^17.0.0",
"react-color": "^2.14.0",

View File

@ -1,6 +1,6 @@
{
"name": "publicodes",
"version": "1.0.0-beta.13",
"version": "1.0.0-beta.14",
"description": "A declarative language for encoding public algorithm",
"main": "dist/index.js",
"types": "dist/types/index.d.ts",

View File

@ -55,11 +55,11 @@ const engine = new Engine(rules)
> - **ESModule sans npm install** (`<script type="module">` et deno)
> ```js
> import Engine from 'https://unpkg.com/publicodes@1.0.0-beta.13/esm/index.min.js'
> import Engine from 'https://unpkg.com/publicodes@next/esm/index.min.js'
> ```
> - **`<script>` dans navigateur**
> ```html
> <script src="https://unpkg.com/publicodes@1.0.0-beta.13/dist/index.min.js"></script>
> <script src="https://unpkg.com/publicodes@next/dist/index.min.js"></script>
> <script>
> const Engine = window.publicodes.default
> </script>

View File

@ -0,0 +1 @@
SKIP_PREFLIGHT_CHECK=true

View File

@ -1,4 +1,5 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
!.env
# dependencies
/node_modules
@ -10,7 +11,6 @@
# production
/build
# misc
.DS_Store
.env.local

View File

@ -6,8 +6,8 @@
"@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.13.tgz",
"publicodes-react": "../../ui-react/publicodes-react-1.0.0-beta.13.tgz",
"publicodes": "../../core/publicodes-1.0.0-beta.14.tgz",
"publicodes-react": "../../ui-react/publicodes-react-1.0.0-beta.14.tgz",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^5.2.0",

View File

@ -2,4 +2,4 @@
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';
import '@testing-library/jest-dom'

View File

@ -1,6 +1,6 @@
{
"name": "publicodes-react",
"version": "1.0.0-beta.13",
"version": "1.0.0-beta.14",
"description": "UI to explore publicodes computations",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@ -18,8 +18,6 @@
"dependencies": {
"classnames": "^2.2.6",
"focus-trap-react": "^3.1.2",
"publicodes": "1.0.0-beta.13",
"publicodes-react": "1.0.0-beta.13",
"ramda": "^0.27.0",
"react-easy-emoji": "^1.4.0",
"react-helmet": "^6.1.0",
@ -28,6 +26,7 @@
"yaml": "^1.9.2"
},
"peerDependencies": {
"publicodes": "1.0.0-beta.14",
"react": "^17.0.2",
"react-router-dom": "^5.1.1",
"react-router-hash-link": "^1.2.2"