Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: ajout d'une doc static pour le schéma #37

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: publish_doc

on:
push:
branches:
- hlecuyer/feat/generate-automatic-documentation

permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure Git Credentials
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV


- uses: actions/cache@v4
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install mkdocs-material


- run: mkdocs gh-deploy --force
16 changes: 5 additions & 11 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,8 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: install build dependencies
run: pip install build
- name: build dist
run: python -m build
- name: publish
uses: pypa/[email protected]
with:
password: ${{ secrets.PYPI_API_TOKEN }}
- uses: astral-sh/setup-uv@v5
- run: uv build
- run: uv publish
env:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
10 changes: 7 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.2.2
rev: v0.9.3
hooks:
- id: ruff
- id: ruff-format
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.5.24
hooks:
- id: uv-lock
- repo: local
hooks:
- id: compile-schema
name: compile-schema
language: python
entry: data-inclusion-schema
language: system
entry: uv run data-inclusion-schema
always_run: true
22 changes: 9 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,19 @@

## Prérequis

### `python`

Le projet utilise `python3.10`.

[`pyenv`](https://github.com/pyenv/pyenv-installer) est un bon moyen d'installer python localement.
* `uv` : pour la gestion de l'environnement python, les dépendances, le build. Voir [les instructions d'installation](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer).

## Installation

```bash
# Cloner le dépôt
git clone [email protected]:gip-inclusion/data-inclusion-schema.git

# Initialiser un virtual env à la racine du repo
python3.10 -m venv .venv && source .venv/bin/activate && pip install -U pip setuptools wheel && pip install -e '.[dev]'
# Initialiser l'environnement
uv sync

# Installer les outils de qualité de codes
pre-commit install
uv run pre-commit install
```

## Proposer une modification
Expand Down Expand Up @@ -54,21 +50,21 @@ src/

### 2. Regénérer le json schéma

Lancer la commande suivante à la racine du repo.
Lancer la commande suivante à la racine du repo :

```bash
data-inclusion-schema
uv run data-inclusion-schema
```

### 3. Ouvrir une PR avec les changements

Ajouter ses modifications au [CHANGELOG](CHANGELOG.md) dans la partie a venir
Ajouter ses modifications au [CHANGELOG](CHANGELOG.md) dans la section "à venir".


## Faire une release

1. Sur une PR:
- modif du numéro de version du package sur [pyproject.toml](pyproject.toml) et [schemas.yml](schemas.yml)
- modif du numéro de version du package sur [pyproject.toml](pyproject.toml)
- Passer les changements de ## À venir dans la section de la nouvelle release
2. `git tag {my-tag} & git tag -f latest & git push --tags`
3. release sur git hub en pointant sur le tag
3. release sur git hub en pointant sur le tag
Binary file added docs/assets/DataInclusion-Monogramme-Blanc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/DataInclusion-Monogramme-Couleur.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Cette documentation dépôt contient le schéma de l'offre d'insertion. Il est issu de la collaboration d'acteurs de l'insertion. Il comprend deux éléments principaux:

- [Structure](structure.md)
- [Service](service.md)

## Contexte

La démarche a été initiée par l'équipe [Dora](https://beta.gouv.fr/startups/dora.html), portée le GIP Plateforme de l'inclusion.

Il a été constaté l'existence d'une multitude de portails en ligne ou simulateurs, mais pas de langage commun pour décrire l’offre d’insertion et peu de partage des informations. La diffusion des aides et des dispositifs en est diminuée. Des informations sur les aides ou dispositifs deviennent obsolètes. Les efforts de saisie et de développement sont multipliés.

Ce schéma a été créé avec la collaboration des acteurs de l'insertion afin d'harmoniser les données et de permettre l'intéropérabilité entre les différents acteurs et leurs outils.

## Le schéma

Le schéma définit les structures de l'insertion et devraient à terme inclure les services proposés par ces structures. Il comprend les informations essentielles permettant de décrire l'offre d'insertion et la réutilisation par les acteurs de l'insertion.

Le schéma est pour le moment formalisé dans le format JSON schema. Nous veillions néanmoins à maintenir la possibilité de représenter les données au format csv.


## Consolidation

data.inclusion réalise une consolidation et publie la base consolidée, aux formats json et csv, sur [data.gouv.fr](https://www.data.gouv.fr/en/datasets/referentiel-de-loffre-dinsertion-liste-des-structures-et-services-dinsertion/).

## Aide à la saisie

Les structures qui partagent leurs données via l'outil [Dora](https://dora.inclusion.beta.gouv.fr/) sont incluses par défaut dans la base consolidée.

## Contribuer

Vous pouvez créer un [nouveau ticket](https://github.com/gip-inclusion/data-inclusion-schema/issues/new) sur le dépôt ouvert du schéma pour proposer une modification ou une amélioration ou poser une question.
40 changes: 40 additions & 0 deletions docs/model.md.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
!!! info "Les champs marqués d'une astérisque (*) sont obligatoires."

{% for property_name, property_schema in schema.properties.items() %}

### `{{ property_name }}`{{ ' *' if property_name in schema.required }}

{{ property_schema.description|default('', boolean=True) }}

{{ '!!! warning "Ce champ est déprécié."' if property_schema.deprecated }}

Type : `{{ get_property_type_data(property_schema).type }}`

{% set property_type_data = get_property_type_data(property_schema) %}

{% if property_type_data.format %}Format : `{{ property_type_data.format }}`{% endif %}

{% if property_type_data.regex %}Regex : `{{ property_type_data.regex }}`{% endif %}

{% if property_type_data.referentiel %}
{% set referentiel = schema.get("$defs").get(property_type_data.referentiel) %}
{% if referentiel.enum|length <= 5 %}
Valeurs acceptées : `"{{ referentiel.enum|join('", "') }}"`
{% else %}
Valeurs acceptées : voir les [{{ referentiel.title }}](../referentiels/{{ property_type_data.referentiel_file_name }}/)
{% endif %}
{% endif %}

{% if property_schema.examples %}
Exemples :

```json
{% for example in property_schema.examples -%}
{{ example|tojson }}
{% endfor %}
```
{% endif %}


---
{% endfor %}
12 changes: 12 additions & 0 deletions docs/referentiel.md.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{% for referential_item in referential %}
### `{{ referential_item.value }}`

**Label :** {{ referential_item.label }}

{% if referential_item.description %}
!!! abstract "Description"

{{ referential_item.description }}
{% endif %}

{% endfor %}
Loading