Conversation
This is a bigger commit - it reworks the whole log functionality. The old one was confusing and not adhering to common standards, i.e. not following convention over configuration. With this commit, we use the common standard log levels 4. TRACE 3. DEBUG 2. INFO 1. WARN 0. ERROR to better provide the information to users and maintainers. With this changes, `DMS_DEBUG` was removed and `LOG_LEVEL` introduced. `DMS_DEBUG` is not usefule anymore (obviously), and replaced by the new `LOG_LEVEL`, which defaults to `info`. All scripts and tests were adjusted to use the new format. There is a special log level (`always`) which is used only by `start-mailserver.sh` to show the welcome messages independent of the log level. I took some care when converting the "old" log levels. With this rework, it should be easier to identify problems in logs and provide users with a clear and straight forward log level variable which is easy to understand. This is not actually a breaking change, but I thought it is fitting for the next major release `v11`.
Co-authored-by: Brennan Kinney <[email protected]>
Co-authored-by: Brennan Kinney <[email protected]>
1. `_errex` now logs correctly via `_notify` 2. `warn` and `error` now log to stderr 3. Some small log level adjustments 4. Corrected a bug in `setup-stack.sh` where the parent directory would not be present and the following `: >...` would not succeed
The env variable `POSTMASTER_ADDRESS` was set in a way that is not very clear to the reader and indeed possibly wrong. The old way used the default while the new way uses the correct variable from `/root/.bashrc`. Therefore, a new function `_get_dms_environment_variables` was introduced which handles exporting vaiables from `/root/.bashrc`. This could be used in the future as well. I KNOW THIS IS NOT ACTUALLY RELATED TO THE LOG - PLEASE DON'T KILL ME :D I just had to fix this... :) This is a small addition, I hope you don't mind.
|
With cce33f8, I improved |
The `daemons-stack.sh` is now adjusted to the log level and will only print information about the started daemon on `debug` or `trace` and suppress the Supervisor log output (which is not needed and unwanted).
`check-for-changes.sh` should now wait more efficiently on startup. Moreover, the `mail_ssl_letsencrypt.bats` test was adjusted to view more log. This has become necessary as the log grew in absolute size with this PR (the messages are longer, more bytes to log). I CAN'T FOR THE LIFE OF ME find the reason the test in `mail_ssl_letsencrypt.bats` in the function `_should_extract_on_changes` which is called by `_acme_wildcard` in the test named `ssl(letsencrypt): Traefik 'acme.json' (*.example.test)` in the file `mail_ssl_letsencrypt.bats` fails. @polarthene I need your help on this: the last `cp` of the wildcard ACME does not seem to cause the message `'/etc/letsencrypt/acme.json' has changed - extracting certifcates now` to be logged, though it should, right? Maybe this was overlooked in the past (false positive by viewing to much of the previous log???). In all of my tests, the wildcard ACME does not cause the log message about the file to be logged again...
|
@polarathene I need your help: The test This is the current log of This is the log of the call to In the latter, the line |
|
@polarathene indeed, the log of the changedetector on and there is a third EDIT: Something odd is happening here. On |
There was a problem hiding this comment.
While I do appreciate nice improvements like the daemons-stack.sh addition. It like others probably should have been delayed as follow-up PRs.
Similar to how some of the broader sweeping changes of this PR could have been introduced in phases. You're not only adjusting log levels, but changing the existing ones, and making adjustments to content among other changes related to the logs.
It's easier for reviewers in this case to go into a PR knowing that you're only introducing a new and improved logger method, with existing log levels being remapped in the method, then a followup PR that just focuses on changes to drop that mapping, and adjust the log levels throughout the files, especially when you're adjusting based on context (for example when inf became info, debug, trace or just a plain echo).
There's more than just that going on with this PR though. I rather you don't attempt to split the PR again due to residue issues we had with the split to this PR.
I don't particularly want to wade through the diff of this size again to catch those hiccups. So unless another reviewer explicitly requests it to assist them reviewing, please don't take that initiative 😅
One of the main concerns with changes introduced since is your new utility for importing ENV, as the relevant review comments detail, this seems to be from a lack of awareness of /etc/dms-settings or I'm mistaken and there's good justification for it.
I'm also wary of the alternative approach for sourcing POSTMASTER_ADDRESS, mostly due to the dependency on sleep. Already the log output size has affected tests, and varying layers of sleep is another common issue we run into, I prefer to minimize the need for it where possible.
| function _changedetector_exit_error | ||
| { | ||
| _changedetector_notify "${@}" | ||
| _changedetector_notify 'Aborting' | ||
|
|
||
| exit 1 | ||
| } |
There was a problem hiding this comment.
These aren't calling a log level? I assume they should? Do you really want to be using ${@} here when ${1} to restrict to a single message arg should suffice?
I'd personally rather methods that don't document variable arg length are kept simple to grok. When the args are fixed, I know that anything calling this is predictable in usage, but in this case I am given the impression there is usage that warrants the flexibility when AFAIK there isn't?
There was a problem hiding this comment.
You're right, there is the error log level missing. I will correct this and change "${@}" with "${1}".
There was a problem hiding this comment.
@polarathene anything wrong with my reply? Is this not what you wanted to happen; did I misunderstand anything? (because of the 👎🏼)
If we were viewing too much log, then the test should still fail, it explicitly looks for the FQDN arg the function is called with: And after that test, I also added another to count duplicate log output for expected number of restarts by this point. Perhaps not exactly foolproof but should be reasonably reliable: docker-mailserver/test/mail_ssl_letsencrypt.bats Lines 253 to 260 in 321ae74 Detailed breakdown if helpfulFull flow
Priority is due to the docker-mailserver/test/mail_ssl_letsencrypt.bats Lines 110 to 118 in 321ae74 Priority logic in change detection for docker-mailserver/target/scripts/check-for-changes.sh Lines 90 to 114 in 321ae74 That should be calling the extract certs helper: docker-mailserver/target/scripts/helpers/ssl.sh Lines 411 to 442 in 321ae74 which should log a success or failure.. but there is two The directory is created in advance however, and we return early with warning logged if I assume there is nothing wrong with calling the python script since that is working at an earlier stage in the tests. There was a recent change to use an explicit
Actual flow issueSo that whole flow seems sound AFAIK. The issue with docker-mailserver/target/scripts/check-for-changes.sh Lines 63 to 65 in 321ae74 docker-mailserver/target/scripts/check-for-changes.sh Lines 88 to 90 in 321ae74 As we don't reach that 2nd step, what may have occurred is in docker-mailserver/target/scripts/check-for-changes.sh Lines 100 to 111 in 321ae74 Actually, it looks like the first That doesn't explain why docker-mailserver/test/mail_ssl_letsencrypt.bats Lines 237 to 246 in 321ae74 One possible factor contributing to the observed behaviourIf file locking logic has anything to do with it, I will reference these findings I made late last year. I'd like to highlight the collapsed details block there "Switch back to
It's possible that is part of the problem, along with sleeps and the changes to log output size affecting timing? I would look into the checksum file changes, as that should reveal more about what change is detected for If resolving proves difficult:I would offer to investigate this further myself, but it would presently be inconvenient. I'd be happy to try allocate some time later this month for it if needed. Feel free to workaround or disable the test to merge this PR, then open an issue about this problem and assign me to it. |
This reverts commit 7f9108f.
`check-for-changes.sh` now uses `/etc/dms-settings` instead of my self-written, new (and unnecessary) one. Moreover, some small reverts (doc in `error.sh`) and an unnecessary `\` in `mail_ssl_letsencrypt.bats`.
See #2486 (comment) for an explanation. I also incorporated PR feedback.
Houston, we have a problemThe ProblemSo, after long and painful hours of debugging, I found some problems that are currently present with _changedetector_notify 'warn' 'DEBUG START'
echo -e "\nchanged: ${CHANGED}\n"
echo -e "\nnew: $(<${CHKSUM_FILE}.new)\n"
echo -e "\nold: $(<${CHKSUM_FILE})\n"
_changedetector_notify 'warn' 'DEBUG END'For context: the current logs only show two changes being being detected in the changed:
new: d6825c549a553df95e3830b6a3ec3f161f320b2a600b4f1fd63540920ad33fd6b587dbdf8359ccb35dd1a17c9fd14c17f113954f73da8f19bcf83f1649fd757a /tmp/docker-mailserver/postfix-accounts.cf
37d1a2f5cb4f99c81463b05b366f27f3877d10e83685fec1ec1f38aabf60e2d28bc32a7d4b810e66739b37912f9dd9d1424145b93c7e5969120d345c05c8f74c /tmp/docker-mailserver/postfix-virtual.cf
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/docker-mailserver/postfix-aliases.cf
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/docker-mailserver/dovecot-quotas.cf
a0eafaf897cb7c793244fe71de32120d7b22897ffe20e5f9f295251e992104c48148e3103187a61c7d92ad773d1e00889d4790038ca4326b414439dfbd90045e /etc/letsencrypt/acme.json
5f79d61f94f365052e7c079d1ea5d3ac8810e6e5c028d8b22b12d80f3ceeffc0c8182a4bace90cea265d357fc73bb3518214cb54247a7945152d6dbd94d23a31 /etc/letsencrypt/live/mail.example.test/fullchain.pem
4fd75dc009e4499cd72e12ace6f348bfd904ac4e816aa2a13200ec2749a0e9b86f362407bc35c945f7cd667b3da5449de771ed96d0ae6f7cb24c8f82fcd3d3b6 /etc/letsencrypt/live/mail.example.test/key.pem
old: d6825c549a553df95e3830b6a3ec3f161f320b2a600b4f1fd63540920ad33fd6b587dbdf8359ccb35dd1a17c9fd14c17f113954f73da8f19bcf83f1649fd757a /tmp/docker-mailserver/postfix-accounts.cf
37d1a2f5cb4f99c81463b05b366f27f3877d10e83685fec1ec1f38aabf60e2d28bc32a7d4b810e66739b37912f9dd9d1424145b93c7e5969120d345c05c8f74c /tmp/docker-mailserver/postfix-virtual.cf
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/docker-mailserver/postfix-aliases.cf
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /tmp/docker-mailserver/dovecot-quotas.cf
a0eafaf897cb7c793244fe71de32120d7b22897ffe20e5f9f295251e992104c48148e3103187a61c7d92ad773d1e00889d4790038ca4326b414439dfbd90045e /etc/letsencrypt/acme.json
5f79d61f94f365052e7c079d1ea5d3ac8810e6e5c028d8b22b12d80f3ceeffc0c8182a4bace90cea265d357fc73bb3518214cb54247a7945152d6dbd94d23a31 /etc/letsencrypt/live/mail.example.test/fullchain.pem
4fd75dc009e4499cd72e12ace6f348bfd904ac4e816aa2a13200ec2749a0e9b86f362407bc35c945f7cd667b3da5449de771ed96d0ae6f7cb24c8f82fcd3d3b6 /etc/letsencrypt/live/mail.example.test/key.pem
f8911bc63794d532e2af7e24f71a92dea5fbef8a3f4da5249a13285fd715c958cdd265eea82721dbc5f9921613916d2b2cf21bf2012a1d6abae2a5a76c1e6faa /etc/letsencrypt/live/example.test/fullchain.pem
760241712a2d96a6cbfe166c9fa063458c57ba869a8caf5bed1add6547f5445e1e890320f262ff04c60ecd757da15cbfc006547c5f0717af994a08edff20009b /etc/letsencrypt/live/example.test/key.pemAfter doing a manual $ cmp old new
cmp: EOF on old after byte 1207, line 7
$ echo $?
1
$ diff old new
7a8,9
> f8911bc63794d532e2af7e24f71a92dea5fbef8a3f4da5249a13285fd715c958cdd265eea82721dbc5f9921613916d2b2cf21bf2012a1d6abae2a5a76c1e6faa /etc/letsencrypt/live/example.test/fullchain.pem
> 760241712a2d96a6cbfe166c9fa063458c57ba869a8caf5bed1add6547f5445e1e890320f262ff04c60ecd757da15cbfc006547c5f0717af994a08edff20009b /etc/letsencrypt/live/example.test/key.pemSo, there are two additional lines in the diff now. f8911bc63794d532e2af7e24f71a92dea5fbef8a3f4da5249a13285fd715c958cdd265eea82721dbc5f9921613916d2b2cf21bf2012a1d6abae2a5a76c1e6faa /etc/letsencrypt/live/example.test/fullchain.pem
760241712a2d96a6cbfe166c9fa063458c57ba869a8caf5bed1add6547f5445e1e890320f262ff04c60ecd757da15cbfc006547c5f0717af994a08edff20009b /etc/letsencrypt/live/example.test/key.pemAdding an /etc/letsencrypt/live/example.test:
total 8.0K
-rw-r--r-- 1 root root 1.2K Mar 18 09:28 fullchain.pem
-rw-r--r-- 1 root root 1.7K Mar 18 09:28 key.pem
/etc/letsencrypt/live/mail.example.test:
total 8.0K
-rw-r--r-- 1 root root 1.3K Mar 18 09:27 fullchain.pem
-rw-r--r-- 1 root root 1.7K Mar 18 09:27 key.pemSumming up: the additional files are picked by the changedetector-run and The SolutionI adjusted the tests to query an appropriate amount of log. This "solves" the issue, but in the future, a better solution could / should be found (the log should be queried in a more intelligent way). This is however not related to this PR. |
|
@polarathene now I need your help again again (with a test failure that may actually be an expected and therefore correct failure): docker-mailserver/test/mail_ssl_letsencrypt.bats Lines 154 to 173 in 321ae74 Line 171 says "WARNING: This should fail...but requires resolving the above TODO. ". Or is he warning for the line below? |
|
Documentation preview for this PR is ready! 🎉 Built with commit: 28c4842 |
You don't think this is related to more earlier investigation notes above? This is in particular:
I have not verified the I'd also have to give it some thought if that logic is testing with You say master has 2 change detections logged, and then share the third additional change log that this PR caught due to log verbosity changes.. does this mean that the first two are the correct |
This should be fine to enable now (but probably best deferred to a separate PR). It's referencing line 163 which would also be enabled along with it, and the TODO comment above it. They needed the change detection event to run the ssl startup script again to update the filepaths to the correct letsencrypt directory (changed from It's an edge case, most users won't be changing to/from a wildcard cert on a running instance I imagine, this test will ensure we catch it though if someone refactors Test failure: This is the last part of the test case for docker-mailserver/test/mail_ssl_letsencrypt.bats Lines 169 to 172 in 1bfc6d9 which is saying it should match the Not the These methods are only used in the wildcard, to ensure that Here is the relevant part of the ssl helper function where failure is happening: docker-mailserver/test/test_helper/tls.bash Lines 50 to 53 in 321ae74 All certs used in the docker-mailserver/test/mail_ssl_letsencrypt.bats Lines 92 to 101 in 1bfc6d9 Given the changes in this PR, chances are that undesired third change event is restarting Postfix while trying to make the connection perhaps.. Failure will likely be resolved by preventing the unexpected change event from happening. Related In the meantime, introducing a reasonable |
polarathene
left a comment
There was a problem hiding this comment.
Stay focused, refrain from extras that can wait
I want to see this PR merged, please stop adding additions not related to the feedback. This is already deviating again from the core focus that resulted in it being extracted to a separate PR.
If you feel comments could be refactored/added, unless specifically about the new log functionality being introduced, hold off on that. Create a branch and pile them up there for you to follow up with.
This PR is a good improvement, but becoming a bit frustrating to review when changes that could be deferred to another PR are thrown in (and then reverted after review when I state not to unless requested by other reviewers, sometimes with residue errors).
Under no circumstances, take the initiative to clean up this PR with a force-pushed interactive-rebase (it's unlikely, but I want to communicate that clearly).
If you feel a need to do such, wait until ready to merge, so that all feedback and discussion is resolved first, then diffing the prior state to the reworked commits won't be as much effort.
Personally, since we squash commits on merge, and this PR history is already not pleasant to wade through for traceability to a future maintainer, I rather we not complicate it further and discourage altering PR history this way.
|
|
||
| # ATTENTION: due to the functions that run before (`_acme_ecdsa` and `_acme_rsa`), the directory | ||
| # `/etc/letsencrypt/live/` contains some "old" files that result in the changedetector | ||
| # running more than two times, so this test will need to query more log to find the | ||
| # correct log messages; this is a bit of a race condition, and could be done better. | ||
| # For reference, see https://github.com/docker-mailserver/docker-mailserver/pull/2486 |
There was a problem hiding this comment.
I don't think this comment needs to be added.
The older cert files are fine, the change detector itself should not be triggering events from them when they're extracted from acme.json change event. That's a bug with check-for-changes.sh not this test.
Any race condition AFAIK is due to changes since this test was written that affect the expected log lines retrieved to no longer be present, or sleep and other logic changes that affect the timing, since the test relies on sleep delay to allow time for a change detection event to process and output the expected logs.
This could be handled better absolutely, but I wouldn't attribute the warning specifically to _acme_wildcard, or even this test as such changes has impacted other tests too.
- Drop these comments, they aren't correctly identifying the issue or context.
| # due to the third restart (note the comment atop the call of this function down below), | ||
| # the restart count may not be predicted accurately with the current method, which makes | ||
| # this test "flakey". This is therefore disabled until a better log query is found. | ||
| # _should_have_service_restart_count '2' |
There was a problem hiding this comment.
Disagree.
If the previous test method _should_extract_on_changes passes, this serves to ensure some log lines related to the restart came after the explicit FQDN log and weren't accidentally captured from earlier log history of previous change detected.
If anything, this one should be more reliable, and should be able to leverage the full log to work correctly. I'm not sure if we have a way to do that, but pulling in a large amount of bytes should be sufficient?
- Re-enable this method and drop the comments you added.
- If this method is failing, bump up the log content scanned.
| function _acme_ecdsa() { | ||
| _should_have_succeeded_at_extraction 'mail.example.test' | ||
| _should_have_succeeded_at_extraction 'mail.example.test' 'mailserver' |
There was a problem hiding this comment.
Any reason for the explicit service arg?
| function _acme_wildcard() { | ||
| _should_extract_on_changes 'example.test' "${LOCAL_BASE_PATH}/wildcard/rsa.acme.json" | ||
| _should_have_service_restart_count '2' | ||
| _should_extract_on_changes 'example.test' "${LOCAL_BASE_PATH}/wildcard/rsa.acme.json" '2800' |
There was a problem hiding this comment.
You're adding log bytes to retrieve here as a workaround right?
Is there value drilling it down to this point?
- Only
_acme_rsa()and_acme_wildcard()call this method. _acme_ecdsa()and_acme_rsa()use different methods to check for the same log line of success formail.example.test, but_acme_rsa()relies on detecting a single restart event to differentiate in the event it accidentally matched earlier log for_acme_ecdsa().
With the restart count safeguard, we should be able to safely raise the retrieved log bytes in _should_extract_on_changes() itself, and not need to support a separate arg just for _acme_wildcard().
There is a concern with _acme_rsa() however.. If you have identified that change detection is occurring due to the cert files only, and not acme.json, then those two log line checks would be insufficient._should_extract_on_changes() does additionally check for a acme.json change event line, which should be fine for _acme_rsa() but fail on _acme_wildcard() if it's accidentally matching previous output from _acme_rsa() for that line..
Adding a variant of However _should_have_service_restart_count but for the acme.json change event log line might be useful to catch that discrepancy._should_extract_on_changes() should still fail to match the successful extraction for the wildcard EXPECTED_DOMAIN. Thus the failure would be the log lacking the expected change event (presumably in the past, as this workaround implies).
- Revert supporting configurable log bytes for
_shouold_extract_on_changes(), raise the bytes within the relevant call inside the function instead, applying to_acme_rsa()as well. - You can add a comment prior to the call that the explicit value is a workaround for
_acme_wildcard()to pass due to a newer change event occurring that shouldn't be.
| local EXPECTED_DOMAIN=${1?} | ||
| local SERVICE=${2?} |
There was a problem hiding this comment.
I cannot seem to find the right keywords to search to understand what this addition is for, and no mention in the commit message or comment it references for details.
Closest I found was ${1:?message} or $? which I understand but neither seem to match what you're doing here?
|
|
||
| # Count how many times postfix was restarted by the `changedetector` service: | ||
| run docker exec "${TEST_NAME}" sh -c "supervisorctl tail changedetector | grep -c 'postfix: started'" | ||
| run docker exec "${TEST_NAME}" sh -c "supervisorctl tail -2000 changedetector | grep -c 'postfix: started'" |
There was a problem hiding this comment.
| run docker exec "${TEST_NAME}" sh -c "supervisorctl tail -2000 changedetector | grep -c 'postfix: started'" | |
| # 99999 bytes intended as the "full" log. Scanning for matches since container start. | |
| run docker exec "${TEST_NAME}" sh -c "supervisorctl tail -99999 changedetector | grep -c 'postfix: started'" |
| local SERVICE=${1:-'mailserver'} | ||
|
|
||
| local CMD_LOGS=(docker exec "${TEST_NAME}" "supervisorctl tail ${SERVICE}") | ||
| local SERVICE=${1?} |
There was a problem hiding this comment.
Reason for dropping the implicit default here?
It's fine for promoting this method out of the test into a test helper for other tests to adopt, but probably not relevant to this PR scope.
Additionally, this method is called 4 times in the test, you only adjusted it for a single call. Please revert unless justified.
There was a problem hiding this comment.
${1?} is very similar to ${:?}, only that with the former, there is no nullity check. With the latter, when the variable is unset or null, Bash will stop and show an error.
Implicit default values can be nice, but I had a very hard time finding out that a function call to another function call that calls this function uses the implicit value - to the point where I thought I had found a bug. I'd refrain from such default values unless it's obvious.
|
|
||
| local CMD_LOGS=(docker exec "${TEST_NAME}" "supervisorctl tail ${SERVICE}") | ||
| local SERVICE=${1?} | ||
| local LOG_TAIL_LENGTH=${2:-1800} |
There was a problem hiding this comment.
1500 appears to be the default last I noted:
docker-mailserver/test/mail_changedetector.bats
Lines 3 to 5 in 321ae74
Is 1800 required for this test due to changes from this PR? If not, better to try stay closer to the apparent default.
| if [[ ${?} -eq 1 ]] | ||
| then | ||
| _notify 'inf' "$(_log_date) Change detected" | ||
| _create_lock # Shared config safety lock | ||
| CHANGED=$(grep -Fxvf "${CHKSUM_FILE}" "${CHKSUM_FILE}.new" | sed 's/^[^ ]\+ //') | ||
|
|
||
| _changedetector_notify 'info' 'Change detected' | ||
| _create_lock # Shared config safety lock | ||
|
|
||
| [[ -z ${CHANGED} ]] && _changedetector_notify 'debug' 'Found new files' | ||
|
|
There was a problem hiding this comment.
Why was CHANGED re-located to the top? Is this just housekeeping? There is a lot of changes in this PR, I understand you want a tidy codebase, but please hold off from continuing to add these.
Make such changes and stash them, make note of them, or branch this PR and apply them there to rebase to master as a follow-up PR. I know that's annoying, but it's noise to the review, as well as the commit history. You still need a 2nd review approval for merge and at this rate it'll just end up being a quick glance and placing trust in me alone for being thorough so that it can be merged promptly to avoid causing conflicts for other PRs..
[[ -z ${CHANGED} ]] && _changedetector_notify 'debug' 'Found new files'
This is inaccurate? Not only new files, but modifications.
Isn't that the whole point of a change event being detected? CHANGED is just filtering out the hashes so we have a list of file names. Is this line adding anything of value?
|
|
||
| # regenerate postix aliases | ||
| # regenerate postix aliases; this needs `POSTMASTER_ADDRESS` to be set | ||
| # and therefore requires to call to `source /etc/dms-settings` | ||
| _create_aliases |
There was a problem hiding this comment.
This comment belongs to the source /etc/dms-settings line, not here. A maintainer cares about why we're sourcing the settings file for ENV, the comment is only helpful here if refactoring this portion, which tests should raise failure about ideally.
Provide context to the source /etc/dms-settings line, that it is for POSTMASTER_ADDRESS which _create_aliases depends upon.
I'm sorry, I tried to follow your advice and only added what I deemed necessary for tests run. I don't know how to proceed with this PR without annoying anyone even further - I have therefore come to the conclusion that I will close this and provide smaller updates from time to time, which should be easier to review and easier to test. I am very sorry to have wasted your time, but I think we nevertheless got some insights - and if it's only about ditching |
It's only really been me providing reviews each morning I woke up. It was getting a bit overwhelming with all the changes going on, I was checking the individual commits for diffs, reading the commit messages and referencing the I could have communicated a bit better, or delayed review until I got a morning coffee 😅 I know sometimes my communication can come off a bit blunt and harsh, while I don't often comment on all the good changes the PR brought and my appreciation for how responsive you have been to my feedback, there was plenty of that unsaid :)
I don't think you wasted my time. I chose to review regularly and invest the time that I did to provide as thorough review as I could because I value the changes you've put together here and I think you've invested a fair amount more of your time putting all this together. I hope you do see it through, in whatever form that is, I'll continue to be happy to review it. Reviews work both ways, I can only be a better reviewer with your feedback when I overstep or get too pushy/fussy. If you don't have the time to keep working on this, I can understand that too. I'm happy to piecemeal it through several PRs like I've done in the past with another maintainers large PR. It looks like a lot of thought went into it, it'd be a shame to lose it. |
|
Just adding my 2 cents^^. PRs should be as simple as possible (just doing/introducing/fixing at best only one thing). In question, some should provide multiple PRs instead of one. This makes reviewing so much easier and faster. There were so much discussion/changes/splitting in this PR, I was not able to keep track at some point. Then my "strategy" changed to wait until this has been calm down and then try to review it 😆 An approach for bigger PRs could also be, to open an issue and discuss the planed changes beforehand (if necessary/worth). I feel sometimes guilty, if someone took a lot of time to prepare something, for starting a general discussion about it. But just because it was a lot of work, doesn't automatically mean it's a good addition or that it can't be done better/simpler. |
Description
Cherry picked from commits in #2485, this PR holds all the log updates. The commit descriptions is somewhat detailed.
Type of change
Checklist:
docs/)