diff --git a/.github/ISSUE_TEMPLATE/fout-of-bug-melden.md b/.github/ISSUE_TEMPLATE/fout-of-bug-melden.md index d33eebc779..67a9d8537e 100644 --- a/.github/ISSUE_TEMPLATE/fout-of-bug-melden.md +++ b/.github/ISSUE_TEMPLATE/fout-of-bug-melden.md @@ -8,8 +8,7 @@ assignees: '' --- **Beschrijf de fout** -Leg uit wat de fout of bug is die je gevonden hebt. +Leg uit wat de fout of bug is die je gevonden hebt. **Screenshots** -Voeg eventueel een screenshot toe. - +Voeg eventueel een screenshot toe. diff --git a/.github/ISSUE_TEMPLATE/suggestie.md b/.github/ISSUE_TEMPLATE/suggestie.md index 0083579d3d..5631c89670 100644 --- a/.github/ISSUE_TEMPLATE/suggestie.md +++ b/.github/ISSUE_TEMPLATE/suggestie.md @@ -10,4 +10,3 @@ assignees: '' Omschrijving. ## Leg uit waarom dit een goede toevoeging is aan het Algoritmekader - diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 563e6bfff1..8edb2ab6ac 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,7 +3,7 @@ ## Bij welk issue hoort deze pull-request? ## Checklist before requesting a review -- [ ] Ik heb de [contributing guidelines](https://github.com/MinBZK/Algoritmekader/blob/main/CONTRIBUTING.md) van deze repository gelezen en gevolgd. +- [ ] Ik heb de [contributing guidelines](https://github.com/MinBZK/Algoritmekader/blob/main/CONTRIBUTING.md) van deze repository gelezen en gevolgd. - [ ] Ik heb mijn aanpassingen gecheckt op spelfouten. - [ ] Als ik gebruik heb gemaakt van links, dan heb ik gecheckt of deze werken. -- [ ] Ik heb gebruik gemaakt van de templates en formats van het algoritmekader. +- [ ] Ik heb gebruik gemaakt van de templates en formats van het algoritmekader. diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000000..11d4649bd9 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,45 @@ +name: continuous-integration + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + + - name: Install dependencies + run: pip install pytest pyyaml + + - name: Run tests + run: pytest tests/ + + validate: + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + + - name: Install dependencies + run: pip install pyyaml + + - name: Run validations + run: python script/validation/run_all_validations.py diff --git a/.github/workflows/linkchecker.yaml b/.github/workflows/linkchecker.yaml index 96243e0e9b..97ab888f37 100644 --- a/.github/workflows/linkchecker.yaml +++ b/.github/workflows/linkchecker.yaml @@ -4,7 +4,7 @@ on: branches: - main workflow_dispatch: - + jobs: markdown-link-check: @@ -13,4 +13,4 @@ jobs: - uses: actions/checkout@v4 - uses: gaurav-nelson/github-action-markdown-link-check@v1 with: - use-quiet-mode: yes \ No newline at end of file + use-quiet-mode: yes diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml index a72e04ad4a..473048398a 100644 --- a/.github/workflows/preview.yaml +++ b/.github/workflows/preview.yaml @@ -5,7 +5,7 @@ on: - opened - reopened - synchronize - - closed + - closed concurrency: preview-${{ github.ref }} @@ -25,31 +25,31 @@ jobs: - name: inject version run: | - sed -i 's/development/${{ steps.get_commit_hash.outputs.commit_hash }}/g' docs/version.md + sed -i 's/development/${{ steps.get_commit_hash.outputs.commit_hash }}/g' docs/version.md - name: Add url run: | echo "site_url: https://minbzk.github.io/Algoritmekader/pr-preview/pr-${{github.event.number}}" >> mkdocs.yml - uses: actions/setup-python@v5 - if: github.event.action != 'closed' + if: github.event.action != 'closed' with: python-version: 3.x cache: 'pip' - name: install dependencies - if: github.event.action != 'closed' + if: github.event.action != 'closed' run: | git config --global url."https://github-actions:${{ secrets.MATERIAL_INSIDERS_TOKEN }}@github".insteadOf ssh://git@github pip install -r requirements-prod.txt - name: build preview - if: github.event.action != 'closed' + if: github.event.action != 'closed' run: mkdocs build - uses: actions/upload-artifact@v4 - if: github.event.action != 'closed' - with: + if: github.event.action != 'closed' + with: name: AlgoritmeKaderWebsite-${{github.event.number}} path: ./site/ @@ -57,4 +57,4 @@ jobs: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' uses: rossjrw/pr-preview-action@v1 with: - source-dir: ./site/ \ No newline at end of file + source-dir: ./site/ diff --git a/.github/workflows/run-python-script.yaml b/.github/workflows/run-python-script.yaml index 625d21bdec..10a3671f64 100644 --- a/.github/workflows/run-python-script.yaml +++ b/.github/workflows/run-python-script.yaml @@ -9,7 +9,7 @@ jobs: run-python-script: if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'main' runs-on: ubuntu-latest - + steps: - uses: actions/checkout@v4 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..899e216126 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,34 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-json + - id: check-yaml + exclude: mkdocs.yml + - id: check-added-large-files + - id: check-merge-conflict +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.11.9 + hooks: + - id: ruff + - id: ruff-format +# Lokale hooks voor Algoritmekader validaties +- repo: local + hooks: + - id: algoritmekader-validaties + name: Algoritmekader validaties + description: Voert alle validatiescripts uit voor het Algoritmekader + entry: python script/validation/run_all_validations.py + language: python + pass_filenames: false + always_run: true + additional_dependencies: [pyyaml] + +ci: + autofix_prs: false + autofix_commit_msg: "Auto fix pre-commit.com hooks" + autoupdate_commit_msg: "Update .pre-commit-config.yaml" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96d6bf945a..e9dd99ac4e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,6 +9,7 @@ Allereerst, bedankt dat je de tijd hebt genomen om een bijdrage te leveren! ❤ We waarderen alle soorten bijdragen enorm. Zie die [Inhoudsopgave](#inhoudsopgave) voor verschillende manieren waarop je kan bijdragen aan het Algoritmekader. Zorg ervoor dat je de relevante hoofdstukken even leest voordat je een bijdrage levert. +Zorg ervoor dat je de relevante hoofdstukken even leest voordat je een bijdrage levert. Het zal het voor het team van het Algoritmekader een stuk makkelijker maken en de ervaring voor alle betrokkenen soepeler laten verlopen. We kijken uit naar alle bijdragen! 🎉 @@ -39,9 +40,9 @@ aan **[algoritmes@minbzk.nl](mailto:algoritmes@minbzk.nl)**. ### Maak een issue aan -Voordat je een [Issues](https://github.com/MinBZK/Algoritmekader/issues) gaat aanmaken, kan je bekijken of jouw vraag al tussen de bestaande [Issues](https://github.com/MinBZK/Algoritmekader/issues) staat. Wellicht staat er al een issue tussen die jou vraag kan beantwoorden. +Voordat je een [Issues](https://github.com/MinBZK/Algoritmekader/issues) gaat aanmaken, kan je bekijken of jouw vraag al tussen de bestaande [Issues](https://github.com/MinBZK/Algoritmekader/issues) staat. Wellicht staat er al een issue tussen die jou vraag kan beantwoorden. -Als je jouw vraag nog steeds wilt stellen, kan je een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aanmaken. +Als je jouw vraag nog steeds wilt stellen, kan je een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aanmaken. 1. Gebruik daarvoor de knop new issue. 2. Schrijf je vraag of opmerking is en geef een heldere toelichting. @@ -53,7 +54,7 @@ Als je jouw vraag nog steeds wilt stellen, kan je een [Issue](https://github.com Je kan je vragen ook altijd stellen door een mail te sturen naar **[algoritmes@minbzk.nl](mailto:algoritmes@minbzk.nl)**. ## Ik wil iets bijdragen -Er zijn verschillende manieren waarop je kan bijdragen. Zie hieronder de mogelijkheden. +Er zijn verschillende manieren waarop je kan bijdragen. Zie hieronder de mogelijkheden. > #### Ter kennisgeving > Wanneer je bijdraagt aan dit project, moet je ermee akkoord gaan dat je 100% van de inhoud hebt geschreven, dat je de benodigde rechten op de inhoud hebt en dat de inhoud die je bijdraagt mag worden geleverd onder de Code of Conduct. @@ -62,19 +63,19 @@ Er zijn verschillende manieren waarop je kan bijdragen. Zie hieronder de mogelij Voor sommige bouwblokken wordt er gewerkt met werkgroepen, om de informatie verder uit te werken. Deelname aan een werkgroep kost tijd. Werkgroepen komen regelmatig bij elkaar, en tussendoor worden bepaalde zaken uitgewerkt door werkgroepleden. Wil je op één van de onderwerpen meewerken? Stuur dan een bericht naar **[algoritmes@minbzk.nl](mailto:algoritmes@minbzk.nl)**. ### Neem deel aan een sprint review / klankbord / demo -Het team van het algoritmekader werkt in sprints van ongeveer 3 weken. Daarin werken we toe naar de volgende release van het Algoritmekader. Ongeveer eens in de 6 weken vindt er een nieuwe release plaats. Wanneer er een release is, wordt deze altijd toegelicht en gepresenteerd in een open online review / demo. Deze kan je vrijblijvend volgen. Zo blijf je op de hoogte en kun je een bijdrage leveren. [Bekijk de agenda op AI en Algoritmes Pleio](https://aienalgoritmes.pleio.nl/events) voor de komende bijeenkomsten. +Het team van het algoritmekader werkt in sprints van ongeveer 3 weken. Daarin werken we toe naar de volgende release van het Algoritmekader. Ongeveer eens in de 6 weken vindt er een nieuwe release plaats. Wanneer er een release is, wordt deze altijd toegelicht en gepresenteerd in een open online review / demo. Deze kan je vrijblijvend volgen. Zo blijf je op de hoogte en kun je een bijdrage leveren. [Bekijk de agenda op AI en Algoritmes Pleio](https://aienalgoritmes.pleio.nl/events) voor de komende bijeenkomsten. ## Ik wil een fout of bug melden -Heb je een foutje gevonden in het Algoritmekader? Dan kan je deze melden door een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aan te maken. +Heb je een foutje gevonden in het Algoritmekader? Dan kan je deze melden door een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aan te maken. -Voordat je een [Issues](https://github.com/MinBZK/Algoritmekader/issues) gaat aanmaken, kan je bekijken of jouw gevonden fout al tussen de bestaande [Issues](https://github.com/MinBZK/Algoritmekader/issues) staat. +Voordat je een [Issues](https://github.com/MinBZK/Algoritmekader/issues) gaat aanmaken, kan je bekijken of jouw gevonden fout al tussen de bestaande [Issues](https://github.com/MinBZK/Algoritmekader/issues) staat. -Als je de gevonden fout nog steeds wilt melden, kan je een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aanmaken. +Als je de gevonden fout nog steeds wilt melden, kan je een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aanmaken. 1. Gebruik daarvoor de knop new issue. -2. Beschrijf de fout duidelijk en geef een heldere toelichting. Voeg waar mogelijk een screenshot toe. +2. Beschrijf de fout duidelijk en geef een heldere toelichting. Voeg waar mogelijk een screenshot toe. 3. Het team van het Algoritmekader zal deze issue labelen als `bug` en pakt jouw issue zo snel mogelijk op. Mogelijk neemt het team van het Algoritmekader contact op voor een verduidelijking of een oplossing. - + ## Ik wil een verbetering voorstellen Heb je een suggestie of wil je een verbetering voorstellen? Dat kan gaan om een compleet nieuwe functionaliteit van de site of om kleine verbeteringen. Het volgen van onderstaande instructie helpt het team van het algoritmekader om je suggestie te begrijpen en gerelateerde suggesties te vinden. @@ -88,36 +89,35 @@ voor de meerderheid van onze gebruikers en niet slechts voor een kleine groep. ### Een issue aanmaken -Als je jouw suggestie nog steeds wilt doen, kan je een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aanmaken. +Als je jouw suggestie nog steeds wilt doen, kan je een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aanmaken. 1. Gebruik daarvoor de knop new issue. 2. Beschrijf duidelijk jouw suggestie en geef een heldere toelichting en onderbouwing waarom dit een goede toevoeging zal zijn aan het Algoritmekader 3. Het team van het Algoritmekader zal deze issue labelen als `enhancement` en pakt jouw issue zo snel mogelijk op. Mogelijk neemt het team van het Algoritmekader contact op voor een verduidelijking of een oplossing. - -> Afhankelijk van de complexiteit en het onderwerp van jouw suggestie kan het even duren voordat deze wordt opgepakt door het team van het Algoritmekader. + +> Afhankelijk van de complexiteit en het onderwerp van jouw suggestie kan het even duren voordat deze wordt opgepakt door het team van het Algoritmekader. ### Een pull-request maken -Kun je niet uit de voeten met de issues? +Kun je niet uit de voeten met de issues? Bijvoorbeeld omdat je verschillende wijzigingsvoorstellen wilt doen? Je kan ook gebruik maken van een [Fork en een Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks). -Het team van Algoritmekader bekijkt daarna jouw aanpassingen en kan bij akkoord jouw aanpassingen *mergen*. Er zijn ook andere manieren om een pull request te doen. [Meer daarover](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). +Het team van Algoritmekader bekijkt daarna jouw aanpassingen en kan bij akkoord jouw aanpassingen *mergen*. Er zijn ook andere manieren om een pull request te doen. [Meer daarover](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). -> Afhankelijk van de complexiteit en het onderwerp van jouw suggestie kan het even duren voordat deze wordt opgepakt door het team van het Algoritmekader. +> Afhankelijk van de complexiteit en het onderwerp van jouw suggestie kan het even duren voordat deze wordt opgepakt door het team van het Algoritmekader. > ### Preview van een pull-request -> We maken gebruik van de tool [pr-preview-action](https://github.com/rossjrw/pr-preview-action) om automatisch previews te maken van een pull-request. -Dit maakt het mogelijk om de wijzigingen die zijn gedaan in een pull-request al te bekijken in de uiteindelijke omgeving. -> Wanneer er een pull-request gedaan wordt via een fork, leidt dit helaas tot een error, zie [Issue #79](https://github.com/MinBZK/Algoritmekader/issues/79). Dit blokkeert de pull-request niet. +> We maken gebruik van de tool [pr-preview-action](https://github.com/rossjrw/pr-preview-action) om automatisch previews te maken van een pull-request. +Dit maakt het mogelijk om de wijzigingen die zijn gedaan in een pull-request al te bekijken in de uiteindelijke omgeving. +> Wanneer er een pull-request gedaan wordt via een fork, leidt dit helaas tot een error, zie [Issue #79](https://github.com/MinBZK/Algoritmekader/issues/79). Dit blokkeert de pull-request niet. ## Hoe we werken op Github -We werken met [Markdown](https://www.markdownguide.org/basic-syntax/) bestanden. -Dit is bestandsformaat voor platte tekstbestanden en wordt door veel verschillende tools ondersteund. Dit maakt het eenvoudig om versiebeheer op het Algoritmekader toe te passen. +We werken met [Markdown](https://www.markdownguide.org/basic-syntax/) bestanden. +Dit is bestandsformaat voor platte tekstbestanden en wordt door veel verschillende tools ondersteund. Dit maakt het eenvoudig om versiebeheer op het Algoritmekader toe te passen. -Daarnaast maken gebruik van [mkdocs](https://www.mkdocs.org/) en [material for mkdocs](https://squidfunk.github.io/mkdocs-material/) om de informatie op een interactieve wijze inzichtelijk te maken op de website van [het Algoritmekader](https://minbzk.github.io/Algoritmekader/). +Daarnaast maken gebruik van [mkdocs](https://www.mkdocs.org/) en [material for mkdocs](https://squidfunk.github.io/mkdocs-material/) om de informatie op een interactieve wijze inzichtelijk te maken op de website van [het Algoritmekader](https://minbzk.github.io/Algoritmekader/). ### Wil je een nieuwe pagina aanmaken? -In het [mkdocs.yml](https://github.com/MinBZK/Algoritmekader/blob/main/mkdocs.yml) bestand staan de settings voor deze website. +In het [mkdocs.yml](https://github.com/MinBZK/Algoritmekader/blob/main/mkdocs.yml) bestand staan de settings voor deze website. In principe hoef je hier niets aan aan te passen, maar als je een nieuwe pagina wilt aanmaken kan het nodig zijn om hier een aanpassing in te doen. -Onderdeel van deze settings is namelijk de navigatie voor de site (welke pagina's zijn zichtbaar, en welke pagina's vallen daaronder). Dit staat in de nav: sectie. +Onderdeel van deze settings is namelijk de navigatie voor de site (welke pagina's zijn zichtbaar, en welke pagina's vallen daaronder). Dit staat in de nav: sectie. Indien je een nieuwe pagina wilt toevoegen, is het vaak nodig deze wijziging ook door te voeren in het [mkdocs.yml](https://github.com/MinBZK/Algoritmekader/blob/main/mkdocs.yml) bestand. - diff --git a/LICENSE.md b/LICENSE.md index 72261d7c71..ed38ebab56 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -285,4 +285,4 @@ the rights granted in Article 2 of this Licence and protect the covered Source Code from exclusive appropriation. All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file +EUPL version. diff --git a/README.md b/README.md index fa3242f897..e23b4be79a 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,37 @@ betaalde versie mogelijk te maken, zit in `requirements.txt` de publiek toegange [mkdocs-material](https://pypi.org/project/mkdocs-material/) Python package met beperkte functionaliteit. In deze versie werken de navigatie broodkruimels niet. + +## Validatie Tools + +In de map `scripts/validation/` vind je scripts die de consistentie van het Algoritmekader controleren: + +- `validate_urn_uniqueness.py`: Controleert of alle URNs uniek zijn +- `validate_lifecycles.py`: Controleert of levenscyclus-waarden geldig zijn +- `validate_file_prefix_urn.py`: Controleert of bestandsnamen overeenkomen met URNs + +### Gebruik + +Bij pull requests worden deze validaties automatisch uitgevoerd via GitHub Actions. Je kunt ze ook lokaal draaien: + +```bash +# Installeer benodigde dependencies +pip install pyyaml + +# Voer alle validaties uit +python .github/scripts/run_all_validations.py +``` + +De scripts controleren: +- Dat er geen dubbele URNs zijn (bijvoorbeeld `urn:nl:ak:mtr:org-02`) +- Dat alle levenscyclus-waarden geldig zijn (zoals `organisatieverantwoordelijkheden`, `ontwikkelen`) +- Dat bestandsnamen consistent zijn met hun URNs + +Index bestanden (`index.md`) worden automatisch overgeslagen en bestandsnamen met numerieke voorvoegsels (zoals `0-org-01-...`) worden correct herkend. + +Voor meer details, zie de README in de `.github/scripts` map. + + ## Vragen? Maak een [Issue](https://github.com/MinBZK/Algoritmekader/issues) aan op GitHub. Of stuur een e-mail naar diff --git a/docs/html/ai-verordening-popup.html b/docs/html/ai-verordening-popup.html index c3f176c0c0..62e9fed6d3 100644 --- a/docs/html/ai-verordening-popup.html +++ b/docs/html/ai-verordening-popup.html @@ -1,5 +1,5 @@
- +

Bepaal je AI-verordening profiel

Vul de velden hieronder in om je AI-verordeningprofiel samen te stellen.
@@ -31,7 +31,7 @@

Bepaal je AI-verordening profiel