add jekyll site with documentation

DO NOT MERGE YET: Waiting for licence approval :)
@dcaro @dtzar

Copied documentation from master and aspnet45 branches
Markdowns have been renamed to work with Jekyll:

Markdowns are now under the '_posts' folder and begin with a data
Mds related to .net Core are prefixed with core, mds related to 4.5 are prefixed with 45
Assets (images, csv etc.) are all under the assets folder now

There are some broken links inside the CD HOLs - they should reference the new html files you've created.
http://wbuchwalter.com/PartsUnlimited/core/core-cd.html
http://wbuchwalter.com/PartsUnlimited/45/45-cd.html
Would be good to check links to existing docs inside other HOLs too.

Also - why do you put the date on the HOL md files?  Shouldn't the revision date in GitHub code be sufficient?

Let's rename core deployment to "manual deployment"

Originally Jekyll is a blog platform, so every "blog post" needs to have a date so that jekyll picks it up correctly, otherwise it just won't display.
I will check if there is way to bypass that.

Everything is fixed.
Seems that there is no way to bypass the dates in the filenames.
See https://github.com/jekyll/jekyll/issues/120

Thanks for the info! This was an interesting comment from there: "That's because "posts" are meant to be dated blog posts. Pages are for non-linear content."  Also an interesting idea from there is to just use 000-00* format.  It's not a big concern we must fix - just that over time people might think that the content isn't updated or really old just because of the file name.  Perhaps I'm over-thinking it...

Using the 0000-00-00 won't work unless a correct date is specified in the frontmatter in the post, which just moves the problem.
But I think we are fine, most likely only contributors will go to the gh-pages branch and the date of the last commit is clearly visible on each file, so we are covered I would say.

As per the documentation https://jekyllrb.com/docs/posts/ you must name the files with the dates.

@wbuchwalter  How much work would be required to update the full content if the name of the file change when we update it ?

@dcaro Not sure I understand what you mean. Each file require a prefixed date so that Jekyll detects it, but we don't ever need to change it after that. And the date isn't displayed anywhere on the website.

If you want to update the content, you can either edit the existing page or create a new one with a new date and delete the previous one. In the latter case we could update the links to that page. If @dtzar is ok with the fact that dates are in the source code only, I'm fine with that as well.

The way Jekyll is configured today, the dates are not in the url.
For example CD for .NET Core will be at /PartsUnlimited/core/core-cd.html.
Also, you don't need to update the navigation bar on the left everytime new content is added, it's automatically added there at the correct place based on the category and the order specified in the frontmatter.
All this means that if we have the same content but with a different date it will create a duplicate in the website.
Also we lose the history of said file in git.

Let's just keep the dates in the filenames.  Benefits are not worth the effort to change them.

LGTM


Bump react-json-tree dependency to 0.2.0

Version 0.2.0 support React 0.13.1 and 0.13.2 instead of requiring at least 0.13.3.

duplicate of #144

We'll require 0.14 as minimal React version soon anyway.

That's unfortunate for me. I will get our app upgraded to 0.13.3 so we can use the devtools but it's going be awhile before we can move to 0.14 (due to some dependencies we have), so we'll probably be stuck on this version for some time.

Please try 3.0 Beta 2 and leave feedback.
It includes React 0.14 support: https://github.com/gaearon/redux-devtools/releases/tag/v3.0.0-beta-2


changed it a bit some more

Fantastic job! You went above and beyond with the part 2 styling that we didn't require since we haven't covered Flexbox yet.
Small notes for some of the questions:
Classes can be used as many times as you’d like on the same page- ID’s can only be used once. You nailed this in a later question but I noticed an earlier question about classes where you said it’s only used once.
For the “Human” class you can select it using .human


Test PR 33

Do not review or merge. Test PR.

Hi @rmca14 - I'm just going to add the "aq-pr-triaged" label to this PR for queue management. Go ahead and close this PR when you're finished testing. Thanks!
#label:"aq-pr-triaged"


[AutoPR mixedreality/resource-manager] Update of Mixed Reality Azure Resource Management

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5909

This PR has been merged into https://github.com/Azure/azure-sdk-for-js/pull/2988


I want to use search code in repositories

Gitea version (or commit ref): 1.4.1
Git version: 2.13.2
Operating system: Windows 7
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[x] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
I want to use searching code in repositries. so I set true on REPO_INDEXER_ENABLED in app.ini. after gitea is restart, I saw index file in custom path. but I can't find code tab on explore.
How can I do use it ?
Screenshots

Thank you for reply :)


EC2 describevolumes is not working

Hi,
I'm trying to get volume id with the following code but always get "400" error (bad request):
ClientConfiguration config;
config.scheme = Scheme::HTTPS;
config.connectTimeoutMs = 30000;
config.requestTimeoutMs = 30000;
auto client = Aws::MakeShared("Test", config);
Filter f1, f2;
f1.SetName("tag:Name"); f1.AddValues("TestData");
f2.SetName("attachment.instance-id"); f2.AddValues(getInstanceId());
DescribeVolumesRequest req;
req.AddFilters(f1);
req.AddFilters(f2);
DescribeVolumesOutcome out = client->DescribeVolumes(req);
if (out.IsSuccess())
{
Aws::Vector vols = out.GetResult().GetVolumes();
if (vols[0].GetState() != VolumeState::in_use)
{
LOGGER->Log("Volume is busy");
return std::string();
}
  return vols[0].GetVolumeId().c_str();

}
LOGGER->Log("DescribeVolumeRequest Error: %s", out.GetError().GetMessage().c_str());
return std::string();
Could someone please shed some light what I have been missing?
Thanks,
Johnny

Most of the EC2 API wrappers are broken.  See #70 and https://github.com/tellapart/aws-sdk-cpp/commits/tellapart
I'm working on getting my fixes upstream.  In the meantime you could try out my branch above.

I just pushed updates for this. Check when you get a chance and let us know if you are still having problems.

Hi, Steve/Jonathan,
Thanks for the update. Will try it later.
Thanks again,
Johnny

I just updated this protocol again, can you pull and make sure your code still works?


fix: fix CONNECT handler stalemate

Fixes https://github.com/Jigsaw-Code/outline-sdk/issues/210
I also improve the conn adaptor ReadFrom to prefer the inner ReadFrom when possible. It's easier to reason about and shortcuts some nesting.

@fortuna Thanks for fixing this! I tested the changed and confirm it works flawlessly 🙂


Improve double-click support on macos.

Update pkg to latest.
Bundle xdg-open for linux and macos.
Change working directory to life-export location when necessary.
Remove open options hack to make Linux work.

Double clicking on macos


gn host cannot generate --enable-vulkan

I'm trying to use the enable-vulkan engine in android.
1.gn host     ./flutter/tools/gn --unopt --runtime-mode=profile --android-cpu=arm64
2. gn android   ./flutter/tools/gn --unopt --runtime-mode=profile --android --android-cpu=arm64  --enable-vulkan
3. ninja build ninja -C out/host_profile_unopt_arm64 ninja -C out/android_profile_unopt_arm64_vulkan
4.flutter run demo use local engine
flutter run --local-engine-src-path=/Users/bytedance/workspace/engine_1.22/src --local-engine=android_profile_unopt_arm64

5.try to gn --enable-vulkan

SO,flutter tools or gn may need to be modified?

bytedance@MacBook-Pro flutter % git diff tools/gn
diff --git a/tools/gn b/tools/gn
index 4e83447dd1..1197d9251e 100755
--- a/tools/gn
+++ b/tools/gn
@@ -82,8 +82,8 @@ def to_gn_args(args):
if args.target_os == 'android':
raise Exception('--simulator is not supported on Android')

if args.target_os != 'android' and args.enable_vulkan:

 raise Exception('--enable-vulkan is only supported on Android')

#if args.target_os != 'android' and args.enable_vulkan:

raise Exception('--enable-vulkan is only supported on Android')
runtime_mode = args.runtime_mode

work fine

ninja -C out/host_profile_unopt_arm64_vulkan failed

//#if SKIA_IMPLEMENTATION || !defined(SK_VULKAN)
#include "include/third_party/vulkan/vulkan/vulkan_core.h"
//#else
// For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
// headers stay up to date for our needs
//#include <vulkan/vulkan_core.h>
//#endif
tmp  fix

run helloword failed
bytedance@MacBook-Pro helloword % flutter run --local-engine-src-path=/Users/bytedance/workspace/engine_1.22/src --local-engine=android_profile_unopt_arm64
current cmd: flutter  run --local-engine-src-path=/Users/bytedance/workspace/engine_1.22/src --local-engine=android_profile_unopt_arm64
Launching lib/main.dart on Mi 10 in debug mode...
Unhandled exception:
Crash when compiling file:///Users/bytedance/workspace/toutiao/1.22_flutter/flutter/packages/flutter/lib/src/widgets/widget_inspector.dart,
at character offset 26694:
Bad state: No element
#0      List.single (dart:core-patch/growable_array.dart:260:22)
#1      ClassBuilderImpl.buildTypesWithBuiltArguments (package:front_end/src/fasta/builder/class_builder.dart:568:43)
#2      ClassBuilderImpl.buildType (package:front_end/src/fasta/builder/class_builder.dart:623:12)
#3      NamedTypeBuilder.build (package:front_end/src/fasta/builder/named_type_builder.dart:275:24)
#4      FunctionTypeBuilder.build (package:front_end/src/fasta/builder/function_type_builder.dart:81:21)
#5      BodyBuilder.buildDartType (package:front_end/src/fasta/kernel/body_builder.dart:6285:11)
#6      BodyBuilder.endFormalParameter (package:front_end/src/fasta/kernel/body_builder.dart:3480:7)
#7      Parser.parseFormalParameter (package:_fe_analyzer_shared/src/parser/parser_impl.dart:1632:14)
#8      Parser.parseOptionalNamedParameters (package:_fe_analyzer_shared/src/parser/parser_impl.dart:1704:11)
#9      Parser.parseFormalParametersRest (package:_fe_analyzer_shared/src/parser/parser_impl.dart:1342:17)
#10     Parser.parseFormalParameters (package:_fe_analyzer_shared/src/parser/parser_impl.dart:1316:12)
#11     Parser.parseFormalParametersOpt (package:_fe_analyzer_shared/src/parser/parser_impl.dart:1276:15)
#12     DietListener.buildFunctionBody (package:front_end/src/fasta/source/diet_listener.dart:976:22)
#13     DietListener._endClassMethod (package:front_end/src/fasta/source/diet_listener.dart:714:5)
#14     DietListener.endMixinMethod (package:front_end/src/fasta/source/diet_listener.dart:679:5)
#15     Parser.parseMethod (package:_fe_analyzer_shared/src/parser/parser_impl.dart:3809:20)
#16     Parser.parseClassOrMixinOrExtensionMemberImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:3546:15)
#17     Parser.parseClassOrMixinOrExtensionBody (package:_fe_analyzer_shared/src/parser/parser_impl.dart:3220:15)
#18     Parser.parseMixin (package:_fe_analyzer_shared/src/parser/parser_impl.dart:2100:13)
#19     Parser.parseTopLevelKeywordDeclaration (package:_fe_analyzer_shared/src/parser/parser_impl.dart:619:18)
#20     Parser.parseTopLevelDeclarationImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:476:14)
#21     Parser.parseUnit (package:_fe_analyzer_shared/src/parser/parser_impl.dart:356:15)
#22     SourceLoader.buildBody (package:front_end/src/fasta/source/source_loader.dart:427:14)

flutter run helloword
flutter run --local-engine-src-path=/Users/bytedance/workspace/engine_1.22/src --local-engine=android_profile_unopt_arm64_vulkan --profile
works fine

Hi @tongweizhou
Please avoid posting screenshots when not needed, it's always better to copy/paste logs instead
Can you please provide your flutter doctor  -v and step by step to reproduce the issue
Thank you

@TahaTesser
Above is the step-by-step.
I was able to compile and run the demo with the above modifications .
I'm trying to run benchmark locally using the vulkan engine.
Have you tested the vulkan version of the engine?

current cmd: flutter  doctor -v
[✓] Flutter (Channel bd_1.22, v1.22.3-0.0.pre.58, bd1.22.3-2, changelog https://code.byted.org/tech_client/flutter/blob/bd_1.22/CHANGELOG.md, on Mac OS X 10.15.5 19F101
darwin-x64, locale zh-Hans-CN)
• Flutter version 1.22.3-0.0.pre.58 bd1.22.3-2 at /Users/bytedance/workspace/toutiao/1.22_flutter/flutter
• Changelog https://code.byted.org/tech_client/flutter/blob/bd_1.22/CHANGELOG.md
• Framework revision a32f132acb (3 weeks ago), 2020-11-26 19:56:09 +0800
• Engine revision 3a0afa2ace
• Dart version 2.10.4
• Pub download mirror https://dart-pub.byted.org
• Flutter download mirror https://storage.flutter-io.cn

step-by-step.
1.gn host ./flutter/tools/gn --unopt --runtime-mode=profile --android-cpu=arm64
2. gn android ./flutter/tools/gn --unopt --runtime-mode=profile --android --android-cpu=arm64 --enable-vulkan
3. ninja build ninja -C out/host_profile_unopt_arm64 ninja -C out/android_profile_unopt_arm64_vulkan
4.flutter run demo use local engine
flutter run --local-engine-src-path=/Users/bytedance/workspace/engine_1.22/src --local-engine=android_profile_unopt_arm64
5.try to gn --enable-vulkan

Hi @tongweizhou
tahatesser@Tahas-MacBook-Pro src % ./flutter/tools/gn --unopt --runtime-mode=profile --android-cpu=arm64

GOMA usage was specified but can't be found, falling back to local builds. Set the GOMA_DIR environment variable to fix GOMA.
Generating GN files in: out/host_profile_unopt_arm64
Generating Xcode projects took 334ms
Done. Made 726 targets from 220 files in 1803ms
tahatesser@Tahas-MacBook-Pro src % ./flutter/tools/gn --unopt --runtime-mode=profile --android --android-cpu=arm64 --enable-vulkan
GOMA usage was specified but can't be found, falling back to local builds. Set the GOMA_DIR environment variable to fix GOMA.
Generating GN files in: out/android_profile_unopt_arm64_vulkan
Generating Xcode projects took 127ms
Done. Made 437 targets from 191 files in 2775ms
tahatesser@Tahas-MacBook-Pro src % ninja build ninja -C out/host_profile_unopt_arm64 ninja -C out/android_profile_unopt_arm64_vulkan
ninja: Entering directory `out/android_profile_unopt_arm64_vulkan'
ninja: error: unknown target 'build', did you mean 'ui'?
tahatesser@Tahas-MacBook-Pro src %

Following your steps, I'm getting the following output.

@TahaTesser    Reproduction is just one step：
./flutter/tools/gn --enable-vulkan

Hi  @tongweizhou
./flutter/tools/gn --enable-vulkan is incorrect, it needs to android platform.
So here I what did to reproduce and run the app
./flutter/tools/gn --android --unoptimized
./flutter/tools/gn --android --unoptimized --android-cpu=arm64 --enable-vulkan
./flutter/tools/gn --unoptimized

then built with
ninja -C out/android_debug_unopt
ninja -C out/android_debug_unopt_arm64_vulkan
ninja -C out/host_debug_unopt

Not sure how to confirm if the render is running in vulkan, no errors and issues in the app

logs
tahatesser@Tahas-MacBook-Pro master_flutter % flutterm run --local-engine-src-path /Volumes/Extreme/engine/src  --local-engine=android_debug_unopt
Launching lib/main.dart on RMX2001 in debug mode...
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                        36.5s
✓ Built build/app/outputs/flutter-apk/app-debug.apk.
Installing build/app/outputs/flutter-apk/app.apk...                 5.4s
E/flutter (19385): [ERROR:flutter/shell/common/shell.cc(838)] Embedding reported invalid ViewportMetrics, ignoring update.
E/flutter (19385): physical_width: 0
E/flutter (19385): physical_height: 0
E/flutter (19385): device_pixel_ratio: 3
E/flutter (19385): [ERROR:flutter/shell/common/shell.cc(838)] Embedding reported invalid ViewportMetrics, ignoring update.
E/flutter (19385): physical_width: 0
E/flutter (19385): physical_height: 0
E/flutter (19385): device_pixel_ratio: 3
I/flutter (19385): A message on the flutter/lifecycle channel was discarded before it could be handled.
I/flutter (19385): This happens when a plugin sends messages to the framework side before the framework has had an opportunity to register a listener. See the ChannelBuffers API documentation for details on how to configure the channel to expect more messages, or to expect messages to get discarded:
I/flutter (19385):   https://api.flutter.dev/flutter/dart-ui/ChannelBuffers-class.html
Syncing files to device RMX2001...                                 184ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h Repeat this help message.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).
An Observatory debugger and profiler on RMX2001 is available at: http://<IP_ADDRESS>:60895/doa0pVOqiXk=/

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety

flutter doctor -v
[✓] Flutter (Channel master, 1.26.0-2.0.pre.86, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 1.26.0-2.0.pre.86 at /Users/tahatesser/Code/flutter_master
    • Framework revision b793285329 (3 days ago), 2020-12-18 10:14:36 -0800
    • Engine revision 7983c6fda0
    • Dart version 2.12.0 (build 2.12.0-167.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.0

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

[✓] Android Studio (version 4.1)
    • 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 1.8.0_242-release-1644-b3-6915495)

[!] Android Studio
    • Android Studio at /Applications/Android/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
    ✗ Android Studio not found at /Applications/Android/Contents
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.17.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 10 (API 29)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 11.1 20C69 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 87.0.4280.88

! Doctor found issues in 1 category.

@TahaTesser  please use
flutter run --local-engine-src-path /Volumes/Extreme/engine/src  --local-engine=android_debug_unopt_arm64_vulkan

@TahaTesser  please use
flutter run --local-engine-src-path /Volumes/Extreme/engine/src  --local-engine=android_debug_unopt_arm64_vulkan

Hi @tongweizhou
I see the same output
tahatesser@Tahas-MacBook-Pro master_flutter % flutterm run --local-engine-src-path /Volumes/Extreme/engine/src --local-engine=android_debug_unopt_arm64_vulkan
No Flutter engine build found at /Volumes/Extreme/engine/src/out/host_debug_unopt_arm64_vulkan.
tahatesser@Tahas-MacBook-Pro master_flutter %

Hi @tongweizhou
I see the same output
tahatesser@Tahas-MacBook-Pro master_flutter % flutterm run --local-engine-src-path /Volumes/Extreme/engine/src --local-engine=android_debug_unopt_arm64_vulkan
No Flutter engine build found at /Volumes/Extreme/engine/src/out/host_debug_unopt_arm64_vulkan.
tahatesser@Tahas-MacBook-Pro master_flutter %

You may need to create a symlink that maps the host_profile_unopt_arm64 output directory to the host_profile_unopt name expected by the Flutter tools

You may need to create a symlink that maps the host_profile_unopt_arm64 output directory to the host_profile_unopt name expected by the Flutter tools

@jason-simmons  It's a good idea.   But I'm curious to know if you  have tested the vulkan-related features specifically now.

@jason-simmons  It's a good idea.   But I'm curious to know if you  have tested the vulkan-related features specifically now.


Move .npmrcPath from schema to flag

Move npmrc from schema to flag
Beautify error message

Codecov Report

Merging #599 (449e9fe) into develop (d4e0470) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 449e9fe differs from pull request most recent head 04ad908. Consider uploading reports for the commit 04ad908 to get more accurate results

@@           Coverage Diff            @@
##           develop     #599   +/-   ##
========================================
  Coverage    64.05%   64.05%
========================================
  Files           35       35
  Lines         1355     1355
  Branches       238      238
========================================
  Hits           868      868
  Misses         487      487

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d4e0470...04ad908. Read the comment docs.


[New Hack] 054-Azure Load Testing

New Hack Submission - Azure Load Testing
@kevinmgates

Nicely done, @Whowong

This PR closes Issue #348


Fix for linker issue for _fopen_ascii

Fix for linker error :
IEW2456E 9207 SYMBOL __fopen_ascii UNRESOLVED
Resolution:
Added libs for generation of lesskey and related targets as well

@IgorTodorovskiIBM @MikeFultonDev Please review the changes, thank you!

I didn't see this linker error.  Which compiler was producing it?

It should be xlclang. This is a result of us overriding fopen in zoslib and less not being able to find the zoslib.a file.

Thank you for comments and review, merging it!


docs: Update requirements to follow new CLI names.

Hi.
This PR updates requirements.md to follow new gadget names.
Best regards.

Thank you for the review!


virtualUSB doesn't list the toypad + I can't go to debian/ from my true computer

edit : I'm using VirtualBox


Elaborate errors on const asserted expressions

fixes https://github.com/microsoft/TypeScript/issues/54374

I originally read "elaborate" as an adjective instead of a verb and was very confused for a while as to what exactly would constitute an "elaborate error".  I imagined it must involve lots of colors, a few emojis, maybe some fancy ASCII art...

@fatcerberus I had the same impression and was asking @Andarist about it yesterday 🤣


JUnitj v5 more progression

Everything with this pr and PR #242 now migrated to JUnit v5, unless it depends upon junit.framework.TestCase.

@nhojpatrick Note that the tests are faiing.

@garydgregory Have removed failing tests as I couldn't quickly fix, will get in the next batch.


Profile picture size crippled

one thing i am trying to understand is how changes on a completely different area can impact size of profile picture on profile

i know its somehow connected through the sizing props etc. but would it be hard to avoid that?

for design, refer to: https://www.figma.com/design/JXNtryaNYhY0XJNArzvPQx/Handoff?node-id=2116-13786&t=2XH5z4EAGA2UGRpq-11

refer to #10611


10.11.2 detected as unsupported version!

Please support new beta versions of the public beta!
Thank you

Closing as resolved.


chore(docs): single-page Python docs option

Overview

We'd like to have the option to render the entire docs on a single page (as a replacement for having a PDF of the docs). The way to do this is to include every page in a separate, single RST file, which isn't listed in the docs table of contents.
RST is wild and lets you use basically whatever characters you want as underlines to indicate different header levels. This is fine when rendering separate pages, but if there's variation it breaks the single page. This PR implements a single hierarchy of symbols across all the doc pages:
# with overline, for parts = Title of entire docs site
* with overline, for chapters = H1 / title of page
= for sections = H2
- for subsections = H3
^ for subsubsections = H4

Test Plan

Compare the TOC and headers in this branch to the live docs (or edge) and make sure the hierarchy is the same.
Changelog

changed header underline/overline characters
adds single_page.rst

Review requests

Risk assessment

v low, docs formatting only

Oof, too much has changed since I opened this draft PR. Better to close for now than try to sort out the conflicts.


Add-VSTeamBuild Issue

Steps to reproduce
Add-VSTeamBuild -ProjectName Project -BuildDefinitionName Project.Test.Deploy -Verbose -Debug
Expected behavior
Starts a build on the Azure DevOps Server 2019 with that definition name.
Actual behavior
VERBOSE: Team Module/6.4.8 (Windows) PowerShell/5.1.17763.771
VERBOSE: GET http://#########/_apis/build/definitions?api-version=5.0&name=Radar.Dart.Module.Test.Deploy&includeAllProperties=T
rue&type=All with 0-byte payload
VERBOSE: received 10016-byte response of content type application/json; charset=utf-8; api-version=5.0
VERBOSE: return type: System.Management.Automation.PSCustomObject
VERBOSE: @{count=1; value=System.Object[]}
VERBOSE: Body {
    "definition":  {
                       "id":  260
                   }
}
VERBOSE: Team Module/6.4.8 (Windows) PowerShell/5.1.17763.771
VERBOSE: POST http://#######/_apis/build/builds?api-version=5.0 with -1-byte payload
VERBOSE: received 44799-byte response of content type application/json; charset=utf-8; api-version=5.0
VERBOSE: return type: System.Management.Automation.PSCustomObject
VERBOSE: @{count=9; value=System.Object[]}
You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:61 char:4
+    $item.logs.PSObject.TypeNames.Insert(0, 'Team.Logs')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:62 char:4
+    $item._links.PSObject.TypeNames.Insert(0, 'Team.Links')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:63 char:4
+    $item.project.PSObject.TypeNames.Insert(0, 'Team.Project')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:64 char:4
+    $item.requestedBy.PSObject.TypeNames.Insert(0, 'Team.User')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:65 char:4
+    $item.requestedFor.PSObject.TypeNames.Insert(0, 'Team.User')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:66 char:4
+    $item.lastChangedBy.PSObject.TypeNames.Insert(0, 'Team.User')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:67 char:4
+    $item.repository.PSObject.TypeNames.Insert(0, 'Team.Repository')
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\vsteam\6.4.8\vsteam.functions.ps1:68 char:4
+    $item.definition.PSObject.TypeNames.Insert(0, 'Team.BuildDefinitio ...
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Environment data
OS

[ ] macOS
[X] Windows
[ ] Linux

Server

[ ] TFS 2017
[ ] TFS 2018
[X] Azure DevOps Server (2019)
[ ] Azure DevOps Service

Get-VSTeamAPIVersion

Name                           Value
----                           -----
Release                        5.0
Version                        AzD2019
MemberEntitlementManagement
TaskGroups                     3.2-preview.1
DistributedTask                5.0
Core                           5.0
Packaging
ServiceFabricEndpoint          5.0
VariableGroups                 5.0
Build                          5.0
Git                            5.0
ExtensionsManagement           5.0
Graph
Policy                         5.0
Tfvc                           5.0

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17763.771
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.771
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

You can probably close this.   They switched my Azure DevOps server to https.  It seems that you can use the none secure url but it will redirect or fail to work.   After i set the correct URL it worked.  I don't know that there is anyway for this command to know that issue.    Thanks.

So you configured the URL with http instead of https? If yes then it could be still an enhancement to either throw and error in the module or a warning about this problem.
Do you have the feeling the Azure DevOps itself is throwing the error?
I can see that in the logo there is an object returned. Is this an error object?

On prem TFS servers don't have to require HTTPS. My test machines are HTTP not HTTPS. How can the module detect the mismatch of protocol their Server is configured with? If there is a way I say we investigate adding it. Otherwise I agree with @GalenSmallen and we just close this.

I made a quick check. Didn't find anything useful to check whether TFS is configured with HTTP or https. And I think we should only use the API to get the information if possible.
So I am closing this for now.


BAU upgrade CloudHSM client to latest version

Follow instructions at https://docs.aws.amazon.com/cloudhsm/latest/userguide/install-and-configure-client-linux.html for Amazon Linux 2.
Cherry pick this onto the release/single-country-legacy branch once it passes the build.

The branch build passed, but PR build errored with The command "npm install -g<EMAIL_ADDRESS>failed and exited with 1 during . which seems odd and not particularly related to what you've changed - so perhaps it's actually fine and just a weird glitch?


Possibility of compilation to webGL?

Can SYCL also be used to generate WebAssembly and WebGPU that are already tightly integrated in a single binary?

Somehow generating the code is only half of the work, you would also need to have a compatible runtime API that a SYCL implementation could hook into.

I suppose this would be the dawnnative/wgpu-native runtimes with the following API: https://github.com/gfx-rs/wgpu/blob/master/ffi/wgpu.h

Closing because out of scope for hipSYCL.


--do_3D and changing threshold from commandline

Hi, first of all thanks a lot for releasing this software. It is really working well on some of my difficult fluorescent data.
I noticed that in quite some crowded confocal data the algorithm doesn't manage to recognize single cells: either too many false negatives or it doesn't separate nuclei. From the GUI the 3D analysis works smoothly however I would like to experiment different thresholds from the command line but I can't find --do_3D and  --threshold flags.
I am running Cellpose with environment file on OSX 10.15.3.
Cheers,
Edoardo

updated pip and readme with this info, going to close this issue, please comment if it's not working


Change the order of the title and disclaimer

So it can be consumed by the main documentation better.

Actually, let's just remove the disclaimer. It's old enough ;)

CI MESSAGE: [18059679]: BUILD STARTED

CI MESSAGE: [18059679]: BUILD FAILED

CI MESSAGE: [18059679]: BUILD PASSED


config/v1/config.json added.

@herkulano @petcupaula: Discussed with @fnobilia to add the configuration file to the schema repository. I also added a ../vX/.. to the route. I am assuming that layouts will change and maybe we want to support multiple versions. Let me know if that is to convoluted and I'll remove it from the path.
@fnobilia could you have a look at format and documentation?

@kerzmaximilian I suggested to store this schema here to have all RADAR-CNS schemas in the same repository.

@fnobilia yep - good point! It might be better to remove the versioning from the config file and apply it to the entire api down the line if there are major changes? (Eg.: https://z.z.z.z:80/v1/...)

@kerzmaximilian what do you mean?

@fnobilia just quickly putting in writing what we discussed: generally agree to versioning of the api, but as you suggested, it is better to do this through versioned containers and nginx.


ci_build: support tensorflow as submodule

this enable tensorflow/serving reuse our ci_build

@jendap, is this ready to go? You aborted the tests because they were after the critical point?

The tests were aborted for unrelated restart of a gpu node. It should be ready. But just for sure...
@tensorflow-jenkins test this please

@martinwicke if the test is successful (which it should) it sill be ready.
Note: There is one important thing here - it is upgrading bazel to 0.1.5 for all our ci builds. The 0.1.5 is needed for submodules (serving has tensorflow as a submodule).

test seems to not have been successful.

It did because at that time the mac-python3 was failing on master. It was fixed since. But now master is broken again - the current build will fail again :( I'll start another one once master is fixed.
BTW: Since we have to upgrade bazel to 0.1.5+ I'm going to upgrade it here to the latest - 0.2.0

@tensorflow-jenkins: test this please

@tensorflow-jenkins: test this please
(I just pushed a flaky test fix to public that should help)

It did help. Last build was successful on linux. And mac is not touched by this PR.
I have just rebased to master.

@vrv @martinwicke can I merge this? The upgrade of bazel can make some noise. But serving team would be happy.

Actually as long as nobody use feature in bazel 0.2.0 we are fine. And mac is still on 0.1.4.


Check box group: documented anatomy doesn't match what actually gets rendered

Summary
Currently, there's not any way to configure the "position" of the Caption to match what's in its documented Anatomy. 😅
The Primer Docs' anatomy of a checkbox group orders the following from top to bottom:

Label
Caption
Options
Validation message

However, peeking at the source for a check box group, it would appear what's actually rendered is in a different order (again, from top to bottom):

Label
Options
Validation Message
Caption

I think it would be neat to reflect parity in both the documentation and implementation! 🙇

https://github.com/primer/view_components/pull/3072 is targeted to address this 🎯


define precise interface for the di container

In the docblock of Slim\DefaultServicesProvider::register, there's a line saying: @param Container $container A DI container implementing ArrayAccess and container-interop. The Containers FQCN is Slim\Container which extends the PimpleContainer. So, it does implement ArrayAccess and the interop ContainerInterface, but not only this, is also adds a (IMHO) unneccessary constraint to the Slim Container. This makes it very hard to use a different container. (It's possible because the constraint is only a comment, but it's not "clean" style).
I declared a dedicated interface which actually does exactly what the comment "A DI container implementing ArrayAccess and conatiner-interop" says. And added it also as a type hint to the method declaration.

:+1: No idea where this will land but I like it. Likely the next major release.

Pimple already has ArrayAccess implemented
https://github.com/silexphp/Pimple/blob/master/src/Pimple/Container.php#L34

@JoeBengalen I do want to implement it on a different container, and likely there are others too. I don't know the slim framework very well, but at first sight there are no problems introduced by this change, at least the tests are all passing.
If the change introduces problems, then the comment should be fixed (because I just did what the comment says...)

I disagree with this. Slim doesn't need ArrayAccess at all - only the service registration does.

Ok, didn't know that, then I agree with @akrabat
Nonetheless, I'd be thankful for a minimal interface with a setter to be able to reuse the service provider. (The interop container only provides get and has methods).
So my suggestion would be:

Write an interface Slim WritableContainerInterface extends \Interop\Container\ContainerInterface and define an addittional offsetSet.
Rewrite the service provider to use that interface

In my project, to use a different container, I would then just need to write a Bridge class which implements this simple interface (whereas I now need to implement / extend the Slim container).
The other Slim code would not need to use this additional interface, as long as they only need the get and has methods defined by the interop container.
What do you think about this?

This has come up before and we have settled for keeping it the way it currently works. I think on a per project basis the developer can decide which container they want to use, not all containers use ArrayAccess for setting and if we were going to create an interface in order for you to create a bridge class, you might as well just do that in your own code rather than having this in the core of Slim.
This is the reason container interop spec didn't define a way to set but only get and has.


[BUG] Spell Names Breaking to Spell ID

🔵 Describe the bug:
[BUG] Spell Names Breaking to Spell ID
🔵 To reproduce: (Steps to reproduce the behavior)

After Editing and saving Several times (IDK how many)
Some Spells List as ID's instead of names

🔵 Screenshots:
See Below
🔵 Expected behavior:
Always show spell names or Spell ID's
🔵 Desktop (please complete the following information):

OS Windows 10 64bit
Game Version retail (9.1.0)

🔵 GSE Version:

Version: [e.g. 3.0.28
Downloaded From: [https://www.curseforge.com]

🔵 Additional context:
Dosnt Break Macro - just dont know what Spell ID is what Spell - Reloading Fixes the issue for awhile.

Hi Larry.
I have also noticed some spell names being replaced by Spell IDs (but it was with a previous version of GSE 3).
https://wowlazymacros.com/t/cross-language-macros/24778/4

Tim- seems to be happening when I delete Boxes - just FYI

but its a different spell each time that comes out and gets translated/not translated

Im still struggling to identify why this happens

Just for a tip - it started happening when I was saving and editing a lot - took a couple hour not sure why - Although I can open macros sometimes and its numbers for spells on one version tab and spell names on the other version tab - on the same macro ..
Wierd

Curious if this still happens with 3.0.33

Will check this morning Tim just updated to 3.0.33

closing this out as no further cases or information

Need more information on how to reproduce this.  It happens for some people but not everyone.

It a completely Random Issue so there will not be a way to reproduce the problem.  I can open my GSE 10 times with no problems and then bang on the 11th time its has spell ID's instead of Spell Names.  Same with the Random Red Blocks Problems.  Random Spell IDs / Random Red Block Locations.  There is no pattern to them.

There is always a pattern.  Even appearing random there is always a cause.  It may be extremely obscure and hard to spot.  And it may be stuff like after doing these 20 steps this will happen.
To see it we need more data.
TimothyLuke

On 1 Aug 2021, at 2:40 am, ScaryLarryGames @.***> wrote:

It a completely Random Issue so there will not be a way to reproduce the problem. I can open my GSE 10 times with no problems and then bang on the 11th time its has spell ID's instead of Spell Names. Same with the Random Red Blocks Problems. Random Spell IDs / Random Red Block Locations. There is no pattern to them.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.

I have the same issue, in my case clicking on the box below or above changes the spell id to spell name. So it triggers when clicking in a different edit box for me.

I know why this is occuring now but its not something I can fix.  GSE depends on GetSpellInfo from WoW to convert between Spell Names and ID's.  In some cases of lag this returns an ID rather than a name and its simply WoW being WoW


Align all website example setup and READMEs

Coverage remained the same at 61.784% when pulling 0ae758c493acba87098ffd92f7b9b44d79d2eb26 on x/update-examples into a746f07248f230fa55ef63d51df0c1c3473b60d1 on master.

What is the reason to delete the point-cloud-ply example?

What is the reason to delete the point-cloud-ply example?

After switching to loaders.gl this example is essentially the same as the point-cloud-laz example.


Suggestion for changing semantics in form reducer

There's kind of a semantics/logic disconnect, IMO, with form field validation.
Let's say I want to check to see if fields are filled:
    this.validators = {
      email: {
        filled(value) {
          return value && value.length > 0;
        },
        isValidEmail: validator.isEmail,
      },
    };

If the user supplies an invalid email address, isValidEmail() would return false, though in Redux, fields.email.errors.isValidEmail is true. I get that true means there's an error raised. But it seems kind of backwards to return false from the isValidEmail() function, which gets flipped into a true value. And in code, it might look confusing to other people working on the project:
if (fields.email.errors.isValidEmail) {
  // Email is actually invalid
}

Thoughts? Or am I doing something totally wrong?

The values are only flipped for .errors - if you check .validity, they match whatever is returned from each of the validators.
A validator validates; i.e. it asks the question, is this value valid? Each value gets "flipped" for .errors to allow the capability for there to be error messages, even though I strongly do not recommend hardcoding error messages in error validators.

Hmm. If .errors and .validity are just opposites of each other, why have both instead of just one?

To allow for error messages. For .validity, a truthy value means "valid", and a falsey value means "invalid". Makes sense, right? However, for .errors, a truthy value means "is an error" and a falsey value means "is not an error", and since strings are truthy, they can represent something that is an error with an error message.

Does this make sense? Or should I keep this ticket open? @ffxsam

Let me check all this out today - I had a super busy weekend. Diving into the new changes now with a very barebones project and see if I can get it all working smoothly.

Ok, so this is just a first pass. Pasting here instead of a gist, because I don't want to have to keep the snippet around forever.
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Form, Field, actions } from 'react-redux-form';
import autoBind from 'react-autobind';

class Home extends Component {
  constructor(props) {
    super(props);
    autoBind(this);
  }

  handleSubmit(user) {
    console.log(user);
  }

  getError(fieldName) {
    const field = this.props[fieldName];
    const errors = field.errors;

    if (!field.touched) return '';
    if (errors.required) return 'Field required.';
    if (errors.isNumber) return 'Need a number.';

    return '';
  }

  render() {
    const validators = {
      firstName: {
        required: value => !!(value && value.length),
      },
      lastName: {
        required: value => !!(value && value.length),
      },
      zip: {
        required: value => !!(value && value.length),
        isNumber: value => /^\d+$/.test(value),
      },
    };

    return

Home.

        <Form
          model="user"
          validators={validators}
          validateOn="change"
          onSubmit={user => this.handleSubmit(user)}
        >

            <Field model="user.firstName">
              <input placeholder="First name" />

                {this.getError('firstName')}

            </Field>

            <Field model="user.lastName">
              <input placeholder="Last name" />

                {this.getError('lastName')}

            </Field>

            <Field model="user.zip">
              <input placeholder="ZIP code" />

                {this.getError('zip')}

            </Field>

          <input type="submit" />
        </Form>

  }
}

export default connect(({ user, userForm }) => ({
  user,
  ...userForm.fields,
}))(Home)

This works pretty great!
Hitting submit without touching any fields still does nothing. The submitFailed property remains false in the form property list.

Sorry about that! Update to 0.9.8 and you won't see the deprecation warnings anymore.

Hitting submit without touching any fields still does nothing. The submitFailed property remains false in the form property list.

Looking into that now...

Thanks! I appreciate your taking the time on this. Once things calm down here, I'd like to learn the codebase and contribute with PRs.

Last part fixed just now in 0.9.9! It was just an oversight. I definitely welcome any PRs and contributions! The codebase is very modular/function-based, so hopefully it's easy enough to grok.

Works great! I modified my getError method accordingly:
  getError(fieldName) {
    const field = this.props[fieldName];
    const errors = field.errors;

    if (!field.touched && !this.props.submitFailed) return '';
    if (errors.required) return 'Field required.';
    if (errors.isNumber) return 'Need a number.';

    return '';
  }

And once the user corrects a field, the error goes away. :+1: :+1: I noticed the retouched prop didn't change at all, but it turns out I didn't need it. (I expected it to turn to true once I focused on a field after the submit failed)

Glad it works! The behavior of (re)touched is to trigger touched if a field is changed/blurred, not focused, but if that ends up being a bug we can open another ticket for it.


Avoid modifying the PATH for the python test suites

Instead, install the local ledger_bitcoin package as part of the requirements.txt.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 84.70%. Comparing base (24bcdae) to head (c126634).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #308   +/-   ##
========================================
  Coverage    84.70%   84.70%
========================================
  Files           17       17
  Lines         2230     2230
========================================
  Hits          1889     1889
  Misses         341      341

Flag
Coverage Δ

unittests
84.70% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[Storage][Blob] add md5 and crc headers for copy blob from URL

The change in swagger was added to 2019-02-02 but we didn't pick it up and re-generate.
Do this in Jul19 release once and for all.

PR title mentions "crc" while the code change doesn't, expected?

Yes. The crc and md5 headers in response are already included due to swagger-generation.


Too large training loss

🐛 Describe the bug
Hi
I'm training bert using sequence parallel in colossal ai according to this link. But my training loss is too large, and it seems the training loss grows linearly with the number of sequence parallel sizes.
when my setting is:
parallel = dict(pipeline=1, tensor=dict(size=8, mode='sequence'))
the training loss in the beginning was   and after 2330 steps the training loss is 13.044
when my setting is:
parallel = dict(pipeline=1, tensor=dict(size=2, mode='sequence'))
after 2330 steps the training loss is 13.044
when my setting is:
parallel = dict(pipeline=1, tensor=dict(size=1, mode='sequence'))
after 2330 steps the training loss is 6.5549
Environment
after running  colossalai check -i
I got

my device is 8 rtx3090
training batch is 128 across three sequence parallel settings.
my training config is

Thanks!

Hi @qyc-98 Thank you for your feedback. We will try to reproduce your issue.
By the way, we are restructuring the documents and examples, and the new version examples will be provided at the following link
https://github.com/hpcaitech/ColossalAI/tree/main/examples


Empty folders might prevent the files from loading

@alphalambda  reports that there are issues loading student projects if they have an empty folder.  To resolve this, he has had to delete their empty folder by hand on the server.
I don't know if this is still an issue on the production server.

@alphalambda Any hints you can give me?  I'm tempted to assume this is fixed, since I know I fixed a bunch of weird cases around folder handling earlier this summer.

Sorry, I don't have a test case right now, as it did not happen to me, but to some students. Next time this happens, I will try to
reproduce the setting and can reopen the issue if necessary.
On Wed, Oct 16, 2019 at 07:13:35PM -0700, Chris Smith wrote:

@alphalambda Any hints you can give me?  I'm tempted to assume this is fixed, since I know I fixed a bunch of weird cases around folder handling earlier this summer.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/google/codeworld/issues/1197#issuecomment-542965774


feat: add csharp json serialization support

Description

add csharp System.Text.Json serialization support with a flag.

Related issue(s)

Fixes #465

/rtm


not support qulity m3u8 in playes

how Select Custom Qulity in player ??

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=1625000,RESOLUTION=1920x1080,CLOSED-CAPTIONS=NONE
chunklist_b1625000.m3u8?nimblesessionid=316504658
#EXT-X-STREAM-INF:BANDWIDTH=925000,RESOLUTION=854x480,CLOSED-CAPTIONS=NONE
chunklist_b925000.m3u8?nimblesessionid=316504658
#EXT-X-STREAM-INF:BANDWIDTH=600000,RESOLUTION=640x360,CLOSED-CAPTIONS=NONE
chunklist_b600000.m3u8?nimblesessionid=316504658
#EXT-X-STREAM-INF:BANDWIDTH=350000,RESOLUTION=426x240,CLOSED-CAPTIONS=NONE
chunklist_b350000.m3u8?nimblesessionid=316504658

default ijkplayer mode not support BANDWIDTH
exoplayer mode PlayerFactory.setPlayManager(Exo2PlayerManager.class); may support，but you may need Refer to this custom：
https://github.com/CarGuo/GSYVideoPlayer/tree/master/app/src/main/java/com/example/gsyvideoplayer/exo
and find how to select BANDWIDTH in https://github.com/google/ExoPlayer

how show in GSYVideoPlayer custom layout ?
and user select ??
thanks

@override
getLayoutId()


Reference to pyOCD

Very interesting project! I will be keeping an eye on Nanaimo and will pass it along to some folks at Arm.
Also, I'd like to suggest you take a look at [pyOCD][https://github.com/mbedmicro/pyOCD]. It provides a Python API for managing devices over SWD via a USB debug probe, plus related command-line tools (e.g., gdbserver). It doesn't support JLink yet (most due to limited benefit given Segger's existing tools, and no user requests), but does support CMSIS-DAP and STLink. So many of the boards you are probably running tests on already have a compatible on-board debug probe. In addition, we could collaborate on adding JLink support to pyOCD, so you only need one API and instrument to support a wide range of probes.

Thanks for passing along this project to your contacts. I'd love to see a community emerge around this framework and a contribution integrating pyOCD or any other popular tool would be welcome. I have a branch that declares an Alpha for Nanaimo (feature/99) which I'll merge into master next week and hope to focus more on integrations after this milestone is reached. To date we've focused on Nanaimo's architecture and API so integrations like the JLink and Saleae fixtures are just placeholders with minimal functionality.
This project targets users that are professionals looking for more accessible and hackable test infrastructure than the very closed and expensive hardware and software platforms which have dominated test and measurement equipment to date. I see pyOCD having a similar mission in promoting an open and hackable interface to debuggers and bootloaders. It would fit well with Nanaimo's intended design.


Feature/create collection from seed

Hello!
I'm working on decreasing the effort of installing shared packages in different projects, and one of the steps is having packages generate their own scriptable object collections during the package installation. For this to be possible, I've done the following changes:

Isolated the advanced settings on a struct, so it can be reusable.
Created a ScriptableObject that contains the struct, for using as a shareable seed for the creation of a collection.
Added an Advanced Settings section on the wizard, so the user can set an existing seed.

The flow is already working manually. The next step will be to have this working automatically during the installation process, but in the meantime, do you think this is something useful to merge back into the original repo? I'm open to making any changes you deem necessary if it helps.
Cheers!

Hey @kyuuzou! Thanks for the contribution!
I'm just trying to understand precisely what you are trying to achieve because I also have other packages that require some specific collections to be generated in order to work.
For example, my UI System, requires a few Collections and CollectionItems to exist to work properly, so I have a class called InitialSetupEditor that does basically this:
[InitializeOnLoad]
public static class InitialSetup
{
    static InitialSetup()
    {
        if (!NeedsSetup())
            return;

        PerformSetup();
    }

    private static void PerformSetup()
    {
        if (!CollectionsRegistry.Instance.TryGetCollectionOfType(out WindowIDs windowIDs))
        {
            windowIDs = ScriptableObjectCollectionUtils.CreateScriptableObjectOfType<WindowIDs>(targetFolder, true,
                "WindowIDs");
        }

        if (!CollectionsRegistry.Instance.TryGetCollectionOfType(out LayerIDs layerIDs))
        {
            layerIDs = ScriptableObjectCollectionUtils.CreateScriptableObjectOfType<LayerIDs>(targetFolder, true,
                "LayerIDs");
        }

        layerIDs.GetOrAddNew("Main");
        LayerID popup = layerIDs.GetOrAddNew("Popup");
        popup.SetIncludedInHistory(false);
        layerIDs.GetOrAddNew("Overlay");

        if (!CollectionsRegistry.Instance.TryGetCollectionOfType(out GroupIDs groupIDs))
        {
            groupIDs = ScriptableObjectCollectionUtils.CreateScriptableObjectOfType<GroupIDs>(targetFolder, true,
                "GroupIDs");
        }

        groupIDs.GetOrAddNew("Main");

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }

    public static bool NeedsSetup()
    {
        if (!CollectionsRegistry.Instance.TryGetCollectionOfType<WindowIDs>(out _))
            return true;

        if (!CollectionsRegistry.Instance.TryGetCollectionOfType<LayerIDs>(out _))
            return true;

        if (!CollectionsRegistry.Instance.TryGetCollectionOfType<GroupIDs>(out _))
            return true;

        return false;
    }
}

So every other package that has dependencies on some specific collection setup can have its own custom Initialization Setup
I'm still going through the changes on the PR and testing it locally

Hey @brunomikoski !
That's a good example, which does solve most of the problem. Is there a way to pass advanced settings to the instantiated collection (namely automaticallyLoaded, generateAsPartialClass, generateAsBaseClass, generatedFileLocationPath, generatedStaticClassFileName, generateStaticFileNamespace)? This pull request isolates those settings in an instantiatable ScriptableObject, but I suppose the problem could just as well be solved by turning those fields into public properties, or falling back to reflection.
Is there another way, already implemented, that I'm not seeing?

Hey @brunomikoski !
That's a good example, which does solve most of the problem. Is there a way to pass advanced settings to the instantiated collection (namely automaticallyLoaded, generateAsPartialClass, generateAsBaseClass, generatedFileLocationPath, generatedStaticClassFileName, generateStaticFileNamespace)? This pull request isolates those settings in an instantiatable ScriptableObject, but I suppose the problem could just as well be solved by turning those fields into public properties, or falling back to reflection.
Is there another way, already implemented, that I'm not seeing?

You could simple create a SerializedObject from the specific collection you want to do, and modify whatever you need from it, like this:
SerializedObject popupSerializedObject = new SerializedObject(collection);
popupSerializedObject.FindProperty("automaticallyLoaded").boolValue = false;
popupSerializedObject.FindProperty("generatedFileLocationPath").stringValue = "SPECIFIC_TARGET_PATH";
popupSerializedObject.ApplyModifiedProperties();

What I do in my UI System is actually when I identify that some package needs the setup, like the UI system here I open an Editor Window that explains what the setup will do, and allow some small customization there, so I read from where the project is saving stuff, and use that data to fill the options for the user.
Would that solve your issue?

Sounds good, I'll do that. Thank you for the support!


New Contribution

Contributor: TVanguard
SSH Public key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgPRIQjdlaAp2sz8H7aEF7w5lMAUJv1ngVr+GGVNtJu
Attestation: [any form of attestation for contribution (e.g., signature) - Optional]

Shall I start?


Feature Request: Add "Sorting Name" to Sort Field options

TL:DR - Please add an option to sort by Playnite's "Sorting Name" field so we can keep series' together.
Let me start by saying that this plugin is awesome. What a really cool way to view information about your games and, if you can host it out on the interwebs, you have a really handy way of showing off your collection and impressing the chicks! (grid view works well for this). Well done! This is one of those things you don't even realize you need...until you do.
Anyway...
Of all the available options to sort collections, the one I would like the most is missing: Sorting Name. This would be helpful for keeping series of games together. As an easy example, I'll use "Tomb Raider, Rise of the Tomb Raider, Shadow of the Tomb Raider". By default, alphabetical sorting by Name places these in different parts of the library. It would be nice to keep them together as a series. Now, I know that I could probably work around this specific example by sorting using the "Release Date" or "Release Year" and they would likely group together (haven't tested it, by the way).
But...sometimes, developers add a "prequel" game to a series or games within the series may take place at different points in history. In this case, if I wanted to view the series in chronological order, sorting by Release Date/Year won't work. As an example of this, we can look at the "Assassin's Creed" series. Chronologically, this series takes place all over history and the games were not released in any kind of logical chronological order. In Playnite, I can create my own chronogical order using the Sorting Name field. It would be awesome if I could sort by that field in HTML Exporter too.
It could be the option is there and I just don't see it. If so, feel free to give me a kick in the right direction. I also took a peek at the various templates to see if I could edit and/or add the field myself.  Is there any chance of getting that field added to the plugin in a future release?

I might have a look at this when i get some time, but not sure its possible, the initial sorting happens on group field and it requires the data to be present. But if i want to sort on it (the groupfield) the i need to the sorting name data to be present but that would mean the original game name won't be displayed but the sortname so not sure i can easily fix this i might be able to use it as a sorting field (after having done an initial sort on groupfield) but i'm not sure that would solve the issue as it would have sorted on name already first then in groupfields but it could work on any other pages than "Name" ones

Thanks for responding! If I get what you're saying, you're telling me there's no easy solution. I was kinda hoping it was something I overlooked or something that could be fixed with a (small?) change to the voodoo-magic template files. No such luck, I guess. I'll count myself lucky that you might look into it. Maybe it's a sorting feature that other people might be interested in (the OCD folks among us would be eternally grateful). In any case, it's still an awesome plugin and thanks again!


firefox-bin 56.0.2 -> 57.0

Motivation for this change
Security updates, pull firefox-bin update from master to release-17.09.
Things done

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

[X] NixOS
[ ] macOS
[ ] 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"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

whoops, major issue, please don't merge.


Updated template files do not load in development

They are only copied if the files didn't exist. This means they aren't updated when they've changed
https://github.com/pulibrary/marc_liberation/blob/590c0712fe4b04114c69ce9998c7e7238ebfb858/app/services/location_maps_generator_service.rb#L50
Should they just be copied every time? Do we have any reason to keep / edit local copies of these?

Closing this issue and quoting the comment from https://github.com/pulibrary/bibdata/pull/1135#issuecomment-802401119 In the checkin we said to remove the tmpl files and keep only the .rb files. After looking into this I rejected it as an option. I'm quoting my note from slack I kept solid only the holding_library.tmpl file so that we don’t need to generate it every time. I rejected the idea of using the .rb files that we generate through the #generate method because they are being generated by retrieving data from the tables. With that said every time you start lando and you generate the .rb files using the tables from the database the tables would be empty and the generated .rb files would be empty. Unless you also call the alma api every time you start lando so that you populate the tables. We don’t want to call the alma api every time we run the app in development or test. So it is better to keep the tmpl files and use them through the #generate_from_templates method so that we will create the .rb files locally in case they don’t exist. Also this Pr addresses the removal of the double label in the orangelight display and updates the Location::Holdings table in bibdata. It also improves the code by removing unused lines of code and the generation of a nil file.

Delete https://github.com/pulibrary/bibdata/blob/590c0712fe4b04114c69ce9998c7e7238ebfb858/app/services/location_maps_generator_service.rb#L50 and make the copy force overwrite.
This will solve developer problems having mysterious test failures which 75% of the time are due to out of data translation maps.

closed by #1161


[WIP] Ansible EdgeConfig and PlaybookExecution controllers

/test unit-fast

Hi!
After debugging tooo much this, I'm a bit lost on how this should run:
For me the sysadmin creates the Edgeconfig entry with the following:
$ -> export PLAYBOOK=$(base64 -w0 <<'EOF'
---
- name: This is a hello-world example
  tasks:
    - name: Create a file called '/tmp/testfile.txt' with the content 'hello world'.
      copy:
        content: hello worldn
        dest: /tmp/testfile.txt
EOF
)

$ -> echo $PLAYBOOK | base64 -d

$ -> cat <<EOF | kubectl apply -f -
apiVersion: management.project-flotta.io/v1alpha1
kind: EdgeConfig
metadata:
  name: global-config
spec:
  edgePlaybook:
    playbooks:
    - content: ${PLAYBOOK}
EOF

So afterwards the device need to have the label:
$ -> kubectl label edgedevice fooa config/device-by-config=global-config

And this will create the following PlaybookExecutions:
$ -> kubectl get playbookexecutions
NAME                 AGE
fooa-global-config   26s
foob-global-config   26s
$ ->

So, in this PR, where the playbookexecutions are retrieved from the device[1]:
https://github.com/project-flotta/flotta-operator/blob/0d9002ec32fa7b3aca07dc2ab7e96b0caa75b1ca/internal/edgeapi/yggdrasil/yggdrasil.go#L277-L307
But we expect the ansible config on the getConfig in the device:
https://github.com/project-flotta/flotta-device-worker/blob/e02e796ca1f914ebc6f22cbdba23130f283c9f41/internal/ansible/ansible_manager.go#L101-L120
But we're not setting it in any place. On the other hand, DeviceConfiguration
message is only one string, where maybe should be  []string
curl -s \
  --cacert /etc/pki/consumer/ca.pem
  --cert /etc/pki/consumer/cert.pem
  --key /etc/pki/consumer/key.pem
  -H "Content-Type: application/json"
  https://project-flotta.io:8043/api/flotta-management/v1/data/fooa/in  | jq .

{
  "content": {
    "configuration": {
      "heartbeat": {
        "hardware_profile": {},
        "period_seconds": 60
      },
      "metrics": {
        "receiver": {
          "request_num_samples": 30000,
          "timeout_seconds": 10
        }
      },
      "mounts": []
    },
    "device_id": "fooa",
    "version": "75426",
    "workloads": [
      {
        "name": "powertop",
        "namespace": "default",
        "specification": "containers:\n- image: quay.io/eloycoto0/powertop:latest\n  name: powertop\n  resources: {}\n  securityContext:\n    privileged: true\n"
      }
    ]
  },
  "directive": "device",
  "message_id": "d84ca49b-e3e2-410d-8c8a-684be04e50e9",
  "sent": "2022-08-25T16:34:16.676+02:00",
  "type": "data",
  "version": 1
}

So, the main issue is:

If we use the v1/data/$deviceID/in endpoint, that it's what we use for normal
configuration, we are not setting the config correctly at all in this PR. For
me this is where this should belongs to. Mainly to have a single heartbeat
message

I guess that using PostDataMessageForDevice(data/deviceId/out) function with
ansible, its only to report status of a device and report in there? But
Edgedevice has status too :\

So, we need to take a decission here and validate what we want to achieve.
[1]

$ -> cat payload.json | jq .
{
  "content": {},
  "directive": "ansible",
  "message_id": "test",
  "sent": "2021-11-21T14:45:25.271+02:00",
  "type": "data",
  "version": 1
}
$ -> curl -s   --cacert /etc/pki/consumer/ca.pem   --cert /etc/pki/consumer/cert.pem   --key /etc/pki/consumer/key.pem   -H "Content-Type: application/json"<EMAIL_ADDRESS>https://project-flotta.io:8043/api/flotta-management/v1/data/fooa/out  | jq .
{
  "content": "---\n- name: This is a hello-world example\n  tasks:\n    - name: Create a file called '/tmp/testfile.txt' with the content 'hello world'.\n      copy:\n        content: hello worldn\n        dest: /tmp/testfile.txt\n",
  "directive": "ansible",
  "message_id": "4bcacb20-746e-454b-ab0a-fc811df7dbba",
  "metadata": {
    "ansible-playbook": "true"
  },
  "sent": "2022-08-25T17:30:09.029+02:00",
  "type": "data",
  "version": 1
}
$ ->

Regards

For me the sysadmin creates the Edgeconfig entry with the following: (......)

Correct

So afterwards the device need to have the label:
$ -> kubectl label edgedevice fooa config/device-by-config=global-config

Correct

And this will create the following PlaybookExecutions:
$ -> kubectl get playbookexecutions
NAME                 AGE
fooa-global-config   26s
foob-global-config   26s
$ ->

Yes, a playbookexecution for each labelled device (in this example there are two devices fooa and foob)

So, in this PR, where the playbookexecutions are retrieved from the device[1]:
flotta-operator/internal/edgeapi/yggdrasil/yggdrasil.go
[....]

But we expect the ansible config on the getConfig in the device:
https://github.com/project-flotta/flotta-device-worker/blob/e02e796ca1f914ebc6f22cbdba23130f283c9f41/internal/ansible/ansible_manager.go#L101-L120
But we're not setting it in any place. On the other hand, DeviceConfiguration

That's true.
The flotta device PR (https://github.com/project-flotta/flotta-device-worker/pull/69) has been created/merged before the definition of EdgeConfig and PlaybookExecution CRDs.
The idea at the time was to send a plain ansible playbook on the the deviceconfiguration message (https://github.com/project-flotta/flotta-device-worker/blob/e02e796ca1f914ebc6f22cbdba23130f283c9f41/internal/ansible/ansible_manager.go#L113).
Whenever the device receives a message with Metadata == "ansible-playbook" then the playbook execution is triggered.
Need to update the device worker to use the CRs.

message is only one string, where maybe should be []string

Can you clarify this statement?
At the moment the message is create here https://github.com/project-flotta/flotta-operator/blob/0d9002ec32fa7b3aca07dc2ab7e96b0caa75b1ca/internal/edgeapi/yggdrasil/yggdrasil.go#L291-L302 and a PlaybookExecution can contain only one playbook.
(Please note that, at the moment, the code can't handle multiple PlaybookExecution CRs for each device. Need to fix this :( )

So, the main issue is:
If we use the v1/data/$deviceID/in endpoint, that it's what we use for normal
configuration, we are not setting the config correctly at all in this PR. For
me this is where this should belongs to. Mainly to have a single heartbeat
message

I guess that using PostDataMessageForDevice(data/deviceId/out) function with
ansible, its only to report status of a device and report in there? But
Edgedevice has status too :\

So, we need to take a decission here and validate what we want to achieve.

I'd like to discuss it with you, if you don't mind :)

@gciavarrini @eloycoto is there anything else we would like to do to finalize this PR?

I'm ok to merge, I think that all is addressed already


Pathfinding is going off the navmesh

I have a navmesh that looks like this

My pathfinding is causing the agent to walk through the water, which is the empty area in the center of the screenshot.
Any ideas what I am doing wrong? Here's my code for finding the path. I probably screwed something up, it wasn't easy trying to figure out how to actually find a path using DotRecast. Had to use OpenAI and a lot of trial and error to try and figure it out lol.
    private unsafe void FindPath(DtNavMesh navMesh, PathRequest request)
    {
        var startPosition = new RcVec3f(request.StartPosition.x, request.StartPosition.y, request.StartPosition.z);
        var endPosition = new RcVec3f(request.EndPosition.x, request.EndPosition.y, request.EndPosition.z);
        var navQuery = new DtNavMeshQuery(navMesh);

        // Find the start and end polygons on the navmesh
        var filter = DtQueryNoOpFilter.Shared;
        var halfExtents = new RcVec3f(2.0f, 4.0f, 2.0f); // Extent for search area

        var startPolyResult = navQuery.FindNearestPoly(startPosition, halfExtents, filter, out var startPolyRef, out _, out _);
        if (!startPolyResult.Succeeded())
        {
            this.LogError($"Failed to find start position reference: {startPolyResult}");
            request.Failed();
            return;
        }

        var endPolyResult = navQuery.FindNearestPoly(endPosition, halfExtents, filter, out var endPolyRef, out _, out var canReachTarget);
        if (!endPolyResult.Succeeded())
        {
            this.LogError($"Failed to find end position reference: {endPolyResult}");
            request.Failed();
            return;
        }

        _pathCache.Clear();
        var pathResult = navQuery.FindPath(startPolyRef,
            endPolyRef,
            startPosition,
            endPosition,
            filter,
            ref _pathCache,
            DtFindPathOption.AnyAngle
        );

        if (!pathResult.Succeeded())
        {
            this.LogError("Failed to find end position reference");
            request.Failed();
            return;
        }

        // Output the path as an array of points
        Span<DtStraightPath> straightPath = stackalloc DtStraightPath[256];
        navQuery.FindStraightPath(startPosition, endPosition, _pathCache, _pathCache.Count, straightPath, out var straightPathCount, 256, 0);

        var resultPath = new NetVector3[straightPathCount];
        for (int i = 0; i < straightPathCount; i++)
        {
            var pos = straightPath[i].pos;
            resultPath[i] = new NetVector3(pos.X, pos.Y, pos.Z);
        }

        request.Success(resultPath, canReachTarget);
    }

Here's how I'm loading the NavMesh
    private async void LoadNavMesh()
    {
        try
        {
            await using var fileStream = new FileStream("Actors/World/World.bytes", FileMode.Open);
            using var br = new BinaryReader(fileStream);
            var reader = new DtMeshSetReader();
            var navMesh = reader.Read(br, 6);

            ProcessQueue(navMesh);
        }
        catch (Exception ex)
        {
            this.LogException(ex);
        }
    }

And here's how I'm generating the NavMesh, by converting Unity's NavMesh to Recast.
        private async UniTask PerformBake()
        {
            this.Log("Enabling baked colliders");
            foreach (var bakedCollider in _bakedColliders)
            {
                bakedCollider.enabled = true;
            }

            this.Log("Baking Unity NavMesh");
            var targets = new Object[] { _navMesh };
            NavMeshAssetManager.instance.StartBakingSurfaces(targets);
            await UniTask.WaitUntil(() => !NavMeshAssetManager.instance.IsSurfaceBaking(_navMesh));

            this.Log("Disabling baked colliders");
            foreach (var bakedCollider in _bakedColliders)
            {
                bakedCollider.enabled = false;
            }

            NavMeshTriangulation triangles = NavMesh.CalculateTriangulation();
            Mesh mesh = new Mesh();
            mesh.vertices = triangles.vertices;
            mesh.triangles = triangles.indices;

            var rc = new UniRcNavMeshSurfaceTarget("World", mesh, Matrix4x4.identity);
            var rcMesh = rc.ToMesh();
            rcMesh.SaveFile();

            var settings = new RcNavMeshBuildSettings()
            {
                //cellSize = 0.3f,
                //cellHeight = 0.2f,

                agentHeight = 2.0f,
                agentRadius = 0f,
                agentMaxClimb = 0.9f,
                agentMaxSlope = 45f,

                agentMaxAcceleration = 8.0f,
                agentMaxSpeed = 3.5f,

                minRegionSize = 0,
                mergedRegionSize = 20,

                //partitioning = RcPartitionType.WATERSHED.Value,

                filterLowHangingObstacles = true,
                filterLedgeSpans = true,
                filterWalkableLowHeightSpans = true,

                edgeMaxLen = 12f,
                edgeMaxError = 1.3f,
                vertsPerPoly = 6,

                detailSampleDist = 6f,
                detailSampleMaxError = 1f,

                tiled = false,
                tileSize = _navMesh.tileSize,

                keepInterResults = true, // full memory
                buildAll = true,
            };
            var navMesh = rcMesh.Build(settings);
            navMesh.SaveNavMeshFile(rc.GetName());

            this.Log("Clearing Unity NavMesh data");
            NavMeshAssetManager.instance.ClearSurfaces(targets);
        }

Hello. Nice to meet you! If it's okay, could I please get the navmesh file?

Sure, thanks for helping with this!
World.zip
I'm trying to prevent the AI from walking into the water when following the player.

The pathfinding will even follow the player into the air. The path returned is just two waypoints, the first being the AI's current location and the end result being the target location. So its as if its not even trying to find the path and just going directly to the result.

When I checked what you provided, I'm not sure what the problem is.
Based on the code you provided:

You need to check whether the values of startPolyRef and endPolyRef are less than or equal to 0.
You can learn how to use RctestNavMeshTool::FindFollowPath by looking at its usage."

@ikpil Thanks for the suggestions!

Both are above 0, the values are<PHONE_NUMBER>92640 for the start, and<PHONE_NUMBER>92640 for the end. This is for a navigation path when the player is standing in the water area.

I can't find any differences between RctestNavMeshTool::FindFollowPath and my code, it appears to be similar in how the path is called. I thought maybe it was a coordinate system issue with Recast being different from Unity, but when I converted the coordinates, that caused the FindNearestPoly calls to fail.

Progress! I found out its a coordinate conversion issue. What's weird is to fix it I had to do a negative X value for converting from Unity to Recast, but what I found online is its supposed to be a negative Z, so that's a bit odd and no idea why its different.
I've got 2 remaining issues I haven't been able to figure out yet though.

The bridge here, the pathfinding isn't raising up in the air. It instead stays at the same height of the terrain the bridge connects to.

The pathfinding doesn't find the closest path if the target is off the navmesh, its like it gives up. I tried calling DtNavMeshQuery.ClosestPointOnPoly, but it didn't seem to make a difference.

Any ideas on those two issues? I haven't been able to figure them out

In most cases, the endpoint is determined using the FindNearestPoly function and its out nearestPt parameter.

s for question 1, I'm not entirely sure what case you are referring to. When I opened the demo, I could see the path. Are you saying that the path goes under the bridge?

As for question 1, I'm not entirely sure what case you are referring to. When I opened the demo, I could see the path. Are you saying that the path goes under the bridge?

As for question 1, I'm not entirely sure what case you are referring to. When I opened the demo, I could see the path. Are you saying that the path goes under the bridge?

Correct, the path returned does not have elevation in it, it just returns the same elevation the path started at.

Uploading world 2024-12-10 235932.mp4…

If you need to express climbing the stairs more closely, referring to the Pathfind Follow logic will be helpful. It is designed to return a smooth point at every 0.5 distance.

https://github.com/user-attachments/assets/225fab40-e74f-4488-b479-47f281113639

Is there any examples of how to do this? I'm struggling trying to look through the demo source code and API for what a follow path is. Doesn't seem to be a method on DtNavMeshQuery like FindStraightPath. A basic example in documentation would be fantastic and would benefit anyone that wants to use this asset.
Even still though, in your picture, the straight path is raising up in the air. If you look at my screenshot, that's not happening at all. Stays at the same elevation. I know its not my lerp logic as I debugged the path result and the path itself is at the same elevation with no raising.

I found the example code for follow path, not sure what I'm doing wrong, but its still not walking on top of the bridge. Here's my pathfinding code.
    private unsafe void FindPath(DtNavMesh navMesh, PathRequest request)
    {
        var navQuery = new DtNavMeshQuery(navMesh);
        var startPosition = new RcVec3f(-request.StartPosition.x, request.StartPosition.y, request.StartPosition.z);
        var endPosition = new RcVec3f(-request.EndPosition.x, request.EndPosition.y, request.EndPosition.z);

        // Find the start and end polygons on the navmesh
        var filter = DtQueryNoOpFilter.Shared;
        var halfExtents = new RcVec3f(2.0f, 4.0f, 2.0f); // Extent for search area

        var startPolyResult = navQuery.FindNearestPoly(startPosition, halfExtents, filter, out var startPolyRef, out _, out _);
        var endPolyResult = navQuery.FindNearestPoly(endPosition, halfExtents, filter, out var endPolyRef, out _, out var canReachTarget);

        _pathIterPolys.Clear();
        _tool.FindFollowPath(navMesh,
            navQuery,
            startPolyRef,
            endPolyRef,
            startPosition,
            endPosition,
            filter,
            true,
            ref _pathIterPolys,
            0,
            ref _smoothPath
        );

        var resultPath = new Vector3[_smoothPath.Count];
        for (int i = 0; i < _smoothPath.Count; i++)
        {
            var pos = _smoothPath[i];
            resultPath[i] = new Vector3(-pos.X, pos.Y, pos.Z);
        }

        request.Success(resultPath, canReachTarget);
    }

Okay I think it might be related to the NavMesh conversion. Here's how Unity's NavMesh looks like after baking.

And here's the NavMesh converted to DotRecast.

The Unity one is a lot smoother, and correctly matches the elevation of the bridge, while the DotRecast one appears like it would clip inside the bridge.
Any ideas how to fix this? Here's my conversion code.
        private async UniTask PerformBake()
        {
            this.Log("Baking Unity NavMesh");
            var targets = new Object[] { _navMesh };
            NavMeshAssetManager.instance.StartBakingSurfaces(targets);
            await UniTask.WaitUntil(() => !NavMeshAssetManager.instance.IsSurfaceBaking(_navMesh));

            NavMeshTriangulation triangles = NavMesh.CalculateTriangulation();
            Mesh mesh = new Mesh();
            mesh.vertices = triangles.vertices;
            mesh.triangles = triangles.indices;

            var rc = new UniRcNavMeshSurfaceTarget("World", mesh, Matrix4x4.identity);
            var rcMesh = rc.ToMesh();
            rcMesh.SaveFile();

            var settings = new RcNavMeshBuildSettings()
            {
                //cellSize = 0.3f,
                //cellHeight = 0.2f,

                agentHeight = 2.0f,
                agentRadius = 0f,
                agentMaxClimb = 0.9f,
                agentMaxSlope = 45f,

                agentMaxAcceleration = 8.0f,
                agentMaxSpeed = 3.5f,

                minRegionSize = 0,
                mergedRegionSize = 20,

                //partitioning = RcPartitionType.WATERSHED.Value,

                filterLowHangingObstacles = true,
                filterLedgeSpans = true,
                filterWalkableLowHeightSpans = true,

                edgeMaxLen = 12f,
                edgeMaxError = 1.3f,
                vertsPerPoly = 6,

                detailSampleDist = 6f,
                detailSampleMaxError = 1f,

                tiled = false,
                tileSize = _navMesh.tileSize,

                keepInterResults = true, // full memory
                buildAll = true,
            };
            var navMesh = rcMesh.Build(settings);
            navMesh.SaveNavMeshFile(rc.GetName());

            this.Log("Clearing Unity NavMesh data");
            NavMeshAssetManager.instance.ClearSurfaces(targets);
        }

First, NavMesh.CalculateTriangulation(); returns a simple triangle value for the Unity NavMesh. This means that there is no detailed information for walking paths. So, if you create a NavMesh for DotRecast based on this value, you will inevitably get a distorted shape.
To use DotRecast in Unity, you need to correctly create and input terrain data. You can refer to UniRecast's UniRcNavMeshSurface.BakeFrom for assistance.
Reference:

https://docs.unity3d.com/ScriptReference/AI.NavMesh.CalculateTriangulation.html

Or could the following code be helpful? I haven’t tried it myself, so it might not be accurate.
https://github.com/ikpil/UniRecast/issues/6"

Thanks for the information, that's unfortunate about NavMesh.CalculateTriangulation.
I tried using UniRcNavMeshSurface, and here's the results. It doesn't seem to be baking well. Also I can't figure out how to remove the water area from the baked mesh like I do in Unity using a NavMesh Modifier Volume.

Compared to how it should look when baked with Unity.

In the sample, it appears to be using only one mesh. Have you tried it in a scene with a terrain and many meshes on the terrain?


Adjust array indices for non-literals

Hive uses 0-based array indices while ANSI SQL/Presto uses 1-based indices. When we convert from Hive QL to Calcite RelNodes we add 1 to all array indices. Hence arrayField[0] is converted to arrayField[1]. However today this adjustment only considers integer literals, all other indices are ignored and passed through as-is. This causes non-literal indices to not be adjusted, e.g. HiveQL arrayField[size(arrayField) - 1] still remains arrayField[size(arrayField) - 1] in RelNode leading to silent correctness issues.
This PR translates any non-integer literals by using a SQL function call to add one to the index.
arrayField[size(arrayField) - 1] => arrayField[size(arrayField) - 1 + 1]
I decided to keep the original implementation for integer literals for simplicity of the converted SQL in the most common cases, so that arrayField[0] is converted to arrayField[1] instead of arrayField[0 + 1].
cc: @wmoustafa @funcheetah

Our internal regression tests passed!

@funcheetah i see this in a tagged release here https://github.com/linkedin/coral/releases/tag/v1.0.29
do you plan to push that to Maven Central?
the latest i see on https://search.maven.org/artifact/com.linkedin.coral/coral-presto is 1.0.25

@findepi We were working on migrating our release automation system after decommissioning Bintray. Version 1.0.33 should be published now.


No such File or Directory

Hello;
Even though I followed your installation guide, I am getting following error. I added linked libraries, headers and dependencies.
no such file or directory: '/Users/denizozcan/Library/Developer/Xcode/DerivedData/Exporter-bmnzmftcrbywglavtrembvocyhcf/Build/Products/Debug/libXlsxReaderWriter.a'
When I check this folder, there is no such a file but when I click this file in " Link Binary with Libraries" tab and open fire location, it shows it in Debug-iphoneos folder. However, my project is an OS X application. Any tips would be useful.
Thanks in advance.

I solved this problem. I changed subprojects' Base SDK to OS X. It would be useful for new users like me if you can add this information to tutorial.
Thanks.


Stringlate crashes, work gets lost

Stringlate crashed. Oops. The strings you were translating, for the past half of an hour, were not saved (actually, I was translating for about 10 minutes). Too bad for you. There is no "session restore" or backup. You'll just have to do the translations, again.
Shouldn't Stringlate have an auto-backup or "session restore" function, just in case of a crash?

Sorry to hear. Could you give steps to reproduce the crash, or provide a traceback? Stringlate saves to memory the changes as soon as you type a single character, but they're not flushed to disk until you actually switch to another locale, or leave the project you're translating. This is of course to avoid expensive IO calls for every single character the user types.
I will modify it to save every time you change to a different string, but we should fix that crash.

For the specific crash

I added the project https://github.com/IvanVolosyuk/diskusage
in Stringlate

after diskusage was imported, I opened the project, and added a new locale by typing "el"

then, I started translating, skipping a few strings

10 minutes or so into the translation Stringlate crashed

in the meanwhile, I had other apps running (like Yandex Translate), and moved between these apps and Stringlate

That's all I remember. Not very helpful, I guess.

Yeah it's pretty weird that seemingly nothing triggered a crash. While typing some string? Some action that occurs when switching back? Not sure what it could be :(

Actually that was the thing I thought of immediately as I read "unless you are root you won't notice this". Why aren't the files saved on the SD card, where everyone can get them (and there's not only the app that can crash)?
Which sense does it make to hide the string.xml?
And here I am, thinking about IF I should give the app a try and the first issue making the worst case come true.

Why aren't the files saved on the SD card

Primarily because it's just more straightforward to access the local directory of the application, which I know will always work.

and there's not only the app that can crash

I did not understand this part.

Which sense does it make to hide the string.xml?

I never intended such thing, it's just, every application has its own data directory that will clean itself up if you uninstall the application. This wouldn't happen if I used the SD card where the normal user has access to. Users aren't supposed to edit the .xml themselves, that completely defeats the purpose of the application which is to abstract you from this!
Even then, I made available an option to export and import any added project as a .zip file, which contains the raw .xml, and all the information needed to recover the .zip into Stringlate.

IF I should give the app a try

Well, why not? @nikoss' report about a seemingly random crash is the first report I'm aware of. It has never crashed like that for me, and of course I'm willing to fix this issue if I knew what happened. Furthermore, strings are now saved every time you press "Next" or "Previous", which should greatly reduce the risk of losing an important amount of work.

@Peremptor maybe you misunderstood. In this particular crash, not all translations were lost. It is just, that the last translations were not saved (due to the crash). "The worst case" didn't come true.
And, of course, you can always export the .xml file
(...and save it in your computer. At least, that is what I do).

I'm cleaning up old issues. Please reopen this if you can consistently reproduce the bug (and give me steps) so that we can tackle it. https://github.com/LonamiWebs/Stringlate/commit/9bc8f00d177c333dad2348ae38647578b645c9c5 (linked above) should heavily alleviate any crash, but still, if I can reproduce a crash I'll try my best to fix it.


User Created for Spark Ingestion Requires View Database State Permission

Hi guys!
When running the code "as is" in the article you fail on writing to the datapool with the error: DataPools are not configured or non reachable.
The failure point is in the DataPoolUtils.getDataPoolNodeList method in the SQL Server Spark connector. In that method we execute a query under the created user: select address from sys.dm_db_data_pool_nodes. That query requires the user to have VIEW DATABASE STATE permission. Since we have not granted those permissions the query will fail and no node addresses are being returned, and the method will throw the exception mentioned above.
So in step 3 "Create permissions for MSSQL-Spark Connector." following statement should be added:
GRANT VIEW DATABASE STATE ON DATABASE::Sales TO sample_user;
Thanks!
Niels

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1c639fd7-43ee-f24d-ce5e-530077367aab
Version Independent ID: 28059c60-abe8-e4f8-08c5-221c926f007e
Content: Ingest data with Spark jobs - SQL Server Big Data Clusters
Content Source: docs/big-data-cluster/tutorial-data-pool-ingest-spark.md
Product: sql
Technology: big-data-cluster
GitHub Login: @rajmera3
Microsoft Alias: raajmera

@nielsberglund -- Niels, thank you for your feedback and suggested solution.  I am looking into this article.

@rajmera3 -- Rahul, please review private PR 16980.

Thank you for your feedback.  I have updated the documentation and it should be live by tomorrow.


THCI: provide updateRouterStatus() support

As required in DEV-845 for Leader 5.2.3

Harness will need to instruct the testbed routers to attach and become an active router with the reason 'HAVE_CHILD_ID_REQUEST' even though they are not bringing children.
In 1.1, now when becoming an active router the device needs to specify a reason. If the devices specify TOO_FEW_ROUTERS the Leader will reject it.

Here update relative code to support updateRouterStatus() THCI API.
Below is the harness output with this PR.
Leader_5_2_3.zip
@xiaom-GitHub , @jwhui , please help to have a review.

Current coverage is 73.90% (diff: 85.71%)

Merging #1009 into master will decrease coverage by 0.04%

@@             master      #1009   diff @@
==========================================
  Files           125        125
  Lines         18035      18033     -2
  Methods        2512       2512
  Messages          0          0
  Branches       2180       2180
==========================================
- Hits          13338      13328    -10
- Misses         4019       4029    +10
+ Partials        678        676     -2

Powered by Codecov. Last update 5e61cc2...d4855b7


rm verify_test_dsa.go

Name of feature:
Not a feature.
Pain or issue this feature alleviates:

This test can be safely removed because DSA signature verification is no longer supported since Go 1.16 and Go <= 1.21 are no longer supported.
The test have been actually skipped by go test because it doesn't have the _test.go suffix.
The test was leaked into the vendor directory of projects consuming this package. The var dsaPrivateKey = ... line (L128) could cause confusion to some security scanning tools.

Why is this important to the project (if not answered above):
Answered above.
Is there documentation on how to use this feature? If so, where?
Not a feature.
In what environments or workflows is this feature supported?
Not a feature.
In what environments or workflows is this feature explicitly NOT supported (if any)?
Not a feature.
Supporting links/other PRs/issues:
N/A
💔Thank you!

Thanks for opening this up @AkihiroSuda!

@azazeal could you please take a look when you get a chance? Thanks!

I think that renaming the test file from verify_test_dsa.go to verify_dsa_test.go would probably negate the need to remove the test, as the go.mod specifies that the minimum required Go version is 1.14.
Will also bring @hslatman in this.

I assume this would also clear up any confusion caused to security tools.

I think that renaming the test file from verify_test_dsa.go to verify_dsa_test.go would probably negate the need to remove the test, as the go.mod specifies that the minimum required Go version is 1.14.

Why retain the test?

I think that renaming the test file from verify_test_dsa.go to verify_dsa_test.go would probably negate the need to remove the test, as the go.mod specifies that the minimum required Go version is 1.14.

Why retain the test?

I understand that. What I'm trying to articulate is that the project's go.mod file specifies that the minimum required Go version is 1.14 (ref) and while I'm—100%—not advocating that compilation with said versions is a good idea anymore, the test does seem to make sense for those that still do (including our CI).
Renaming the file would allow us to keep the test that satisfies these edge cases, while at the same time clear up any confusion caused to the analysis tools.

Thanks!

@hslatman @AkihiroSuda thanks for getting this in! Would you be able to cut a new release tag with this fix please?

It should already be in https://github.com/smallstep/pkcs7/releases/tag/v0.1.1, but do let me know if it doesn't fix the scanner issues.