Draft
Conversation
19 tasks
Marc-Andrieu
added a commit
that referenced
this pull request
Feb 3, 2026
…Docker composes (#950) …Docker composes # Description ## Summary <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> That's obvious <!--#### Sources at the end--> ## Related PR Subset of #944 ## Changes Made <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> See diff <!--Don't touch thses two tags--> <details> <summary> # Classification </summary> ## Type of Change - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [x] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users ## Impact & Scope - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Database migrations required - [x] Other: ... <!--Not module-oriented: write something!--> ## Testing - [x] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a deployed pre-prod - [ ] 0. Untestable (exceptionally), will be tested in prod directly ## Documentation - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `"` Docstrings - [ ] `#` Inline comments - [ ] No documentation needed </details>
Rotheem
added a commit
to ProximApp/Hyperion
that referenced
this pull request
Feb 28, 2026
commit 58a9017666e904041dd191f69511302e7c562502
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Wed Feb 25 00:13:43 2026 +0100
added respo TE as a phonebook roletag (#886)
The BDE secretary asked that Respo TE be a role of the bureau for the
BDE
<!--Sources/references at the end-->
<!-- If applicable-->
<!--Use keywords "closes", "fixes", "resolves", or others at
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests
-->
<!--Fixes #-->
<!--Fixes aeecleclair/CalypSSO#-->
<!-- If applicable-->
<!--Use keywords "depends on" or "blocked by", see
https://github.com/gregsdennis/dependencies-action -->
<!--Depends on #-->
<!--Depends on aeecleclair/CalypSSO#-->
<!--Please describe the changes made in this pull request-->
<!--Tell the big steps, use a checklist to show progress. You can
explain here how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: <!--not module-oriented-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI
- [ ] 3. Tested in a pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit d0a93ee2de97b88ce2c4ff16551168620bfcf236
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Feb 18 22:39:20 2026 +0100
Feat: use workers even without Redis (#874)
<!--Brief description of what this PR does.-->
Now we can enjoy using workers locally even without Redis: it was only
useful to set a lock on initialization.
<!--Please describe the changes made in this pull request-->
- made a distinction between the number of workers, and having a Redis
instance or not
- the fallback Redis-less lock is just allowing the first worker to run
the 5 init functions: the iterator of workers always output the element
in the same order (tested locally in `dev` (necessarily 1 worker), and
in `run` with 1 (no `--worker` flag), 2, 3, 4, 6, 8 and 12 workers)
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other
- [ ] Added/modified tests that pass the CI
- [ ] Tested in a pre-prod
- [x] Tested this locally
- [ ] Updated docs accordingly (docs.myecl.fr) : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] Code includes docstrings
- [x] Inline comment
- [ ] No documentation needed
- [ ] My code follows the style guidelines of this project
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] Any dependent changes have been merged and published (_Indicate
the linked PR for the dependent changes_)
Add any other context, screenshots, or information about the pull
request here.
---------
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
commit 7cd32e9be9e57b5c3ea6aabfa19e87c0262692b7
Author: Rémi <83755025+Pokegali@users.noreply.github.com>
Date: Wed Feb 18 20:27:01 2026 +0100
Fix all of those pesky mypy errors (#959)
There were 18 mypy errors lying around in the main branch, and there are
none, now.
None
None
None
- [x] Remove the mypy errors
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [x] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit d43ad5f01ff00ab190279a873fb8761e23e6da83
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Feb 18 02:24:51 2026 +0100
Fix(AMAP): write info logs in euros, not cents (#952)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->

That's why
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Display the amount in euros (float), rounded with 2 digits after
comma, then "€".
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 298d7a23c31cd55592b802a5514263ec1204dd20
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Tue Feb 17 23:56:25 2026 +0100
Improve loans (#958)
This PR fixes how slow the get_current_user_loaners endpoint is (the one
we wait for before the admin button shows up) and improves the tests and
factory for the loan module.
The loan factory didn't use real groups to create loaners from, so they
couldn't be used in the same way as a loan created through the app,
which defeats the purpose.
The factory and tests now behave the same way as the endpoints do, by
creating LoanContent in db.
The tests now actually check some of the output rather than only the
response status code.
Some relationship loading models have been changed to not load
unnecessary data, which necessitated a really slow call to unique().
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 707bb52b82fea8d2b9ae0f1716a73cbe56d277f7
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sun Feb 15 20:50:43 2026 +0100
Allow admin to handle purchases (#955)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit fc596b7ebbcfec984e57a552739909f88b93d9a6
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sun Feb 8 02:23:38 2026 +0100
Challenger more export (#943)
Added more export options to Challenger
Added
- captains exporter
- sport participants exporter
- school users exporter
- school quotas exporter
- sport quotas exporter
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [x] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 1ad10e476b767b6ccc6d23b197a56516031c319e
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Feb 6 22:56:45 2026 +0100
Fix competition counter (#953)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 6f9da70bc41786a5d05c96c1a71ec19641e73727
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Thu Feb 5 14:50:15 2026 +0100
Bump 5.0.3
commit 523775aca1dfc8086c98410c2618f4e97a8c5a86
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Thu Feb 5 14:46:48 2026 +0100
Fix competition validation (#951)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit f9a3c08070d1b4d0088d6bdc4400ea07333d83ed
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 3 16:05:27 2026 +0100
Fix #950
commit d9d08d152c6fac40e9565e2a5cc6294bba28e163
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 3 15:49:16 2026 +0100
Pin versions of Postgres, Redis, Python and uv in CI, Dockerfile and Docker composes (#950)
…Docker composes
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
That's obvious
<!--#### Sources at the end-->
Subset of #944
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
See diff
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 457e7aeb0fdbb45fd16d78bc30e34f42b8135482
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 31 13:19:32 2026 +0100
Fix(Git ignorecase=false): keep default_PDF.pdf, remove default_pdf.pdf (#947)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
That damn PDF breaks my local repo bc it conflicts with my global
`ignorecase = false` git config
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] `rm default_pdf.pdf` (used once vs thrice for `default_PDF.pdf`)
- [ ] use only `default_PDF.pdf` in the codebase
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit fc7181921895d2a2ae23e5dd09e269bf6fe18e6a
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 30 14:22:40 2026 +0100
feat(phonebook): use modular association groupements (#759)
Please explain the changes you made here.
- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary
commit 8bc4861339392268147c249e3d83ee1fbe7e46b2
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Mon Jan 19 19:48:09 2026 +0100
Fix mypayment invoices reference parsing (#941)
Change MyPayment Invoice reference parsing during creation to improve
robustness
Use RegEx to parse any accepted format and not a specific one
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit dfc6359b7d0116be7b5618d47e2d96bc048391fe
Author: Lühmos <guillaume.foucher.pele@gmail.com>
Date: Sat Jan 10 01:51:39 2026 +0100
Make weasyprint optional for development (#936)
Makes weasyprint optional for development as it's rarely (if even) used.
Moves the library import inside the function that uses it, moves the
requirement in a new file only for production (we might need to change
the github workflow but idk how to do that), and changes the readme
accordingly.
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: development workflow changes <!--Not module-oriented: write
something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed (?)
</details>
---------
Co-authored-by: Timothée Robert <timr.web@free.fr>
commit f848c27ee65788e2354206528a541ae2ab8824f6
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 9 13:57:37 2026 +0100
Raise Titan's minimal version (#939)
commit c8d4871e2a86e4d9f1dbd9ee1bf52576931b4c3d
Author: Flaim-X2 <cecchinato.mathieu.n@gmail.com>
Date: Wed Jan 7 01:20:40 2026 +0100
AMAP in cents (#686)
Replace float with int.
---------
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Thonyk <timr.web@free.fr>
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
Co-authored-by: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
commit 5ad761ebfd6c36bc3070f54d0f5f1e0fd5ee1cf8
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Jan 6 13:25:07 2026 +0100
Rename MyECLPay to MyPayment for genericity & bump CalypSSO (#914)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Renaming MyECLPay to MyPayment for 2 reasons:
- Compatibility with CalypSSO: For #879 I need a change on CalypSSO, but
the current latest (2.6.1) breaks Hyperion, hence this refacto is
required
- Genericity: not hard-coding our school's name in the internal payment
solution to make it easier to fork and deploy for other schools
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Renaming myeclpay to mypayment to fix CalypSSO compatibility
- [x] Refacto for CalypSSO to work
- [x] Refactor the displayname for the front-end
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [x] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit b5cc8a0218f463909d04ba5039fa5d3c89746f52
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Mon Jan 5 12:14:36 2026 +0100
Initialiaze basic auth permission on startup (#935)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit a540c36bb613be965bb41d60fb8cc999972ac335
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 2 02:59:46 2026 +0100
POC: Modular permissions (#679)
Relying on hardcoded groups for access restriction is prone to be
limiting at some point. We can't easily change which group owns a
specific module and it is heavily dependent on Centrale's association
structure.
This PR introduces a new concept : Permissions. Represented by
system-wide unique string they are declared by modules and replace
completely GroupTypes for endpoint restriction. A user must have the
endpoint's specific permission to have access to it. A permission can be
linked to a user through 2 ways :
- Linking a group to the permission and having the user in the group
- Linking an account type to the permission and having this account type
for the user
Thus, a permission can be linked to multiple groups and/or account type,
can be easily transferred and allow each Hyperion instance to adapt
better to any school's association structure.
The visibility system was introduced to restrict in-app access to
module, however it was still falling short for direct API calls both in
synchronization and flexibility. The visibility could be set on/off for
certain account types or groups while the endpoint would still be
restricting another group and only GroupType could be used for API
restriction.
To address this issue, we use `access_XXX` permissions, this specific
syntax will be recognized by Titan as a replacement for visibility. As
permissions are fully modular and uniformized, both issues are resolved
by replacing visibility by specific permissions.
Auth providers allow access depending on account types or GroupTypes,
however as permissions delete GroupTypes there was a need to refacto
this part. The chosen method is a set of specific permissions for auth
manually added to the global permission list after the module discovery.
- [x] add permissions modification logic
- [x] declare modules' permissions
- [x] refactor all modules' endpoints restrictions with permissions
check
- [x] refactor visibility with specific permissions
- [x] refactor auth access
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [x] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: <!--not module-oriented-->
- [ ] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI
- [ ] 3. Tested in a pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 61a12ce906a1260bbff20b645a80e84b4ad27f01
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Dec 31 19:46:25 2025 +0100
MyECLPay export csv (#927)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
---------
Co-authored-by: Thonyk <timr.web@free.fr>
commit c507e2f425b7efb614736335b5c4ae6ea4ade715
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Dec 31 19:15:42 2025 +0100
fix: run Codecov project only on main branch (#912)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Codecov project (not patch) fails in PRs when we don't run all tests
because... well... not all lines are being tested.
<!--#### Sources at the end-->
* https://docs.codecov.com/docs/commit-status
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Run the global ("project") only when run on the main branch, not
in PRs
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: `codecov.yaml` <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [x] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 0527f235386860c7e3bec7099961fcda5284c2d9
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Wed Dec 31 18:47:41 2025 +0100
Save tip_amount in db (#919)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 0705ecc8e43cd632e70bfbcd7de4de75b6e09c30
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Mon Dec 29 16:14:27 2025 +0100
Fix competition withdrawal (#932)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit f5d2f74c5937dc3ab74e4781aa8b49e7923a6b2f
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Wed Dec 17 19:26:26 2025 +0100
Allow to ask for the email scope (#928)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Some oidc clients may require to be able to ask for the `email` scope
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 2891c6252dbe32c4f6b3ae67d0b90c4642da936c
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Wed Dec 17 19:26:13 2025 +0100
Use correct competition permissions (#929)
Use correct competition permissions dependencies
Use correct competition permissions dependencies
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 5fd6acef521510ef80290b200b4ee6ef10c70163
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Dec 9 18:36:48 2025 +0100
Update README.md, and various related changes (#845)
See the commits for a (rather) clear-cut view of the changes
---------
Co-authored-by: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
commit ca3324196c1788e3b85f48e35cdff07c25bb4d73
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Dec 9 14:41:53 2025 +0100
Fix competition migration (#923)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit fe8a0b457c038c758cc3ebe43dc2c13785d9493b
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Dec 9 14:23:49 2025 +0100
Bump Hyperion 4.11.1 (#921)
commit b718ba447116b184acf7bdd8536d0da193fb606a
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Dec 9 14:21:29 2025 +0100
Fix competition migration (#920)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit a6238d0ca61644b7516d2ff1a6e50a929510aef0
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Dec 6 13:15:35 2025 +0100
Sport competition part 2 (#901)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [x] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 2606c2023ad6254e35f5076c1d4caea22aaaa75a
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Sun Nov 30 21:35:35 2025 +0100
Flappybird fix (#913)
Some data was stored in db but never accessed
---------
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
commit 814bf45b622aeb32877ca43e32651f38388ed2e0
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Nov 30 21:10:45 2025 +0100
Preprod-building workflow: input PR number instead of branch name (#892)
<!--Brief description of what this PR does.-->
<!--Don't explain the code, justify what this PR exists for!-->
The new manually-triggered workflow to build&push pre-prods has a nice
dropdown to select the pre-prod...
But the branch name had to be put in as a string.
**Now you write the PR number.**
* Before, it required the dev to search the branch name (which we often
don't know), but we remember more easily PR numbers because shorter.
* A branch name is long thus prone to errors, a PR number is less
error-prone
* There was no validation before, now a step ensures the PR number makes
sense in the 1st place.
The best would have been a nice dropdown (with branch names or PR
numbers, whatever) because this ensures no error is possible and the dev
doesn't have to search information.
But I did not find how to run some command before/inside the top-level
`on` to generate the dropdown choices.
<!--Sources/references at the end-->
<!--Use keywords "closes", "fixes", "resolves", or others at
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests
-->
<!--Fixes #-->
<!--Fixes aeecleclair/CalypSSO#-->
<!--Use keywords "depends on" or "blocked by", see
https://github.com/gregsdennis/dependencies-action -->
<!--Depends on #-->
<!--Depends on aeecleclair/CalypSSO#-->
<!--Please describe the changes made in this pull request-->
<!--Tell the big steps, use a checklist to show progress. You can
explain here how the code works.-->
You'd better read the code for this one.
<!--Anything relevant that does not quite fit in the summary-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
<!---->
- [ ] 😶🌫️ No impact for the end-users
- [x] Other: CI/CD<!--not module-oriented-->
- [ ] Tested on a fork, when the number has an opened PR and when not
- [x] No documentation needed
</details>
commit 542646d7f6ce38628a971631198715c4e7474f00
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Sun Nov 30 08:20:55 2025 +0100
Upgrade Python to 3.14 (#915)
commit f02f39f054569d4d7c1b406bfd9791c3931b0434
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat Nov 29 19:01:30 2025 +0100
Bump glob from 10.4.5 to 10.5.0 in /assets/templates (#911)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/isaacs/node-glob/commit/56774ef73b495eb0b17cdd0f42921f5ef62297c1"><code>56774ef</code></a>
10.5.0</li>
<li><a
href="https://github.com/isaacs/node-glob/commit/1e4e297342a09f2aa0ced87fcd4a70ddc325d75f"><code>1e4e297</code></a>
bin: Do not expose filenames to shell expansion</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/aeecleclair/Hyperion/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
commit 4d028162d9c869e4d4182ce13e9c451605545576
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat Nov 29 17:32:52 2025 +0100
Bump brace-expansion from 2.0.1 to 2.0.2 in /assets/templates (#760)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion)
from 2.0.1 to 2.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/juliangruber/brace-expansion/releases">brace-expansion's
releases</a>.</em></p>
<blockquote>
<h2>v2.0.2</h2>
<ul>
<li>pkg: publish on tag 2.x 14f1d91</li>
<li>fmt ed7780a</li>
<li>Fix potential ReDoS Vulnerability or Inefficient Regular Expression
(<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/65">#65</a>)
36603d5</li>
</ul>
<hr />
<p><a
href="https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2">https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/a3efcee659ef0fb381e2b50d759c720900580a15"><code>a3efcee</code></a>
2.0.2</li>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/14f1d91b0523ffb0c8bbe6a28dc98ddc56ae53bc"><code>14f1d91</code></a>
pkg: publish on tag 2.x</li>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/ed7780ab1cb8a7696f1813b5a945fcc70d8d1990"><code>ed7780a</code></a>
fmt</li>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/36603d5f3599a37af9e85eda30acd7d28599c36e"><code>36603d5</code></a>
Fix potential ReDoS Vulnerability or Inefficient Regular Expression (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/65">#65</a>)</li>
<li>See full diff in <a
href="https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/aeecleclair/Hyperion/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
commit 317d4d4bcba41b2d530c677776fdcf58df7b9b61
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat Nov 29 17:24:59 2025 +0100
Bump pypdf from 4.3.1 to 6.4.0 (#907)
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 4.3.1 to 6.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/py-pdf/pypdf/releases">pypdf's
releases</a>.</em></p>
<blockquote>
<h2>Version 6.4.0, 2025-11-23</h2>
<h2>What's new</h2>
<h3>Security (SEC)</h3>
<ul>
<li>Reduce default limit for LZW decoding by <a
href="ht…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Summary
Use uv for package (and venv) management, everywhere (locally and in CI/CD).
Its numerous advantages have already been discussed internally; this PR description is only about the migration steps than justifying why.
Changes Made
Additional Notes
Following exactly what https://docs.astral.sh/uv says
Classification
Type of Change
Impact & Scope
Testing
Documentation
All