-
Notifications
You must be signed in to change notification settings - Fork 123
Move headers Part 1 #4920
Move headers Part 1 #4920
Conversation
simple regex replace
mostly stuff that relied on transitively included headers
…utils.h> preparation for tree-surgeon script run
mostly fixes of transitively included headers which were 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.
No other reviews done so far, two required. And it is quite clear why nobody reviewed yet, as it is very challenging. Please write in doc/news/_preparation_next_release.md what the goals of these changes were. What are the automatic changes? How were they done?
It would also be very helpful if you say what are the commit ranges where you manually changed something. Maybe you even need to create a separate PR for this (just for review). For me the GitHub UI was hanging several times, e.g., it was not possible to search for a file.
Not really my fault... Can't really do more than request reviews from people. I already reduced the size of this PR, by keeping some changes from my fork for future PRs.
I did all of that already in the PR description and the first comment (linked from the description). IMO information like this has no place in the release notes. People using Elektra don't care how we made a commit. Yes, the why we did that should be in the release notes, but that's why I put a note at the top of the PR description (which nobody seems to read in this repo....) |
Unfortunately still no other reviews and no changes here. I described what would have improved the chance that I will take a look. There are plenty of things that can be done, we will talk about it in the next meeting. |
You wanted to know, what commits where automated, etc. I told you that this is already explained in the PR description. What else do you want from me? EDIT: I have noticed the PR description doesn't actually mention the relevant decisions. I have added that now. I still haven't update the release notes, because none of the decisions are fully implemented. I may move the decision files to "partially implemented", if it starts to look like this PR will get merged.
Yeah, two other reviews, but I can't do anything about that... At this point I've got to ask: Do you even want this PR? It really seems like you don't care at all, since you're seemingly not even willing to read the PR description.
The next meeting is too late for me. The PR is now open for almost 15 days (and the code is unchanged for the last 14 of those), with not a single useful comment about the content. I simply cannot afford to waste even more time, waiting for any meaningful response from you. If this PR is not merged (or at least close to it) at the time of the next meeting, I will have to go back to developing my own fork for my thesis. |
@@ -1,4 +1,5 @@ | |||
#include <benchmarks.h> | |||
#include "./benchmarks.h" |
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.
Is the ./
really necessary?
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.
See doc/decisions/4_decided/header_include.md
. We decided to enforce this syntax, to make sure #include "..."
is only used for local 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.
LGTM, I think these changes make sense overall, and thanks to the split-up of the header files we're also getting a bit more guidance on where to put new function declarations.
How much of this can be automated? Could you apply your tool also to the open PRs?
There are two changes in here that affect other PRs: First, the new rules for includes enforced by Second, the moved headers. That's not as easy. The bigger PRs #4892 and #4922 are definitely candidates for automated updates with (*) Depending on the PR, not all changed files will be affected. Newly added files of course need to be changed, but modified files might be fixed with a merge/rebase after this PR. However, if this PR is merged, I will definitely help with updating all the other PRs. |
Update for #4920 (comment): I have now moved some decisions to "partially implemented". For fixing the conflicts and (possibly) updating release notes, I'll wait until the release is done, so there won't be additional conflicts. |
@markus2330 @atmaxinger This PR is now up-to-date with master and should be mergeable again. To my absolute surprise the merge worked without any conflicts. I only had to update a few go-elektra files to the new includes. In addition to the files listed in #4920 (comment) the following files now also contain noteworthy changes:
Technically the |
@hannes99 Please review. To make things easier, read the PR description and the comments linked from there first. |
@markus2330 Any chance that we can merge this in the next few days (until end of May)? #4464 was merged to day, so now I'll have to update this PR again. I'd really prefer, if we could merge this PR ASAP and I'll help update all the other open PRs. We a big PR like this one, every time |
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.
LGTM, and seems to match what was decided in the decision.
@markus2330 This PR now has two approving reviews. I have also updated it from (*) except for |
For anyone interested: The |
As it seems this PR is not getting merged into |
This PR starts implementing various decisions related to headers and repo structure. It is hard to define which decisions are implemented in this PR, because the changes will be split across multiple PRs for ease of reviewing.
The entire series of PRs, will implement:
doc/decisions/4_decided/header_include.md
doc/decisions/4_decided/header_file_structure.md
doc/decisions/4_decided/library_directory_structure.md
doc/decisions/4_decided/library_split.md
What happens in this PR?
This PR is very big so here is an overview what happens by commit (range):
scripts/dev/check-includes.sh
. This script checks the new rules for includes and is also executed in a new Github Actions workflow. Linkcheck-includes.sh
), which adds the now required./
to#include "..."
lines. Linktypes.h
and thereby eliminated the need forconfigure_file
. It also removesELEKTRA_HAVE_KDB_LONG_DOUBLE
and instead accepts along double
that is at least as big asdouble
. Note: This part (long double
) could be undone, if we don't want the change.master
, but seemingly wasn't detected in the CII know the PR is still very big. However, splitting it up further would only create multiple PRs that touch about the same number of files as this PR.
Hints for reviewers
To reviewers I suggest using GitHub's "file viewed" checkbox feature. When you start the review go through all files quickly and check off all the files where just the#include
s changed.Okay... seems that doesn't quite work, at least for me GitHub lags a lot when I try to check off the files. Using github.dev works a bit better.
The remaining changes should be a lot more manageable to review. See #4920 (comment) and #4920 (comment) for a list of those files.
What's going to happen in follow-up PRs?
There will be 2-4 follow-up PRs depending on how easy it will be to find intermediary points where everything works.
old_helper.h
file will be split up and removed. That will allow us to re-enable the external example tests.kdbprivate.h
will be split up and removed.include_directories
all over the place.#include <key.hpp>
.Most likely, 1-2 will be one PR, 3 may be separate and 4 is definitely separate (since I haven't even started that yet). I'll keep 1 & 2 as a single PR, because these once again are things that touch large numbers of files.
Basics
(added as entry in
doc/news/_preparation_next_release.md
which contains_(my name)_
)Please always add them to the release notes.
(first line should have
module: short statement
syntax)close #X
, are in the commit messages.doc/news/_preparation_next_release.md
scripts/dev/reformat-all
Checklist
(not in the PR description)
Review
Labels