Install headers and CMake config files to gzyarp::DeviceRegistry so that it can be used by downstream projects

Closes #150

Up to now the CMake configuration is failing with message:
[cmake] CMake Error at /home/acroci/mambaforge/envs/walking/share/YCM/modules/InstallBasicPackageFiles.cmake:660 (export):
[cmake]   export Export set "gz-sim-yarp-plugins" not found.
[cmake] Call Stack (most recent call first):
[cmake]   CMakeLists.txt:54 (Install_basic_package_files)

With https://github.com/robotology/gz-sim-yarp-plugins/pull/160/commits/45880a8cad9e8e284940f422b6e97b4827f0d04d the new CMake configuration is working and exporting the heders and configuration files.

This is the log of the installation:
[proc] Executing command: /home/acroci/mambaforge/envs/walking/bin/cmake --build /home/acroci/repos/gz-sim-yarp-plugins/build --config Debug --target install --
[build] [1/1   0% :: 0.010] Install the project...
[build] -- Install configuration: "Debug"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-commons.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-commons.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-device-registry.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-device-registry.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/include/gz-sim-yarp-device-registry/DeviceRegistry.hh
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-robotinterface-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-robotinterface-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-camera-singleton.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-camera-singleton.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-camera-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-camera-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-laser-singleton.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-laser-singleton.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-laser-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-laser-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-forcetorque-singleton.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-forcetorque-singleton.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-forcetorque-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-forcetorque-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-imu-singleton.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-imu-singleton.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-imu-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-imu-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-basestate-singleton.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-basestate-singleton.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-basestate-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-basestate-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-clock-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-clock-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-controlboard-singleton.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-controlboard-singleton.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-controlboard-system.so
[build] -- Set non-toolchain portion of runtime path of "/home/acroci/mambaforge/envs/walking/lib/libgz-sim-yarp-controlboard-system.so" to "$ORIGIN/:$ORIGIN/../lib"
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/cmake/gz-sim-yarp-plugins/gz-sim-yarp-pluginsConfigVersion.cmake
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/cmake/gz-sim-yarp-plugins/gz-sim-yarp-pluginsConfig.cmake
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/cmake/gz-sim-yarp-plugins/gz-sim-yarp-pluginsTargets.cmake
[build] -- Installing: /home/acroci/mambaforge/envs/walking/lib/cmake/gz-sim-yarp-plugins/gz-sim-yarp-pluginsTargets-debug.cmake
[driver] Build completed: 00:00:00.083
[build] Build finished with exit code 0

Note that to check if the installed cmake config package file is working fine, you can run:
cmake-package-check gz-sim-yarp-plugins --targets gz-sim-yarp-plugins::gz-sm-yarp-device-registry

if you install cmake-package-check command (see https://github.com/ami-iit/cmake-package-check). You can also include this in the conda-based CI, see for example https://github.com/ami-iit/bipedal-locomotion-framework/blob/6dd640b73e6e2e6747fc2b9d96bddf7aee643d71/.github/workflows/conda-forge-ci.yml#L128 .

Note that to check if the installed cmake config package file is working fine, you can run:
cmake-package-check gz-sim-yarp-plugins --targets gz-sim-yarp-plugins::gz-sm-yarp-device-registry

if you install cmake-package-check command (see https://github.com/ami-iit/cmake-package-check). You can also include this in the conda-based CI, see for example https://github.com/ami-iit/bipedal-locomotion-framework/blob/6dd640b73e6e2e6747fc2b9d96bddf7aee643d71/.github/workflows/conda-forge-ci.yml#L128 .

Thanks! I tested that by manually creating a project with the following CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(TestProject
        LANGUAGES CXX C)

include(GNUInstallDirs)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

find_package(gz-sim-yarp-plugins REQUIRED)

add_executable(test_exe main.cpp)
target_link_libraries(test_exe gz-sim-yarp-plugins)

But for sure this approach is faster and more reliable. This is the output i get:
===================================
=== Generated CMakeLists.txt file:
===================================
cmake_minimum_required(VERSION 3.12...3.29)

project(CMakePackageCheckTestCMakeProject)

find_package(gz-sim-yarp-plugins REQUIRED)

find_package(gz-sim-yarp-plugins REQUIRED)

# Create dummy executable
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake_package_check_dummy_executable.cpp "int main() {return 0;}")
add_executable(cmake_package_check_dummy_executable ${CMAKE_CURRENT_BINARY_DIR}/cmake_package_check_dummy_executable.cpp)

target_link_libraries(cmake_package_check_dummy_executable PRIVATE gz-sim-yarp-plugins::gz-sim-yarp-device-registry)

===================================
=== CMake configure output:
===================================
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/acroci/mambaforge/envs/walking/bin/x86_64-conda-linux-gnu-cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/acroci/mambaforge/envs/walking/bin/x86_64-conda-linux-gnu-c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/tmply3zog3t
===================================
=== Result:
===================================
cmake-package-check: SUCCESS.

@traversaro shoudl I add an alias target like it is done in https://github.com/robotology/how-to-export-cpp-library/blob/afb21efb655e7b1cc11636c3d42aad9e02fb626f/src/LibHeaderOnlyTemplateCMake/CMakeLists.txt#L41 to be able to refer to  this target as gz-sim-yarp-plugins::gz-sim-yarp-device-registry?

After 4bff351a228767ce8324797b91d27476f432502f I now get an error related to the public YARP_dev dependency with cmake-package-check gz-sim-yarp-plugins --targets gz-sim-yarp-plugins::gz-sm-yarp-device-registry:
# Create dummy executable
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake_package_check_dummy_executable.cpp "int main() {return 0;}")
add_executable(cmake_package_check_dummy_executable ${CMAKE_CURRENT_BINARY_DIR}/cmake_package_check_dummy_executable.cpp)

target_link_libraries(cmake_package_check_dummy_executable PRIVATE gz-sim-yarp-plugins::gz-sim-yarp-device-registry)

===================================
=== CMake configure output:
===================================
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/acroci/mambaforge/envs/walking/bin/x86_64-conda-linux-gnu-cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/acroci/mambaforge/envs/walking/bin/x86_64-conda-linux-gnu-c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (0.2s)
CMake Error at /home/acroci/mambaforge/envs/walking/lib/cmake/gz-sim-yarp-plugins/gz-sim-yarp-pluginsTargets.cmake:61 (set_target_properties):
  The link interface of target
  "gz-sim-yarp-plugins::gz-sim-yarp-device-registry" contains:

    YARP::YARP_dev

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  /home/acroci/mambaforge/envs/walking/lib/cmake/gz-sim-yarp-plugins/gz-sim-yarp-pluginsConfig.cmake:21 (include)
  CMakeLists.txt:5 (find_package)

-- Generating done (0.0s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
Error occurred: Command '['cmake', '-GNinja', '-S.', '-B.']' returned non-zero exit status 1.
===================================
=== Result:
===================================
cmake-package-check: FAILURE.

This is related to https://github.com/robotology/gz-sim-yarp-plugins/pull/160/files#r1561277217 . If you do not add DEPENDENCIES there, then the gz-sim-yarp-pluginsConfig.cmake file or similar (I suggest you to open it to get an idea of what it contains) does not contain a find_dependency(YARP) call, and hence that target is not defined. Once you add the DEPENDENCY argument, a find_dependency(YARP) call will be added, and you should not have any more problem.

This is related to https://github.com/robotology/gz-sim-yarp-plugins/pull/160/files#r1561277217 . If you do not add DEPENDENCIES there, then the gz-sim-yarp-pluginsConfig.cmake file or similar (I suggest you to open it to get an idea of what it contains) does not contain a find_dependency(YARP) call, and hence that target is not defined. Once you add the DEPENDENCY argument, a find_dependency(YARP) call will be added, and you should not have any more problem.

Sorry I forgot about that required update 🤦🏻♂
Now it's working and I also added the cmake-package-check to the CI

The CI is failing on the test of installed package with the following error:
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/runner/micromamba/envs/gzyarppluginsdev/bin/x86_64-conda-linux-gnu-cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/runner/micromamba/envs/gzyarppluginsdev/bin/x86_64-conda-linux-gnu-c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:5 (find_package):
  By not providing "Findgz-sim-yarp-plugins.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "gz-sim-yarp-plugins", but CMake did not find one.

  Could not find a package configuration file provided by
  "gz-sim-yarp-plugins" with any of the following names:
-- Configuring incomplete, errors occurred!

    gz-sim-yarp-pluginsConfig.cmake
    gz-sim-yarp-plugins-config.cmake

  Add the installation prefix of "gz-sim-yarp-plugins" to CMAKE_PREFIX_PATH
  or set "gz-sim-yarp-plugins_DIR" to a directory containing one of the above
  files.  If "gz-sim-yarp-plugins" provides a separate development package or
  SDK, be sure it has been installed.

===================================
=== Generated CMakeLists.txt file:
===================================
cmake_minimum_required(VERSION 3.[12](https://github.com/robotology/gz-sim-yarp-plugins/actions/runs/8661043984/job/23750156856?pr=160#step:14:13)...3.29)

project(CMakePackageCheckTestCMakeProject)

find_package(gz-sim-yarp-plugins REQUIRED)

find_package(gz-sim-yarp-plugins REQUIRED)

# Create dummy executable
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake_package_check_dummy_executable.cpp "int main() {return 0;}")
add_executable(cmake_package_check_dummy_executable ${CMAKE_CURRENT_BINARY_DIR}/cmake_package_check_dummy_executable.cpp)

target_link_libraries(cmake_package_check_dummy_executable PRIVATE gz-sim-yarp-plugins::gz-sim-yarp-device-registry)

===================================
=== CMake configure output:
===================================
Error occurred: Command '['cmake', '-GNinja', '-S.', '-B.']' returned non-zero exit status 1.
===================================
=== Result:
===================================
cmake-package-check: FAILURE.

Ok now the CI is passing! Merging 🚀


[Merge] MONDO:0004033	familial ovarian carcinoma

Mondo term (ID and Label)
MONDO:0004033 | familial ovarian carcinoma
Reason for deprecation
duplicate
Term to be merged with
MONDO:0016248	familial ovarian cancer

sh run.sh owltools --use-catalog mondo-edit.obo  --obsolete-replace MONDO:0004033 MONDO:0016248 -o -f obo mondo-edit.obo

I apologize for not catching this on the obsoletion candidate list before this was released, but I don't think it's correct to equate ovarian carcinoma with ovarian cancer. (Generally speaking, even though 'carcinoma' may be used interchangeably with cancer in oncology community when that is the vast majority of  cases, I think it's appropriate to maintain the general vs. specific distinction if there are any other subtypes under that cancer concept.)
https://magazine.medlineplus.gov/article/3-types-of-ovarian-cancer-explained#:~:text=There are three types of,outer surface of the ovary
also see https://www.cancer.gov/types/ovarian/hp (PDQs exist for multiple types of ovarian cancers, suggests that clinical management of these sub-types are different)
. I think MONDO:0004033 should be retained as an active, child entity to MONDO:0016248 (Not to mention that merging these two would say that MONDO:0004436 is a child of 'carcinoma' and while i'm not an oncologist or pathologist, I don't think carcinoma and lipoma are histologically/molecularly the same.

Thanks @kanems! I can create a new term for familial ovarian carcinoma, it will be available in the next release.


Document progressIndeterminateStyle change

Update documentation according to #1236.
This PR is based on #1237.

It looks like you included the JavaDoc changes in this PR, and you changed all of the README header levels.

Yes, because I needed the #1237 changes in order to do this one. I'll rebase as soon as #1237 is merged.


High memory usage

Hi, thanks for your great work. I tried to train YOLOX-nano on a 2080ti, while I can only set the batch-size as 16 to avoid the OutOfMemoryError. I also tried yolov5 and mobilenetv2-ssdlite and i can set the batch-size as 64. So why yolox-nano consume so much memory during training,  is that becasue the data prefetch?

I test the 64 batchsize training of yolox-nano on a 2080ti. The training is run well and the gpu mem is 8780m. You may check your gpu status and remember to add --fp16 for training.

thanks for your quick reply, i set --fp16 and the training runs well :smile:


🚀  Release v6.5.0-rc.1

Foundation v6.5.0 Release Candidate 1
Here we go! Foundation 6.5 is out now and comes with a lot of bug fixes and various improvements! This release is mainly focused on stabilizing the previous release, improving accessibility and browser support and making the integration with your project easier. New features were delayed to the next release to ensure the best compatibility with v6.4.4-rc1. Check out the details below.
Note about this pull request
As this version was built to have the best compatibility with v6.4.4-rc1, we used a dedicated branch and manually picked safe changes from the development branch develop, excluding API evolutions and breaking changes. These imported changes are the Use pull request #xxx commits you can see in this pull request. Development will continue on develop and will lead to a future release with all changes, including new features and breaking changes.
Release Checklist

[ ] Bump versions
[ ] Update Lockfiles
[ ] Update dist files
▾
[ ] Update documentation
[ ] Update CHANGELOG.md
▾
[ ] Prepare release for npm
[ ] Prepare release for Rails
[ ] Prepare release for Meteor
[ ] Prepare release for Composer
[ ] Prepare release for NuGet
▾
[ ] Released!

Highlighs

🌟  Improved Stability: 70+ bugs resolved!
We worked hard to resolve over 70 bugs across all our components. This includes fixes for visual and functional bugs, resolved crashes and Sass compilation errors and improved integration, reusability and ease of customization in various environments and complex use cases.

🙈  Improved Accessibility (#10699, #11052, #11167, #11099)
We improved the accessibility of Abide forms by a lot! Most a11y attributes are now automatically set on form fields, labels and errors according to their relations. We also fixed the aria attributes of Toogler and all menu plugins, and improved many plugin documentations to show in examples the best practices in terms of accessibility.

🌎  Improved Browser Support (#10786, #11011, #11021, #11108, #11252)
We fixed various bugs in IE11/Edge in navigation components, Slider and XY Grid, as well as an issue with the Reveal scroll in iOS Safari. For consistency reasons, we revised our browser CSS compatibility table and improved support for iOS Safari >= 7. On the other hand, Android Browser < 4.4 is not supported anymore.

🚀  New Accordion parentLink option (#10616)
With the parentLink option, you can now automatically include the parent link at the top of an Accordion sub-menu like for Drilldown.

✨  Matching help for standard input and input group (#10602)
We changed the Input Group height calculation to match the standard input height. You may have to take a look at your forms after upgrading.

✨  Better keyboard shortcuts for Dropdown (#10715, #11123)
If a Dropdown trigger is an input or a textarea, Space does not open the Dropdown anymore. Also, an opened Dropdown is now closed with Space/Enter if nothing can be focused in it.

✨  Improved Abide URL validation pattern (#11116)
We changed the Abide validation pattern for URL so it is more permissive and supports various protocols and escaped characters. We recommend you to check if it still fulfills your needs before upgrading. You can always use the old URL pattern as a custom pattern.

🐛  Fixed various bugs with dynamically created component (#11077, #10988)
Components could be incorrecly initialized when dynamically created as they were waiting for the page load event (which was already called before). We fixed this and now fully support dynamically created components after the page loaded.

🐛  Fixed various bugs causing a "gap" between breakpoints (#10978, #11315)
A "gap" between breakpoints could appear with both or none breakpoints where considered as the "current one" due to the way some old browsers round values or when a smaller global font size was used.
We changed this gap size to ensure the best browser compatibility and support smaller font size.

🚚  UMD Bundling (#10864, #10911, #10930)
Foundation is now distributed as an UMD package! Babel is no longer required and you can now import Foundation with ES6, RequireJS, Node.js or as a global variable.

🚚  Sourcemaps everywhere! (#10998, #11012)
No one likes debugging in minified code. All Foundation JavaScript and CSS distribution files now comes with sourcemap files, including individual plugin files.

📦  jQuery and what-input are now peerDependencies (#11294)
We think that like for most browser packages, you will want to only have one jQuery version installed and to choose its version by yourself. For this reason, jQuery and what-input should be exposed to you as peerDependencies. You should already have jQuery and what-input installed so Foundation will work the same way as before.
Note for npm users: you may now have a warning message asking you to install these packages if you did not already. Please do so with versions we support<EMAIL_ADDRESS>and what-input>=4.1.0.

All changes
This release comes with 220+ contributions like new features, improvements, bug fixes, documentation updates and maintenance tasks. This changelog uses the following emojis to describe contribution types.

Code changes
Cleaning
Maintenance

💥  Breaking changes🚀  Features✨  Improvements🐛  Bug Fixes
🛠  Refactoring💎  Linting📖  Documentation
💻  Tools📦  Dependencies🚚  Build files🚨 Tests

Changes marked with RC were included in the previous unstable release candidate v6.4.4-rc1. They may have introduced new features and visual changes. If you have already migrated to Foundation v6.4.4-rc1 without encountering issues, you can safely migrate to v6.5.0.
General

Typography
📖  #11257 - Fix typos in Typography documentation (@datatypevoid)

Forms
✨  #10602 - Update Input Group height calculation to match input height (@simshaun, #9344) RC
🐛  #10562 - Fix Range thumb styles not applied on Webkit browsers (@farrago, #10553) RC
🐛  #10887 - Reduce placeholder specificity (@ncoden, #8366)
🐛  #11250 - Fix Progress bar border radius $progress-radius setting (@datatypevoid)
📖  #10462 - Update Forms documentation to XY Grid (@colinmackinlay, #10452) RC
📖  #10575 - Fix aria-valuenow in Progress Bar example to match the component value (@wesinator) RC
📖  #11283 - Prevent row of checkbox to collapse in Forms documentation example (@adamklepacz)

XY Grid
🚀  #10689 - Add grow size to xy-cell/xy-cell-base mixins (@flatline-studios) RC
✨  #11300 - Use fallback gutter for fallback breakpoint in XY Grid cell (@ncoden, #11194)
🐛  #10531 - Fix Sass compilation error due to missing semicolons (@brettsmason, #10529) RC
🐛  #10550 - Fix Sass deprecation with interpolations near operators (@jessedoyle, #10534) RC
🐛  #10648 - Clear max-width/height property in XY Grid cell reset (@kball) RC
🐛  #10649 - Ensure that XY Grid vertical frame takes the whole height (@kball, #10457) RC
🐛  #10821 - Prevent generation of invalid xy-cell when breakpoint is not found (@ncoden)
🐛  #10927 - Fix XY Grid responsive widths when used with auto/shrink (@ncoden, #10891)
🐛  #11085 - Allow XY Grid frame to get a vertical scrollbar (@DanielRuf, #10793)
🐛  #11117 - Fix XY Grid cells widths overriden by the width of a smaller breakpoint (@ncoden, #10468)
🐛  #11145 - Fix XY Grid classes generated with the wrong breakpoint (@DanielRuf, #11121)
🐛  #11252 - Fix XY Grid cell block scrollbar autohiding on IE/Edge (@datatypevoid)
📖  #10526 - Fix typo in XY Grid "basics" documentation (@jacek213) RC
📖  #10778 - Add missing $frame-grid argument to foundation-xy-grid-classes() mixin doc (@rlhawk)
📖  #10834 - Remove references to inexistent mixin xy-cell-breakpoints() (@ncoden, #10276)
📖  #10859 - Fix typo in XY Grid documentation (@ocularrhythm)
📖  #10862 - Fix quotes in xy-cell-size mixin documentation (@tonymtz)
📖  #10895 - Add missing XY Grid and Protoyping Utilities videos (@ncoden)
📖  #10905 - Add missing documentation for various XY Grid mixin arguments (@ncoden, #10904)
📖  #10962 - Improve documentation about the used grid following $xy-grid setting (@DanielRuf, #10425)
📖  #11192 - Improve "push/pull" title formatting in XY Grid documentation (@rbrtmrtn)
📖  #11280 - Clarify usage of body overflow in XY Grid frame example (@paxperscientiam)

Float Grid
🐛  #11115 - Fix last Float Grid column alignment when uncentered (@ncoden, #9952)
📖  #11171 - Fix misnamed setting $global-flexbox Float Grid documentation (@englishtom)

Flex Grid
📖  #10597 - Add missing $wrap argument to flex-grid() mixin doc (@kball, #10578) RC

Controls

Button
📖  #10830 - Fix typo in Button button-disabled() mixin documentation (@ncoden, #10783)

Button Group
🐛  #10703 - Prevent unstacked .stacked Button Group to expand without .expanded (@rafibomb, #10693)
🐛  #10815 - Use $button-palette for color modifier classes (@RudolfBos, #10576)
🐛  #10845 - Fix overlap on single button due to ignored spacing (@TheBnl)

Slider
🐛  #10594 - Fix Slider breaking when data-start setting has a trailing zero (@knabe, #10579) RC
🐛  #11108 - Fix Slider update on input keypress in IE 11 (@DanielRuf, #11096)

Navigation

All menus
🐛   #9381 - Clear sub-menus when menus are destroyed (@diniscorreia, #9339)
🐛  #11018 - Remove unused $menu-item-background-hover setting (@DanielRuf, #10758)
🐛  #11099 - Use menubar aria role instead of invalid menu (@DanielRuf, #11097)
📖  #11010 - Remove out-of-date bug warning in Reponsive Navigation (@ncoden)

Dropdown Menu
📖  #10929 - Fix Dropdown Menu event namespace in documentation (@JeremyEnglert, #10563)

Drilldown
🚀  #10509 - Add _showMenu to open any Drilldown menu or sub-menu (@SassNinja) RC
🐛  #10829 - Fix Enter on Drilldown with parent links (@Owlbertz, #10803)
📖  #10555 - Rename Drilldown page title to generate correct events namespace (@IamManchanda, #9151) RC
📖  #10933 - Revert unsuitable and outdated fix for Drilldown events namespace #10555 (@ncoden)

Magellan
🐛  #10837 - Clear Magellan deep linking hash outside of Magellan sections (@nicolasv, #10836)
🐛  #10906 - Prevent update.zf.magellan to be fired without changes (@coreysyms, #9068 & #10384)
🐛  #10988 - Fix Magellan for when dynamically created after page load (@DanielRuf)
🐛  #11076 - Fix reference to component in Magellan._events (@ncoden)
🐛  #11142 - Fix Magellan hash resolution when leaving link sections (@ncoden)

Pagination
📖  #10915 - Improve accessibility in Pagination examples (@Owlbertz, #9334)

Breadcrumbs
📖  #10659 - Add note about schema.org structured data in Breadcrumbs documentation (@mik-laj) RC

Containers

Accordion
🚀  #10616 - Add parentLink setting to include parent link to top of submenu (@kball) RC
🐛  #10871 - Fix duplicate ID on Accordion labels (@colin-marshall, #10870)
📖  #10731 - Fix deepLinkSmudgeDelay attribute name in Accordion documentation (@DanielRuf)
📖  #11272 - Fix typo in Accordion documentation (@ncoden, #11271)

Card
📖  #10586 - Migrate Card examples to XY Grid (@colinmackinlay, #10586) RC
📖  #11173 - Fix typo in in Card $card-background setting documentation (@piouPiouM)

Dropdown
✨  #10715 - Do not open Dropdown on Space on text input/textarea (@DanielRuf & @Owlbertz)
✨  #11123 - Close Dropdown on Space/Enter if nothing is focusable inside (@DanielRuf, #10391)
🐛  #10522 - Calculate better non-overlapping positions everytime the Dropdown is opened (@SassNinja) RC
🐛  #10658 - Fix Dropdown closeOnClick setting for a click on the Dropdown itself (@u671175, #10657) RC
🐛  #10840 - Fix various Dropdown anchor attributes (@ncoden, #10627)
🚨  #10968 - Add tests for Dropdown (@alliclemens)
📖  #11038 - Remove deprecated positionClass setting (@DanielRuf, #10178)

Media Object
🐛  #10679 - Make required Media Object container styles available in Sass (@Martskin, #9038)
🐛  #10842 - Revert single commit in #10679 preventing to create a custom Media Object section  (@ncoden)

Off Canvas
🐛  #10868 - Fix revealOn option set in JavaScript without CSS class (@ncoden, #10867)
🐛  #10967 - Trigger opened.zf.offcanvas at the end to prevent race conditions (@DanielRuf)
🐛  #11141 - Reset graphic properties instead of inheriting them on in-canvas mode (@RvWensen, #11124)
📖  #10966 - Improve documentation about Off Canvas overlap usage and limits (@SassNinja)
📖  #10981 - Fix data-toggle target in an Off Canvas example (@DanielRuf, #10548)

Reveal
🐛  #10570 - Make the Reveal vOffset setting optional (@therufa) RC
🐛  #10711 - Focus the Reveal modal anchor when it is closed (@Owlbertz, #10604)
🐛  #10786 - Fix Reveal scroll calculation in iOS Safari (@SassNinja)
🐛  #11041 - Clear global classes when Reveal is destroyed (@DanielRuf, #10626)
🐛  #11065 - Prevent a double scrollbar on Reveal in Firefox (@DanielRuf, #11064 and #10824)
🐛  #11093 - Fix history browsing for nested Reveals with deepLinking (@ncoden, #8012)
🐛  #11106 - Fix crash with Libsass 3.5 due to @extend used within mediaquery (@ncoden, from #11094)
🐛  #11189 - Fix global classes when Reveal is opened due to misnamed internal function (@hikouki)
📖  #10996 - Correct description of the default Reveal width (@DanielRuf, #8707)
📖  #11030 - Remove unused data-btm-offset-pct setting (@DanielRuf)

Table
🐛  #10897 - Prevent scrollable table (.table-scroll) to collapse (@nicwinn)

Tabs
🐛  #10827 - Remove Tab outline when keyboard is not used (@ncoden, #10798)
🐛  #11001 - Remove unused $tab-expand-max setting (@DanielRuf, #8484)
📖  #10603 - Fix data-tabs-target setting format in Tabs example (@svenkle) RC
📖  #10963 - Fix Tab method arguments documentation (@DanielRuf)
📖  #11039 - Fix data-deep-link-smudge-delay setting Tabs example (@DanielRuf)

Responsive Accordion Tabs
🐛  #10902 - Clear event handlers when ResponsiveAccordionTabs is destroyed (@ncoden, #10901)

Media

Label
📖  #10896 - Fix examples markup Label documentation (@JuanMME)
📖  #10993 - Remove inexistent .info modifier from Label example (@gormus)

Orbit
🐛  #11107 - Fix Orbit "jump" when sliding (@DanielRuf, #11082)
📖  #10549 - Fix data-anim-out-* settings in Orbit documentation (@GITTomy) RC
📖  #10950 - Improve isLTR argument documentation in Orbit.changeSlide (@ncoden)
📖  #11024 - Fix typo in Orbit documentation (@DanielRuf)

Tooltip
🐛  #11056 - Fix classes and attributes cleaning after Tooltip is destroyed (@ncoden, #11054)
💻  #11067 - Remove deprecated and broken positionClass setting in Tooltip (@DanielRuf, #11066)
📖  #11057 - Simplify examples in Tooltip documentation (@ncoden)

Thumbnail
💎  #10752 - Use standard property order for border option (@IamManchanda)
📖  #11032 - Center thumbnails in documentation (@DanielRuf, #11029)

Plugins

Abide
✨  #10699 - Improve Abide fields, labels and errors accessibility (@Owlbertz & @ncoden, #10552)
✨  #11116 - Support various protocols and escaped characters in Abide url pattern (@ncoden, #9180)
🐛  #10936 - Revert incorrect fix in Abide that actually introduced bugs (@DanielRuf)
🐛  #11118 - Ignore submit inputs and empty formErrorFor in Abide (@ncoden, #9190)
📖  #10683 - Add missing label end tag in Abide main example (@grantcarthew) RC
📖  #11035 - Fix Abide custom validator example (@lirael, #11033)

Interchange
🚨  #11179 - Reduce race condition in Interchange debounce test (@DanielRuf)
🚨  #11259 - Clean and improve precision of Interchange debounce test (@ncoden)
🚨  #11279 - Fix race condition in Interchange debounce test (@ncoden)

Toggler
🐛  #11052 - Add aria-expanded a11y attribute to Toggler triggers (@DanielRuf, #11049)
🐛  #11167 - Fix aria-controls with multiple IDs in Toogler (@MoarCoding, #11166)
📖  #11031 - Improve documentation of data-toggler classname support (@DanielRuf, #11013)

Utilities

Flexbox Utilities
🐛  #10676 - Use $global-text-direction for Flexbox alignment utilities (@abdullahsalem, #10125) RC
📖  #10592 - Fix typos in Flexbox Utilities documentation (@powellian) RC

Prototyping Utilities
🐛  #10551 - Remove non-ASCII character unsupported by Sass (@IamManchanda, #10515) RC
🐛  #10632 - Fix rounded prototyping class for Switches (@IamManchanda, #10460) RC
🛠  #10625 - Refactor spacing classes in Prototyping utilities (@IamManchanda) RC
📖  #10632 - Remove canceled deprecation notice about Visibility Classes (@IamManchanda, #10540) RC
📖  #10709 - Fix typo in Prototyping documentation (@mziraki)

Sass Utilities
✨  #10479 - Add defaults for $foundation-palette colors (@arjenkroeze, #9833) RC
✨  #11103 - Improve $-zf-zero-breakpoint setting error message (@andycochran, #9268)
🐛  #10629 - Ensure that Sass breakpoint variables are always declared (@gaulrobe, #10628) RC
🐛  #10819 - Prevent leaking of $-zf-size after -zf-each-breakpoint() mixin (@ncoden, #10818)
🐛  #10914 - Remove clip-path from element-invisible mixin for performance issues (@ffoodd)
📖  #10785 - Fix typo in rem-calc function documentation (@IanCaunce)
📖  #11088 - Remove outdated rem-base deprecation note (@DanielRuf)
📖  #11249 - Fix various typos in Sass Utilities documentation (@datatypevoid)
📖  #11251 - Add missing space in color() function documentation (@datatypevoid)

JavaScript Utilities
🐛  #11258 - Prevent to initialize Triggers twice before window load (@ncoden)
🐛  #10639 - Fix polyfills for dragging events in Touch Utilities (@TakteS, #10639) RC
🚨  #10941 - Add units tests for Foundation.getFnName() (@dragthor)
🚨  #10990 - Remove tests for widely supported inferred names in Foundation.getFnName() (@DanielRuf)

Global / Miscellaneous

Global
🐛  #10729 - Use jQuery .on() instead of deprecated .load() (@DanielRuf)
🐛  #10978 - Fix breakpoint precision issue with a smaller global font size (@JasonMiller, #10820)
🐛  #11011 - Fix watching for hash changes in IE/Edge (@ncoden, #10771)
🐛  #11077 - Fix watching for events when dynamically created after page load (@ncoden & @DanielRuf)
🐛  #11315 - Use low-enough breakpoint precision to avoid rounding by browsers (@ncoden, #11313)
🚚  #10856 - Sort Sass components following their complexity and dependencies (@ncoden, 10854)
🚚  #10864 - Bundle JS assets as UMD modules (@ncoden)
🚚  #10911 - Temporary disable UMD bundling (@ncoden)
🚚  #10930 - Fix and re-enable UMD bundling (@ncoden)
🚚  #10998 - Include sourcemaps in distribution files (@DanielRuf)
🚚  #11012 - Add sourcemaps for plugins and minified files (@ncoden, #10999)
💻  #11021 - Drop Android < 4.4 and ensure support for iOS Safari >= 7 (@DanielRuf)

TypeScript
🐛  #10807 - Fix Keyboard util TypeScript declaration from KeyBoard to Keyboard (@Anidetrix)
🐛  #11274 - Allow any types for jQuery Foundation method arguments (@ncoden, #11193)

Internal
🐛  #10908 - Fix RegExpEscape definition in Foundation object (@DanielRuf)
🐛  #10917 - Fix RegExpEscape export as an external (@ncoden, #10916)
🚚  #11205 - Fix gulp task sequences due to missing callback (@ncoden)
💻  #10631 - Add XY Grid styles to documentation (@kball) RC
💻  #11073 - Migrate dependencies from Bower to npm (@DanielRuf)
💻  #11083 - Remove deprecated Sass mixins (@DanielRuf)
💻  #11144 - Migrate to jsDelivr from CDNjs (@DanielRuf)
💻  #11175 - Move documentation changes to develop Git branch (@ncoden)
💻  #11268 - Revise Eyeglass compatibility range to >=0.8.0 (@ncoden)
💻  #11269 - Move TypeScript definitions source file out of distribution folder (@ncoden)
💻  #11316 - Update Browserify transform config & factorize browserslist configs (@ncoden)
🚨  #11210 - Clean components and focus after tests (@ncoden)
🚨  #11275 - Add delay before testing focus to give IE time to render elements (@ncoden)
🚨  #11333 - Increase mocha tests timeout to run on slow browsers and workers (@ncoden)
📦  #10591 - Update Webpack to v3 (@kball, #10584) RC
📦  #10823 - Update Babel dependencies (@ncoden)
📦  #10825 - Update fourseven:scss dependency (@raym)
📦  #10942 - Update foundation-docs dependency (@ncoden)
📦  #10944 - Migrate to mocha-headless-chrome from mocha-phantomjs for tests (@DanielRuf)
📦  #10984 - Update dependencies with known vulnerabilities (CVE) (@ncoden)
📦  #11036 - Update eslint and gulp-eslint dependencies to v4 (@colin-marshall)
📦  #11086 - Migrate to normalize.css v8.0.0 from normalize-scss (@ncoden, #11015)
📦  #11119 - Clean and update all dependencies (@ncoden)
📦  #11292 - Update foundation-docs dependency to get new ClipboardJS naming (@ncoden)
📦  #11294 - Move jquery and what-input to peerDependencies (@ncoden, #11290)
📦  #11308 - Remove unused devDependencies dateformat and gaze (@ncoden)
📦  #11317 - Update Babel dependencies to v7 (@ncoden)
📦  #11334 - Update dependencies June 2018 (@ncoden)
💎  #11176 - Remove extraneous space in Travis CI config (@DanielRuf)
💎  #11227 - Fix Sass linting errors (@DanielRuf)
💎  #11231 - Remove obsolete sass-lint comments (@DanielRuf)

Development
💻  #10599 - Add JSHint configuration with ES6 support (@IamManchanda) RC
💻  #11003 - Run tests on latest Node.js LTS/stable releases (@DanielRuf)
💻  #11090 - Various improvements for Travis tests (@ncoden)
💻  #11111 - Run tests before commits and pushes with Husky (@DanielRuf, #11042)
💻  #11120 - Prevent commits and pushes when tests are failing with Husky (@ncoden)
💻  #11174 - Run tests with npm ci when supported (@DanielRuf)
💻  #11197 - Lint commit messages before committing with Husky (@ncoden)
💻  #11208 - Run tests with devDependencies instead of embedded packages (@DanielRuf)
💻  #11246 - Add GitHub multiple issue templates (@ncoden)

Documentation
📖  #10500 - Fix closable Callout close button in Kitchen Sink (@danclayton50) RC
📖  #10519 - Fix typo in deprecation notices (@Odaeus) RC
📖  #10536 - Fix typo on "Foundation" in Media Query documentation (@AnaghSharma) RC
📖  #10632 - Move Utilities classes to their own section in documentation menu (@IamManchanda) RC
📖  #10670 - Update outdated Foundation version in documentation menu (@IamManchanda, #10669) RC
📖  #10681 - Fix path to JavaScript source folder in installation documentation (@grantcarthew) RC
📖  #10698 - Fix autoprefixer documentation in Sass setup (@pdeffendol)
📖  #10710 - Remove unnecessary bower install from ZURB Template installation (@skadzielawa)
📖  #10719 - Fix typo in JavaScript documentation (@artbypravesh)
📖  #10720 - Add jsDelivr badge to README (@LukasDrgon)
📖  #10822 - Update sub-ressources integrity (@ncoden)
📖  #10831 - Update copyright notices to 2018 (@benhc123)
📖  #10835 - Fix typo in Foundation Classes promotional messages (@gpaumier)
📖  #10839 - Fix typo Inc. instead of inc. in Copyright notices (@benhc123)
📖  #10847 - Improve Sass/JS installation and setup documentation (@ncoden)
📖  #10848 - Improve Sass installation documentation for npm users (@jnystromdesign)
📖  #10866 - Improve Grids setup documentation (@ncoden, #10843)
📖  #10874 - Improve GitFlow documentation (@ncoden)
📖  #10925 - Update ZURB template JavaScript documentation (@ncoden, #10353)
📖  #10928 - Fix typo in installation documentation (@wolfbeisz)
📖  #10948 - Fix yarn command in installation documentation (@jnystromdesign)
📖  #10959 - Remove obsolete bower command in installation documentation (@DanielRuf, #10790)
📖  #10977 - Fix broken link to XY Grid (@ocularrhythm)
📖  #10986 - Fix broken links to Float Grid and Installation (@ncoden, #10985)
📖  #11005 - Fix SRI hashes of CDN assets (@DanielRuf, #11004)
📖  #11023 - Add Edge to the compatibility table (@DanielRuf, #10299)
📖  #11034 - Migrate documentation examples to XY Grid (@colin-marshal, #11028)
📖  #11040 - Add Rails in installation documentation (@ncoden)
📖  #11060 - Use double quotes for HTML attributes in documentation examples (@ocularrhythm & @ncoden)
📖  #11075 - Improve deepLink setting documentation (@ncoden)
📖  #11089 - Fix check for flexbox label in component list (@DanielRuf)
📖  #11110 - Fix plugin destroy method name in documentation (@DanielRuf)
📖  #11178 - Improve README.md and contribuion guidelines (@ncoden)
📖  #11238 - Fix wrong word for cues in Accessibility documentation (@danielrhodeswarp)
📖  #11240 - Add Edge to the flexbox browser list (@ncoden, from #11239)
📖  #11262 - Fix colliding IDs in Kitchen Sink (@brianshano)
📖  #11326 - Fix "knowledge" typo on Customizer page (@mapx)

Contributors
Big thanks to our 74 amazing contributors who helped to make Foundation even better. Foundation wouldn't happen without you! Also thanks to our 88 others contributors who worked on new features, your contributions will be released in the next version.
[222] - Nicolas Coden (ncoden)
[113] - Daniel Ruf (DanielRuf)
 [27] - Harry Manchanda (kball)
 [20] - Kevin Ball (IamManchanda)
 [12] - Marius Olbertz (rafibomb)
  [5] - SassNinja (Owlbertz)
  [4] - Colin Marshall
  [4] - David Niciforovic (SassNinja)
  [3] - Aaron Arney (colin-marshall)
  [3] - colinmackinlay (colinmackinlay)
  [3] - danclayton50 (danclayton50)
  [3] - JasonMiller (JasonMiller)
  [3] - Joakim Nystrom (jnystromdesign)
  [2] - alliclemens (ocularrhythm)
  [2] - Ben Holden-Crowther (alliclemens)
  [2] - Daniel Rhodes (benhc123)
  [2] - David Newman (danielrhodeswarp)
  [2] - Grant Carthew (flatline-studios)
  [2] - Kamil Breguła (grantcarthew)
  [2] - Kerry (Martskin)
  [2] - Martin Hofmann (mik-laj)
  [2] - Nicolas Venegas (nicolasv)
  [2] - Raymond Young (raym)
  [2] - Stefan Lisper
  [1] - Abdullah Salem (abdullahsalem)
  [1] - Adam Klepacz (andycochran)
  [1] - Anagh Sharma (adamklepacz)
  [1] - Andrew France (AnaghSharma)
  [1] - Andy Cochran (Odaeus)
  [1] - Anton Kudryavtsev (Anidetrix)
  [1] - Arjen Kroeze (arjenkroeze)
  [1] - ArtbyPravesh (artbypravesh)
  [1] - Bhupinder Singh (tonymtz)
  [1] - Bram de Leeuw (u671175)
  [1] - Brett Mason (TheBnl)
  [1] - Brian Shanley (brettsmason)
  [1] - Chris (brianshano)
  [1] - Corey Snyder (paxperscientiam)
  [1] - Dinis Correia (coreysyms)
  [1] - Gaël Poupard (diniscorreia)
  [1] - Guillaume Paumier (ffoodd)
  [1] - Ian Caunce (gaulrobe)
  [1] - Jeremy Englert (gpaumier)
  [1] - Jesse Doyle (IanCaunce)
  [1] - JuanMME (powellian)
  [1] - koki-higashikawa (jessedoyle)
  [1] - Kristofer Krause
  [1] - Lukas Drgon (JuanMME)
  [1] - Luke Arentz
  [1] - Mahdi Ziraki (dragthor)
  [1] - Mehdi Kabab (LukasDrgon)
  [1] - Nic Winn (svenkle)
  [1] - Olena Pastushenko (mziraki)
  [1] - Osman Gormus (nicwinn)
  [1] - Pete Deffendol (gormus)
  [1] - Petr Tomášek (lirael)
  [1] - powellian (pdeffendol)
  [1] - r.bos (piouPiouM)
  [1] - Richard Taylor
  [1] - Rick Hawkins (farrago)
  [1] - Robert Gaul (rlhawk)
  [1] - Robert Martin (rbrtmrtn)
  [1] - Roy (RvWensen)
  [1] - Shaun Simmons (simshaun)
  [1] - skadzielawa (skadzielawa)
  [1] - TakteS (TakteS)
  [1] - therufa (therufa)
  [1] - Tom (knabe)
  [1] - Tom English (englishtom)
  [1] - TonyMtz (GITTomy)
  [1] - wesdawg
  [1] - wolfbeisz (wolfbeisz)
  [1] - Yuchen Xie (mapx)
  [1] - ZURBywood

@ncoden FYI: seems like you got something wrong with the mentions in the list of contributors.

@Owlbertz Oh, true ^^

@ncoden there seems to be a mistake in the contributors list.
I often wish I could clone myself but not possible yet 😉
Should be just Kai Falkowski (SassNinja)

@SassNinja Did you rm -rf node_modules && npm i ?

@ncoden I did clone your fork so clean node modules
However I've also tried with rm -rf but same result: error in docs:all task.
I'll try again on another computer later.

The needed files (css, js) probably do not yet exist.

Is there a way to download this to test locally. I don't run builds or compile, I just download and use it with WordPress.

@tsquez It's not released yet so no. This pull request is intended for Foundation developers only.

@tsquez
Actually you can. Just download the zip and use the css and js from the 'dist' folder.

Team, really well put together release notes!


Frame latency rework worsens frame time variance on at least Nvidia

With 0fe8f2e40cf4e7a9aec744ce00c502bb1d1a3100 , frame time graph in e.g. Assassin's Creed Odyssey (it seems to affect every game) is mostly flat (ignore the game's own crazy graph):

With 747834e9b02288f9ab7a2514fdffd85ad78db6ab , it is way bumpier and should be noticeably worse (not much, but it seems to sum up with the game's own slight stutter):

It doesn't help to set dxgi.maxFrameLatency to different values. E.g. before the rework, 1 produced better frame times than 2 after the rework. With the Nvidia D3D11 driver, ULL set to on (equals 1) looks exactly as smooth as with DXVK before the rework.
Software information
I tested Odyssey and Hitman 2. I think you need to be GPU bound, so e.g. use SSAA resolution scale option in Hitman 2. This is all with vsync off.
System information

GPU:  RTX 3060
Driver: 471.96 / 470.62.02
Wine version: recent staging-tkg / Windows 10
DXVK version: Issue started with 1.9 accordingly.

Log files
hitman2_dxgi.log
hitman2_d3d11.log
It might be that AMDVLK/RADV didn't show this issue, but I can't really recall.

This is known, and I don't know how to work around this issue.

Thanks. The workaround mentioned in that ticket to revert e64a8ee61a0669b317043bb211f1c519bd4c47af unfortunately doesn't do the trick , as it seems to effectively limit GPU load at ~70% (no CPU prerender at all?). :(

Does this branch improve things?

The issue unfortunately remains unchanged with this branch.

Not sure what to do then other than asking people who have this issue to stay on 1.8.1 for the time being.
I cannot reliably reproduce this on my Nvidia laptop, so debugging this is pretty much impossible.

Probably not the end of the world to endure with 1.8.1 in most cases. :)
Hopefully Nvidia devs can investigate why their driver doesn't produce an optimal result in this case.

Unfortunately still unchanged with latest git-master and Nvidia driver 511.79 (includes the Vulkan 1.3 changes):

Very ugly and unpopular notion: Perhaps it would make sense now to additionally re-implement the old presentation path without the latency optimizations and automatically switch to that when an Nvidia GPU is detected (+config option)? * takes cover *

I don't want to maintain multiple paths for this, and so far there has not been any evidence that this is a widespread problem even on Nvidia hardware, no one else has observed degraded frame times yet.
I pushed something here which does something similar to our old path, please check if that helps.

I'd expect this to occur on any system with that driver (but not any game), it's just hard to notice without VRR (and lots of games tend to have a bit of microstutter anyway without forcing maxFrameLatency 1). I probably also encountered it in Black Mesa, but it seems we're at a point where more testing doesn't make any more sense and can just call it a day then.

I played a bit of Black Mesa recently and I'm pretty sure I did not have this problem. I even play with the DXVK frame time graph enabled, so I would've definitely noticed.

I just have to load the game's menu to reproduce (1.10 and 1.8.1, not caused by background shader compiling etc., also d3d9.maxFrameLatency doesn't matter):

Both DXVK's and MangoHud's frame time graph by default are a bit too insensitive, so it's easy to miss (it's RTSS own graph in the screenshots, which by default is also more sensitive than Afterburner's). And as I said earlier, the generally higher variance is not that problematic for a lot of the time, but it can sum up enough in some situations to be noticeable. It's just harder to reproduce and to capture it isolated in a screenshot. Also no difference Linux vs. Windows. Really doubt some Nvidia users would be affected while others are not when I can bisect it to those specific commits.
Guess I'll just stick with 1.8.1 when it's a "won't fix".

I just don't see a way to figure out the root cause without anyone being able to reproduce it, and I don't see anything wrong with our code either.

FWIW, Black Mesa on Windows + DXVK looks like this here:

Thanks for checking!
Though it seems you're CPU bound in that scene, at least according to the GPU usage stats. When I decrease resolution to get CPU bound, there also is no difference for me in frame time variance with 1.8.1 vs. 1.10:

When GPU bound for the issue to occur, it's also visible in DXVK's graph, though it looks far less dramatic:

So it seems it's not like DXVK's stats wouldn't catch it, it's just the scale of the graph.
Btw. If you try to get GPU bound by forcing higher resolution via VSR on Windows: That might not work out too well, even with native D3D9 the 32 bit game doesn't seem to be able to run in 5k resolution without running out of address space (main menu might still work though).
I can't judge how much effort it would require, but would it be possible to provide an unofficial patch that reverts the latency optimizations for the time being? I tried reverting the commits myself, but that didn't work out.

That's exactly why I don't want to do it, it's a pain in the arse and overall the patches seem beneficial (and are required for Gamescope's frame rate limiter to work properly without introducing ludicrous amounts of latency).

Looks like something's mitigated it, DXVK's graph is a bit smoother now:

I think we can close this and if someone's found a game where this is more dramatic, open a new issue for it.
It's also interesting that on Windows with RTSS, changing its statistics setting to either frame start or frame presentation can give vastly different results, especially with native D3D11 and Nvidia driver ultra low latency ultra setting. So I guess if we wanted to be super exact, we would need to apply FCAT after display scan-out with a dedicated capture system in between, as apparently software overlays aren't 100% trustworthy.


Added taxonomy for ibm iam cloud documentation

If your PR is related to a contribution to the taxonomy, please, fill
out the following questionnaire. If not, replace this whole text and the
following questionnaire with whatever information is applicable to your PR.
Describe the contribution to the taxonomy

...
...
...

Input given at the prompt

   ...

Response from the original model

  ...

Response from the fine-tuned model

  ...

Contribution checklist

[x] The contribution was tested with ilab generate
[x] No errors or warnings were produced by ilab generate
[ ] All commits are signed off (DCO)
[x] The qna.yaml file contains at least 5 seed_examples
[x] The qna.yaml file was linted and prettified (yaml-validator can do both)
[ ] An attribution.txt file in the same folder as the qna.yaml file
[ ] Content does not include PII or otherwise sensitive or confidential information
[ ] Content does not include anything documented in the project's Avoid these Topics guidelines

I think this would be better as a knowledge submission than a skill. However, this also falls in the bucket of non-approved upstream knowledge submissions because they are from official IBM documentation.
This feels like it should be part of the internal challenge, and I think you submitted it to the wrong repo.


strip trailing whitespace from platform name

The guestOS reported by VMware vSphere API can sometimes contain a trailing whitespace.
For example "Linux 4.18.0-147.8.1.el8_1.x86_64 CentOS Linux release 8.1.1911 (Core) "
This causes errors, more information on this is described in https://github.com/netbox-community/netbox/issues/4974
I propose to strip the trailing whitespace from the platform name.

PR with wrong base branch


Parallel assumption and complex topologies

Hi Ruijin,
First of all, congratulations on the great work! The results look amazing, and I particularly liked the equation derivation part.
If my understanding is correct, the paper used shape consistency constraint which basically assumes that the lanes are parallel polynomials. This perhaps covers only 90% of the case but it does not seem to address more complex topologies such as merges and splits. Any insights you could shed on this?

Hi @lz707 ,
Thanks for your interest and sorry for getting back to you so late!
Yes, your understanding is correct.
The current scenario considered in our method is one in which the vehicle is driving steadily on the road and the road is clearly marked with lane markings.
Merges and splits are a great follow-up. In this scenario the lane patterns get complicated and the global parallel assumptions obviously cause problems.
For example, there are 4 lanes near the freeway ramp, and the left 2 lanes are straight while the 2 on the right are curved. We think

a more flexible local parallel assumption that can automatically cluster lanes of the same shape.
a more diverse dataset containing the aforementioned lane patterns is also critical.

Some brief insights and I welcome in-depth discussion!


ElevationPoint class and LatLng

Hi there,
I'm trying to use this absolutely awesome plugin to show a terrain profile.  That part works beautifully, but I'm trying to implement the hoverPoint feature over a line to show where the user is on the terrain profile.  When trying to construct the MarkerLayerOptions...
MarkerLayerOptions(markers: [if (hoverPoint is LatLng)Marker(
                      point: hoverPoint,
                      width: 8,
                      height: 8,
                      builder: (BuildContext context) => Container(
                        decoration: BoxDecoration(
                            color: Colors.blue,
                            borderRadius: BorderRadius.circular(8)),
                      ))]),

I get an error about the point argument of HoverPoint (type ElevationPoint) not being assignable to the class LatLng*.
I understand how to construct a LatLng pair in lieu of an ElevationPoint, the problem is that the ElevationHoverNotification notification requires an ElevationPoint.
I fear something with null safety may have affected this?  But I just ask if anyone might know of a workaround, as I would love to have this feature.
Anyway, thank you for this wonderful plugin regardless that I will be using in my current app project.

Hi there,
Seems like a bug on the example project. What's weird is that it works on my own.
I'm working on it, will release soon.
Thanks for your kind words! :-)

@W2NJL can you check #8 and tell me if that fixes your case?
If it doesn't, could you flutter doctor -v so I can reproduce your issue? On my side it is working fine :-)

@W2NJL can you check #8 and tell me if that fixes your case?
If it doesn't, could you flutter doctor -v so I can reproduce your issue? On my side it is working fine :-)

Hello,
Thanks so much for the reply and checking this!  So, after making the change you suggested I still am seeing an error.  First, here is my flutter doctor -v results:
  nicklangan@Nicks-MacBook-Pro wtfda_radioland % flutter doctor -v
[✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-arm, locale en-US)
    • Flutter version 2.5.3 at /users/nicklangan/flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (4 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nicklangan/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.1, Build version 13A1030d
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.61.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • iPhone 13 (mobile) • 1A2B7605-C320-466C-92D7-51BEB8CED943 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 95.0.4638.69

• No issues found!

And here is the error I currently see:
======== Exception caught by widgets library =======================================================
The following _TypeError was thrown building StreamBuilder<int>(dirty, state: _StreamBuilderBaseState<int, AsyncSnapshot<int>>#216f6):
type 'ElevationPoint' is not a subtype of type 'LatLng'

The relevant error-causing widget was:
  FlutterMap FlutterMap:file:///Users/nicklangan/StudioProjects/wtfda_radioland/lib/classes/radioLandPopUp.dart:188:15
When the exception was thrown, this was the stack:
#0      MarkerLayer.build.<anonymous closure> (package:flutter_map/src/layer/marker_layer.dart:131:43)
#1      StreamBuilder.build (package:flutter/src/widgets/async.dart:545:81)
#2      _StreamBuilderBaseState.build (package:flutter/src/widgets/async.dart:124:48)
#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4782:27)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4665:15)
#5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#6      Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#7      StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#8      Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#10     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#11     StatelessElement.update (package:flutter/src/widgets/framework.dart:4746:5)
#12     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#13     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5700:32)
#14     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6356:17)
#15     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#16     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#17     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#18     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#19     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#20     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5700:32)
#21     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6356:17)
#22     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#23     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#24     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#25     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#26     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#27     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#28     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#30     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#31     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#32     StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#33     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#34     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#35     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#36     StatelessElement.update (package:flutter/src/widgets/framework.dart:4746:5)
#37     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#39     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#40     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#41     StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#42     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#43     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#44     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#45     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#46     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#47     ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#48     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#49     _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:137:18)
#50     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2573:19)
#51     _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:154:12)
#52     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1968:59)
#53     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:916:15)
#54     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1968:14)
#55     RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:228:7)
#56     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:363:5)
#57     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#58     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#59     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
#60     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
#61     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#62     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:233:12)
#63     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#64     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#65     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1097:7)
#66     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#67     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
#68     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1713:7)
#69     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:885:18)
#70     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
#71     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#72     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#73     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#74     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#75     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#79     _invoke (dart:ui/hooks.dart:166:10)
#80     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#81     _drawFrame (dart:ui/hooks.dart:129:31)
(elided 3 frames from dart:async)

Please let me know if you need anything else from me - I would be happy to provide!!
Nick

Update - I got it to work!  This was 100% my fault for messing around with the Flutter Maps package and changing its dependency from LatLng2 to just LatLng.  I updated Flutter Maps to the newest version and everything is working great.  I am so happy I even have a screen capture of what I put together in action haha:
https://vimeo.com/manage/videos/644001185
Thank you for your time looking into this and keep up the awesome work.  This plugin is amazing.

Cool that you got it working :-)
I'll submit the PR anyway as it's cleaner than before.
Have a nice day coding!


Fixed Checkpointer logic and uncoupled it from the MicroMind

creating an experiment folder and checkpointer is optional, if none is passed to the MicroMind, no logging or checkpointing will occur.
tested on the YOLO recipe, which was showcasing minor issues in loading -- now everything seems fixed.

Before merging, I still need to:

[x] fix loguru visualizations (make them nicer);
[x] check FP16 training;

bfp16 training is running with accelerate. However, I did not check if it converges.
fp16 instead overflows.

Needs tests passing before merge. I will take care of this. @matteobeltrami

done: tests are are passing. now waiting for approval to merge changes.

have a look to (delete) the empty file micromind/co

good catch! thanks.