-
Notifications
You must be signed in to change notification settings - Fork 1
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
prepare actions to include qc report #10
prepare actions to include qc report #10
Conversation
.github/workflows/check.yml
Outdated
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.
why merge check/lintr/pkgdown ?
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.
Main point is that pkgdown uses the output of tests to generate the quality control documentation, it is simpler that moving artifacts between Github action jobs. Secondarily, personal perspective, it is simpler to maintain a single R script that does all the job than maintaining separated yaml files.
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.
I would still separate the concerns. I can chip in on the artifacts part if you want.
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.
Ideally we should just plug-and-play other qc reports/validatoR as the industry evolves. This ensures that.
- name: Check URLs 🌐 | ||
run: | | ||
lychee . --format markdown --verbose --no-progress >> $GITHUB_STEP_SUMMARY | ||
shell: bash | ||
|
||
- name: Checkout gh-pages branch ⬇️ | ||
if: github.ref_name == 'main' |
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.
why generate pkgdown docs for every commit?
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.
Removed for debugging and creating the documentation, I will include it again
|
||
steps: | ||
- name: Checkout project ⬇️ | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install package dependencies 📄 | ||
uses: boehringer-ingelheim/dv.templates/.github/actions/dependencies@main |
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.
why is this removed?
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.
They are now installed inside single build, but if we prefer a separate step for installing dependencies, no opposition.
pkg_pipeline/single_build.R
Outdated
message("###### INSTALLING (S) ######") | ||
message("############################") | ||
|
||
pak::local_install_deps(".", upgrade=FALSE, ask=FALSE, dependencies = TRUE) |
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.
I would say keep the deps step removed above (since it's a dependency in all steps, not just check/lintr/pkgdown) and comment these 2 lines
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.
also why not add the qc report code in this repo in the first place? it uses nobody outside BI to have it in the package repo
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.
The qc report is used inside the test files to link specs and test cases, therefore it is required when running tests. In a next iteration we can think about ways to move it to dv.templates. No problem with that.
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.
why not do it in the first place?
message("###### CHECKING (S) ######") | ||
message("##########################") | ||
|
||
check_results <- rcmdcheck::rcmdcheck(error_on = "never", args = "--no-tests") |
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.
would definitely not serialize steps in a big file. KISS, remember?
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.
- why wait for fails if you can see them all at once and hopefully fix them in one go?
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.
I would argue that it is simpler to maintain a single R file that runs all the steps and offers a final summary with all the errors found. You don't wait more than having separate pods or have less information from my point of view, a table is included in the Action Summary, and in the end you have to check the logs anyway to find the specific errors.
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.
old wheel to a new cart. disagree. I thought the action status would save you from doing just that...
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.
@sorinvoicu
Strongly agree with @zsigmas on this one and I'm ready to die on this hill.
"One cart carrying all the things we need VS several carts that need coordination."
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.
be my guest @ml-ebs-ext (a name update would work as well)
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.
I have slept on the matter and have a few comments.
My combative wording ("ready to die on this hill") stems from your unfortunate "KISS, remember?" except I'm not insulting (accidentally or purposefully) anyone. In retrospect, I could have been more civil.
On the topic of simplicity, yes, I do think one big file that executes top-to-bottom is simpler than several files strung together through github actions. It is simpler because (in subjective decreasing order of importance):
- You only need to look in a single place to understand how the build process works.
- Related to the previous point, all build information is available at the same time on a single pod, making its manipulation trivial.
- You can run it locally without having to mirror github machinery on your machine (a luxury that our internal colleagues don't have). This means you can tweak it locally and have a pretty good sense that it's going to work without having to go through minutes-long trial and error, which not only makes us miserable but costs the company money.
- We have less work to do whenever github decides to deprecate features we rely on (https://github.blog/changelog/label/actions+deprecation/)
- It makes it easier for potential users to take our code and use it mostly as-is outside of github. Our choice of hosting platform should not dictate theirs.
- It is more environmentally friendly, because we save the cost of spinning up several containers (drop in the ocean, I know, considering we're encouraging the use of R).
I have numbered them so that you can comment on any of them individually and see where the nature of our disagreement lies. I would also like to know your reasons for thinking that a split .R
file is simpler.
On the topic of my username: I revised it from mlebs
to the obviously superior ml-ebs-ext
, that make it clear that I'm an external working through EBS and my initials are "m" and "l".
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.
@sorinvoicu Sorry, I failed to mention your nickname yesterday. This is an important issue because it sits upstream of developers and dictates the way they work. I would like to hear your reasons for thinking that a split .R
file is simpler. Even if we fail to convince each other, the whole team can benefit from this conversation.
The build will fail as actions points to @main and those actions do not exist there yet. They will build once the PR merged