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
[Misc] Automatic release pipeline: read semver from CMakeList directly #1885
[Misc] Automatic release pipeline: read semver from CMakeList directly #1885
Conversation
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.
Now since that conf.py reads the versions from CMakeLists.txt directly without requiring cmake . before the release commit, how can we version control the version? If I understand it correctly, docs.yml Github Action is only responsible for building the docs not commiting the files. (My guess is that we can stop version-controlling the version file in docs dir at all, since the versions are already controlled by CMakeLists.txt and get read on the fly in the docs action which calls conf.py)
We can simply remove the docs/version
file. The only use of that file is to generate the taichi_vesion
variable in conf.py
. We no longer need that file after this PR :-)
How is the access policy of the self-hosted runner ☳ configured? (Is it group based? Is it repo-wide or org-wide?)
For now, it seems to be repo-wide.
How does the self-hosted runner ☳ get configured, is it a plain persistent machine or gets exposed through some container layers? (basically does it have fresh states between runs?)
Based on what I learn so far: it's a persistent machine, but the work folders are deleted everytime. The same for the old Jenkins build bot, which works with a persistent a state fine so far :-)
The lint step worked totally fine on my local environment but failed due to a really bizarre error. It also indicates that while the unit tests are checked on different versions, the code formats are not. Trying to add build matrix to code format too.
It's interesting that linting gives you different results on different Python versions. Maybe we should simply use e.g. Python 3.8 as the lining standard? I guess that would make things easier. Let me know what you think.
Finally, thank you so much for the cool regex parser and everything else in this PR!
Co-authored-by: Yuanming Hu <yuanming-hu@users.noreply.github.com>
Thanks for your prompt reply! Since the ultimate goal of having a code formater (and linter) is to maintain a consistent unified code format so we don't have to spend precious time discussing about code styles, I think simply using Python 3.8 is a good idea. (The only concern that developers don't have 3.8 locally is already addressed by the format server/action, so it won't be a problem) If it sounds good to you, I will update the action to use Python3.8 only. (Not sure if we need to update the format server as well, since I remember that's about to be deprecated) In the meantime, I realize other PRs are having this problem too, but most of the format checks there are skipped since action will ignore format checks if |
That sounds good! Thanks, and let's use 3.8 only.
I believe we will still use the current format server :-) It's working reasonably well.
Interesting... I guess the desired behavior here is to always check the code format, and only trigger format server if Taichi gardener is on the reviewer list. Is this the current behavior? IIRC the code format check is always on. Linting is a different thing from code formatting. I believe currently there are too many linting warnings and it will take us a while to manually fix the linter warnings... So for now, we should not strictly enforce "no linting warnings", but after we clear up the warnings we should enforce that as well to make sure no new listing warnings are introduced. |
Codecov Report
@@ Coverage Diff @@
## master #1885 +/- ##
==========================================
+ Coverage 43.19% 44.14% +0.95%
==========================================
Files 44 44
Lines 6330 6121 -209
Branches 1092 1092
==========================================
- Hits 2734 2702 -32
+ Misses 3426 3250 -176
+ Partials 170 169 -1
Continue to review full report at Codecov.
|
Ah, I see, the desired behavior totally makes sense to me. I think my confusion is from this line: taichi/.github/workflows/persubmit.yml Line 112 in 9a23ecd
and the fact that other PRs that have gardener on the list have skipped code checks. I also misunderstood the purpose of Anyways, I can try to understand the CI workflows more as I'm working on the release pipeline, and hopefully we can standardize/simplify the CI as a whole. |
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.
Thank you! Looks great now.
Related issue = #1674
[Click here for the format server]
This is the 1st split up task of #1861, the decompostion of the original PR is aiming at migrating the release process more smoothly and progressively.
Solved problems
Discussions
conf.py
reads the versions fromCMakeLists.txt
directly without requiringcmake .
before the release commit, how can we version control theversion
? If I understand it correctly,docs.yml
Github Action is only responsible for building the docs not commiting the files. (My guess is that we can stop version-controlling theversion
file indocs
dir at all, since the versions are already controlled byCMakeLists.txt
and get read on the fly in the docs action which callsconf.py
)The following questions are related to this PR, but the answers will benefit the testing plan of the eventual automatic release pipeline:
Problems
The
lint
step worked totally fine on my local environment but failed due to a really bizarre error. It also indicates that while the unit tests are checked on different versions, the code formats are not. Trying to add build matrix to code format too.