Commit Graph

75 Commits

Author SHA1 Message Date
dependabot[bot]
52c1d77c04 Update ruff requirement from 0.9.1 to 0.11.0 in /backend (#1155)
Updates the requirements on [ruff](https://github.com/astral-sh/ruff) to
permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.11.0</h2>
<h2>Release Notes</h2>
<p>This is a follow-up to <a
href="https://github.com/astral-sh/ruff/releases/tag/0.10.0">release
0.10.0</a>. The <code>requires-python</code> inference changes were
unintentionally omitted from 0.10.0, and have been included here. This
release also includes stabilization of the preview behavior for
<code>PGH004</code>.</p>
<h3>Breaking changes</h3>
<ul>
<li>
<p><strong>Changes to how the Python version is inferred when a
<code>target-version</code> is not specified</strong> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16319">#16319</a>)</p>
<p>In previous versions of Ruff, you could specify your Python version
with:</p>
<ul>
<li>The <code>target-version</code> option in a <code>ruff.toml</code>
file or the <code>[tool.ruff]</code> section of a pyproject.toml
file.</li>
<li>The <code>project.requires-python</code> field in a
<code>pyproject.toml</code> file with a <code>[tool.ruff]</code>
section.</li>
</ul>
<p>These options worked well in most cases, and are still recommended
for fine control of the Python version. However, because of the way Ruff
discovers config files, <code>pyproject.toml</code> files without a
<code>[tool.ruff]</code> section would be ignored, including the
<code>requires-python</code> setting. Ruff would then use the default
Python version (3.9 as of this writing) instead, which is surprising
when you've attempted to request another version.</p>
<p>In v0.10, config discovery has been updated to address this
issue:</p>
<ul>
<li>If Ruff finds a <code>ruff.toml</code> file without a
<code>target-version</code>, it will check
for a <code>pyproject.toml</code> file in the same directory and respect
its
<code>requires-python</code> version, even if it does not contain a
<code>[tool.ruff]</code>
section.</li>
<li>If Ruff finds a user-level configuration, the
<code>requires-python</code> field of the closest
<code>pyproject.toml</code> in a parent directory will take
precedence.</li>
<li>If there is no config file (<code>ruff.toml</code>or
<code>pyproject.toml</code> with a
<code>[tool.ruff]</code> section) in the directory of the file being
checked, Ruff will
search for the closest <code>pyproject.toml</code> in the parent
directories and use its
<code>requires-python</code> setting.</li>
</ul>
</li>
</ul>
<h3>Stabilization</h3>
<p>The following behaviors have been stabilized:</p>
<ul>
<li><a
href="https://docs.astral.sh/ruff/rules/blanket-noqa/"><code>blanket-noqa</code></a>
(<code>PGH004</code>): Also detect blanked file-level noqa comments (and
not just line level comments).</li>
</ul>
<h3>Preview features</h3>
<ul>
<li>[syntax-errors] Tuple unpacking in <code>for</code> statement
iterator clause before Python 3.9 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16558">#16558</a>)</li>
</ul>
<h2>Install ruff 0.11.0</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/astral-sh/ruff/releases/download/0.11.0/ruff-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy ByPass -c &quot;irm
https://github.com/astral-sh/ruff/releases/download/0.11.0/ruff-installer.ps1
| iex&quot;
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.11.0</h2>
<p>This is a follow-up to release 0.10.0. Because of a mistake in the
release process, the <code>requires-python</code> inference changes were
not included in that release. Ruff 0.11.0 now includes this change as
well as the stabilization of the preview behavior for
<code>PGH004</code>.</p>
<h3>Breaking changes</h3>
<ul>
<li>
<p><strong>Changes to how the Python version is inferred when a
<code>target-version</code> is not specified</strong> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16319">#16319</a>)</p>
<p>In previous versions of Ruff, you could specify your Python version
with:</p>
<ul>
<li>The <code>target-version</code> option in a <code>ruff.toml</code>
file or the <code>[tool.ruff]</code> section of a pyproject.toml
file.</li>
<li>The <code>project.requires-python</code> field in a
<code>pyproject.toml</code> file with a <code>[tool.ruff]</code>
section.</li>
</ul>
<p>These options worked well in most cases, and are still recommended
for fine control of the Python version. However, because of the way Ruff
discovers config files, <code>pyproject.toml</code> files without a
<code>[tool.ruff]</code> section would be ignored, including the
<code>requires-python</code> setting. Ruff would then use the default
Python version (3.9 as of this writing) instead, which is surprising
when you've attempted to request another version.</p>
<p>In v0.10, config discovery has been updated to address this
issue:</p>
<ul>
<li>If Ruff finds a <code>ruff.toml</code> file without a
<code>target-version</code>, it will check
for a <code>pyproject.toml</code> file in the same directory and respect
its
<code>requires-python</code> version, even if it does not contain a
<code>[tool.ruff]</code>
section.</li>
<li>If Ruff finds a user-level configuration, the
<code>requires-python</code> field of the closest
<code>pyproject.toml</code> in a parent directory will take
precedence.</li>
<li>If there is no config file (<code>ruff.toml</code>or
<code>pyproject.toml</code> with a
<code>[tool.ruff]</code> section) in the directory of the file being
checked, Ruff will
search for the closest <code>pyproject.toml</code> in the parent
directories and use its
<code>requires-python</code> setting.</li>
</ul>
</li>
</ul>
<h3>Stabilization</h3>
<p>The following behaviors have been stabilized:</p>
<ul>
<li><a
href="https://docs.astral.sh/ruff/rules/blanket-noqa/"><code>blanket-noqa</code></a>
(<code>PGH004</code>): Also detect blanked file-level noqa comments (and
not just line level comments).</li>
</ul>
<h3>Preview features</h3>
<ul>
<li>[syntax-errors] Tuple unpacking in <code>for</code> statement
iterator clause before Python 3.9 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16558">#16558</a>)</li>
</ul>
<h2>0.10.0</h2>
<p>Check out the <a href="https://astral.sh/blog/ruff-v0.10.0">blog
post</a> for a migration guide and overview of the changes!</p>
<h3>Breaking changes</h3>
<p>See also, the &quot;Remapped rules&quot; section which may result in
disabled rules.</p>
<ul>
<li>
<p><strong>Changes to how the Python version is inferred when a
<code>target-version</code> is not specified</strong> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/16319">#16319</a>)</p>
<p>Because of a mistake in the release process, the
<code>requires-python</code> inference changes are not included in this
release and instead shipped as part of 0.11.0.
You can find a description of this change in the 0.11.0 section.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2cd25ef641"><code>2cd25ef</code></a>
Ruff 0.11.0 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16723">#16723</a>)</li>
<li><a
href="a22d206db2"><code>a22d206</code></a>
[red-knot] Preliminary tests for typing.Final (<a
href="https://redirect.github.com/astral-sh/ruff/issues/15917">#15917</a>)</li>
<li><a
href="270318c2e0"><code>270318c</code></a>
[red-knot] fix: improve type inference for binary ops on tuples (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16725">#16725</a>)</li>
<li><a
href="d03b12e711"><code>d03b12e</code></a>
[red-knot] Assignments to attributes (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16705">#16705</a>)</li>
<li><a
href="14c5ed5d7d"><code>14c5ed5</code></a>
[<code>pygrep-hooks</code>]: Detect file-level suppressions comments
without rul… (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16720">#16720</a>)</li>
<li><a
href="595565015b"><code>5955650</code></a>
Fallback to requires-python in certain cases when target-version is not
found...</li>
<li><a
href="2382fe1f25"><code>2382fe1</code></a>
[syntax-errors] Tuple unpacking in <code>for</code> statement iterator
clause before Pyt...</li>
<li><a
href="27e9d1fe3e"><code>27e9d1f</code></a>
Ruff v0.10 Release (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16708">#16708</a>)</li>
<li><a
href="acf35c55f8"><code>acf35c5</code></a>
Add new <code>noqa</code> specification to the docs (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16703">#16703</a>)</li>
<li><a
href="b9b256209b"><code>b9b2562</code></a>
describe requires-python fallback in docs (<a
href="https://redirect.github.com/astral-sh/ruff/issues/16704">#16704</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.9.1...0.11.0">compare
view</a></li>
</ul>
</details>
<br />


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)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Erik Vroon <erik.vroon@channable.com>
2025-03-17 06:40:10 +00:00
Erik Vroon
3b6cd73d65 Add more integration tests (#1126) 2025-02-16 16:26:30 +01:00
Erik Vroon
05090b4efa Add tests for swiss rescheduling (#1125) 2025-02-16 10:49:51 +01:00
Erik Vroon
d06a797725 Add tests for conflict logic (#1124) 2025-02-15 15:19:05 +00:00
Erik Vroon
24bb16400f Fix number of elimination teams (#1123) 2025-02-15 14:17:21 +00:00
Erik Vroon
4450f76e4e Filter empty player names out of multi team creation (#1122) 2025-02-15 14:00:41 +00:00
Erik Vroon
2fa8c08da3 Add teams with players (#1118)
fixes https://github.com/evroon/bracket/issues/978
2025-02-12 11:27:14 +00:00
Erik Vroon
489fc2ba64 Feature: archived tournaments (#1112)
fixes https://github.com/evroon/bracket/issues/690
2025-02-09 18:00:52 +01:00
Erik Vroon
558c3163d1 Update pytest asyncio to 0.25.3 (#1110)
Updates the requirements on
[pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit
the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](pytest-dev/pytest-asyncio@v0.21.2...v0.25.3)
2025-02-08 11:12:32 +00:00
Erik Vroon
cdde8c1fd3 Swiss scheduling improvements (#1019) 2024-11-21 19:59:02 +01:00
Erik Vroon
9f123babc2 Update elimination matches when updating rankings (#1002) 2024-11-08 17:51:41 +01:00
Erik Vroon
6aa2c51f89 Assign teams to subsequent elimination rounds (#1001)
fixes https://github.com/evroon/bracket/issues/998
2024-11-08 17:34:12 +01:00
Erik Vroon
ed659ff686 Fix bugs in presentation dashboard (#999) 2024-11-08 14:37:14 +01:00
Erik Vroon
932e5a245d Show updates to stage item inputs when going to next stage (#966) 2024-11-06 14:52:42 +01:00
Erik Vroon
538b4e145c Show conflicts (#967) 2024-10-27 20:29:36 +01:00
Erik Vroon
d32c36080e Allow changing inputs after creating stage item (#962) 2024-10-26 19:34:08 +02:00
Erik Vroon
52890fadb2 Use stage item inputs instead of teams (#909)
A match should contain two stage item inputs that oppose each other,
instead of two teams. This simplifies a lot and is more logical.
2024-10-21 18:44:25 +02:00
Erik Vroon
66c9251348 Small readability fixes (#905) 2024-09-10 20:37:42 +02:00
Erik Vroon
388afa585a Make primary key typing stricter (#904) 2024-09-10 20:32:59 +02:00
Erik Vroon
b3073c0fa6 Fix paths of swiss endpoints (#903) 2024-09-10 19:21:24 +02:00
Erik Vroon
d6449e8d05 Customize rankings (#797)
Allows you to add rankings that specify how the ranking per stage item
is calculated.
Points are now stored per stage item input.
2024-09-07 12:03:16 +02:00
robigan
208936fefc Fix backend to recalculate start time on match update (#587) 2024-09-01 19:13:07 +02:00
Erik Vroon
fe458771fc UX improvements (#722) 2024-05-14 19:43:42 +02:00
robigan
e3fa10e2a9 Team logos (#529) 2024-02-28 08:41:19 +01:00
Erik Vroon
d016e50537 Check foreign keys belong to tournament (#516)
Handles a security vulnerability where it's possible to link to columns
of other tournaments, such as add players from another tournament to a
team
2024-02-23 21:11:13 +01:00
Erik Vroon
b395d148f0 Add newtypes for primary keys (#512)
Adds type safety
2024-02-23 20:41:55 +01:00
Erik Vroon
880d212ce9 Use uuids for logos (#488)
Otherwise uploads can replace current files with the same name.
Also fixes and adds more tests for logo uploads.
2024-02-18 11:24:35 +01:00
Erik Vroon
0c0d99f8fe Write files async (non-blocking) (#485)
Also remove unused files and reload image in frontend when uploading a
new image.
2024-02-17 18:20:01 +01:00
Erik Vroon
7666e3a22b Handle foreign key constraint errors (#483) 2024-02-17 14:03:32 +01:00
Erik Vroon
f4c8bcdd65 Improve ui when there is no content (#473)
Adds more skeletons, fixes user page, fixes bug in modal for stage item
creation, etc.
2024-02-13 18:57:41 +01:00
Erik Vroon
f834fab2de Add pagination (#472)
Adds pagination (backend and frontend) to teams and players GET
endpoints
2024-02-12 19:08:50 +01:00
Erik Vroon
9479c92c97 Increase code coverage (#466)
Remove unused code and add some tests
Also fix detection of running pytest
2024-02-10 20:59:36 +01:00
Erik Vroon
14728a62bb Make dashboard endpoint unique (#454) 2024-02-10 16:15:27 +01:00
Erik Vroon
b42fce38ab Fix demo account deletion (#450)
Fixes error due to `._mapping` invalid return type
2024-02-09 16:52:14 +01:00
Erik Vroon
61611066cd Pydantic v2 migration (#252)
Upgrade Pydantic to V2.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-09 11:51:14 +01:00
Erik Vroon
31818c374e Fix db initialisation (#427)
fixes https://github.com/evroon/bracket/issues/426
2024-02-04 11:52:18 +01:00
Erik Vroon
469316efd4 Use Ruff format instead of Black (#420) 2024-02-03 14:29:33 +01:00
Erik Vroon
5659cd7344 Add demo functionality (#413)
Lets users create a temporary demo account to test the tool
2024-02-03 14:18:57 +01:00
Erik Vroon
b2a2dd1ea1 Implement hcaptcha (#410) 2024-01-17 16:31:38 +01:00
Erik Vroon
b21840ee2d Add Prometheus metrics (#372) 2023-12-03 16:45:35 +01:00
Erik Vroon
ac53331590 Add statistics columns to teams (#365) 2023-12-02 12:12:53 +01:00
Erik Vroon
f13c91d30f Prefer teams who have played much less (#351) 2023-11-25 17:05:29 +01:00
Erik Vroon
4b3dfb9b20 Implement custom time per match (#337) 2023-11-21 21:11:25 +01:00
Erik Vroon
4e616d8d97 Multi users and teams creation (#342)
fixes https://github.com/evroon/bracket/issues/292
2023-11-21 20:07:35 +01:00
Erik Vroon
00cac360eb Improve swiss scheduling (#336) 2023-11-19 11:54:08 +01:00
Erik Vroon
0698c9f831 Test activate next stage (#331) 2023-11-11 13:57:57 +01:00
Erik Vroon
91d40b8e91 Add tests for scheduling logic (#329) 2023-11-11 12:57:06 +01:00
Erik Vroon
664b13b0db Fix swiss scheduling (#328) 2023-11-11 10:59:52 +01:00
Erik Vroon
3dceda218a Time scheduling (#315) 2023-11-07 19:51:46 +01:00
Erik Vroon
145d5787e1 Implement scheduling for elimination stage items (#314) 2023-11-05 15:22:24 +01:00