Skip to content

Commit 30f470b

Browse files
author
semantic-release
committed
chore: release v5.4.0
1 parent 36d9b24 commit 30f470b

File tree

2 files changed

+144
-1
lines changed

2 files changed

+144
-1
lines changed

CHANGELOG.md

+143
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,149 @@
11
# CHANGELOG
22

33

4+
## v5.4.0 (2025-01-28)
5+
6+
### Bug Fixes
7+
8+
- **api**: Make type ignores more specific where possible
9+
([`e3cb806`](https://github.com/python-gitlab/python-gitlab/commit/e3cb806dc368af0a495087531ee94892d3f240ce))
10+
11+
Instead of using absolute ignore `# type: ignore` use a more specific ignores like `# type:
12+
ignore[override]`. This might help in the future where a new bug might be introduced and get
13+
ignored by a general ignore comment but not a more specific one.
14+
15+
Signed-off-by: Igor Ponomarev <igor.ponomarev@collabora.com>
16+
17+
- **api**: Return the new commit when calling cherry_pick
18+
([`de29503`](https://github.com/python-gitlab/python-gitlab/commit/de29503262b7626421f3bffeea3ff073e63e3865))
19+
20+
- **files**: Add optional ref parameter for cli project-file raw (python-gitlab#3032)
21+
([`22f03bd`](https://github.com/python-gitlab/python-gitlab/commit/22f03bdc2bac92138225563415f5cf6fa36a5644))
22+
23+
The ef parameter was removed in python-gitlab v4.8.0. This will add ef back as an optional parameter
24+
for the project-file raw cli command.
25+
26+
### Chores
27+
28+
- Fix missing space in deprecation message
29+
([`ba75c31`](https://github.com/python-gitlab/python-gitlab/commit/ba75c31e4d13927b6a3ab0ce427800d94e5eefb4))
30+
31+
- Fix pytest deprecation
32+
([`95db680`](https://github.com/python-gitlab/python-gitlab/commit/95db680d012d73e7e505ee85db7128050ff0db6e))
33+
34+
pytest has changed the function argument name to `start_path`
35+
36+
- Fix warning being generated
37+
([`0eb5eb0`](https://github.com/python-gitlab/python-gitlab/commit/0eb5eb0505c5b837a2d767cfa256a25b64ceb48b))
38+
39+
The CI shows a warning. Use `get_all=False` to resolve issue.
40+
41+
- Resolve DeprecationWarning message in CI run
42+
([`accd5aa`](https://github.com/python-gitlab/python-gitlab/commit/accd5aa757ba5215497c278da50d48f10ea5a258))
43+
44+
Catch the DeprecationWarning in our test, as we expect it.
45+
46+
- **ci**: Set a 30 minute timeout for 'functional' tests
47+
([`e8d6953`](https://github.com/python-gitlab/python-gitlab/commit/e8d6953ec06dbbd817852207abbbc74eab8a27cf))
48+
49+
Currently the functional API test takes around 17 minutes to run. And the functional CLI test takes
50+
around 12 minutes to run.
51+
52+
Occasionally a job gets stuck and will sit until the default 360 minutes job timeout occurs.
53+
54+
Now have a 30 minute timeout for the 'functional' tests.
55+
56+
- **deps**: Update all non-major dependencies
57+
([`939505b`](https://github.com/python-gitlab/python-gitlab/commit/939505b9c143939ba1e52c5cb920d8aa36596e19))
58+
59+
- **deps**: Update all non-major dependencies
60+
([`cbd4263`](https://github.com/python-gitlab/python-gitlab/commit/cbd4263194fcbad9d6c11926862691f8df0dea6d))
61+
62+
- **deps**: Update gitlab ([#3088](https://github.com/python-gitlab/python-gitlab/pull/3088),
63+
[`9214b83`](https://github.com/python-gitlab/python-gitlab/commit/9214b8371652be2371823b6f3d531eeea78364c7))
64+
65+
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
66+
67+
- **deps**: Update gitlab/gitlab-ee docker tag to v17.7.1-ee.0
68+
([#3082](https://github.com/python-gitlab/python-gitlab/pull/3082),
69+
[`1e95944`](https://github.com/python-gitlab/python-gitlab/commit/1e95944119455875bd239752cdf0fe5cc27707ea))
70+
71+
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
72+
73+
- **deps**: Update mypy to 1.14 and resolve issues
74+
([`671e711`](https://github.com/python-gitlab/python-gitlab/commit/671e711c341d28ae0bc61ccb12d2e986353473fd))
75+
76+
mypy 1.14 has a change to Enum Membership Semantics:
77+
https://mypy.readthedocs.io/en/latest/changelog.html
78+
79+
Resolve the issues with Enum and typing, and update mypy to 1.14
80+
81+
- **test**: Prevent 'job_with_artifact' fixture running forever
82+
([`e4673d8`](https://github.com/python-gitlab/python-gitlab/commit/e4673d8aeaf97b9ad5d2500e459526b4cf494547))
83+
84+
Previously the 'job_with_artifact' fixture could run forever. Now give it up to 60 seconds to
85+
complete before failing.
86+
87+
### Continuous Integration
88+
89+
- Use gitlab-runner:v17.7.1 for the CI
90+
([`2dda9dc`](https://github.com/python-gitlab/python-gitlab/commit/2dda9dc149668a99211daaa1981bb1f422c63880))
91+
92+
The `latest` gitlab-runner image does not have the `gitlab-runner` user and it causes our tests to
93+
fail.
94+
95+
Closes: #3091
96+
97+
### Features
98+
99+
- **api**: Add argument that appends extra HTTP headers to a request
100+
([`fb07b5c`](https://github.com/python-gitlab/python-gitlab/commit/fb07b5cfe1d986c3a7cd7879b11ecc43c75542b7))
101+
102+
Currently the only way to manipulate the headers for a request is to use `Gitlab.headers` attribute.
103+
However, this makes it very concurrently unsafe because the `Gitlab` object can be shared between
104+
multiple requests at the same time.
105+
106+
Instead add a new keyword argument `extra_headers` which will update the headers dictionary with new
107+
values just before the request is sent.
108+
109+
For example, this can be used to download a part of a artifacts file using the `Range` header:
110+
https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
111+
112+
Signed-off-by: Igor Ponomarev <igor.ponomarev@collabora.com>
113+
114+
- **api**: Add support for external status check
115+
([`175b355`](https://github.com/python-gitlab/python-gitlab/commit/175b355d84d54a71f15fe3601c5275dc35984b9b))
116+
117+
- **api**: Narrow down return type of download methods using typing.overload
118+
([`44fd9dc`](https://github.com/python-gitlab/python-gitlab/commit/44fd9dc1176a2c5529c45cc3186c0e775026175e))
119+
120+
Currently the download methods such as `ProjectJob.artifacts` have return type set to
121+
`Optional[Union[bytes, Iterator[Any]]]` which means they return either `None` or `bytes` or
122+
`Iterator[Any]`.
123+
124+
However, the actual return type is determined by the passed `streamed` and `iterator` arguments.
125+
Using `@typing.overload` decorator it is possible to return a single type based on the passed
126+
arguments.
127+
128+
Add overloads in the following order to all download methods:
129+
130+
1. If `streamed=False` and `iterator=False` return `bytes`. This is the default argument values
131+
therefore it should be first as it will be used to lookup default arguments. 2. If `iterator=True`
132+
return `Iterator[Any]`. This can be combined with both `streamed=True` and `streamed=False`. 3. If
133+
`streamed=True` and `iterator=False` return `None`. In this case `action` argument can be set to a
134+
callable that accepts `bytes`.
135+
136+
Signed-off-by: Igor Ponomarev <igor.ponomarev@collabora.com>
137+
138+
- **api**: Narrow down return type of ProjectFileManager.raw using typing.overload
139+
([`36d9b24`](https://github.com/python-gitlab/python-gitlab/commit/36d9b24ff27d8df514c1beebd0fff8ad000369b7))
140+
141+
This is equivalent to the changes in 44fd9dc1176a2c5529c45cc3186c0e775026175e but for
142+
`ProjectFileManager.raw` method that I must have missed in the original commit.
143+
144+
Signed-off-by: Igor Ponomarev <igor.ponomarev@collabora.com>
145+
146+
4147
## v5.3.1 (2025-01-07)
5148

6149
### Bug Fixes

gitlab/_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
__email__ = "gauvainpocentek@gmail.com"
44
__license__ = "LGPL3"
55
__title__ = "python-gitlab"
6-
__version__ = "5.3.1"
6+
__version__ = "5.4.0"

0 commit comments

Comments
 (0)