-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI/CD refactor and switch to github actions #1620
CI/CD refactor and switch to github actions #1620
Conversation
@mloning if this is a potential way forward it would be great to trigger the CI runs in order to check that everything runs as expected. I tried that locally with |
My initial plan is to simplify the pipelines:
After testing locally it seems that Are there any C extensions for |
pyproject.toml
to manage dependenciespyproject.toml
and refactor CI pipelines
minor comment: is |
Hmmm, I'm not sure but maybe the unresolved file conflicts are still blocking? Couldn't find any relevant information in the docs about it so I'm guessing here. |
might be - would you mind merge/resolving? |
I rebased on the latest |
Yes, that was it - now I can "approve and run". Good luck with the tests... |
uh-oh, you made the linter unhappy, since there are no newlines at the end of the files! I corrected your terrible mistake 😁 - I hope you don't mind, just so it runs through the interesting part. |
Thanks! |
I'm having some challenges understanding the build process and in particular the contents on the To be clear I understand the code but I'm missing the why. |
Same here - I think that only @mloning can answer, he created the original script a couple years ago. |
I think some of it might be copy-pasted from scikit-learn, so it may be worth investigating there, to. |
It seems that a lot of the build code is quite incompatible with tools like build specifically
It's quite challenging to piece together what's really happening. On top of that both extensions
that seem to require all this extra configuration are marked for removal, and the share the following header:
Maybe it is worth to deal with that first since then the build pipeline might be simplified. Correct me if I'm wrong but replacing the current extensions with numba will leave only pure python code without necessity for compilation. I'll join slack and try to initiate the discussion about this over there. I only joined discord but it seems a bit quiet. Is slack the preferred communication channel? |
We've been using slack for developer communication, and discord for events mostly, like community meet-up or dev meetings. We may want to clean up this proliferation of communication tools at some point, but that's just my opinion... |
FYI, here's the "remove cython" project: https://github.com/alan-turing-institute/sktime/projects/24 |
Great! There is already a thread on slack about this issue (you're tagged as well, provided I used the right handle 😉 ) |
Yes, I saw this after I posted only. |
Hi @lmmentel, sorry for the slow reply, in case you're not aware of this already, we're having a CI/CD session tomorrow, would be good to discuss your suggested changes there. I may have missed discussions elsewhere, a few general comments:
|
@mloning thanks for the context! I wasn't aware of the CI/CD session, but It would be great if I could join the discussion. Although I'm trying to go step by step, the changes I'm exploring here are rather severe so it would definitely be useful to discuss and get broader perspective. I don't have any numbers yet in terms of timing of different CI workflows but that would be interesting to collect. |
on discord, tomorrow as part of the community collaboration session starting at 1pm UTC. We'll might have some introductions to new community members and a stand-up first, so I'd expect the CI/CD overview to start around 1:15pm. |
There's one other reason why relying on multiple platforms may be preferable over using a single one: sometimes CI platforms break down or make changes which break our pipelines and it may be easier to have some other platform to fall back on in these cases (makes it easier to isolate issues, prevents total standstill of dev work, etc). |
@mloning that is true although I would not underestimate the maintenance effort required to support multiple different technologies for essentially doing the same job. I like to think about it in terms of tradeoffs rather that optimal solutions since with a particular technology choice you gain some desired feature while incurring some debt. |
@lmmentel yes good point! One other thing that would be nice to have is to use reusable actions (https://docs.github.com/en/actions/learn-github-actions/reusing-workflows), so that for example the CI pipelines use the same jobs for testing as the release pipeline. |
@fkiraly I rebased the branch on top of latest main. I had to do manual edits in several places and unfortunately cannot guarantee that the documentation has no errors since it was not a straighforward change given that same files we modified and then modified content was moved to different files. That makes it hard to track changes. Before merging consider build the docs locally to make sure they are as expected. |
@fkiraly should be ready to merge 🙂 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright!
Changes to the docs look good too, so ready to go.
I'll give it another skim, and then I'll press the button 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually, some minor things:
- it should be "Martin Walter", not "Marting Walter"
- while you're there, can you write out my first name (Franz) in the author/maintainer fields?
- the
binder
set of dependencies includesLunarCalendar
- why is that even there? It does not seem to be used for anything.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, looks all good now!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just removed convertdate
too - same problem, didn't seem to be used anywhere.
Reference Issues/PRs
FRESH
fail on all platforms and python versions #1803pip install -e .[all_extras]
in installation instructions #1832See also #1150
Refactoring of github actions workflows started in #1321
Currently blocked by:
_diff_transform
function to be compatible with pandas 1.3.4 #1644test_fit_does_not_overwrite_hyper_params[FeatureUnion]
failing #1662FRESH
fail on all platforms and python versions #1803What does this implement/fix? Explain your changes.
This is a rather substantial effort involving changes to how
sktime
is build and distributed. The main changes are:all_extras
all "soft" dependenciesdev
packages useful for development and testingbinder
packages required for binder and running notebook examplesdocs
packages required to build the documentationRemoved
High level diagram for the CI/CD workflows
Does your contribution introduce a new dependency? If yes, which one?
It does not introduce any new runtime/install dependencies but it could introduce an optional development depencency/build system such as poetry to simplify development/build/distribution.
What should a reviewer concentrate their feedback on?
This PR introduces changed to the CI/CD pipelines that would hopefully allow to drop
appveyor
andazure pipelines
in favor ofgithub actions
which would simplify the current build and maintenance process.Any other comments?
PR checklist
For all contributions