📦 Publicodes v1.0.0-beta.14
parent
3ea5f4e311
commit
5a1c204eb6
|
@ -1,2 +1,3 @@
|
|||
node_modules
|
||||
dist
|
||||
publicodes/example/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 l’hé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 l’hé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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
SKIP_PREFLIGHT_CHECK=true
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue