-
-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version 3.10.3 breaks backward-compatibility with 3.10.2 #3070
Labels
confirmed
kind: bug
release item: 🐛 bug fix
solution: proposed fix
a fix for the issue has been proposed and waits for confirmation
Milestone
Comments
Any ideas on this @theodelrieu ? |
I can reproduce, on it. |
theodelrieu
added a commit
to theodelrieu/json
that referenced
this issue
Oct 11, 2021
Antiquated type traits performed an incorrect and insufficient check. std::filesystem::path used to work by "chance" thanks to brittle constraints, but the clean-up performed in nlohmann#3020 broke these. Fixes nlohmann#3070
4 tasks
theodelrieu
added a commit
to theodelrieu/json
that referenced
this issue
Oct 13, 2021
theodelrieu
added a commit
to theodelrieu/json
that referenced
this issue
Oct 13, 2021
theodelrieu
added a commit
to theodelrieu/json
that referenced
this issue
Oct 14, 2021
nlohmann
added
confirmed
release item: 🐛 bug fix
solution: proposed fix
a fix for the issue has been proposed and waits for confirmation
labels
Oct 14, 2021
nlohmann
pushed a commit
that referenced
this issue
Oct 14, 2021
* meta: rework is_compatible/is_constructible_string_type These type traits performed an incorrect and insufficient check. Converting to a std::filesystem::path used to work by accident thanks to these brittle constraints, but the clean-up performed in #3020 broke them. * support std::filesystem::path Fixes #3070
gentoo-bot
pushed a commit
to gentoo/gentoo
that referenced
this issue
Oct 17, 2021
Upstream-issue: nlohmann/json#3070 Bear-issue: rizsotto/Bear#420 Bug: https://bugs.gentoo.org/817233 Signed-off-by: Georgy Yakovlev <[email protected]>
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 5, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked here: nlohmann#3377
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 5, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled, which is tracked here: nlohmann#3377
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 6, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled, which is tracked here: nlohmann#337
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 6, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled, which is tracked here: nlohmann#337
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 6, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled, which is tracked here: nlohmann#337
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 6, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 6, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 6, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 7, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 8, 2022
Move definition of common macros (e.g., JSON_HAS_CPP_*) into macros.hpp header file and update unit test sources. Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 9, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 9, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 9, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 9, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 9, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 9, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 10, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 10, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 13, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Mar 13, 2022
Incidentally enables the regression tests for nlohmann#2546 and nlohmann#3070. A CHECK_THROWS_WITH_AS in nlohmann#3070 was disabled which is tracked in nlohmann#3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
nlohmann
pushed a commit
that referenced
this issue
Mar 24, 2022
* Refactor unit test creation Add functions for creating tests and to supply test- and standard-specific build settings. Raises minimum CMake version to 3.13 in test directory. json_test_add_test_for( <file> MAIN <main> [CXX_STANDARDS <version_number>...] [FORCE]) Given a <file> unit-foo.cpp, produces test-foo_cpp<version_number> if C++ standard <version_number> is supported by the compiler and thesource file contains JSON_HAS_CPP_<version_number>. Use FORCE to create the test regardless of the file containing JSON_HAS_CPP_<version_number>. Test targets are linked against <main>. CXX_STANDARDS defaults to "11". json_test_set_test_options( all|<tests> [CXX_STANDARDS all|<args>...] [COMPILE_DEFINITIONS <args>...] [COMPILE_FEATURES <args>...] [COMPILE_OPTIONS <args>...] [LINK_LIBRARIES <args>...] [LINK_OPTIONS <args>...]) Supply test- and standard-specific build settings. Specify multiple tests using a list e.g., "test-foo;test-bar". Must be called BEFORE the test is created. * Use CMAKE_MODULE_PATH * Don't undef some macros if JSON_TEST_KEEP_MACROS is defined * Use JSON_TEST_KEEP_MACROS Incidentally enables the regression tests for #2546 and #3070. A CHECK_THROWS_WITH_AS in #3070 was disabled which is tracked in #3377 and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE. * Add three-way comparison feature test macro * Disable broken comparison if JSON_HAS_THREE_WAY_COMPARISON * Fix redefinition of inline constexpr statics Redelcaration of inline constexpr static data members in namespace scope was deprecated in C++17. Fixes -Werror=deprecated compilation failures. * Fix more test build failures due to missing noexcept * CI: update cmake_flags test to use CMake 3.13 in test directory Also change default for JSON_BuildTests option to depend on CMake version. * CI: turn *_CXXFLAGS into CMake lists * CI: use JSON_TestStandards to set CXX_STANDARD * CI: pass extra CXXFLAGS to standards tests
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Apr 5, 2022
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Apr 5, 2022
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Apr 5, 2022
Restore the previously disabled check for regression nlohmann#3070 on all compilers but MSVC. To summarize the issue: Given namespace fs = std::filesystem. On MSVC attempting to construct an fs::path from json results in an ambiguous overload resolution because fs::path can be constructed from both a std::string as well as another fs::path. To the best of my knowledge there is no way to fix an ambiguous overload situation involving a type we do not control and with json implicitly converting to both std::string and fs::path. Re-enabling the check where it compiles and keeping it disabled for MSVC is the best we can do. Closes nlohmann#3377 and nlohmann#3382.
nlohmann
pushed a commit
that referenced
this issue
Apr 6, 2022
Restore the previously disabled check for regression #3070 on all compilers but MSVC. To summarize the issue: Given namespace fs = std::filesystem. On MSVC attempting to construct an fs::path from json results in an ambiguous overload resolution because fs::path can be constructed from both a std::string as well as another fs::path. To the best of my knowledge there is no way to fix an ambiguous overload situation involving a type we do not control and with json implicitly converting to both std::string and fs::path. Re-enabling the check where it compiles and keeping it disabled for MSVC is the best we can do. Closes #3377 and #3382.
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
Apr 22, 2022
nlohmann
pushed a commit
that referenced
this issue
Apr 22, 2022
falbrechtskirchinger
added a commit
to falbrechtskirchinger/json
that referenced
this issue
May 1, 2022
nlohmann
added a commit
that referenced
this issue
May 1, 2022
* ⬆️ Doctest 2.4.7 * 👷 add CI step for ICPC * 👷 add CI step for ICPC * 👷 add CI step for ICPC * ⬇️ downgrade to Doctest 2.4.6 * 👷 add CI step for ICPC * 👷 add CI step for ICPC * 👷 add CI step for ICPC * 👷 add CI step for ICPC * 👷 add CI step for ICPC * 🔇 suppress warning #2196: routine is both "inline" and "noinline" * Re-enable <filesystem> detection on ICPC * Limit regression test for #3070 to Clang and GCC >=8.4 * Disable deprecation warnings on ICPC * Disable regression test for #1647 on ICPC (C++20) * Fix compilation failure of regression test for #3077 on ICPC * Disable wstring unit test on ICPC Fixes: error 913: invalid multibyte character sequence * Add ICPC to README Co-authored-by: Niels Lohmann <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
confirmed
kind: bug
release item: 🐛 bug fix
solution: proposed fix
a fix for the issue has been proposed and waits for confirmation
What is the issue you have?
Version 3.10.3 breaks backward-compatibility with 3.10.2.
Please describe the steps to reproduce the issue.
Can you provide a small but working code example?
What is the expected behavior?
Version 3.10.3 should be backwards-compatible with 3.10.2.
And what is the actual behavior instead?
Version 3.10.3 breaks backward-compatibility with codebase based on 3.10.0.
Which compiler and operating system are you using?
Which version of the library did you use?
develop
branchIf you experience a compilation error: can you compile and run the unit tests?
The text was updated successfully, but these errors were encountered: