Merge of Mbed Crypto

This is a merge of Mbed Crypto into Mbed TLS. See ARMmbed/mbed-crypto#374.
Once this pull request is merged, we will merge any subsequent changes made in Mbed Crypto into Mbed TLS, then we will stop accepting pull requests to Mbed Crypto.
Strategy

Take mbedtls/development.
Take mbed-crypto/development. Revert some commits that remove X509/TLS functionality; I call this “unremoval”. Make a few additional changes to facilitate the subsequent merge. Please use https://github.com/ARMmbed/mbed-crypto/pull/384 to review this part.
Merge the crypto branch with the unremoval into the tls branch. For the merge commit, force all tls-specific files to their tls version even if the unremoval restored them to an older state. Force a few other files to their tls version where the crypto version is irrelevant. Resolve merge conflicts. See the merge commit message for details.
The merge commit makes unwanted changes because some things have been removed in crypto due to being tls-only, and have not been touched in tls. Subsequent commits look for such things to restore.
Restore the test coverage (all.sh and other scripts).
Restore X509/TLS features (mainly a matter of fixing config.h).
Undo some other accidental regressions due to the merge found by reviewing the diff.
Remove the crypto submodule.
Fix test failures:

:heavy_check_mark: check-names.sh fails because mbed-crypto rejects public identifiers containing __ (double-underscore) and mbedtls defines such identifiers. Fix https://github.com/ARMmbed/mbedtls/issues/3096
:heavy_check_mark: Fix some build systems that got broken along the line.
:heavy_check_mark: Some test data from one side is missing dependencies that were only tested on the other side.
:heavy_check_mark: Ensure that there is no API change in the default configuration.
:information_source: Mbed OS tests fail on the CI due to preexisting issues so this PR will not be tested with Mbed OS.

https://github.com/ARMmbed/mbedtls/pull/3078 tries to reach the same point with a different approach: commit a minimum set of modified files in the merge commit, then selectively commit the remaining changes, analyzing their suitability. This has the benefit that unwanted changes are never made, whereas the approach here makes some unwanted changes in the merge commit then undoes them. But it makes the history very hard to follow.
Correctness claim
Claim: this merge preserves the features and test coverage of both Mbed Crypto and Mbed TLS.
To verify this claim, divide the history in two parts:

The section comprising the merge commit and the restoration of things unduly removed or modified by the merge commit. This section ends at the commit Add changelog entries about the crypto submodule"".
The rest is comprised of fixes to bugs related to the merging of the two projects.

To verify that nothing from Mbed TLS is removed, review the changes for the first section as a whole. Excluding added files and automatically generated files, this is a ~2400 line unified diff. Anything that's added is fine (it's a feature coming from the crypto side). Anything that's replaced by something semantically equivalent or better is fine. Anything that's removed or replaced by something inferior is suspicious.
The following command lists the changes made by the first section, excluding generated files and newly added files.
git diff 'HEAD^{/^Merge}~1' 'HEAD^{/^Add changelog}~1' --diff-filter=DM -- . ':!library/error.c' ':!library/version_features.c' ':!programs/test/query_config.c' ':!visualc'

As of https://github.com/gilles-peskine-arm/mbedtls/tree/merge-crypto-unremoved-20200304-6:

.gitmodules: deliberately removed.
CMakeLists.txt: the only removals are references to the crypto submodule. Changes are ok.
Makefile: the only removals are references to the crypto submodule. Changes are ok.
configs/config-no-entropy.h: deliberate change made via crypto.
crypto: deliberately removed.
docs/architecture/Makefile: only additions.
doxygen/mbedtls.doxyfile: only removing references to the crypto submodule.
include/CMakeLists.txt:

:warning: https://github.com/ARMmbed/mbedtls/pull/2949 is being undone. Applying it causes every use of cmake to fail because at the time target_include_directories is executed, the mbedtls target is not yet declared (it's declared by library/CMakeLists.txt). This works in mbedtls because add_subdirectory(include) comes before add_subdirectory(library). But in mbed-crypto the add_subdirectory statements are in the opposite order since 6ea2dea1c5aa1f1cc6ffe3f7ef7c56a2259a2668.
Additions are ok.

include/mbedtls/check_config.h: deliberate changes made via crypto.
include/mbedtls/config.h: deliberate changes made via crypto, removal of crypto/ from paths, and enable more PSA options by default. The removal of a line containing MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is because it has moved further up (deliberate change made via crypto).
library/CMakeLists.txt:

md_wrap.c: removed via crypto.
clauses about libraries: redundant instructions have been removed.

library/Makefile:

Removal of references to the crypto submodule. Crypto objects are now listed explicitly. To validate that the list is complete, run make lib and check that each file library/*.c acquires a corresponding .o.
The clean target will be fixed in a subsequent commit.

programs/.gitignore: only additions.
programs/CMakeLists.txt: only an addition and a cosmetic change.
programs/Makefile: only removing references to the crypto submodule.
programs/fuzz/Makefile: only removing references to the crypto submodule.
scripts/config.py: removing MBEDTLS_MEMORY_xxx in baremetal is a deliberate change made in crypto. It's redundant with removing it in full.
scripts/data_files/vs2010-main-template.vcxproj: deliberate change made in crypto.
scripts/generate_errors.pl: the only removals are references to the crypto submodule. Changes are ok.
scripts/generate_visualc_files.pl: Changes made and reviewed via crypto. Nothing extra is needed for tls.
tests/.gitignore: only additions.
tests/CMakeLists.txt: only additions.
tests/Makefile:

Removal of references to the crypto submodule.
APPS is no longer filtered.

tests/scripts/all.sh: was reviewed in "Restore full tls coverage to all.sh".
tests/scripts/check-names.sh: deliberate changes made in crypto.
check-test-cases.py: deliberate changes made in crypto, and removal of references to the crypto submodule.
tests/scripts/depends-hashes.pl: deliberate changes made in crypto.
tests/scripts/list-enum-consts.pl: deliberate changes made in crypto.
tests/scripts/list-identifiers.sh: deliberate changes made in crypto.
tests/scripts/list-macros.sh: deliberate changes made in crypto.
tests/scripts/run-test-suites.pl: only removing references to the crypto submodule.
tests/scripts/test-ref-configs.pl: only additions.
tests/suites/helpers.function: only additions.
tests/suites/host_test.function: deliberate changes made in crypto.
tests/suites/main_test.function: only additions.
tests/suites/target_test.function: deliberate changes made in crypto.

Review tips
Some useful ways to refer to commits involved in the merge when working on a subsequent commit:

The merge commit is :/^Merge or HEAD^{/^Merge}.
Its tls precedessor is HEAD^{/^Merge}~1.
Its crypto precedessor is HEAD^{/^Merge}^2.
The tip of mbed-crypto as used for the merge is $(git merge-base upstream-crypto/development 'HEAD^{/^Merge}^2').

We're interested in the changes to existing files. There are no removals, and all additions are to tls-only files that should stay as they are. The following command lists changes to existing files in the merge commit, excluding automatically generated files and all changed binary files:
git diff 'HEAD^{/^Merge}~1' 'HEAD^{/^Merge}' --diff-filter=M -- . ':!library/error.c' ':!library/version_features.c' ':!programs/test/query_config.c' ':!visualc' ':!*.pdf' ':!*.der'

The following command lists changes to existing files since immediately before the merge and until the current head.
git diff 'HEAD^{/^Merge}~1' HEAD --diff-filter=M -- . ':!library/error.c' ':!library/version_features.c' ':!programs/test/query_config.c' ':!visualc'

For example, to look for changes that remove X509/TLS functionality:
git diff 'HEAD^{/^Merge}~1' HEAD --diff-filter=M -- . ':!library/error.c' ':!library/version_features.c' ':!programs/test/query_config.c' ':!visualc' ':!*.pdf' ':!*.der' | grep -E "^-.*MBEDTLS_(ERR_)?(PKCS11|X509|NET|SSL)_"

The following command lists the files that existed on both sides.
comm -12 <(git ls-tree -r --name-only 'HEAD^{/^Merge}~1') <(git ls-tree -r --name-only $(git merge-base upstream-crypto/development 'HEAD^{/^Merge}^2'))

Status
CI passes, except for Mbed OS which was broken before. The Mbed OS importer will need to be updated; this is beyond the scope of the current pull request. Known issues:

https://github.com/ARMmbed/mbedtls/pull/2949 is undone (see include/CMakeLists.txt above).

All the relevant information should be in the description of this or companion PR on GitHub, or in git commit messages. But just in case here are the notes I took while working on this:
merge-mbed-crypto-202002.md
I made a separate PR https://github.com/ARMmbed/mbedtls/pull/3094 to update independent documentation files such as README.md.

I checked that the list of components in all.sh after the merge is the union of the lists of components on both side before the merge, with one exception: component_test_full_make_gcc_o0 was removed. This is documented in the commit message, and I double-checked that the component removed was indeed testing a strict subset of what component_test_gcc_opt does.

I also checked the coverage of the test suites by building in the default config and then running scripts/run-test-suites.pl -v 2 from the tests (and when applicable crypto/tests) directory in 3 branches: this PR's branch, the merge base on the mbedtls side, and crypto/development, and compared the results.
Comparing this branch to the merge-base on the mbedtls side:

the set of test suites is the same on both sides (tested with cmake too)
the total number of tests available is the same on both sides
however there are differences in tests run/skipped: some tests that were skipped in development are no longer skipped after the merge. More precisely: test_suite_psa_crypto +10 tests run, test_suite_psa_crypto_persistent_key +29 (all of them), test_suite_psa_crypto_slot_management +31, test_suite_psa_its +22 (all of them). These are explained by the fact that MBEDTLS_PSA_CRYPTO_STORAGE_C and MBEDTLS_PSA_ITS_FILE_C are now enabled by default (as they already were on the crypto side).

Comparing this branch to development on the crypto side:

the set of test suites in this branch is a superset of that on the crypto side
the number of tests available is the same on both sides for suites that exist on the crypto side
however there are differences in tests run/skipped: some tests that were run on the crypto side are now skipped after the merge. More precisely: test_suite_cmac all tests skipped, test_suite_psa_crypto 10 more tests skipped, test_suite_psa_crypto_metadata 4 more tests skipped. All of these are explained by the fact that MBEDTLS_CMAC_C is disabled by default on the TLS side (for ABI/API stability reasons).

So I'm satisfied that the coverage of the test suites is preserved by the merge.

I've reviewed the merge commit by reproducing it locally an comparing the results.

I took the same parents, that I had previously verified as being correct choices, then ran git merge and didn't commit yet.

In order to make sure I understood it, I rewrote the shell script suggest in the commit message and ran it:

#!/bin/sh

# assumes the following branches exist:
# - tls-dev pointing to mbedtls/development as of March 5
# - crypto-dev pointing to mbed-crypto/development as of March 4

git ls-tree -r --name-only crypto-dev | sort > files-crypto-side
git ls-tree -r --name-only tls-dev | sort > files-tls-side
diff files-crypto-side files-tls-side | sed -n 's/^> //p' > files-tls-only

git checkout tls-dev -- $(cat files-tls-only)
git add -- $(cat files-tls-only)

I checked individually each of the files (.github/issue_template.md, .travis.yml, README.md, doxygen/input/doc_mainpage.h, tests/.jenkins/Jenkinsfile, tests/data_files/Makefile) documented as taking the TLS version in the commit message, agreed that taking the TLS version is the right thing to do, and did that as well.

I then resolved the remaining conflicts manually and check it the comments in the commit message matched the resolution I came up with.

I then committed the result and compared to the merge commit in this PR.

I only found 3 significant differences, where the code in the PR didn't match mine, and actually didn't match the comments in the commit message either:

In library/CMakeLists.txt the commit also kept the definition of src_crypto from the TLS side (no need to depend on USE_CRYPTO_SUBMODULE). This is correct, but not documented in the commit message's summary of conflict resolution.

In programs/Makefile the commit also keeps stuff about fuzz and ssl_pthread_server.This is correct, but not documented in the commit message's summary of conflict resolution.

In tests/scripts/all.sh the commit didn't quite keep the TLS version of component_test_no_use_psa_crypto_full_cmake_asan, contrary to what the commit message says. That's incorrect, but was fixed in a later commit (Restore full tls coverage to all.sh") so the only issue here is the discrepancy with the commit message.

In summary, I fully verified the merge commit and didn't find any issues beyond some minor discrepancies in the commit message.

I've reproduced commit https://github.com/ARMmbed/mbedtls/pull/3085/commits/26ff88c3eae087872670fbcafcaa10eb5d414ea7 by looking at the differences in all.sh between the merge commit and its TLS-side parent and resolving those differences without looking at the commit message.
I then compared my result to the one in the PR and found no significant differences. I also checked that the commit messages correctly describes the changes.

I've reviewed the remaining commits in the PR (from "Restore X509 and SSL functionality" to "Restore X509 and SSL functionality") either by reviewing the diff (most commits), or reproducing it ("Restore X509 and SSL functionality") or relying on the CI ("Re-generate automatically generated files") and found no issues.
Now I still have to double-check that nothing was lost in the merge, ie that everything that was wanted to revert after the merge commit has been reverted (this is partially guaranteed by the fact that our tests pass and I've verified they're completed, but to be extra sure I also want to check the diff directly).

I finished reviewing the diff for "the first section" as defined in the PR cover, and the only issue I found was the inconsistent use of target_include_directories() in library/CMakeLists.txt already noticed by Ronald and that indeed seems related to #2949 though I haven't started investigating yet.
I also reviewed the diff of the Makefiles (in ., library, tests, programs) and the CMakeLists.txt (in ., library, tests, programs and include) against their version in 2.16 (which never had a crypto submodule) and found that all of the differences were justified by the underlying differences between development and 2.16 (addition of PSA, fuzz, allowing declarations after statements, etc.) except perhaps one: the version of library/Makefile in this PR has this extra line:
libmbedcrypto.$(DLEXT): | libmbedcrypto.a

which is only present for libmbedcrypto and whose purpose is not entirely clear to me. After investigating we'll probably want to either remove that line or add a similar ones for the other two libraries.
I've now done all the reviewing I wanted to do.

@ronald-cron-arm Thanks for your review! I think some of the points you raised are actually OK, so I'll try explaining why I think so and you can tell me if that was convincing :)

In include/mbedtls/config.h:
-//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY /**< Use 128-bit key for CTR_DRBG - may reduce security (see ctr_drbg.h) */

The define now comes earlier in the file (line 698) and the commit message notes:
        * `MBEDTLS_CTR_DRBG_USE_128_BIT_KEY` single line: don't restore it since there is now a full paragraph in the proper section above.

The change comes from this commit in mbed-crypto.

In tests/scripts/all.sh:
- scripts/config.py unset MBEDTLS_MEMORY_BUFFER_ALLOC_C

Just before that we invoke scripts/config.py full, which used to set MBEDTLS_MEMORY_BUFFER_ALLOC_C but was recently changed to leave it unset, so we no longer need to unset it explicitly. (Well to be precise config.py full never set that macro, but its predecessor config.pl full did.)

In scripts/generate_visualc_files.pl:
-# Need windows line endings!
-my $include_directories = <<EOT;
-../../include\r
-EOT

This is now handled differently (and didn't need any line ending after all):
my @include_directories = qw(
    include
    3rdparty/everest/include/
    3rdparty/everest/include/everest
    3rdparty/everest/include/everest/vs2010
    3rdparty/everest/include/everest/kremlib
);
my $include_directories = join(';', map {"../../$_"} @include_directories);

Ok, so let me try to sum up the issues found so far (assuming Ronald agrees with my observations above).
Issues in the tree itself

Incomplete sentence in the ChangeLog - obvious fix: complete the sentence
Inconsistent use of target_include_directories in library/CMakeLists.txt - needs investigating, might fix it later
Inconsistent extra target libmbedcrypto.$(DLEXT): | libmbedcrypto.a in library/Makefile - needs investigating, might fix it later
As Gilles noted, reversal of #2949 - probably want to leave it for later, possibly wait for external contribution

Issues in commit messages

s/shared memory/shared library/
s/run_in_docker.sh/basic-in-docker.sh/
s/prograns/programs/
remove "component_test_no_platform: remove the unsetting of SE support." (as unsetting of SE isn't removed in the code)
remove ""MBEDTLS_PARAM_FAILED: this has been duplicated." the duplication has been fixed earlier
mention src_crypto in the message of the merge commit
mention fuzz and ssl_pthread_server in the message of the merge commit

Ok, so regarding libmbedcrypto.$(DLEXT): | libmbedcrypto.a it was introduced in https://github.com/ARMmbed/mbedtls/pull/2884/commits/8af3923815643057b16567ed11792a575d867b7a and my understanding that we probably want to use it for the x509 and tls libraries as well. In a sense the inconsistency was pre-existing to the merge (we should have side-ported the fix from mbed-crypto to mbedtls earlier), but it probably makes sense to fix it in a subsequent commit in this PR anyway.

Hi, I’ve been through my comments and your replies and I agree with your summary concerning those.
Thanks, Ronald.
From: Manuel Pégourié-Gonnard<EMAIL_ADDRESS>Sent: 19 March 2020 10:42
To: ARMmbed/mbedtls<EMAIL_ADDRESS>Cc: Ronald Cron<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [ARMmbed/mbedtls] Merge of Mbed Crypto (#3085)
Ok, so let me try to sum up the issues found so far (assuming Ronald agrees with my observations above).
Issues in the tree itself

Incomplete sentence in the ChangeLog - obvious fix: complete the sentence
Inconsistent use of target_include_directories in library/CMakeLists.txt - needs investigating, might fix it later
Inconsistent extra target libmbedcrypto.$(DLEXT): | libmbedcrypto.a in library/Makefile - needs investigating, might fix it later
As Gilles noted, reversal of #2949https://github.com/ARMmbed/mbedtls/pull/2949 - probably want to leave it for later, possibly wait for external contribution

Issues in commit messages

s/shared memory/shared library/
s/run_in_docker.sh/basic-in-docker.sh/
s/prograns/programs/
remove "component_test_no_platform: remove the unsetting of SE support." (as unsetting of SE isn't removed in the code)
remove ""MBEDTLS_PARAM_FAILED: this has been duplicated." the duplication has been fixed earlier
mention src_crypto in the message of the merge commit
mention fuzz and ssl_pthread_server in the message of the merge commit

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/ARMmbed/mbedtls/pull/3085#issuecomment-601082894, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJNQFDP5T7RPHHW7XEAWLQTRIHSHFANCNFSM4LBT2EMQ.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Change log of the "force-push"
The previous version of the PR can be found here: https://github.com/ronald-cron-arm/mbedtls/tree/merge-crypto-unremoved-20200304.

Use new version of ARMmbed/mbed-crypto#384 for the merge commit

Commit "Merge mbed-crypto into mbedtls: the merge commit"

Align the code with the commit message regarding "component_test_no_use_psa_crypto_full_cmake_asan" (take the tls version)
Add "* Keep the TLS definition of src_crypto" in conflicts resolution of "library/CMakeLists.txt"
Add "* Keep the fuzz target defined only in tls version." and
"* Keep the recipe (only in tls version) cleaning ssl_pthread_server stuff for the clean target." in conflicts resolution of "programs/Makefile"

Commit "Restore full tls coverage to all.sh"

Replace "prograns" by "programs"
Remove "component_test_no_use_psa_crypto_full_cmake_asan (config.py): do unset MBEDTLS_PSA_CRYPTO_C."
Remove "* component_test_no_use_psa_crypto_full_cmake_asan (ssl-opt.sh): do change the comments to include “full minus”."
Remove "* component_test_no_platform: remove the unsetting of SE support."

Commit "Restore full tls coverage to remaining scripts"

Replace "run-in-dockers.sh" by "basic-in-dockers.sh"

Commit "Restore X509 and SSL functionality"

Remove "* MBEDTLS_PARAM_FAILED: this has been duplicated. Do remove the version from crypto below, because the version from tls above is slightly improved." from the commit message.

Commit "Fix the shared library build with CMake"

Replace "Fix the shared memory build with CMake" by
"Fix the shared library build with CMake" as commit title.

Commit "Add changelog entries about the crypto submodule"

Add missing word at the end of sentence.

I've reviewed the force-push and I'm satisfied it does what it's supposed to do (and nothing more), with one exception: Remove "* component_test_no_platform: remove the unsetting of SE support." - I'm still seeing that line in the commit message. Otherwise this is looking very good.

I am removing "Remove "* component_test_no_platform: remove the unsetting of SE support." and will force-push again.

Note: all tests passed in the CI, except for the ones depending on mbed-os which are a known issue independent from this PR.

I force-pushed https://github.com/gilles-peskine-arm/mbedtls/tree/merge-crypto-unremoved-20200304-10 which is identical to the previous version except for whitespace changes in the commit message of the crypto-tls merge commit.

I pushed a merge of the target branch into the PR branch with the resolution of a trivial conflict (add/add in ChangeLog) so that we can do a final round of review and CI on this delicate PR.

From a fresh clone of mbedtls/development:
$ git checkout myfork/merge-crypto-unremoved-20200304
warning: unable to rmdir crypto: Directory not empty
Previous HEAD position was 1fce45d... Merge pull request #3103 from AndrzejKurek/ssl-read-improve-ret-code-doc
HEAD is now at 3ed2de9... Refresh generated files

Maybe I didn't do the submodule removal correctly. Can we arrange to remove crypto if it doesn't contain anything other than the pristine files from the submodule?

I can't reproduce the problem. If I do a fresh clone of mbedtls, then check out development and run git submodule update --init, then check out this branch, I get no error and the crypto directory gets removed.

I checked the CI results and everything passed except for known issues with mbed-os and IAR.

I tried another way and still can't get any issue with getting the submodule removed:
git clone --recursive https://github.com/ARMMbed/mbedtls mbedtls-fresh
cd mbedtls-fresh
ls crypto
git fetch origin 3ed2de9f54f0538225feaadb722edc56439ccc85
git checkout -b merge-back-crypto 3ed2de9f54f0538225feaadb722edc56439ccc85
ls crypto

None of the git commands throws any error, the first ls crypto show the expected contents, and the second one errors out with No such file or directory as expected.
Are you sure your clone was really fresh? Could any of your tools be creating files behind your back? What files are left in your crypto directory after checking out this branch?

{R1}/tmp % cat mpg.sh
#!/bin/sh
set -ex
git clone --recursive https://github.com/ARMMbed/mbedtls "$1"
cd "$1"
ls crypto
git fetch origin 3ed2de9f54f0538225feaadb722edc56439ccc85
git checkout -b merge-back-crypto 3ed2de9f54f0538225feaadb722edc56439ccc85
ls crypto
{R1}/tmp % ./mpg.sh bionic
+ git clone --recursive https://github.com/ARMMbed/mbedtls bionic
Cloning into 'bionic'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 97556 (delta 0), reused 1 (delta 0), pack-reused 97553
Receiving objects: 100% (97556/97556), 43.45 MiB | 1.10 MiB/s, done.
Resolving deltas: 100% (75427/75427), done.
Submodule 'crypto' (https://github.com/ARMmbed/mbed-crypto) registered for path 'crypto'
Cloning into '/tmp/bionic/crypto'...
remote: Enumerating objects: 81932, done.
remote: Total 81932 (delta 0), reused 0 (delta 0), pack-reused 81932
Receiving objects: 100% (81932/81932), 23.75 MiB | 2.38 MiB/s, done.
Resolving deltas: 100% (66192/66192), done.
Submodule path 'crypto': checked out 'cf4a40ba0a3086cabb5a8227245191161fd26383'
+ cd bionic
+ ls crypto
3rdparty               LICENSE         configs  library   visualc
CMakeLists.txt         Makefile        docs     programs
CONTRIBUTING.md        README.md       doxygen  scripts
DartConfiguration.tcl  apache-2.0.txt  include  tests
+ git fetch origin 3ed2de9f54f0538225feaadb722edc56439ccc85
remote: Enumerating objects: 4355, done.
remote: Counting objects: 100% (4355/4355), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 14668 (delta 4284), reused 4329 (delta 4272), pack-reused 10313
Receiving objects: 100% (14668/14668), 5.44 MiB | 1.40 MiB/s, done.
Resolving deltas: 100% (11392/11392), completed with 455 local objects.
From https://github.com/ARMMbed/mbedtls
 * branch                3ed2de9f54f0538225feaadb722edc56439ccc85 -> FETCH_HEAD
+ git checkout -b merge-back-crypto 3ed2de9f54f0538225feaadb722edc56439ccc85
warning: unable to rmdir 'crypto': Directory not empty
Switched to a new branch 'merge-back-crypto'
+ ls crypto
3rdparty               LICENSE         configs  library   visualc
CMakeLists.txt         Makefile        docs     programs
CONTRIBUTING.md        README.md       doxygen  scripts
DartConfiguration.tcl  apache-2.0.txt  include  tests
{R1}/tmp % git --version
git version 2.17.1

That's under Ubuntu 18.04. I'd originally tried Ubuntu 16.04 with the same result.

Using git 2.25.0 (compiled and installed locally) here, in an Ubuntu 16.04 environment. There might also be differences in our git configs that matter (for example, I have submodule.recurse=true, which was one reason why I installed something more recent than what 16.04 provides). I'll try a few variants and see how it goes.

Ok, after testing I can confirm that changing submodule.recurse to false in my global gives me the same error as you.
I think we'll just have to tell people (including ourselves) to either use git >= 2.14 with submodule.recurse=true, or manually rm -r crypto after updating. Note that people who have an unclean tree (as a result of building, running tests, etc) are likely to need to rm -r crypto manually anyway.

This has been approved in review, and CI is passing as much as it can these days.
There is a potential regression with respect to include directories when using Mbed TLS as a CMake subproject, as noted here and tracked in https://github.com/ARMmbed/mbedtls/issues/3108. Since it isn't breaking anything covered by our testing, we aren't sure whether there is an actual regression, and this is a build-time issue which cannot go undetected and should have possible workarounds, the risk of regression is acceptable.
So I'm going ahead and merging.


[Bug]: Pandas version incorrectly set in extreme CICD

Describe the bug
The extreme CICD is not using the oldest supported Pandas version (0.25.3) when testing the whole codebase, thus giving a misleading 100% coveraged and passed result.
Steps or code to reproduce the bug
Add the following step to the pretty_old_versions job:
      - name: Run doctests
        run: pytest narwhals --doctest-modules

Moreover the job pretty_old_versions is set to use pandas 1.1.5 instead of 0.25.3
Expected results
The CICD should pass without errors
Actual results
These are some of the errors I see when running test locally on latest version of main:
UNEXPECTED EXCEPTION: AttributeError("'DataFrame' object has no attribute 'convert_dtypes'")
Traceback (most recent call last):
  File "/usr/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest narwhals.utils.maybe_convert_dtypes[6]>", line 1, in <module>
  File "/workspaces/narwhals/narwhals/utils.py", line 261, in maybe_convert_dtypes
    df_any._dataframe._dataframe.convert_dtypes(*args, **kwargs)
  File "/workspaces/narwhals/.nox/minimum_versions/lib/python3.8/site-packages/pandas/core/generic.py", line 5179, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'convert_dtypes'
/workspaces/narwhals/narwhals/utils.py:249: UnexpectedException

UNEXPECTED EXCEPTION: ImportError('pyarrow requires pandas 1.0.0 or above, pandas 0.25.3 is installed')
Traceback (most recent call last):
  File "/usr/lib/python3.8/doctest.py", line 1336, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest narwhals.series.Series.to_pandas[8]>", line 1, in <module>
  File "/workspaces/narwhals/narwhals/translate.py", line 400, in wrapper
    result = func(*args, **kwargs)
  File "<doctest narwhals.series.Series.to_pandas[6]>", line 3, in func
  File "/workspaces/narwhals/narwhals/series.py", line 1209, in to_pandas
    return self._series.to_pandas()
  File "/workspaces/narwhals/.nox/minimum_versions/lib/python3.8/site-packages/polars/series/series.py", line 4434, in to_pandas
    else self.to_arrow().to_pandas(**kwargs)
  File "pyarrow/array.pxi", line 830, in pyarrow.lib._PandasConvertible.to_pandas
  File "pyarrow/array.pxi", line 1426, in pyarrow.lib.Array._to_pandas
  File "pyarrow/array.pxi", line 1649, in pyarrow.lib._array_like_to_pandas
  File "pyarrow/pandas-shim.pxi", line 103, in pyarrow.lib._PandasAPIShim.series
  File "pyarrow/pandas-shim.pxi", line 96, in pyarrow.lib._PandasAPIShim._check_import
  File "pyarrow/pandas-shim.pxi", line 65, in pyarrow.lib._PandasAPIShim._import_pandas
ImportError: pyarrow requires pandas 1.0.0 or above, pandas 0.25.3 is installed
/workspaces/narwhals/narwhals/series.py:1203: UnexpectedException

______________________________________________ [doctest] narwhals.expression.ExprDateTimeNamespace.total_seconds ______________________________________________
2635
2636             We define a dataframe-agnostic function:
2637
2638             >>> @nw.narwhalify
2639             ... def func(df):
2640             ...     return df.with_columns(a_total_seconds=nw.col("a").dt.total_seconds())
2641
2642             We can then pass either pandas or Polars to `func`:
2643
2644             >>> func(df_pd)
Differences (unified diff with -expected +actual):
    @@ -1,3 +1,3 @@
    -                       a  a_total_seconds
    -0        0 days 00:00:10               10
    -1 0 days 00:00:20.040000               20
    +                a  a_total_seconds
    +0        00:00:10               10
    +1 00:00:20.040000               20

/workspaces/narwhals/narwhals/expression.py:2644: DocTestFailure

They all appear when running doctest with minimum versions. However, CICD passes just fine, so I am concerned there is a misconfiguration somewhere, probably missing a couple of skipifs. The error clearly states that Pyarrow requires pandas >=1.0.0
Please run narwhals.show_version() and enter the output below.
System:
    python: 3.10.13 (main, May 30 2024, 20:38:07) [GCC 9.4.0]
executable: /home/codespace/.local/share/virtualenvs/narwhals-fIT6KdJt/bin/python
   machine: Linux-6.5.0-1022-azure-x86_64-with-glibc2.31

Python dependencies:
     narwhals: 1.0.2
       pandas: 2.2.2
       polars: 1.0.0
         cudf:
        modin:
      pyarrow: 16.1.0
        numpy: 2.0.0

**NOTE**: This is a CICD error so running versions provide no useful information

Relevant log output
See the Actual Results section

thanks for the report - it's true, doctests are skipped for the minimum versions, and are tested with the newer versions. I don't think this is a big deal, they're just meant for documentation anyway, and we need some check to ensure they don't go out of sync

closing then, as this is expected, but thanks for the report


Specific build_flags in [env:*] cause PlatformIO runtime error.

I've found a fault in how PlatformIO processes CCFLAGS-modifying options in the build_flags environment section of platformio.ini.
I've attached a brief overview of my system, my platformio.ini file, and the log of platformio run's output.
https://gist.github.com/myrrlyn/c1f3a2fd5e6a8d0ef613

If you use PlatformIO IDE, please click on Gear(Settings) icons, Community Packages > platformio-ide > Settings > Use development version of PlatformIO.

Please re-test it.

Also, build_flags = -include Arduino.h will raise error. That is OK, because you are going "to insert" into EACH build file "Arduino.h" which raises conflicts.


[Docs] Permissions by Role

Current State
https://docs.layer5.io/cloud/reference/default-permissions/
Desired State
Present the permissions table in Layer5 docs in an alternative format not categorized by Function / Keychain, but by role.

Contributor Guides and Resources

📚 Instructions for contributing to documentation

Meshery documentation site and source

🛠 Meshery Build & Release Strategy
🎨 Wireframes and designs for Layer5 site in Figma (open invite)
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@dragon-slayer875 @Yashsharma1911 progress?

This can be accomplished using the existing spreadsheet that is available in the repo already, right?

Raised PR.

This can be accomplished using the existing spreadsheet that is available in the repo already, right?

Apologies. Was helping family over Sunday.
The task itself wasn't a problem.
Raised PR.


Keybindings for colors

Is your feature request related to a problem? Please describe.
I would like to jump between colors quickly (without using the eye-dropper)
Describe the solution you'd like
Using 0 to 9 on the keyboard - admittedly that doesn't cover all the options, but I think it covers the majority case at least.
Describe alternatives you've considered
It could be chorded if you wanted to be really fancy, so you could hit the final 6.

Thanks for the suggestion!
added to master, should be in /beta next time that gets bumped (and worth noting shift+[1-6] to hit the last 6 colors). Had actually already implemented this a while back (when adding in eyedropper), it just got forgotten when we switched image editors :)


Add donation button

I set up a Liberapay account to accept donations to offset server costs: https://liberapay.com/MapRoulette/
Let's add a button in the top bar and / or on the homepage to enable this.
Additionally and optionally let's add a user profile checkbox 'I have donated' to hide the button.

I fully agree with this donation button to keep the maproulette site servers in the air

Tip for Donation Button in Version v3.2.4!
Put the button for donation in this new version v3.2.4?


AdjacentTriangles not cleared when the graph is recreated

Very awesome implementation, thank you very much for giving it the MIT license.
I made your repository interactive, i. e. allow the user to add points via mouse click. I noticed that you have to clear the AdjacentTriangles map in the Points class
https://github.com/RafaelKuebler/DelaunayVoronoi/blob/f9fe717b6d209d0b1320541bb0a4f4580e115555/DelaunayVoronoi/Point.cs#L9
whenver you recreate the graph.
Reproduction:
Make
https://github.com/RafaelKuebler/DelaunayVoronoi/blob/f9fe717b6d209d0b1320541bb0a4f4580e115555/DelaunayVoronoi/MainWindow.xaml.cs#L17
a class member.
Then invoke
https://github.com/RafaelKuebler/DelaunayVoronoi/blob/f9fe717b6d209d0b1320541bb0a4f4580e115555/DelaunayVoronoi/MainWindow.xaml.cs#L19-L29
then add a new point to the points list and re-invoke the graph creation again.
AdjacentTriangles just grows and grows and the graph will get unconnected (old) lines when it is repainted.
Just fyi in case you want to address this.

Hi @Roland09,
thanks for the interest in the project! I am happy to hear the implementation has been useful for you. I really like the work you have done on your fork.
The issue you mention is indeed unexpected behavior and undesired. However, it stems from a deeper problem which is the storing of the AdjacentTriangles map in the Point class. This was meant as an optimization, but it pollutes what should be a POD type. As making the diagram interactive was not intended in the beginning, the underlying (though undocumented) assumption was that the point list is re-generated before every run and therefore 'clean'. Clearing all AdjacentTriangles at the beginning of each run would introduce some overhead, which in this non-interactive version is overkill?
I am well aware of this drawback but somewhat reluctant to introduce an additional loop over all points (in this specific implementation). Nevertheless, I am very open to suggestions and would appreciate further input, as I agree from an engineering perspective it is kinda broken.
Cheers


client: update expiration check to match spec

Fixes #1231
Description of the changes being introduced by the pull request:
The specification, as of 1.0.16, describes an update expiration check as:

The expiration timestamp in the trusted $ROLE metadata file MUST be
higher than the fixed update expiration time.

Having done some research into how other security providers are comparing
expiration equivalents (i.e. OpenSSL x509 certificate checking code, and
GnuPG expiration checks), and how other TUF implementations are performing
the same check (rust-tuf, go-tuf), we came to a consensus that the correct
way to implement expiration comparisons is:
expiration <= now

Where:
expiration: is the metadata's expiration datetime
now: is the current system time, or the fixed notion of time in the
detailed client workflow (introduced in 1.0.16 of the spec)
Please verify and check that the pull request fulfills the following
requirements:

[x] The code follows the Code Style Guidelines
[x] Tests have been added for the bug fix or new feature
[ ] Docs have been added for the bug fix or new feature

Could we quickly mock some tests, please, if that's not too much to ask?

Done in follow-on commit 211ebe5

Might also help to test we're handling UTC correctly, it was not obvious to me from reading the code...

I'm not sure the test I added is doing this, could you elaborate a bit more on what your concern is? Perhaps we can add a test to check.

I'm not sure the test I added is doing this, could you elaborate a bit more on what your concern is? Perhaps we can add a test to check.

I think your tests cover <, ==, and >, so we should be OK.


Sickbeard logs

Added SB logs template to the module. You might want to change the logs icon as it is not the greatest one.

Looks good - I replaced the icon with text and tidied up the styling a bit.

I expected that. You got exactly the styling I wanted but could not get it after a good 1/2 hour of trying.
Just noticed I left a print statement in tho: line 300 - sickbeard.py.

Cool, feel free to remove it :)


CIFilter.labDeltaE shows 99 color difference for images that have no difference in CIFilter.differenceBlendMode

CIFilter.labDeltaE outputImage example shows 2 pixel difference:

the above image has dark gray background in preview of the actual image which has transparent background:
https://github.com/paulz/ViewSnapshots/blob/main/AppTests/Snapshots/ContentView-labDelta.png:

duplicate of #5


Error in    neural_machine_translation_with_transformer.py.  English-to-Spanish translation with a sequence-to-sequence Transformer

python3 put/es.py
2022-09-19 17:20:53.574026: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-09-19 17:20:53.725590: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2022-09-19 17:20:53.725630: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2022-09-19 17:20:53.761226: E tensorflow/stream_executor/cuda/cuda_blas.cc:2981] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2022-09-19 17:20:54.699879: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory
2022-09-19 17:20:54.699975: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory
2022-09-19 17:20:54.699992: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
Downloading data from http://storage.googleapis.com/download.tensorflow.org/data/spa-eng.zip
2638744/2638744 [==============================] - 0s 0us/step
("Tell me when you're done.", '[start] Avisame cuando termines. [end]')
('Reading develops the mind.', '[start] Leer desarrolla la mente. [end]')
('When will his new novel be published?', '[start] ¿Cuándo se publica su nueva novela? [end]')
('Mary has her back to us.', '[start] Mary nos da la espalda. [end]')
('He is our teacher of English.', '[start] Él es nuestro profesor de inglés. [end]')
118964 total pairs
83276 training pairs
17844 validation pairs
17844 test pairs
2022-09-19 17:20:56.153923: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
2022-09-19 17:20:56.153968: W tensorflow/stream_executor/cuda/cuda_driver.cc:263] failed call to cuInit: UNKNOWN ERROR (303)
2022-09-19 17:20:56.153991: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (ip-10-0-0-90.ec2.internal): /proc/driver/nvidia/version does not exist
2022-09-19 17:20:56.154559: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
inputs["encoder_inputs"].shape: (64, 20)
inputs["decoder_inputs"].shape: (64, 20)
targets.shape: (64, 20)
2022-09-19 17:21:41.569386: W tensorflow/core/kernels/data/cache_dataset_ops.cc:856] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.

Model: "transformer"
__________________________________________________________________________________________________
 Layer (type)                   Output Shape         Param #     Connected to
==================================================================================================
 encoder_inputs (InputLayer)    [(None, None)]       0           []

 positional_embedding (Position  (None, None,<PHONE_NUMBER>     ['encoder_inputs[0][0]']
 alEmbedding)

 decoder_inputs (InputLayer)    [(None, None)]       0           []

 transformer_encoder (Transform  (None, None,<PHONE_NUMBER>     ['positional_embedding[0][0]']
 erEncoder)

 model_1 (Functional)           (None, None, 15000)  12959640    ['decoder_inputs[0][0]',
                                                                  'transformer_encoder[0][0]']

==================================================================================================
Total params: 19,960,216
Trainable params: 19,960,216
Non-trainable params: 0
__________________________________________________________________________________________________
Traceback (most recent call last):
  File "put/es.py", line 408, in <module>
    transformer.fit(train_ds, epochs=epochs, validation_data=val_ds)
  File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/utils/traceback_utils.py", line 70, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/home/ec2-user/.local/lib/python3.7/site-packages/tensorflow/python/eager/execute.py", line 55, in quick_execute
    inputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Graph execution error:

Detected at node 'gradient_tape/transformer/transformer_encoder/multi_head_attention/softmax/add/BroadcastGradientArgs' defined at (most recent call last):
    File "put/es.py", line 408, in <module>
      transformer.fit(train_ds, epochs=epochs, validation_data=val_ds)
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/utils/traceback_utils.py", line 65, in error_handler
      return fn(*args, **kwargs)
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/engine/training.py", line 1564, in fit
      tmp_logs = self.train_function(iterator)
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/engine/training.py", line 1160, in train_function
      return step_function(self, iterator)
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/engine/training.py", line 1146, in step_function
      outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/engine/training.py", line 1135, in run_step
      outputs = model.train_step(data)
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/engine/training.py", line 997, in train_step
      self.optimizer.minimize(loss, self.trainable_variables, tape=tape)
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/optimizers/optimizer_v2/optimizer_v2.py", line 577, in minimize
      loss, var_list=var_list, grad_loss=grad_loss, tape=tape
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/optimizers/optimizer_v2/optimizer_v2.py", line 635, in _compute_gradients
      tape, loss, var_list, grad_loss
    File "/home/ec2-user/.local/lib/python3.7/site-packages/keras/optimizers/optimizer_v2/optimizer_v2.py", line 510, in _get_gradients
      grads = tape.gradient(loss, var_list, grad_loss)
Node: 'gradient_tape/transformer/transformer_encoder/multi_head_attention/softmax/add/BroadcastGradientArgs'
Incompatible shapes: [64,8,20,20] vs. [64,64,20,20]
	 [[{{node gradient_tape/transformer/transformer_encoder/multi_head_attention/softmax/add/BroadcastGradientArgs}}]] [Op:__inference_train_function_16963]
2022-09-19 17:21:50.937059: W tensorflow/core/kernels/data/cache_dataset_ops.cc:856] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.

I also crashed with an incompatible shape error
Epoch 1/30
Traceback (most recent call last):
File "transformer_train.py", line 408, in
transformer.fit(train_ds, epochs=epochs, validation_data=val_ds)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/utils/traceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/opt/miniconda3/lib/python3.8/site-packages/tensorflow/python/eager/execute.py", line 54, in quick_execute
tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.InvalidArgumentError: Graph execution error:
Detected at node 'gradient_tape/transformer/transformer_encoder/multi_head_attention/softmax/add/BroadcastGradientArgs' defined at (most recent call last):
File "transformer_train.py", line 408, in
transformer.fit(train_ds, epochs=epochs, validation_data=val_ds)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/engine/training.py", line 1564, in fit
tmp_logs = self.train_function(iterator)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/engine/training.py", line 1160, in train_function
return step_function(self, iterator)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/engine/training.py", line 1146, in step_function
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/opt/miniconda3/lib/python3.8/site-packages/keras/engine/training.py", line 1135, in run_step
outputs = model.train_step(data)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/engine/training.py", line 997, in train_step
self.optimizer.minimize(loss, self.trainable_variables, tape=tape)
File "/opt/miniconda3/lib/python3.8/site-packages/keras/optimizers/optimizer_v2/optimizer_v2.py", line 576, in minimize
grads_and_vars = self._compute_gradients(
File "/opt/miniconda3/lib/python3.8/site-packages/keras/optimizers/optimizer_v2/optimizer_v2.py", line 634, in _compute_gradients
grads_and_vars = self._get_gradients(
File "/opt/miniconda3/lib/python3.8/site-packages/keras/optimizers/optimizer_v2/optimizer_v2.py", line 510, in _get_gradients
grads = tape.gradient(loss, var_list, grad_loss)
Node: 'gradient_tape/transformer/transformer_encoder/multi_head_attention/softmax/add/BroadcastGradientArgs'
Incompatible shapes: [64,8,20,20] vs. [64,64,20,20]

I just installed tensorflow version 2.9.2 and it works.
I still get this warning, so it must not be the problem:
2022-12-08 06:51:10.808714: W tensorflow/core/kernels/data/cache_dataset_ops.cc:856] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to dataset.cache().take(k).repeat(). You should use dataset.take(k).cache().repeat() instead.
With 2.11.0 I get this error just before the above warning:
File "/home/ben/miniconda3/envs/tf/lib/python3.10/site-packages/keras/engine/base_layer.py", line 1132, in __call__
  outputs = call_fn(inputs, *args, **kwargs)
File "/home/ben/miniconda3/envs/tf/lib/python3.10/site-packages/keras/utils/traceback_utils.py", line 96, in error_handler
  return fn(*args, **kwargs)
File "/home/ben/miniconda3/envs/tf/lib/python3.10/site-packages/keras/layers/activation/softmax.py", line 95, in call
  inputs += adder

Node: 'transformer/transformer_encoder/multi_head_attention/softmax/add'
2 root error(s) found.
(0) INVALID_ARGUMENT:  required broadcastable shapes
[[{{node transformer/transformer_encoder/multi_head_attention/softmax/add}}]]
[[broadcast_weights_1/assert_broadcastable/is_valid_shape/else/_1/broadcast_weights_1/assert_broadcastable/is_valid_shape/has_valid_nonscalar_shape/then/_53/broadcast_weights_1/assert_broadcastable/is_valid_shape/has_valid_nonscalar_shape/has_invalid_dims/concat/_94]]
(1) INVALID_ARGUMENT:  required broadcastable shapes
[[{{node transformer/transformer_encoder/multi_head_attention/softmax/add}}]]
0 successful operations.
0 derived errors ignored. [Op:__inference_train_function_17025]

I don't want to be stuck on an old version of Tensorflow for ever more though, so it would be great if someone would help me get it working even though I have a temporary solution.

Hi,
The example has been updated to Keras 3 and it is working fine without any issue.
Here is the link to the updated tutorial: https://keras.io/examples/nlp/neural_machine_translation_with_transformer/


pythonPackages.sklearn-deap: init at 0.2.2

Motivation for this change
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[X] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Fits CONTRIBUTING.md.

@GrahamcOfBorg  build python3Packages.sklearn-deap

Failure on x86_64-linux (full log)
Attempted: python3Packages.sklearn-deap
Partial log (click to expand)
>>  raise self.failureException('0 != 1')

----------------------------------------------------------------------
Ran 8229 tests in 195.782s

FAILED (SKIP=62, failures=1)
builder for '/nix/store/hy0sf63hp694pk95svxj6x1gap3pzcmr-python3.6-scikit-learn-0.19.1.drv' failed with exit code 1
cannot build derivation '/nix/store/zsn8516bkpc86pma6xn1zhn4wvpwzy3r-python3.6-sklearn-deap-0.2.2.drv': 1 dependencies couldn't be built
error: build of '/nix/store/zsn8516bkpc86pma6xn1zhn4wvpwzy3r-python3.6-sklearn-deap-0.2.2.drv' failed

Failure on x86_64-darwin (full log)
Attempted: python3Packages.sklearn-deap
Partial log (click to expand)
building of '/nix/store/xhm9zglcyc8z69fcdg15f3ly544qzkvx-gfortran-7.3.0.drv' timed out after 1800 seconds
cannot build derivation '/nix/store/bjzi95hl25maf7bkmfdr0jv64k41rnwb-gfortran-wrapper-7.3.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/lxixi44dg5xhmw63dkb9lbn76434s15i-openblas-0.3.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/w91zmi3f6927kfjlbpwp3lhf578pz860-python3.6-numpy-1.14.5.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/8irjda5zw2mzgm4ngncaya2zci6vh2ai-python3.6-matplotlib-2.2.2.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/icg3i8p8l9jd5bj1yimmnf8hhfwsskls-python3.6-scipy-1.1.0.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/ifn95ja5war3k2zrqrkdq0fdxdm29yns-python3.6-deap-1.2.2.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/m7vk6dn9z29wqncvcf0nzyxlzb4v7f7h-python3.6-scikit-learn-0.19.1.drv': 4 dependencies couldn't be built
cannot build derivation '/nix/store/bs9ib09j495vgrg52r9q62h2mihjx9fy-python3.6-sklearn-deap-0.2.2.drv': 4 dependencies couldn't be built
error: build of '/nix/store/bs9ib09j495vgrg52r9q62h2mihjx9fy-python3.6-sklearn-deap-0.2.2.drv' failed

Failure on aarch64-linux (full log)
Attempted: python3Packages.sklearn-deap
Partial log (click to expand)
>>  raise self.failureException('0 != 1')

----------------------------------------------------------------------
Ran 8229 tests in 1791.864s

FAILED (SKIP=62, failures=2)
builder for '/nix/store/g5manl9d5m55vf5c11f3qz3sn6avbkca-python3.6-scikit-learn-0.19.1.drv' failed with exit code 1
cannot build derivation '/nix/store/g5rz9my3qw9kw5ffqwb9jj16mjclz9np-python3.6-sklearn-deap-0.2.2.drv': 1 dependencies couldn't be built
error: build of '/nix/store/g5rz9my3qw9kw5ffqwb9jj16mjclz9np-python3.6-sklearn-deap-0.2.2.drv' failed

@FRidh Dropped the comment. Seems the error is due to scikit-learn failing to build.


Add Project for running integration tests

Description
This PR is part of a bigger effort to enable testing of +TCP library in the FreeRTOS/FreeRTOS repository. The project introduced in this PR enables the user to run the integration tests present here.
Test Steps
Just download the repo with --recurse-submodules flag and open the Visual Studio project (.sln file) present in FreeRTOS-Plus/Test/FreeRTOS_Plus_TCP_Integration_Tests. Make sure that the computer is connected to a network via ethernet cable and choose the required network interface by modifying this line #define configNETWORK_INTERFACE_TO_USE in FreeRTOSConfig.h.
Once these changes are made, just build and run the project. It should run 4 test of which all should pass.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cbmc run checks

Opened a new PR https://github.com/FreeRTOS/FreeRTOS/pull/80 since the fork this PR was based on got deleted and I cannot add anymore changes here.


Test failure: ConnectionResetPriorToRequestIsLoggedAsDebug

This issue was made automatically. If there is a problem contact ryanbrandenburg.
This test failed with the following error:
Assert.True() Failure
Expected: True
Actual:   False
   at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests.ConnectionResetPriorToRequestIsLoggedAsDebug() in /_/test/Kestrel.Transport.FunctionalTests/RequestTests.cs:line 264
--- End of stack trace from previous location where exception was thrown ---
------- Stdout: -------
| [0.001s] TestLifetime Information: Starting test ConnectionResetPriorToRequestIsLoggedAsDebug at 2018-10-29T21:34:35
| [0.007s] Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests Debug: Hosting starting
| [0.008s] Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests Debug: Hosting started
| [0.008s] Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests Debug: Loaded hosting startup assembly Sockets.FunctionalTests, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60
| [30.142s] Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.RequestTests Debug: Hosting shutdown
| [30.144s] TestLifetime Information: Finished test ConnectionResetPriorToRequestIsLoggedAsDebug in 30.1456581s

Other tests within that build may have failed with a similar message, but they are not listed here. Check the link above for more info.
This test failed on master.
CC muratg

This comment was made automatically. If there is a problem contact ryanbrandenburg.
Please use this workflow to address this flaky test issue, including checking applicable checkboxes and filling in the applicable "TODO" entries:

Is this actually a flaky test?

No, this is a regular test failure, fix the test/product (TODO: Link to commit/PR)
Yes, proceed below...

Is this test failure caused by product code flakiness? (Either this product, or another product this test depends on.)

[ ] File a bug against the product (TODO: Link to other bug)
Is it possible to change the test to avoid the flakiness?

Yes? Go to the "Change the test!" section.
No?

[ ] Disable the test (TODO: Link to PR/commit)
[ ] Wait for other bug to be resolved
[ ] Wait for us to get build that has the fix
[ ] Re-enable our test (TODO: Link to PR/commit)
[ ] Close this bug

Is it that the test itself is flaky? This includes external transient problems (e.g. remote server problems, file system race condition, etc.)

Is there is a way to change our test to avoid this flakiness?

Yes? Change the test!

[ ] Change the test to avoid the flakiness, for example by using a different test strategy, or by adding retries w/ timeouts (TODO: Link to PR/commit)
[ ] Run the test 100 times locally as a sanity check.
[ ] Close this bug

No?

Is there any logging or extra information that we could add to make this more diagnosable when it happens again?

Yes?

[ ] Add the logging (TODO: Link to PR/commit)

No?

[ ] Delete the test because flaky tests are not useful (TODO: Link to PR/commit)

This comment was made automatically. If there is a problem contact ryanbrandenburg.
There were 1 failures with about the same error on master at 1:50:55 PM:

ConnectionResetBetweenRequestsIsLoggedAsDebug

This comment was made automatically. If there is a problem contact ryanbrandenburg.
There were 2 failures with about the same error on master at 1:50:55 PM:

ConnectionResetBetweenRequestsIsLoggedAsDebug
ConnectionResetPriorToRequestIsLoggedAsDebug

@halter73 could you take a look? I wonder if the test is actually catching a bug.

This comment was made automatically. If there is a problem contact ryanbrandenburg.
There were 2 failures with about the same error on master at 3:03:03 PM:

ConnectionResetPriorToRequestIsLoggedAsDebug
ConnectionResetBetweenRequestsIsLoggedAsDebug


Bump Android build tools and SDK version

This commit bump all needed versions to a newer version.

@GantMan, could you take a look at this PR, please?

This also seems to be a duplicated of this https://github.com/react-native-community/react-native-linear-gradient/pull/163.

I merged 228, due to them having some updated calls to RN.
Plz fix conflicts and I'll merge this bump as well.

@GantMan conflicts fixed

Should I ship a new version?   Can you point at master and do some testing for a bit first?  Outside testing is the best testing :)

For now, let's keep as it is. I'll do some tests and see if it won't crash anything.
If either I succeed or not in these tests I'll let you know

@GantMan, It didn't work as expected because this project config refers to the react-native-linear-gradient project and it would confuse the user of how and how to set up the ext.reactNative config.
I did some search and found this example that could allow the user to choose any version he wants and if he doesn't choose anyone, there will be a default value as a fallback:
So, the android/build.gradle would look like this:
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}

apply plugin: 'com.android.library'

def _reactNativeVersion = rootProject.ext.reactNative ?: '+';
def _compileSdkVersion = rootProject.ext.compileSdkVersion ?: 26;
def _buildToolsVersion = rootProject.ext.buildToolsVersion ?: '26.0.1';
def _minSdkVersion = rootProject.ext.minSdkVersion ?: 16;
def _targetSdkVersion = rootProject.ext.targetSdkVersion ?: 26;

android {
    compileSdkVersion _compileSdkVersion
    buildToolsVersion _buildToolsVersion

    defaultConfig {
        minSdkVersion _minSdkVersion
        targetSdkVersion _targetSdkVersion
        versionCode 1
        versionName "1.0"
    }
    lintOptions {
        abortOnError false
    }
}

dependencies {
    //noinspection GradleDynamicVersion
    provided "com.facebook.react:react-native:${_reactNativeVersion}"
}

Besides, if the user decides to choose another version, he just has to put these values in ${HIS-PROJECT-DIR}/android/build.gradle:

buildscript {
    ext.reactNative = '0.44.0'
    ext.compileSdkVersion = 23
    ext.buildToolsVersion = '23.0.1'
    ext.minSdkVersion = 19
    ext.targetSdkVersion = 22
...
}

I already changed it on my fork and create a commit with these changes. If you like, I could open a PR for this.

If it works well, please submit a PR.
Sorry it's a busy week for me, I appreciate all the help!

@GantMan, great!
I already did: #231


Validate fields against datatype [DO NOT MERGE until rebased]

Adds validation of fields against their datatype when submitting an update
Validates that the key is populated

Rails support model attributes validation out of the box: http://api.rubyonrails.org/classes/ActiveModel/Validations.html.
example:
class Person
  include ActiveModel::Validations

  attr_accessor :first_name, :last_name

  validates_each :first_name, :last_name do |record, attr, value|
    record.errors.add attr, 'starts with z.' if value.to_s[0] == ?z
  end
end

@laurentqro This is great, but if I understand correctly the problem will be that the fields that need validating will be dynamic based upon which register it is, which means that we can't create an ActiveModel to represent this as it will not cater to all registers.

Could you metaprogram yourself a model at runtime? E.g.
register = @registers_client.get_register(params[:register], 'beta')
register_model_class = Class.new do
  register.get_field_definitions.each do |field|
    attr_accessor field[:item]['field'].to_sym

    case field[:item]['datatype']
    when 'integer'
      validates field[:item]['field'].to_sym, numericality: { only_integer: true }
    when 'curie'
      validates field[:item]['field'].to_sym, format: /^\w+:\w+$/
    ...
  end
end

Not sure if you think that's more or less horrible, but it lets you use the ActiveModel stuff.

@karlbaker02 what are the different fields? And what are the different kinds of registers?

Metaprogramming shouldn’t be required, just allow attributes not to be present, but if they are, validate them

On 21 Sep 2017, at 16:16, Laurent Curau<EMAIL_ADDRESS>wrote:
@karlbaker02 what are the different fields? And what are the different kinds of registers?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@laurentqro You can see the datatypes we support here: https://datatype.alpha.openregister.org/records registers can use any arbitrary combinations of fields with any of these datatypes.

@govuklaurence Does that require listing all of the possible attributes up front? A Register could have any arbitrary set of fields and this schema isn't known at code-writing time.

OK, I have updated this as suggested now to use active record validation. Please take a look @karlbaker02 @simonwo


[$250] Track - Unable to save merchant on confirmation page after manually removing merchant

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.85-1
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4646137
Issue reported by: Applause - Internal Team
Action Performed:

Go to staging.new.expensify.com
Go to self DM
Track a manual expense with a merchant
Go to transaction thread
Remove the merchant and save it
Return to main chat
Click Categorize it > Select any category
Click Merchant on confirmation page
Enter a merchant and save it

Expected Result:
The entered merchant will be saved
Actual Result:
The entered merchant is not saved. This happens when merchant is removed after tracking the expense
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/a39e5461-0f5e-4f78-a990-1897e46ba54f
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0160c2ec38746d74db
Upwork Job ID:<PHONE_NUMBER>700595194
Last Price Increase: 2024-06-25

Issue OwnerCurrent Issue Owner: @c3024

@miljakljajic  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsb

Proposal
Please re-state the problem that we are trying to solve in this issue.
Can't save merchant in confirmation page from categorize track expense that has the merchant added and rmeoved.
What is the root cause of that problem?
When we do a track expense with merchant A then later remove it, the transaction data will have following attributes:
merchant: A,
modifiedMerchant: '(none)',

When we select categorize it, it will create a transaction draft. This transaction draft merchant and modifiedMerchant will be the same, that is (none).
https://github.com/Expensify/App/blob/340f2214469694af11c0a97d1cfd5f7e28c1fa8f/src/libs/ReportUtils.ts#L6878-L6892
If the merchant is empty, we won't show it. In our case, isMerchantMissing returns true.
https://github.com/Expensify/App/blob/340f2214469694af11c0a97d1cfd5f7e28c1fa8f/src/components/MoneyRequestConfirmationList.tsx#L345
It first checks if there is a modifiedMerchant exists, then it compares the value whether it's empty or (none) which is true for our case.
https://github.com/Expensify/App/blob/340f2214469694af11c0a97d1cfd5f7e28c1fa8f/src/libs/TransactionUtils.ts#L172-L178
What changes do you think we should make in order to solve the problem?

When we are creating a new transaction draft, a modifiedMerchant shouldn't be there. merchant is the initial value of the merchant when we create the transaction/expense and modifiedMerchant is the modified merchant value. If the merchant is modified/updated, then we will always use that as comparison.
But in our case, we are trying to create a new transaction to submit to a workspace (isEditing false), so any edit to merchant will update the merchant property, not the modifiedMerchant.
https://github.com/Expensify/App/blob/340f2214469694af11c0a97d1cfd5f7e28c1fa8f/src/pages/iou/request/step/IOURequestStepMerchant.tsx#L103-L105
and when we submit it, we pass the merchant value to the API, so using modifiedMerchant here doesn't make sense.
So, I suggest that when we create the transaction draft, set the modifiedMerchant to an empty value.
IOU.createDraftTransaction({
    ...,
    merchant,
    modifiedMerchant: '',
} as Transaction);

and potentially any other modified* value.

Thank you for your proposals.
I think fixing isMerchantMissing alone is not enough because whenever we fetch a merchant with TransactionUtils.getMerchant, we consider the modifiedMerchant first. Here is an example of a bug that will still exist with only this change:
https://github.com/Expensify/App/assets/102477862/f3935013-c6a0-47d9-86ad-6476a31254a9
In my opinion, setting the modifiedMerchant to '' when creating the draft transaction is the correct way to fix this. Therefore, the proposal here by @bernhardoj looks good to me.
🎀 👀 🎀 C+ Reviewed

PR is ready
cc: @c3024

Both contributors paid, thank you!


Adds testing

Added the most basic of tests by https://github.com/mklilley/slidee/pull/12 and subsequently fixing tests in https://github.com/mklilley/slidee/pull/13


[incubator/haproxy-ingress] use defaultBackend.replicaCount variable

Use defaultBackend.replicaCount, which exists in values.yaml but was not used in deployment

/ok-to-test

I want to know if this parameter replicas  makes sense

/lgtm
/approve


Modchart Creator/Editor

What feature do you want to get added on the base engine?
So here's my idea in a nutshell. When you press 7 on the menu and go to the editor menu, there could be another selection called "Modchart Editor". Basically what this would do, it would let you easily create a modchart for a song. I don't have a lot of knowledge of coding, especially Haxe, but I'll try my best to try and create a pull request.
Here's some ideas for the editor.
Some basic stuff like step and beat specific stuff, a loop, basically making something happen every so often, setting things to be difficulty specific, the generic modchart functions, playing sounds and making images and text appear more easily, and that's all I can really think of now.
This is probably too much to ask for, so I'm gonna try to make it myself with a pull request, but I'm gonna have to learn how to code to do that.
Anyways, hope you liked reading this.
To test your sight, and reliability, please select the option of what should NOT be requested.
Stage Editor, 6K+ support, and winning icons.

even though this clearly wouldnt be added in, it would be ridiculous making a modchart editor

even though this clearly wouldnt be added in, it would be ridiculous making a modchart editor, it sounds like a cool feature but i dont think shadow mario would add it in

ah, fair enough then, ill close this then


Allow customization of dice sizes in scale value advancement

Originally in GitLab by @sharkbruhaha
Please change the Dice Scalar Advancement from a dropdown to a numeric field.
Having this hard coded as a dropdown prevents the use of d100, but also larger non-physical dice numbers. Homebrew Wild Magic comes to mind immediately, but why limit it as well.

Rather than allowing this to be a completely free-form input, I have changed it to allow the list to be customized using a script:
Hooks.on("init", () => {
  dnd5e.advancement.types.ScaleValueTypeDice.FACES.push(200);
}


No explicit message for running npm run payload without any script

Documentation Issue
Whenever I run npm run payload using template from npx create-payload-app@latest script, I would get this misleading error:
$ npm run payload

><EMAIL_ADDRESS>payload
> cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload

node_modules/.pnpm/payload@2.11.0_esbuild@0.19.12_typescript@4.9.5_webpack@5.90.1/node_modules/payload/dist/bin/index.js:55
if (script.startsWith('migrate')) {
           ^

TypeError: Cannot read properties of undefined (reading 'startsWith')

Additional Details
Wrapping this snippet in packages/payload/src/bin/index.ts:60 with a simple if else statement would fix the issue:
if (script) {
    if (script.startsWith && script.startsWith('migrate')) {
        (0, _migrate.migrate)(args).then(() => process.exit(0));
    } else {
        switch (script.toLowerCase()) {
            case 'build':
                build();
                break;
            case 'generate:types':
                (0, _generateTypes.generateTypes)();
                break;
            case 'generate:graphqlschema':
                (0, _generateGraphQLSchema.generateGraphQLSchema)();
                break;
            default:
                console.log(`Unknown script "${script}".`);
                break;
        }
    }
} else {
    // This should probably be changed to a more suitable message :)
    console.error('No argument specified. Did you mean to run `payload migrate`?');
}

Output:
$ npm run payload

><EMAIL_ADDRESS>payload
> cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload

Error: No payload script specified. Did you mean to run `payload migrate`?

Pull request merged


Update Go in CI to 1.14

Our CI is currently based on Go 1.13, and Go 1.14 has been out sufficiently long now that the update risk is low, currently 1.14.5 is available.
There's no need to alter our supported platforms statement because of this update:
https://golang.org/doc/go1.14#ports
https://github.com/brimsec/brim/wiki/Supported-Platforms

I asked @alfred-landrum Do you want a "soft" upgrade to Go 1.14, for CI-only? Or do you want a "hard" upgrade, i.e., updating go.mod, CONTRIBUTING.md, etc.? The answer was hard.


Slick grid data selection is not available

Hello,
Firstly thank you for such a great platform, pretty much 99% of all requirements can be done using the samples as guide.
My contribution would be a suggestion to use DataTables as grids instead of slick.
https://datatables.net/
This will enable selection (copy) of table contents, which is not available in slick.

Hi, SlickGrid supports text selection actually, just override getSlickOptions in grid, and set enableTextSelectionOnCells to true.
DataTables is also nice, but SlickGrid is especially good on very big data sets, and doesn't rely on tables. We have some examples in StartSharp using DataTables though.

I'll try that, closing the issue.
I just saw the StartSharp, I'll recommend a subscription to my client, so far I feel like I owe you money already. http://serenity.is/demo/AdvancedSamples/BasicInit


Support different types returned for arguments

Temporaty fix (Non-breaking) to support parameters values that aren't strings from the Ollama API.
Ideally the Dictionary should support <string, object?> but this is coming soon as a breaking change, this PR changes it to not break for now, before the shift happens.

IChatClient will resolve the problem but will be in a preview.
This PR allows you to keep the 3.0 non-preview version that is a bit more resilient when the model responds with non-string arguments. (SK will only be able to use the 4.0-preview in a feature branch (not in our main) only going to main when AI Abstractions it's not preview anymore.

I see. I am going to merge this, cherry-pick it over to 4.0 and remove the temporary workaround.
Thanks once again!


chore: update qwel-exe

Fixes Issue
Current PR #1024 doesn't work as @ImgBotApp messed up something

Changes proposed
changed @qwel-exe GitHub name and few of the icons

Check List (Check all the applicable boxes)

[ ] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

@qwel-exe can you check everything is as you want it?

qwelexe.json

qwelexe.json would be good

@qwel-exe can you check everything is as you want it?

yep everything i wanted :) thanks @KendallDoesCoding

@qwel-exe can you check everything is as you want it?

yep everything i wanted :) thanks @KendallDoesCoding

welcome :)

qwelexe.json

qwelexe.json would be good

Will update.


fix small typo

This PR fixes a small typo, which wasn't affecting any of the current code pathways. This has already been fixed in sparsify.beta as a part of #192 , just propagating the fix here

Closing this one out since the fix has already been merged into alpha as a part of a different PR


dealing with broken links in the Excel data validation article

All but one of these broken links is to one or another of the data validation preview APIs. This doesn't fix the links to. It points them to the URLs that will be correct when we publish the Excel 1.8 Data Validation APIs (when they GA). But the links will be broken until then.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/excel-add-ins-data-validation.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


How can I detect that IStatusCodeHandler is handling a response generated from my routes instead of Nancy's internal code?

Prerequisites

[x] I have written a descriptive issue title
[x] I have verified that I am running the latest version of Nancy
[x] I have searched open and closed issues to ensure it has not already been reported

Question
I created a custom implementation of IStatusCodeHandler. However, I am running into a problem: I cannot figure out how to detect whether the status code I'm handling was generated by one of my own routes or if it was generated by Nancy internally. This matters because I want my routes to have the flexibility to return 404s and 405s with custom data in the response; in these cases, I don't want those custom responses to get overwritten by my custom IStatusCodeHandler.
I was hoping that context.ResolvedRoute would be it, but unfortunately it doesn't seem like there's anything in that object hierarchy I can use.

After speaking with jchannon on the Slack channel, it seems that this is not possible to do in a clean way with IStatusCodeHandler. However, the Items collection within the NancyContext can be used as a way to indicate to IStatusCodeHandler whether the response was generated by a module.


Not possible to use Pipeline Permission

I tried to use the setup described in the section: Enabling pipeline permissions
But when setting the following in a dinghyfile it's not working
...
"roles": [
  "execute-role"
]
..

@stokkie90 can you help me with the example you are trying?


Use Black to reformat code

You'd like to use some kind of a hook to reformat code according to Black before commit or management command?

I already did this in WTForms-Django, see tox.ini and .pre-commit-config.yaml. We can't do this here until there are no open pull requests, so that's step one.

@vald-phoenix if you want to do this again, it should be all right now.

Okay, I got it. I'll push PR today evening.


BITMAKER-2148 estela-api: Delete Cronjob request && Delete Member and change MemberRole

Description
estela-api: Delete Cronjob request && Delete Member and change MemberRole
Issue
https://tasks.bitmaker.dev/issues/2148
Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] My code follows the style guidelines of this project.
[x] I have made corresponding changes to the documentation.
[x] New and existing tests pass locally with my changes.
[x] If this change is a core feature, I have added thorough tests.
[x] If this change affects or depends on the behavior of other estela repositories, I have created pull requests with the relevant changes in the affected repositories. Please, refer to our official documentation.
[x] I understand that my pull request may be closed if it becomes obvious or I did not perform all of the steps above.

@Adriana618 @JoseArmandoChavezQuijahuaman This PR is ready to review

@Adriana618 Comments you did were addressed

@Adriana618 This PR is ready to review, Issues fixed