[MNT] homogenize CI workflows with GC.OS repositories#702
[MNT] homogenize CI workflows with GC.OS repositories#702fkiraly merged 27 commits intoPyPortfolio:mainfrom
Conversation
|
@fkiraly Would it make sense to have a dedicated devops repo associated with sktime where re-usable workflow components are stored? |
Yes, that sounds like an excellent idea. I think @tschm has set this up for their repos. However, I think it is not a priority currently when compared to getting ppfopt back on track. |
.github/workflows/test.yml
Outdated
| run: uv pip install ".[dev,all_extras]" --no-cache-dir | ||
| env: | ||
| UV_SYSTEM_PYTHON: 1 | ||
| run: uv sync --extra all_extras --extra dev --no-cache |
There was a problem hiding this comment.
I would go for uv pip install rather than uv sync. See long discussion on the topic in sktime.
pyproject.toml
Outdated
| line-ending = "auto" | ||
| skip-magic-trailing-comma = false | ||
|
|
||
| [dependency-groups] |
There was a problem hiding this comment.
why move it here? I think we should just leave it in non-uv format
There was a problem hiding this comment.
This is actually the pip standard as of 25.1: https://packaging.python.org/en/latest/specifications/dependency-groups/
There was a problem hiding this comment.
The biggest benefit is that you can install just the dependencies inside that group, without having to install the full suite of packages - something I've longed for!
There was a problem hiding this comment.
indeed, you are right - introduced in 2025! I must have missed this.
Yes, `notebook-test´ should then also be here.
We should also think about how and whether to move this in the other GC.OS packages. sktime will move to 1.0 soon, that is an opportunity to move all the dev/testing related depsets to dependency-groups.
There was a problem hiding this comment.
I reverted, since it would be a breaking change for environment setup - pip install pyportfolioopt[dev] no longer works
fkiraly
left a comment
There was a problem hiding this comment.
Thanks!
Looks mostly good, but in some places it notably diverges from the "close to pip setup" to more uv based idioms. I think these may be problematic and shuld be reverted:
- use of
uv syncinstead ofuv pip install, this can cause problems with incompatible depsets - use of
uvdepset definition inpyproject.tomlwhich no longer conforms with PEP
fkiraly
left a comment
There was a problem hiding this comment.
I see, thanks!
- opinion on
uv syncremains - also, we should not rename
release.yml, since it is registered as a trusted publisher with pypi now. Not uniform, but less of a hassle...
…re that it will rin
|
the yml now has conflicts with |
…com/tingiskhan/pyportfolioopt into ci/homogenize-workflows-with-sktime
.github/workflows/release.yml
Outdated
| enable-cache: true | ||
| python-version: '3.11' | ||
|
|
||
There was a problem hiding this comment.
accidentally added some tabs here, I think?
fkiraly
left a comment
There was a problem hiding this comment.
LGTM now - I think there is are a few stray whitespaces though, if you want to remove them. Does the code quality workflow not check the actions ymls?
|
I'll take a look at the white spaces and fix the errors in the workflow |
…uld make it smarter, but it's just a notebook
fkiraly
left a comment
There was a problem hiding this comment.
Wanted to merge but noticed that there are substantial changes in notebook 2 - is this an accident that should be reverted?
The notebook fails stochastically due to yfinance not always being able to fetch the prices for the optimization universe for the latest date - it fails between runs both locally and in CI. We could either (i) do as I do and simply drop the partia NaN rows, (ii) forward fill the prices, or (iii) select the previous day (no guarantee for non-missing observations though). But just to make sure, you are referring to the NaN-handling, right? Shouldn’t be any other differences (other than adding plotly to pip install) |
|
I would suggest to revert changes in the notebook, since otherwise this PR would conflict with the more programmatic fix in #721 |
Ah, nice, had missed that - fixing! |
Homogenizes the main workflows of pyportfolioopt with that of GC.OS repositories - template used is
sktime@fkiraly