Skip to content

Ci/homogenize workflows with GC.OS repositories#702

Draft
tingiskhan wants to merge 12 commits intoPyPortfolio:mainfrom
tingiskhan:ci/homogenize-workflows-with-sktime
Draft

Ci/homogenize workflows with GC.OS repositories#702
tingiskhan wants to merge 12 commits intoPyPortfolio:mainfrom
tingiskhan:ci/homogenize-workflows-with-sktime

Conversation

@tingiskhan
Copy link

@tingiskhan tingiskhan commented Feb 21, 2026

Homogenizes the main workflows of pyportfolioopt with that of GC.OS repositories - template used is sktime @fkiraly

@tingiskhan tingiskhan marked this pull request as draft February 21, 2026 12:41
@tingiskhan
Copy link
Author

@fkiraly Would it make sense to have a dedicated devops repo associated with sktime where re-usable workflow components are stored?

@fkiraly
Copy link
Collaborator

fkiraly commented Feb 26, 2026

@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.

@fkiraly fkiraly changed the title Ci/homogenize workflows with sktime Ci/homogenize workflows with GC.OS repositories Feb 26, 2026
@fkiraly fkiraly added the maintenance Continuous integration, unit testing & package distribution label Feb 26, 2026
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we remove this?

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
Copy link
Collaborator

@fkiraly fkiraly Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would go for uv pip install rather than uv sync. See long discussion on the topic in sktime.

line-ending = "auto"
skip-magic-trailing-comma = false

[dependency-groups]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why move it here? I think we should just leave it in non-uv format

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is actually the pip standard as of 25.1: https://packaging.python.org/en/latest/specifications/dependency-groups/

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Collaborator

@fkiraly fkiraly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 sync instead of uv pip install, this can cause problems with incompatible depsets
  • use of uv depset definition in pyproject.toml which no longer conforms with PEP


UV_INSTALL_DIR := ./bin

# TODO: I don't think we should install uv locally inside the repository, but rather rely on the user having it installed globally. This is because uv is a tool that is meant to be used across multiple projects, and installing it locally in each project can lead to version conflicts and unnecessary duplication. Instead, we can specify in the documentation that users should have uv installed globally, and provide instructions on how to do so if they don't already have it
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI @tschm

Copy link
Collaborator

@fkiraly fkiraly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, thanks!

  • opinion on uv sync remains
  • 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...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Continuous integration, unit testing & package distribution

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants