|
1 | 1 | # CHANGELOG
|
2 | 2 |
|
3 | 3 |
|
| 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 | + |
4 | 147 | ## v5.3.1 (2025-01-07)
|
5 | 148 |
|
6 | 149 | ### Bug Fixes
|
|
0 commit comments