.search() redirects when searching links

when searching for links

/search.json?q=

will redirect to

/submit.json?url=

so using .search("https://google.com") will give the following error:

prawcore.exceptions.Redirect: Redirect to /submit

example code:

for submission in reddit.subreddit('all').search('https://google.com'):
print(submission.title)

Same problem, expecting the 'seen it' list of submissions as shown here:
https://old.reddit.com/submit?url=https%3A%2F%2Fwww.google.com

Closing issue as per @jarhill0's suggestion.

I'm writing here for the prosperity of future developers who didn't understand what @jarhill0 was explaining.
When using the search function, instead of specifying the query parameter as the link, I.E. the literal string https://google.com, you must encase the link with the quotation marks and precede it with url:
I.E
instead of
reddit.subreddit('all').search('https://google.com') ❌
do
reddit.subreddit('all').search('url:"https://google.com"'): ✔
I wasted over half a day because I didn't understand this 🤦♀

You know, I think this is a good addition to the new FAQ.


⚠ Samsung has degraded performance

In d6a735f, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2943 ms

Resolved: Samsung performance has improved in 77a31a7.


VS code is not clear working

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

Closing as incomplete. Please feel free to add more information if you have any and we can re-open the issue.


App release issue

command flutter build apk --release -v
Error
[+206168 ms] Running Gradle task 'assembleRelease'... (completed in 208.9s, longer than expected)
[   +2 ms] "flutter apk" took 326,274ms.
[        ] "flutter apk" took 326,274ms.
Gradle task assembleRelease failed with exit code 1
#0      throwToolExit (package:flutter_tools/src/base/common.dart:24:3)
#1      _buildGradleProjectV2 (package:flutter_tools/src/android/gradle.dart:478:5)

#2      buildGradleProject (package:flutter_tools/src/android/gradle.dart:346:14)

#3      buildApk (package:flutter_tools/src/android/apk.dart:34:9)

#4      BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:51:11)

#5      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:559:18)
#6      _asyncThenWrapperHelper. (dart:async-patch/async_patch.dart:77:64)
#7      _rootRunUnary (dart:async/zone.dart:1132:38)
#8      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#9      _FutureListener.handleValue (dart:async/future_impl.dart:126:18)
#10     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639:45)
#11     Future._propagateToListeners (dart:async/future_impl.dart:668:32)
#12     Future._complete (dart:async/future_impl.dart:473:7)
#13     _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#14     _AsyncAwaitCompleter.complete. (dart:async-patch/async_patch.dart:33:20)
#15     _rootRun (dart:async/zone.dart:1124:13)
#16     _CustomZone.run (dart:async/zone.dart:1021:19)
#17     _CustomZone.bindCallback. (dart:async/zone.dart:947:23)
#18     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#19     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#20     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:115:13)
#21     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:5)

Hi @supardyke
can you please provide your flutter doctor -v?
Also, to better address the issue, would be helpful
if you could post a self contained app on github
or the steps to reproduce it.
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


[easy] bump rust version to 1.60.0

@jspada maybe?

@mimoo can you make a PR against the Mina repo before we merge this?


feat: Add URL information in UnexpectedResponse

This commit add the url in the UnexpectedResponse class, and modify the for_response and str to display the URL.
Signed_Off_by: Samir Akarioh<EMAIL_ADDRESS>resolve #456
All Submissions:

[x] Contributions should target the dev branch. Did you create your branch from dev?
[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

[ ] Does your submission pass tests?
[x] Have you installed pre-commit with pip3 install pre-commit and set up hooks with pre-commit install?

Changes to Core Features:

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully ran tests with your changes locally?

Unfortunately, we can't just change files in http/ (or grpc because they are auto-generated.)
And the generator is not public

oh i see, do you want me to close the PR ?

It's not necessary atm


Update best-practices.md

🚀 Deployed on https://65b42c1c51be0c1c3ecbb71e--cozy-fox-0defec.netlify.app


IDE setup

The cmake/makefile mix of the repo makes it confusing to set up in an IDE. Is there a guide?
Alternatively I stripped out the custom CMake code here: https://github.com/nimish/bl616-tmpl but it's not as complete

Yeah, I agree,
@sakumisue  could you provide example how to use SDK as external dependency and how to compile out-of-tree application code on top of SDK?

@Jatsekku Just copy helloworld out of sdk and modify BL_SDK_BASE will work.

The cmake/makefile mix of the repo makes it confusing to set up in an IDE. Is there a guide?
Alternatively I stripped out the custom CMake code here: https://github.com/nimish/bl616-tmpl but it's not as complete

Sorry sir, i need to say your project has many problems.

When cmake builds done, your variables can not be modified, like COMX,
When we use other chips, we need to modify cmake file, no, we don't allow that
We don't allow these codes, we should add automatically

target_link_libraries(lhal PUBLIC
    soc
    phyrf
    cherryusb)

)

and many other problems i do not want to say, so i suggest you remove your project and do not have such idea.

Makefile is just to run cmake cmd and modifiy some variables.

Like this, if you can write cmake project, i think you can know these comand, so where is mix?
build:Makefile
	$(CMAKE) -S . -B build -G $(cmake_generator) $(cmake_definition)
	$(MAKE) -C build -j8
	$(MAKE) -C build combine

The cmake/makefile mix of the repo makes it confusing to set up in an IDE. Is there a guide?
Alternatively I stripped out the custom CMake code here: https://github.com/nimish/bl616-tmpl but it's not as complete

Sorry sir, i need to say your project has many problems.

When cmake builds done, your variables can not be modified, like COMX,
When we use other chips, we need to modify cmake file, no, we don't allow that
We don't allow these codes, we should add automatically

target_link_libraries(lhal PUBLIC
    soc
    phyrf
    cherryusb)

If we use cmake to build, it will be too much config to set, we don't allow that
and many other problems i do not want to say, so i suggest you remove your project and do not have such idea.

In general, I would like to know if there is a way to get a template project set up in CLion or VSCode using the existing makefiles and CMake.
The bl616-tmpl was my personal reorganization for the hw I use that integrates with the IDE and is simply an example. It supports incremental and parallel building along with IDE cmake integration so it is faster to iterate. The price of that is the explicit dependency handling. It is not something that the SDK itself should adopt without significant extra development to support other chips.

I am using Bouffalo SDK with my project through CLion, and it works perfectly.
This is how I have it configured:
CMake Options: -G "Unix Makefiles" -DCROSS_COMPILE=/home/gamiee/Desktop/tools/toolchain_gcc_t-head_linux/bin/riscv64-unknown-elf- -DCHIP=bl616 -DCPU_ID= -DBOARD=bl616dk -DBOARD_DIR= -DCONFIG_DEBUG=y -DCONFIG_ROMAPI=y -DCONFIG_USB_HS=y -DCONFIG_COMX=COM5 -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF -DCONFIG_TLSF=y
Environment: BL_SDK_BASE=/home/gamiee/Desktop/tools/bouffalo_sdk
My CMakeLists.txt:

I was even able to make auto-upload by Run command with terminal. If there will be interest, I can create sample CMake project with CLion configuration stored here.

I am using Bouffalo SDK with my project through CLion, and it works perfectly. This is how I have it configured: (NOTE: There are no Bouffalo SDK changes) CMake Options: -G "Unix Makefiles" -DCROSS_COMPILE=/home/gamiee/Desktop/tools/toolchain_gcc_t-head_linux/bin/riscv64-unknown-elf- -DCHIP=bl616 -DCPU_ID= -DBOARD=bl616dk -DBOARD_DIR= -DCONFIG_DEBUG=y -DCONFIG_ROMAPI=y -DCONFIG_USB_HS=y -DCONFIG_COMX=COM5 -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF -DCONFIG_TLSF=y Environment: BL_SDK_BASE=/home/gamiee/Desktop/tools/bouffalo_sdk
My CMakeLists.txt:
As @sakumisu mentioned, there is no need for using Make files, everything can be easily used through CMake, with CLion or VS Code CMake integration.
I was even able to make auto-upload by Run command with terminal. If there will be interest, I can create sample CMake project with CLion configuration stored here.

Right, copy cmake comand from makefile into clion, so makefile is unuseful, just make command length lesss for user.

https://github.com/bouffalolab/bouffalo_sdk/blob/be623ceb7f18c70f3aafba2a0eceba5efc6a683a/project.build#L78

Great, thanks. I think this covers what I wanted. Perhaps this could be added to the README as well?


[AutoPR] containerservices/resource-manager

Created to accumulate context: containerservices/resource-manager

Codecov Report

Merging #3298 into master will decrease coverage by 0.23%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #3298      +/-   ##
==========================================
- Coverage   55.21%   54.97%   -0.24%
==========================================
  Files        9200     9204       +4
  Lines      184958   196093   +11135
==========================================
+ Hits       102116   107797    +5681
- Misses      82842    88296    +5454

Impacted Files
Coverage Δ

...gmt/containerservice/models/managed_cluster_py3.py
27.77% <ø> (ø)
:arrow_up:

...re/mgmt/containerservice/models/managed_cluster.py
27.77% <ø> (ø)
:arrow_up:

...inerservice/azure/mgmt/containerservice/version.py
100% <100%> (ø)
:arrow_up:

.../azure/batch/models/job_get_task_counts_options.py
28.57% <0%> (-15.88%)
:arrow_down:

azure-batch/azure/batch/models/task_add_options.py
28.57% <0%> (-15.88%)
:arrow_down:

...azure/batch/models/compute_node_reimage_options.py
28.57% <0%> (-15.88%)
:arrow_down:

.../models/job_get_all_lifetime_statistics_options.py
28.57% <0%> (-15.88%)
:arrow_down:

azure-batch/azure/batch/models/job_add_options.py
28.57% <0%> (-15.88%)
:arrow_down:

...h/models/compute_node_enable_scheduling_options.py
28.57% <0%> (-15.88%)
:arrow_down:

...tch/azure/batch/models/job_schedule_add_options.py
28.57% <0%> (-15.88%)
:arrow_down:

... and 393 more

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 9abecc6...2fbd861. Read the comment docs.


persist setting after page reload

:sorry:

???

????????

you want to restore the resize setting ?

code for fun 🧼

This should be techically very feasible. Will keep that in mind.


Is microsoft UWP toolkit supported?

I have tried to port my one of my existing UWP app to Uno platform but I couldn't enable UWP toolkit on any of the project
in wasm project it says:
NU1202: Package Microsoft.Toolkit.Uwp.UI.Controls 2.2.0 is not compatible with netstandard2.0 (.NETStandard,Version=v2.0). Package Microsoft.Toolkit.Uwp.UI.Controls 2.2.0 supports: uap10.0 (UAP,Version=v10.0)
and in IOS:
NU1202: Package Microsoft.Toolkit.Uwp 3.0.0 is not compatible with xamarinios10 (Xamarin.iOS,Version=v1.0). Package Microsoft.Toolkit.Uwp 3.0.0 supports: uap10.0 (UAP,Version=v10.0)

It is not yet supported, but you can follow this repo for updates: https://github.com/nventive/Uno.WindowsCommunityToolkit

thanks @jeromelaban for the explanation. Can you please publish an article about which frameworks, toolkits etc. that currently work without modification or with modification or not supported for example:
Syncfusion essential studio
Telerik UI
MVVM light
MVVM cross
Prism

Support has improved for most of those frameworks. Missing are Telerik UI and MVVM Cross, I'll open issues for those two.


Added patch for Ultimate Pro Pinball (SLES-53508).

Pull Request checklist
Note: these are not necessarily requirements

[ ] I reformatted the code with clang-format
[ ] I checked to make sure my submission worked
[X] I am the author of submission or have permission from the original author
[ ] Requires update of the PS2SDK
[ ] Requires update of the gsKit
[ ] Others (please specify below)

Pull Request description
The game has got a function that is called by multiple threads, however its inter-task protection mechanism does not work. One tell-tale sign is the need for synchronous reads/mode 2.
The malfunctioning inter-task protection mechanism was replaced with a semaphore. However, it also uses iReleaseWaitThread() to wake up the 2nd thread for activities, but that can break the inter-task protection and/or any system function that blocks. Hence the signaling mechanism was replaced with something similar to the one used within ATAD (SetAlarm+WaitEventFlag).
The game is a multi-ELF game, hence the fix has to be applied to 4 different ELFs. I do not know if the Japanese release has the same glitches, but I hope not. Hopefully, the bugs were found and fixed by the developer, since those 2 Japanese releases might be 2 years newer than the European release.
With this patch, the game should work with no compatibility modes. I haven't tested it after refining the patch, but it should be fine.

I think we should postpone this for a while. The patch does not solve all problems that the game has.
I will update if/when a better patch can be made.

The patch has been updated and seems to be better. We're using PollSema() instead of WaitSema() to avoid changing the polling behaviour of APEMOD.

@sp193, in this pull request says:
"This branch has conflicts that must be resolved
Conflicting files
ee_core/src/patches.c"
Please check it if there is any problem before i merge it.
Best regards.

I have updated the patch.

Thank you very much, merged.
Best regards.


Adding annotations or custom model to my CVAT environment

I've searched online and couldn't find a good guide or any instructions on how to upload semantic masks and use them as annotations in CVAT.
I have an mmsegmentation-based model, and I want to add it, or its inference results to CVAT.
I want to make my annotators life easier and have them fix the small errors that the model does, rather than annotating from scratch.
My model generates semantic bitmap masks, so I was wondering, what is the best way to add the annotation results to CVAT? I saw that there's a format called Segmentation Masks 1.1, but couldn't find anywhere if that's what I'm looking for, and if so, how should I structure the file I upload.
I'll really appreciate your help!

On the main page we have a list of supported formats.

Please, keep your annotations in one of them and upload them to CVAT using standard pipeline: https://opencv.github.io/cvat/docs/manual/advanced/export-import-datasets/


Libnetwork is failing while executing command ' get github.com/moby/libnetwork'

getting following error:
go get: github.com/Sirupsen/logrus@none updating to
<EMAIL_ADDRESS>parsing go.mod:
module declares its path as: github.com/sirupsen/logrus
but was required as: github.com/Sirupsen/logrus
After manually changing from 'sirupsen' to 'Sirupsen'
it started giving another error:
github.com/docker/docker/pkg/discovery.test imports
github.com/go-check/check<EMAIL_ADDRESS>parsing go.mod:
module declares its path as: gopkg.in/check.v1
but was required as: github.com/go-check/check
pls let me know what dependency is required or any change in config. file

Hi! I also encountered this issue but I was lucky enough to solve it with sed(1) and find(1):
sudo find<EMAIL_ADDRESS>\
    -type file -name "*.go" -exec sed -i -e 's/Sirupsen/sirupsen/g' {} \;

This basically swaps Sirupsen by sirupsen on every file. Note we use sudo because permissions within $GOPATH are 0444 (i.e. readonly), which means we can not edit the files as a 'normal' user. You can also try to chown +w /path/to/file each of them if that's your jam!
I did find that the import statement was trying to include log "github.com/Sirupsen/logrus" with:
grep -R Sirupsen<EMAIL_ADDRESS>
As go points out, the module's go.mod does use the path with sirupsen instead of Sirupsen.
If this is a mistake on our end I would be delighted to know: that way I won't run into the issue again!
I would be happy to submit a PR with the changes in case that's something you'd appreciate.
Thanks for your time!

Trying to sed around this is a no-go (sic) for CI/CD.
This is a real mess. I somehow seems to get along now with these replaces in my go.mod, so that a go mod tidy then works:
replace github.com/Sirupsen/logrus => github.com/sirupsen/logrus v1.8.1

replace github.com/coreos/bbolt => go.etcd.io/bbolt v1.3.6

replace google.golang.org/grpc => google.golang.org/grpc v1.26.0

Please see my update above, as the replaces worked for go mod tidy but I only later hit build errors. After diving into the vendoring of @moby/moby I could build a plugin binary using the specific replace for github.com/docker/libnetwork.
Did I mention that this is messy...?


Multiple Description-Types are not output

Where a publisher has reported multiple description types, these are not always returned in the output XML.
See example query: https://iatidatastore.iatistandard.org/search/activity?q=iati_identifier:(DE-1-198365595)&wt=xslt&tr=activity-xml.xsl&rows=5000000
See activity description in published data:

See activity description in DS output:

This is now working as expected - ticket can be closed.


main error compiling

C:/SGDK/bin/mkdir -p src/boot
C:/SGDK/bin/mkdir -p out
C:/SGDK/bin/mkdir -p out/src
C:/SGDK/bin/mkdir -p out/res
C:/SGDK/bin/gcc -m68000 -Wall -fno-builtin -Iinc -Isrc -Ires -IC:/SGDK/inc -IC:/
SGDK/res -BC:/SGDK/bin -O3 -fuse-linker-plugin -fno-web -fno-gcse -fno-unit-at-a
-time -fomit-frame-pointer -flto -c main.c -o out/main.o
C:/SGDK/bin/gcc -m68000 -Wall -fno-builtin -Iinc -Isrc -Ires -IC:/SGDK/inc -IC:/
SGDK/res -BC:/SGDK/bin -O3 -fuse-linker-plugin -fno-web -fno-gcse -fno-unit-at-a
-time -fomit-frame-pointer -flto -c src/main.c -o out/src/main.o
  "out/res/gfx.o out/res/sound.o out/res/sprite.o out/main.o out/src/main.o"
echo > out/cmd_
C:/SGDK/bin/gcc -BC:/SGDK/bin -n -T C:/SGDK/md.ld -nostdlib out/sega.o @out/cmd_
 C:/SGDK/lib/libmd.a C:/SGDK/lib/libgcc.a -o out/rom.out
out/src/main.o (symbol from plugin): In function `main':
(.text+0x0): multiple definition of `main'
out/main.o (symbol from plugin):(.text+0x0): first defined here
make: *** [out/rom.out] Error 1

I solved it, the problem was that I had two main.c files.


does not generate files ?

For my list of https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG I want to give a simple example of using your generator ( yes, of course, I will add the other nuget packages)  . The simplest one is with
[JSAutoGenericInterop(
    TypeName = "Storage",
    Implementation = "window.localStorage",
    Url = "https://developer.mozilla.org/docs/Web/API/Window/localStorage",
    GenericMethodDescriptors = new[]
    {
        "getItem",
        "setItem:value"
    })]

public interface ILocalStorageService
{
}

I put into csproj
<ItemGroup>
    <PackageReference Include="Blazor.Serialization" Version="8.0.0" />
    <PackageReference Include="Blazor.SourceGenerators" Version="8.0.0" OutputItemType="Analyzer">
    </PackageReference>
  </ItemGroup>

	<PropertyGroup>
		<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
		<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
	</PropertyGroup>

But the files generated  into
BlazorApp1\BlazorApp1\obj\GX\Blazor.SourceGenerators\Blazor.SourceGenerators.JavaScriptInteropGenerator
are not containing any AddLocalStorageServices();
for builder.Services.AddLocalStorageServices();
Please tell me what I am doing wrong.
Added the project to can reproduce the issue.
BlazorApp1.zip

Just now getting to this, sorry about that. Here's an example of how to consume the source generator:
https://github.com/IEvangelist/blazorators/blob/b41b4940b101288c61a4cc33bdf314be2b295f11/src/Blazor.LocalStorage/Blazor.LocalStorage.csproj#L64-L66
This is a ProjectReference but it should be the same for the PackageReference, perhaps try this:
<PackageReference Include="Blazor.SourceGenerators"
                  Version="8.0.0"
                  OutputItemType="Analyzer"
                  SetTargetFramework="TargetFramework=netstandard2.0"
                  ReferenceOutputAssembly="false">
</PackageReference>

I have put the package reference
Still have error
error CS1061: 'IServiceCollection' does not
contain a definition for 'AddLocalStorageServices' and no accessible extension method 'AddLocalStorageServices' accept
ing a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly refe
rence?)
The files generated on obj/GX are
BlazorHostingModel.g.cs
JSAutoGenericInteropAttribute.g.cs
JSAutoInteropAttribute.g.cs
RecordCompat.g.cs
Attached the project . If you build, there are more files generated in obj/GX ?
BlazorAppFullRef1.zip

Oh I see, the interface needs to be partial. Change it to this:
[JSAutoGenericInterop(
    TypeName = "Storage",
    Implementation = "window.localStorage",
    Url = "https://developer.mozilla.org/docs/Web/API/Window/localStorage",
    GenericMethodDescriptors = new[]
    {
        "getItem",
        "setItem:value"
    })]

public partial interface ILocalStorageService
{
}

Now it works .
Also, I have to add a globals.cs for
global using Microsoft.JSInterop;
global using BlazorApp2; // this is the namespace where the interface resides

because the generating code is
internal readonly IJSInProcessRuntime;

I guess our clue should have been to look at the existing package that generates based on this 🤣:
https://github.com/IEvangelist/blazorators/blob/b41b4940b101288c61a4cc33bdf314be2b295f11/src/Blazor.LocalStorage.WebAssembly/ILocalStorageService.cs#L4-L17
Can we close this now?

Yes, I have what I need : https://ignatandrei.github.io/RSCG_Examples/v2/docs/Blazorators


[bug]: windows path

https://github.com/lencx/vite-plugin-rsw/issues/8#issuecomment-873985326

Because I don’t have a windows computer, you may need to verify it for me. Thanks 🙏

Hi @lencx , thanks for patch. This partially fixes it. But there are two issues

When I have two wasm imports in one page first one of them works and with second one I get the same url error. When I have just one it all works fine

I also get this message in console, not sure if it is ok:

wasm.4e83ef3d.js:1 WebAssembly.instantiateStreaming failed because your server does not serve wasm with application/wasm MIME type. Falling back to WebAssembly.instantiate which is slower. Original error:
TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
(anonymous) @ wasm.4e83ef3d.js:1
async function (async)
(anonymous) @ wasm.4e83ef3d.js:1
e @ wasm.4e83ef3d.js:1
async function (async)
e @ wasm.4e83ef3d.js:1
(anonymous) @ wasm.4e83ef3d.js:1
vendor.9e7a6d01.js:26 [Violation] 'click' handler took 1521ms

This does not seem to be a plugin problem, you can try to run rsw && vite build --force or npm run dev --force.

Dev works fine, the issue is only with build. Maybe it is latest vite, I will try again

Okay, looking forward to your feedback.

@lencx i just tried again and get the same. First one works fine and with second one I get:
wasm.20b16b66.js:1 Uncaught (in promise) TypeError: Failed to construct 'URL': Invalid URL
    at n (wasm.20b16b66.js:1)
    at wasm.20b16b66.js:1

Also when I try with vite-SSG, i get this error during build:
[vite-plugin-pwa] `new URL(url, import.meta.url)` is not supported in SSR.
file: C:/ui-playground/rsw-test/pkg/rsw-test.js:116:16
114: async function init(input) {
115:     if (typeof input === 'undefined') {
116:         input = new URL('rsw-test_bg.wasm', import.meta.url);
                     ^
117:     }
118:     const imports = {};
Error: `new URL(url, import.meta.url)` is not supported in SSR.
    at error (C:\ui-playground\node_modules\.pnpm\rollup@2.52.8\node_modules\rollup\dist\shared\rollup.js:164:30)
    at throwPluginError (C:\ui-playground\node_modules\.pnpm\rollup@2.52.8\node_modules\rollup\dist\shared\rollup.js:19277:12)
    at Object.error (C:\ui-playground\node_modules\.pnpm\rollup@2.52.8\node_modules\rollup\dist\shared\rollup.js:19926:20)
    at Object.error (C:\ui-playground\node_modules\.pnpm\rollup@2.52.8\node_modules\rollup\dist\shared\rollup.js:19453:38)
    at Object.transform (C:\ui-playground\node_modules\.pnpm\vite@2.4.1\node_modules\vite\dist\node\chunks\dep-cc49d7be.js:50723:30)
    at Object.<anonymous> (C:\ui-playground\node_modules\.pnpm\vite@2.4.1\node_modules\vite\dist\node\chunks\dep-cc49d7be.js:51204:33)
    at C:\ui-playground\node_modules\.pnpm\rollup@2.52.8\node_modules\rollup\dist\shared\rollup.js:20131:25 {
  pos: 3247,

@husayt Please install version v1.6.5, #13 has been fixed.


How to use

i know this is very basic but i dont know how to install and use this because i dont see any explanation on how to use this here

Everything you need to know is in README.md I have no idea how you could've missed it.

idk which things are the "wrapper libraries" so im not sure how to use it

As stated by README.md, the easy way would be to use BetterJSONs. Otherwise, you could use it to manually launch the game using a command line.

BetterJSONSs contain all of the game libraries + wrapper dependencies, while build.gradle specifies LaunchWrapper dependencies.

but it says only for launcher with same as vanilla launcher

If you are using Official Launcher (or any other launcher which follows the same versions folder structure)
e. g. TL Legacy (or as it is called now Legacy Launcher), TLauncher, the Official Minecraft Launcher from minecraft.net. I'm sure there are plenty more implementations.

Pick one, install and run the game the easy way. You don't look like you're ready to do it manually

ok


Table viz, sorting by column "version" is broken in Chrome

I'm reporting a bug which is really about DataTables more than Caravel, but it may affect Caravel users.
We have table visualizations with a version field (e.g. our app version), and sorting by that column breaks in Chrome.
The issue is that DataTables attempts to auto detect dates, which is not working properly on Chrome. Here's the issue:
https://github.com/DataTables/DataTables/issues/874
Let's monitor for a new version of DataTables that hopefully will fix this. I'll keep an eye on it.

Temporary fix is to edit caravel/assets/node_modules/datatables.net/js/jquery.dataTables.js and comment out lines 14769-14771:
		//"date-pre": function ( d ) {
		//	return Date.parse( d ) || 0;
		//},

Then re-run npm run prod (or npm run dev).

Oh interesting. Thanks for documenting / sharing. You can keep track of our npm dependencies and wether they are updated here:
https://david-dm.org/airbnb/caravel?path=caravel/assets

It's been fixed, closing.


⚠ Mobitopup has degraded performance

In aaba377, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 9673 ms

Resolved: Mobitopup performance has improved in 95e0634 after 23 minutes.


watching a boolean yields a control

If you do a watch on a boolean value, you get a boolean control rather than a display of the boolean value:

display true/false now.


Bug: Can't add Google Drive folders to libraries

Description
When you try to add a Google Drive folder to a library, nothing happens. The same is true when trying to remove it.
If you try to do it from Explorer, everything works fine
I don't know if this issue affects other network drives
Steps To Reproduce

Open properties for a library (e.g. Pictures)
Navigate to LIbrary
Add a Google Drive folder & save
Refresh the page
See that nothing has changed
Re-open the properties window
See that the folder is not in Locations

Requirements

Being able to add Google Drive folders to libraries
Being able to remove Google Drive folders from libraries

Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.2070
Log File
debug.log

Nevermind, it seems to work fine in Dev


fix regarding https://github.com/xerial/sqlite-jdbc/pull/184

Based on the comment of illumi in the closed issue https://github.com/xerial/sqlite-jdbc/pull/184 I changed the code and added a test.

OK. Thanks for the fix.


TFLite: Manipulating the hardware accelerators is not allowed in the Task library currently. Only CPU is allowed

Hello,
I am trying to run the image classification code here. It works fine until I switch to the NNAPI option in the device. When I do that it throws the following error:
2021-04-05 15:26:22.086 23313-23349/org.tensorflow.lite.examples.classification E/tensorflow: ClassifierActivity: Failed to create classifier.
    java.lang.IllegalArgumentException: Manipulating the hardware accelerators is not allowed in the Task library currently. Only CPU is allowed.
        at org.tensorflow.lite.examples.classification.tflite.Classifier.<init>(Classifier.java:169)
        at org.tensorflow.lite.examples.classification.tflite.ClassifierQuantizedEfficientNet.<init>(ClassifierQuantizedEfficientNet.java:33)
        at org.tensorflow.lite.examples.classification.tflite.Classifier.create(Classifier.java:90)
        at org.tensorflow.lite.examples.classification.ClassifierActivity.recreateClassifier(ClassifierActivity.java:147)
        at org.tensorflow.lite.examples.classification.ClassifierActivity.lambda$onInferenceConfigurationChanged$0$ClassifierActivity(ClassifierActivity.java:126)
        at org.tensorflow.lite.examples.classification.-$$Lambda$ClassifierActivity$83lGy2TUjuj0M5n4BhMB9qlLgSY.run(Unknown Source:8)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:233)
        at android.os.HandlerThread.run(HandlerThread.java:67)

I am using Xiaomi Mi 11 as the test device (Snapdragon 888, Adreno 660) with the latest updates. Could you please help me with this issue?
Thanks!

@lintian06 could you triage this issue?

The Java API doesn't support acceleration yet, but we are working actively to enable it. Please stay tuned.

Hi, I'm also working on using a object detection on the snapdragon 888. Have you already been able to make use of the hexagon dsp ?  Maybe via the hexagon 1.21 delegate or nnapi ?

Through Task library, it's not supported yet. But you can leverage the TFLite Interpreter API. See the example here. Follow the instruction here to add the hexagon delegate.

Thanks for your answer. So if I understand correctly you are using the hexagon 1.21 delegate example from tensorflow ? For me it keeps telling me about incompatibility issues with the version so I thought it might be because of the fact that snapdragon 888 is not yet supported ?!

@karimnosseir Can you please help to take a look at this issue? Thanks!

This is similar to https://github.com/tensorflow/tensorflow/issues/47246
888 is a new hardware and different that doesn't work with Hexagon NN.

@lu-wang-g  do you want to keep the issue for Java API acceleration support.

Thanks @karimnosseir! I'll close the issue for now. Stay tuned for the upcoming updates about the Java acceleration support. Feel free to reopen this issue for any questions.


Energy value

Hello, I'm using multiple_lookup with RM2 and SP2. I operate fine with both.
I have problem with the value of energy of SP2, because always inform "None" even when SP2 is on and connected with a tv on for example.

Sorry,
what kind of SP2 device do you have? Could you please send a link to the shop or photo?
Are you sure it has energy consumption feature?

good question, I think all of SP2 have this functionality. This is the link: http://www.dx.com/p/broadlink-sp-mini3-smart-socket-wi-fi-timer-for-ios-or-android-white-457762#.W1Cf69UzaUk

No, this model (SP mini3) doesn't have it
You need SP2 or SP3S

ok thanks


Import error in Python 2.7 after installing

Getting the below error while trying to import fasttext

ImportError: /home/<name>/anaconda2/envs/dev/lib/python2.7/site-packages/fasttext/fasttext.so: undefined symbol: _ZTVNSt7_E

fasttext.so: undefined symbol: _ZTVNSt7_E

This is happen because fasttext is not compiled successfully or problem in the anaconda stuff #88.
Can you try reinstall it again?
pip install -U fasttext


Improve CI permissions, auto-merge maintainability, and clarity

This makes several changes to GitHub Actions workflows, which would create merge conflicts if submitted separately, and which even aside from that seemed, to varying degrees, like they would make more sense to do together than separately. But the commits are divided in such a way that breaking this up into a sequence of a few separate PRs would be easy to do, if preferred. There is also an associated recommendation for a change in the repository's settings.
The changes in this PR are as follows:
Use read-only github.token everywhere feasible
This PR sets permissions: explicitly in each workflow and, where different jobs don't all need the same permissions, in individual jobs as well. The permissions are only what each job needs and, in particular, write permissions are given only to the jobs that really require it (the jobs that create or modify releases in the release workflow).
This change is not needed to safeguard against threats from malicious pull requests, and has no effect on such risks. Its primary significance to security is that it slightly decreases the risk from supply-chain attacks. Many GitHub Actions jobs run code from numerous transitive dependencies and other sources. (I say "slightly" because it does not affect the risk when running commands locally, when creating releases, or when using releases.) Secondarily, this may also decrease risks from unintentional vulnerabilities or other bugs in dependencies or in workflows themselves.
The reason this is unrelated to threats from malicious PRs is that, when PRs that originate from forks trigger the pull_request event, jobs in workflows triggered by that event already automatically get a read-only github.token. (This repository currently does not define any workflows that trigger on the pull_request_target or workflow_run events, which would have additional security implications.)
Specific details of this change are given in f41a58c.
I recommend also setting the default permissions of GitHub tokens in GitHub Actions jobs to read-only, by going to Settings → Actions → General and, under Workflow permissions, changing it from "Read and write permissions" to "Read repository contents and package permissions". That way, if a job is ever introduced with no explicit permissions in its definition or the containing workflow, the token will be read-only rather than read-write. That can be done at any time. Doing so without making any other changes will break the release workflow until the workflow is modified to specify the necessary write permissions (a change that this PR includes).
Style workflows more consistently and slightly more spaciously
This applies the prevailing style everywhere, except that it puts blank lines between the top-level nodes of a job. (This does not change the spacing between steps, but rather between, for example, steps itself and other things at the same level.)
It also makes some other improvements, such as replacing the last actions/checkout@master with actions/checkout@v4, quoting env values when the absence of quotes makes them boolean or numeric in YAML (since they are still turned into strings to be placed in the environment, and the string representations are not always obvious), and removing an unnecessary env key of CI, which is guaranteed to be set to true by the runner.
Some of these improvements are directly motivated by the goal of preventing the addition of explicit permissions from making workflows and job definitions harder to read. Those are in 7eeeee2. In view of those, it seemed like a good idea to include the others, which otherwise would conflict with this PR or might conflict with other subsequent PRs, and which are conceptually along the same lines, but because they are not needed to allow permissions to be added without confusion, they are done in a separate commit, 44ff412.
Bump cargo-diet version and express the logic more cleanly
87670a6 bumps cargo-diet to the latest stable version and makes some improvements to the steps, including splitting it into separate installation and running steps and making the running step continue-on-error, instead of writing || true after the command that (through a just rule) runs cargo diet.
Provide richer log output for tests-pass
20794ff adapts a comment in tests-pass to be a step name, so everything is clear in logs even if the reader is unfamiliar with the workflow.
Detect new jobs that may be intended to block auto-merge
This only affects the ci.yml workflow, where the tests-pass job stands in for all the jobs that are meant to block PR auto-merge, by being set up as a required job and depending on the others (#1551). It intentionally does not depend on all jobs in the workflow: of course it does not depend on itself, and it also does not depend on test-fixtures-windows (#1657, #1663). Another change in this PR, described below, also causes it no longer to depend on wasm.
That existing situation unfortunately makes it easy to add a job that it doesn't depend on, by simply forgetting to add it or forgetting to make a decision on whether the new job should block PR auto-merge.
The solution is to maintain two lists of jobs that are checked to ensure are disjoint and form, as their union, all jobs defined in ci.yml. A job to check this is added in 4e672ef, 7b7a819, and eba50ae.
Make the wasm jobs fail the workflow but not block auto-merge
Prior to the changes in this PR, the WebAssembly jobs would report a successful conclusion even if they failed, by using the continue-on-error key at the job level. This was needed to keep them from blocking auto-merge, but only because wasm was listed as a dependency of tests-pass. This changes it so that it will report a failing conclusion (and thus fail the workflow) but not prevent PR auto-merge from working.
Since these jobs are expected to pass--if they fail then it indicates a regression in WASM compatibility, and they rarely fail--this seems like a more suitable approach. See 253b716e for full details.
More broadly, although I do not propose adopting any rule about it, I think we should be reluctant to use continue-on-error at the job level in ci.yml, ever since branch protection rules and required checks for auto-merge have been set up and (since #1551) made partially configurable in the workflow file:

The granularity of having jobs that unambiguously fail but do not block automatic merging seems like it should usually capture the situation where the failure represents something important but that nonetheless would not be out of the ordinary to dismiss.
Other than to represent something that is temporarily broken but intended to be fixed immediately, it would be strange to have a job triggered by push or pull_request whose failure doesn't represent something important, since such a job should usually either not exist or not run automatically.
This reasoning only applies to continue-on-error at the job level and not, for example, in a specific step of a job that has at least one step not marked continue-on-error.

But I do not know of any way for one job to depend on specific matrix jobs while not depending on others. This is inapplicable to the wasm job definition because, although it uses a matrix strategy, the current intent is that neither job generated from it block PRs. But it does apply to the cargo deny job definition, whose advisories job is marked continue-on-error, while its bans licenses sources job is not.
This is a simple job definition, which could be broken up into two non-matrix job definitions with minimal code duplication. It seems to me that this should be done, so that a new advisory causes the job to have a failing conclusion and fail the workflow even as it does not block PRs. I had originally planned to include that in this PR, but I decided not to do so, since the question of whether to do shoud probably be considered separately. There are some interesting subtleties, such as in the effect on when commands like @dependabot merge will go ahead with a merge (relevant because Dependabot security updates are created for all ecosystems, even though github-actions is the only ecosystem that gets Dependabot version updates).
That advisories job is currently failing--both here and if it is re-run on main--due to RUSTSEC-2024-0384 (https://github.com/sebcrozet/instant/issues/52), announcing that instant is unmaintained and web-time should be used instead. I had initially hoped to fix that here, but it is not feasible to do so: we use instant only as a transitive dependency through other crates that are not part of this repository and whose dependencies should be updated to use web-time. That situation is unaffected by any changes in this PR.
Update other GitHub-specific YAML configuration
e45ea25 removes the old Dependabot configuration file for the cargo ecosystem, and adds a comment to the current Dependabot configuration file to explain why that ecosystem is not included. The explanation only links to #144, but accounts for the full current situation (see #143, #144, https://github.com/GitoxideLabs/gitoxide/pull/1254#issuecomment-1898089062, and #1357).
4564a64 removes the empty pull request template file, as discussed in #1667.
(These changes are done here rather than in a separate PR because I was already editing dependabot.yml for style, and also because, as detailed above, I had originally planned to include other changes that might affect Dependbot indirectly, but that are deferred so they can be reviewed separately.)

I didn't expect that updating dependencies in Cargo.lock (5173e9a) would be able to fix the cargo deny advisories error about depending on the unmaintained instant crate yet, but it looks like it has. Thanks!
I had totally missed that this could already be fixed easily, because I didn't realize that fastrand had completely stopped depending on instant since 2.0.0 due to https://github.com/smol-rs/fastrand/commit/eb78d89d4a25157778b744a54b8cc207c7480170 (https://github.com/smol-rs/fastrand/pull/60), and we had been depending on an earlier version than that. Sorry about my inaccurate claim that the dependency on instant was not possible to remove in this PR!

Thanks so much for this massive improvement! I can't wait to see it merged and adjust the auto-merge configuration to listen to tests-pass instead of a long list of individual jobs.

You give me too much credit, because the improvements here are not needed for that, though I believe they do make it easier to keep it working properly. tests-pass was introduced in #1551 and has been appropriate to mark as the solely required check in ci.yml since there. I am also pretty sure that you have already made it so, since none of the other checks show as required in PRs since around that time.
#1551 did not make it possible for tests-pass to substitute for listing checks from other workflows as required, but nothing in this PR extends it in that way, either. As far as I know, there is no change to this repository's required checks (or any other branch protection related settings) that should be done following the merge of this PR.

CI failed here on 5173e9a with a very strange error. It can be examined by expanding the annotations show at the top of that page. The error reports that the GHA runner machine was out of disk space. Although it's possible for a new dependency to have a bug that causes massively increased disk space usage, I think that's probably not the cause, because the error does not happen for that same commit on my fork. My guess is that it might go away if the workflow is re-run, which I recommend trying.

You give me too much credit, because the improvements here are not needed for that, though I believe they do make it easier to keep it working properly. tests-pass was introduced in #1551 and has been appropriate to mark as the solely required check in ci.yml since then. I am also pretty sure that you have already made it so, since none of the other checks show as required in PRs since around that time.
Edit: Yes, this was reported as done in #1551 (comment).
#1551 did not make it possible for tests-pass to substitute for listing checks from other workflows as required, but nothing in this PR extends it in that way, either. As far as I know, there is no change to this repository's required checks (or any other branch protection related settings) that should be done following the merge of this PR.

Oh, I see, thanks for the clarification. I was on an entirely different page there apparently.
No space left on device
For posterity, here is the way the runner itself crashes:

System.IO.IOException: No space left on device : '/home/runner/runners/2.320.0/_diag/Worker_20241112-075012-utc.log'
at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan1 buffer, Int64 fileOffset)    at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()    at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)    at System.Diagnostics.TextWriterTraceListener.Flush()    at GitHub.Runner.Common.HostTraceListener.WriteHeader(String source, TraceEventType eventType, Int32 id)    at GitHub.Runner.Common.HostTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)    at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String message)    at GitHub.Runner.Worker.Worker.RunAsync(String pipeIn, String pipeOut)    at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args) System.IO.IOException: No space left on device : '/home/runner/runners/2.320.0/_diag/Worker_20241112-075012-utc.log'    at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan1 buffer, Int64 fileOffset)
at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.Diagnostics.TextWriterTraceListener.Flush()
at GitHub.Runner.Common.HostTraceListener.WriteHeader(String source, TraceEventType eventType, Int32 id)
at GitHub.Runner.Common.HostTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)
at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String message)
at GitHub.Runner.Common.Tracing.Error(Exception exception)
at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args)
Unhandled exception. System.IO.IOException: No space left on device : '/home/runner/runners/2.320.0/_diag/Worker_20241112-075012-utc.log'
at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.Diagnostics.TextWriterTraceListener.Flush()
at System.Diagnostics.TraceSource.Flush()
at GitHub.Runner.Common.TraceManager.Dispose(Boolean disposing)
at GitHub.Runner.Common.TraceManager.Dispose()
at GitHub.Runner.Common.HostContext.Dispose(Boolean disposing)
at GitHub.Runner.Common.HostContext.Dispose()
at GitHub.Runner.Worker.Program.Main(String[] args)

So it looks like writing a trace to a log fails during normal operation, and that even before anything happens.

The cache is pretty big, but no reason to fail this soon.
On the current try, it gets to running the tests at least and I will keep watching it - maybe it works now and all this was no more than a bad (and transient) dream.

It really does fail when trying to compile:
   Compiling gix-protocol v0.46.0 (/home/runner/work/gitoxide/gitoxide/gix-protocol)
   Compiling gix-status v0.14.0 (/home/runner/work/gitoxide/gitoxide/gix-status)
   Compiling gix-merge v0.0.0 (/home/runner/work/gitoxide/gitoxide/gix-merge)
   Compiling gix-worktree-state v0.14.0 (/home/runner/work/gitoxide/gitoxide/gix-worktree-state)
   Compiling gix-negotiate v0.16.0 (/home/runner/work/gitoxide/gitoxide/gix-negotiate)
   Compiling gix-mailmap v0.25.0 (/home/runner/work/gitoxide/gitoxide/gix-mailmap)
   Compiling tracing-forest v0.1.6
   Compiling gix v0.67.0 (/home/runner/work/gitoxide/gitoxide/gix)
   Compiling gix-fsck v0.7.0 (/home/runner/work/gitoxide/gitoxide/gix-fsck)
   Compiling env_logger v0.10.2
   Compiling gitoxide-core v0.42.0 (/home/runner/work/gitoxide/gitoxide/gitoxide-core)
rustc-LLVM ERROR: IO failure on output stream: No space left on device
rustc-LLVM ERROR: IO failure on output stream: No space left on device
error: could not compile `gitoxide-core` (lib)
warning: build failed, waiting for other jobs to finish...
error: could not compile `gix` (lib)
error: Recipe `journey-tests-async` failed on line 220 with exit code 101
Error: Process completed with exit code 101.

And then the log gets truncated so when looking at it again, it seems like not much happened. Let me try something….

:tada:

The #1671 test PR here passes initially, and then fails after cherry-picking 5173e9a from here. So the increased space usage is triggered by upgrading the crates, somehow. Maybe this is due to dependencies being heavier, but my guess is that it is instead due to there being more stuff that has to be generated rather than obtained from the GitHub Actions cache. Alternatively, maybe the problem is that it retrieves data from the cache and saves them, and the size of those data, some of which can't be used, combined with the files that are generated, is too big.

Yes, I think it's that!
Now the cache is basically useless, yet it consumes a lot of space. Alternatively, I could have cleared it, probably lovering the footprint significantly.
Now I deleted all caches, 35GB of 10GB available, way above the limit, and think that it might now work with the extra clearing which can cut down the build time a little, presumably.
Also, I think caches will become more inefficient over time as also Cargo doesn't delete old caches, so keeps various versions of the same crate around, each time it changes. At least…so I think, judging by the continuously growing crashes on my disk.

Why is it useless? Is this because, since 132696d, the data that make it worthwhile are now deleted in the ci-test rule when it calls clear-target before calling journey-tests? If so, this would apply only to the test job, and not to any other jobs, right?

Thanks for picking this up. I was blunt with words, and think "inefficient" would have been better. It's probably never useless, it is just reduced in value to the point where it might cost more to maintain the cache than the time it saves.

If the files where this happens are in the target directory, then I think at least in principle the exclusion of files whose modification time is older than 2 weeks should prevent it from growing in this way. That assumes, of course, that the original mtimes metadata are set on files retrieved from the GHA cache. I have not checked to see if that is the case.

While looking up the docs I did realize that I knew nothing at all about how it works - it's much more adapted to the task than I thought. Here is an excerpt:

In particular, the workspace crates themselves are not cached since doing so is https://github.com/Swatinem/rust-cache/issues/37#issuecomment-944697938. For this reason, this action automatically sets CARGO_INCREMENTAL=0 to disable incremental compilation, so that the Rust compiler doesn't waste time creating the additional artifacts required for incremental builds.

If that environment variable actually carries over, then the worst offender of huge target directories would be no more. However, it will still hash its output, even if regenerated from scratch, so multiple versions of the same crate will still be created.
If the 2-week rule holds, then at least there is a limit on how many of those duplicates it would pick up. This also means that dependencies that don't change a lot and remain stable - the case for the majority of the dependency graph - they might fall out of the cache even though they are still very useful.

Whether that would make anything faster or make the total size of all caches smaller is another question; I am not sure. In addition, there is the problem that the rust-cache action seems like it might not be designed to easily facilitate sharing across separate jobs (Swatinem/rust-cache#205).

Making Windows jobs faster would of course be great, but I wouldn't push it if rust-cache isn't made for that.
Regarding the total size of caches, here it was 35GB of 10GB, so I think they are generous in enforcing such limits and I personally wouldn't care about cache-size reduction related to the overall amount stored by GitHub. I would care, however, about the size of the individual cache, but don't think there is any influence. A world where the cache only contains files that are actually used is probably never going to happen.

I certainly have no objection to characterizing caching as useless when its goal is to decrease overall load or running time but instead it increases it. I would also call that useless. (The software used to do the caching can of course still be useful in many, even most, other cases, where it does provide savings.) So it didn't seem to me that you were too blunt at all. Instead, I wanted to understand the source of the inefficiency, as well as figure out if there are any current uses of the rust-cache action in this project's workflows that should be removed.
As it currently stands (with 132696d), the benefit of caching build artifacts in the CI test job seems fairly low, because we:

Retrieve cached artifacts, which are those that support whatever build steps were run between the last cargo clean and writing the cache.
Run check doc unit-tests.
Run clear-target, which runs cargo clean.
Run ci-journey-tests.
Cache artifacts from builds done as part of ci-journey-tests, since others were cleaned.

This is to say that we cache artifacts for ci-journey-tests, but ci-journey-tests never sees those artifacts. Instead, check, doc, and unit-tests get those artifacts, and they may be able to use some of them, since we are talking about dependencies, but it is probably not nearly as good as if they got the artifacts produced from those steps. Then both the artifacts from ci-journey-tests that were retrieved from the cache, and other artifacts from check doc unit-tests, are removed, and ci-journey-tests has to start off with a fresh build.
If the foregoing analysis is correct, then we should try out at least one of these changes in the hope that it will improve running time:

Not use the GitHub Actions cache for the CI test job, or
Split the test job into two jobs, at the breaking point where we are running ci-journey-tests, by splitting out the running of journey tests to a new job. Then it would no longer be necessary to delete artifacts.

The second approach is elegant in that it splits the jobs where they are effectively almost being split by the running of cargo clean. At first glance it seems like a perfect solution. But I am actually skeptical: it might turn out that, with what seems to be an increased size of build artifacts for dependencies ever since Cargo.lock was updated, this would--precisely because it would manage to cache everything we want to cache--cause the cache to grow too big.
But I think it's worth trying, so I'll open a PR for it.
In addition, this change might be justified for reasons unrelated to caching, in that it would allow for more parallelism across runners.

If that environment variable actually carries over

Fortunately, it does.

However, it will still hash its output, even if regenerated from scratch, so multiple versions of the same crate will still be created.

Is this due to the effect of builds being nondeterministic, or something else?

Making Windows jobs faster would of course be great, but I wouldn't push it if rust-cache isn't made for that.

In that case, I will hold off, for now, on attempting to cause different jobs to share caches.

Regarding the total size of caches, here it was 35GB of 10GB, so I think they are generous in enforcing such limits and I personally wouldn't care about cache-size reduction related to the overall amount stored by GitHub.

They are generous in the sense that new cache entries are created and old entries are not always immediately dropped. But my understanding of the documentation is that, while it's fine for the cache to grow bigger than 10 GB from time to time, this could significantly worsen performance when it happens frequently:

If you exceed the limit, GitHub will save the new cache but will begin evicting caches until the total size is less than the repository limit. The cache eviction process may cause cache thrashing, where caches are created and deleted at a high frequency. To reduce this, you can review the caches for a repository and take corrective steps, such as removing caching from specific workflows. For more information, see "Managing caches."

This is to say that we cache artifacts for ci-journey-tests, but ci-journey-tests never sees those artifacts. Instead, check, doc, and unit-tests get those artifacts, and they may be able to use some of them, since we are talking about dependencies, but it is probably not nearly as good as if they got the artifacts produced from those steps. Then both the artifacts from ci-journey-tests that were retrieved from the cache, and other artifacts from check doc unit-tests, are removed, and ci-journey-tests has to start off with a fresh build.

I think on top of that is the issue of having so many feature toggles, which make reuse of workspace dependencies (i.e. gix* crates) unlikely between unit tests and journey tests. Ultimately, I'd think that the only effective portion of the cache is the one for external dependencies.

But I think it's worth trying, so I'll open a PR for it. The running time of the CI test job has increased to about 20 minutes, and maybe this can speed things up. Even if not, it could help with that for reasons unrelated to caching, in that it would allow for more parallelism across runners.

That's exciting, let's try that!

However, it will still hash its output, even if regenerated from scratch, so multiple versions of the same crate will still be created.

Is this due to the effect of builds being nondeterministic, or something else?

It's deterministic, at least that's a goal, but what I am suggesting is that each code change will cause a new file to be created. The build output changes, and so does the hashed portion of the filename of the build artefact.
But I'd take my 'ideas' with a grain of salt as it's really just that, an idea on how this works based on using it. There is certainly more to it, and I have seen cache-trashing happening when switching between compiler versions in the same project, or when changing environment variables, which is something I'd expect not to be present if that hashing-story was entirely true.

hey are generous in the sense that new cache entries are created, and in that old entries are sometimes dropped gradually rather than immediately. But my understanding of the documentation is that, while it's fine for the cache to grow bigger than 10 GB from time to time, this could significantly worsen performance when it happens frequently:

Even that didn't happen here. Or if it happened, it happened too slowly. After all it seemed easy to generated caches larger than 10GB. After deleting the cache a couple of days ago entirely, it's now approaching 10GB already and I didn't work on gitoxide at all. I will keep watching.

That's exciting, let's try that!

I hope to open a PR soon. In the mean time, I've opened the question #1673 to inquire about something that may help keep things clear in the changes in that forthcoming PR, but that I believe need not block that PR.

Thanks for the hint - it's disabled now.


Support for Targeted Property Refresh in /actuator/refresh Endpoint

Question :
Hello @spring-cloud-issues, @spring-cloud Team,
I'm currently using the Spring Boot Actuator's /actuator/refresh endpoint to refresh my application's properties. However, I've noticed that the endpoint triggers a full refresh of all property sources. The issue with this approach is that some encrypted properties always cause Spring beans to reinitialize.
I wanted to confirm if there's any support for a more granular refresh mechanism, where specific properties or beans can be targeted for refresh instead of reloading the entire property source. If this isn't supported, are there any plans to introduce this feature in future releases?

Please don't open the same issue across multiple projects.  Closing in favor of
https://github.com/spring-cloud/spring-cloud-commons/issues/1370


[RFC] Adding Module Support

There was talk on slack this morning about adding some sort of Module support for Slim, allowing our users to share chunks of functionality.
Please feel free to comment on the API and the idea itself.
SlimModuleManager
How to use:
new SlimModuleManager(Slim\App $app)
    ->addModule($path_to_config_file);

Manager Class
class SlimModuleManager {

    protected $container;

    public function __construct(Slim\Container $container) {
        $this->container= $container;
    }

    public function addModule($namespace, Slim\ModuleConfig $config) {
        $container = $this->container[$namespace];
        $config->__invoke($container);
    }

    public function addModuleRoutes(Slim\App $app, Slim\ModuleConfig $config) {
        $config->regsiterRoutes($app);
    }

    public function getContainer() {
        return $this->container;
    }
}

Module Config
interface ModuleConfig {
    public function __invoke(Slim\Container $container);
    public function registerRoutes(Slim\App $app);
}

Usage
include "../vendor/autoload.php";

$slimModuleManager = new SlimModuleManager(new Slim\Container([]));

$authModule = new \Geggleto\Auth\ModuleConfig();
$slimModuleManager->addModule('auth', $authModule);

$app = new Slim\App($slimModuleManager->getContainer());

//If Applicable
$slimModuleManager->addModuleRoutes($app, $authModule);

What is a module
A module would be itself a self-contained Slim Application or part of it. A module is a set of objects that get loaded into the Slim Application Container, or a set of actions that add to the Slim Application.
How to install a module
php composer.phar require 'yourslim/module'

You will then need to setup Composer to autoload these packages. Adding a psr-4 autoload directive for each module you include.
Slim Module

A module will load it's contents into the Slim Application DIC
Contains a configuration file which will be executed to "setup" the module

File Structure

config.php <== Module configuration file, you can organize how its structured from there, This should not contain route information
src/ | app/ | module/ <== Target the PSR-4 namespace
routes.php

Alternative Approach
Multiple Slim Apps
https://github.com/geggleto/hydra

What is the scope of a Module? Your example
//If Applicable
$slimModuleManager->addModuleRoutes($app, $authModule);

implies that a Module would handle the rendering of pages as well? How would that work?
If you want your site to be rendered using PHP-View, but your Auth Module rendered pages using Twig-View, that seems kind of silly and ludicrous.
There is also the problem of consistency in the styling of the page, since Slim is a framework and doesn't have an existing CSS class selection to abide by, Modules could implement anything, and require CSS which conflicts with your actual sites CSS.
While it sounds like a nice idea, imo it seems kind of out of scope of what a Micro Framework should offer? At Least for your example.


[WIP] add --cert-principal-map

Closes #6967
cc @piyush-singh for visibility: The docs and the review comments might help guide your acceptance testing efforts :)

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/33ca546f67f13ba4ae4f74011a9e38c4bd6e081f/
Edited pages:

v20.1/create-security-certificates-openssl.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/951e3db58504cc0b1680b93d5007d008a74052ad/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

@dbist via Slack:
Maybe adding example of first client with root and second client with maxroach user is useful? Just the fact you need create user maxroach; not to be forgotten

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @dbist and @petermattis)

v20.1/create-security-certificates-openssl.md, line 189 at r1 (raw file):
Previously, Amruta-Ranade (Amruta Ranade) wrote…
After poking at this, I think this is borne out of how certificate use changed per RFC 5280.
commonName used to be is expected to represent the dns hostname or IP of a server but ultimately it's just a printable string.
The subjectAltName extension is meant to eventually replace commonName because it adds typing to the subject value.
Today, it is incumbent on the consumer to check both fields as the RFC states "The subject name MAY be carried in the subject field and/or the subjectAltName extension."
We know that CRDB now can do this courtesy of cockroachdb/cockroach#45819 meaning that the value of the commonName field doesn't actually matter as long as the correct value(s) appear in the subjectAltName(s).
The configuration immediately above would result in the commonName being set to "DNS:node.crdb.io" which isn't a valid URL, but because it is correctly represented as a DNS entry in subjectAltName as node.crdb.io it doesn't matter.
It doesn't hurt anything to have it in both places today but it doesn't help either.
On an aside according to RFC 5280 "If subject naming information is present only in the subjectAltName extension (e.g., a key bound only to an email address or URI), then the subject name MUST be an empty sequence and the subjectAltName extension MUST be critical."
I was able to get OpenSSL to generate a certificate that matches this pattern with the below modifications but haven't yet had time to test it against the database.
In ca.cnf replace "commonName = supplied" with "commonName = optional"
For 'node.cnf' I removed the commonName from the distinguished_name section and set subjectAltName as critical.
# OpenSSL node configuration file
[ req ]
prompt=no
distinguished_name = distinguished_name
req_extensions = extensions

[ distinguished_name ]
organizationName = Cockroach

[ extensions ]
subjectAltName = critical,DNS:localhost,DNS:node,IP:<IP_ADDRESS>

This is confusing :)
For now, I feel it's safer to recommend setting all values in both commonName and subjectAltName, especially since things seem to be in flux. Is that okay?

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/3086c5e5dd73a313d4248d6832ad258014d0e5b5/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

I went through the steps without a hitch. I think the following nits will improve the overall document.

In the root client creation section, rephrase repeat steps 1-5 for each additional client to refer to step 5. creating cert for clients other than root.

Oh, I had a question about this as I was writing it and forgot to ask it in the channel: Should I just delete steps 5 and 6 from the "create certs for root" section? We expect the users to connect to the cluster using their local machine using the root cert, right? Not upload the cert anywhere?

rename Step 5 to say: create cert for client other than root.

Done. Renamed to "Create the certificate and key pair for a non-root client"

In step 5.1, creating additional clients, rephrase create client.cnf to create or reuse the one used for root user. It is the same content, just note to change commonName for each additional user.

Good catch. I meant to say "edit" instead of "create". Is that the right way though? Should they reuse the file or create a new one for each client?

in the step to start cluster, I'd include <fqdn,nodename>. Check with others on the thoughts?

cc @aaron-crl for thoughts

In Peter's document, he provided a step to introspect certificates, I think it's valuable to add here for both client and node certs at the end of each respective certificate creation sections.
openssl x509 -in node-certs/node.crt -text | grep "X509v3 Subject Alternative Name" -A 1

            X509v3 Subject Alternative Name: critical
                DNS:localhost, DNS:node.example.com, IP Address:<IP_ADDRESS>

openssl x509 -in client-certs/client.root.crt -text | grep CN=
        Issuer: O=Cockroach, CN=Cockroach CA
        Subject: O=Cockroach, CN=root

openssl x509 -in client-certs/client.roach.crt -text | grep CN=
        Issuer: O=Cockroach, CN=Cockroach CA
        Subject: O=Cockroach, CN=roach

Oooh...That's a great idea! Added!

finally, add a step to use the client cert in the very last step
cockroach sql --certs-dir=client-certs --user=roach

Done.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/5f35157a2d108b867dcba808e5e778071132df8d/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

since we're using placeholders, perhaps --user=roach should say --user=<username>

Yes..sorry. Fixed.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/cbc5f56cea296d17239ff2dff99e7e1456a49c41/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

@petermattis in my tests with openssl, single directory did not work either. The error was similar to ```
ERROR: failed to generate client certificate and key: client/server node certificate has principals ["node.crdb.io" "localhost" "Artems-MBP" "*.local" "<IP_ADDRESS>::1"], expected "node"
Failed running "cert create-client"

We may want to change the default certificate lifespans to bring usage in line with what OSX and Chrome expect per: https://github.com/cockroachdb/docs/issues/6946#issuecomment-601339317
Namely:

In ca.cnf change default_days to 365
Change lifespan for the CA from 3660 to 365 days
Remove -days 1830 override from the cert generation code leaving the default 365 to propigate from the CA config.

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @Amruta-Ranade, @dbist, and @petermattis)

v20.1/create-security-certificates-openssl.md, line 77 at r1 (raw file):
Previously, Amruta-Ranade (Amruta Ranade) wrote…
I'd like to see that error if you can generate it? It doesn't make sense to me that it should fail.

Same error as Artem's:
ERROR: failed to generate client certificate and key: client/server node certificate has principals ["node.crdb.io" "localhost" "Artems-MBP" "*.local" "<IP_ADDRESS>::1"], expected "node"
Failed running "cert create-client"

v20.1/create-security-certificates-openssl.md, line 250 at r1 (raw file):

    $ scp node-certs/ca.crt \
    node-certs/node.crt \
    Node-certs/node.key \

Does this break something? Node vs node?

Oh, good point. Haven't checked that yet. Will report back.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/9dc5d68d52159059083bddc219a79a74c6a12fc5/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f2c68eda23e842108d08d735aa9246a77ab79f84/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

v20.1/create-security-certificates-openssl.md, line 77 at r1 (raw file):
Previously, Amruta-Ranade (Amruta Ranade) wrote…
I'd like to see that error if you can generate it? It doesn't make sense to me that it should fail.

Same error as Artem's:
ERROR: failed to generate client certificate and key: client/server node certificate has principals ["node.crdb.io" "localhost" "Artems-MBP" "*.local" "<IP_ADDRESS>::1"], expected "node"
Failed running "cert create-client"

I'm having trouble reproducing this. Here's my test script that works with a single directory and separate ones:
BE CAREFUL IT AUTOMATICALLY KILLS THE PROCESS AND DELETES CERT FILES
export CCERTS=client-certs
#export NCERTS=node-certs
export NCERTS=$CCERTS
export CADIR=my-safe-directory

kill -9 $( ps | grep start-single-node | grep -v "grep" | sed 's/$ +//g' | cut -f1 -d \ )

rm index.txt* *.csr serial.*

rm -rf $CCERTS
rm -rf $NCERTS
rm -rf $CADIR

mkdir $CCERTS
mkdir $NCERTS
mkdir $CADIR

mkdir $CADIR
openssl genrsa -out $CADIR/ca.key 2048
chmod 400 $CADIR/ca.key

mkdir $NCERTS/
openssl req -new -x509 -config ca.cnf -key $CADIR/ca.key -out $NCERTS/ca.crt -days 3660 -batch
rm -f index.txt serial.txt
touch index.txt
echo '01' > serial.txt
openssl genrsa -out $NCERTS/node.key 2048
chmod 400 $NCERTS/node.key
openssl req -new -config node.cnf -key $NCERTS/node.key -out node.csr -batch
openssl ca -config ca.cnf -keyfile $CADIR/ca.key -cert $NCERTS/ca.crt -policy signing_policy -extensions signing_node_req -out $NCERTS/node.crt -outdir $NCERTS/ -in node.csr -days 1830 -batch
openssl x509 -in $NCERTS/node.crt -text | grep "X509v3 Subject Alternative Name" -A 1

mkdir $CCERTS
cp $NCERTS/ca.crt $CCERTS
openssl genrsa -out $CCERTS/client.root.key 2048
chmod 400 $CCERTS/client.root.key
openssl req -new -config client.cnf -key $CCERTS/client.root.key -out client.root.csr -batch
openssl ca -config ca.cnf -keyfile $CADIR/ca.key -cert $CCERTS/ca.crt -policy signing_policy -extensions signing_client_req -out $CCERTS/client.root.crt -outdir $CCERTS/ -in client.root.csr -days 1830 -batch
openssl x509 -in $CCERTS/client.root.crt -text | grep CN=

cockroach start-single-node --certs-dir=$NCERTS --cert-principal-map=node.localhost:node --background

However, the CLI seems to validate the principle name appears in the node cert before using the client cert to connect.
For example:
My SAN entry for my node cert is:
[ extensions ]
subjectAltName = critical,DNS:node,DNS:node.localhost,IP:<IP_ADDRESS>

And I get the below error:
$ cockroach sql --certs-dir=client-certs
#
# Welcome to the CockroachDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
ERROR: x509: certificate is valid for node, node.localhost, not localhost
Failed running "sql"

But if I add localhost to the node cert, I'm able to connect just fine as root.
[ extensions ]
subjectAltName = critical,DNS:node,DNS:node.localhost,DNS:localhost,IP:<IP_ADDRESS>

$ cockroach sql --certs-dir=client-certs
#
# Welcome to the CockroachDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
# Server version: CockroachDB CCL v20.1.0-beta.4 (x86_64-apple-darwin14, built 2020/03/24 01:31:53, go1.13.5) (same version as client)
# Cluster ID: 765314c3-f249-48d1-8747-7bb59c315ed3
#
# Enter \? for a brief introduction.
#
root@:26257/defaultdb>

I'm going to update https://github.com/cockroachdb/cockroach/issues/47300 to narrow it to CLI client only since it sounds like these issues are related.

My SAN field has localhost in it and it still doesn't work with a single directory :(
I also need help troubleshooting the root:client mapping.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/b9c709f1474fc3c38591b8b99a196031aeb74571/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

Note to self: Check if it makes sense to have instructions to upload certs to nodes/clients and also ask users to create a local cluster to test stuff. The older instructions (the ones abt uploading certs) may no longer be relevant.

Update: Aaron and I confirmed that the single directory approach doesn't work. Documenting the two-directory approach for 20.1 unless we get a patch in before the release.
cc @petermattis @dbist for visibility.

Update: Aaron and I confirmed that the single directory approach doesn't work. Documenting the two-directory approach for 20.1 unless we get a patch in before the release.
cc @petermattis @dbist for visibility.

For context (I'll write this up in its own issue tomorrow with repro steps) the cockroach sql command seems to load node certificates first if it finds them in the --certs-dir, then any others. If the node certs are not in the --certs-dir (or if they are not named node.crt and node.key) then the client ignores them and loads the client.root.* files.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/5f4794c45ca2db9ac78b9f629ded71045c176287/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

@Amruta-Ranade here's my write-up with single directory and --url instead.
mkdir certs my-safe-directory
openssl genrsa -out my-safe-directory/ca.key 2048
chmod 400 my-safe-directory/ca.key
openssl req -new -x509 -config ca.cnf -key my-safe-directory/ca.key -out certs/ca.crt -days 365 -batch
rm -f index.txt serial.txt
touch index.txt
echo '01' > serial.txt
openssl genrsa -out certs/node.key 2048
chmod 400 certs/node.key
openssl req -new -config node.cnf -key certs/node.key -out node.csr -batch
openssl ca -config ca.cnf -keyfile my-safe-directory/ca.key -cert certs/ca.crt -policy signing_policy -extensions signing_node_req -out certs/node.crt -outdir certs/ -in node.csr -batch
openssl x509 -in certs/node.crt -text | grep "X509v3 Subject Alternative Name" -A 1
openssl genrsa -out certs/client.root.key 2048
chmod 400 certs/client.root.key
openssl req -new -config client.cnf -key certs/client.root.key -out client.root.csr -batch
openssl ca -config ca.cnf -keyfile my-safe-directory/ca.key -cert certs/ca.crt -policy signing_policy -extensions signing_client_req -out certs/client.root.crt -outdir certs/ -in client.root.csr -batch
openssl x509 -in certs/client.root.crt -text | grep CN=
# removing .pem files is only required once with a single directory
rm -rf certs/*.pem
cockroach start-single-node --certs-dir=certs --cert-principal-map=node.example.com:node,user.example.com:root --background
cockroach sql --url 'postgresql://root@node.example.com:26257?sslcert=certs%2Fclient.root.crt&sslkey=certs%2Fclient.root.key&sslmode=verify-full&sslrootcert=certs%2Fca.crt'

# create another user called `user2.example.com` as that's what's it's called in client.cnf `DNS:user2.example.com`, you can use another name like user2 but you have to strip `.example.com` from every step including file names.

# in sql shell
create user 'user2.example.com';
\q
openssl genrsa -out certs/client.user2.example.com.key 2048
chmod 400 certs/client.user2.example.com.key
openssl req -new -config client.cnf -key certs/client.user2.example.com.key -out client.user2.example.com.csr -batch
openssl ca -config ca.cnf -keyfile my-safe-directory/ca.key -cert certs/ca.crt -policy signing_policy -extensions signing_client_req -out certs/client.user2.example.com.crt -outdir certs/ -in client.user2.example.com.csr -batch
openssl x509 -in certs/client.user2.example.com.crt -text | grep CN=
cockroach sql --url 'postgresql://user2.example.com@node.example.com:26257?sslcert=certs%2Fclient.user2.example.com.crt&sslkey=certs%2Fclient.user2.example.com.key&sslmode=verify-full&sslrootcert=certs%2Fca.crt'

Updated the instructions to use the connection URL instead of cockroach sql. This takes care of the single/separate directory issue as well as the cert mapping issue 🎉
cc @aaron-crl @dbist @petermattis for final checks/approvals.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/4f1c3f157b912a08db4c50e1d115e5a71c8423ff/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

aside from mentioning to remove .pem file once because all of them will reside in the single certs dir, this looks good to me.

Updated as discussed on Slack.

The client.cnf file for additional users is missing SAN but it's not a deal breaker. Mine looks like so
[ extensions ]
subjectAltName = email:user2@example.com,DNS:user2.example.com,DNS:user2

The reason I didn't include SAN in the second user's conf is that we aren't mapping the second user to a DB principal, whereas in the first user's conf, we are mapping the user to root. It makes things clearer to me to see what's mapped and what isn't. But I might be mistaken. cc @aaron-crl for input.

which demonstrates this user is not root and also referenced by short name user2. Again not major. This is long and painful, great job, thank you for sticking with it! LGTM after removing .pem.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/41cea8f6f8415cf01cbdf20e0b92a0f895e2d6b7/
Edited pages:

v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

I noticed a difference in the first and second url, for the root user, you didn't include place holder <username_1> in cockroach sql --url='postgres://root@node.example.com:26257/?sslmode=verify-full&sslrootcert=certs/ca.crt&sslcert=certs/client.user.crt&sslkey=certs/client.user.key&sslmode=verify-full' and cockroach sql --url='postgres://node.example.com:26257/?sslmode=verify-full&sslrootcert=certs/ca.crt&sslcert=certs/client.user.crt&sslkey=certs/client.user.key&sslmode=verify-full' both work but it's probably best to be explicit. I noticed it because my url did not include username for root so I just copied that for user2 and got tripped up, only after I explicitly added user@node then it worked cockroach sql --url='postgres://user2@node.example.com:26257/?sslmode=verify-full&sslrootcert=certs/ca.crt&sslcert=certs/client.user2.crt&sslkey=certs/client.user2.key&sslmode=verify-full'. It is not a big deal but maybe for consistency sake I suggest to add `<username_1>@ to the first mention of url.

I noticed a difference in the first and second url, for the root user, you didn't include place holder <username_1> in cockroach sql --url='postgres://root@node.example.com:26257/?sslmode=verify-full&sslrootcert=certs/ca.crt&sslcert=certs/client.user.crt&sslkey=certs/client.user.key&sslmode=verify-full' and cockroach sql --url='postgres://node.example.com:26257/?sslmode=verify-full&sslrootcert=certs/ca.crt&sslcert=certs/client.user.crt&sslkey=certs/client.user.key&sslmode=verify-full' both work but it's probably best to be explicit. I noticed it because my url did not include username for root so I just copied that for user2 and got tripped up, only after I explicitly added user@node then it worked cockroach sql --url='postgres://user2@node.example.com:26257/?sslmode=verify-full&sslrootcert=certs/ca.crt&sslcert=certs/client.user2.crt&sslkey=certs/client.user2.key&sslmode=verify-full'. It is not a big deal but maybe for consistency sake I suggest to add `<username_1>@ to the first mention of url.
Otherwise LGTM!

I didn't add <username_1> for the first URL because it doesn't work 😕It gives the following error: ERROR: password authentication failed for user maxroach Failed running "sql"
It works without the username because it assumes root, which I believe is a safer way than specifying<EMAIL_ADDRESS>Pls correct me if I am wrong.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/14eddb9edf07a4433e870f880a1e5e0a366297cb/
Edited pages:

v20.1/cockroach-start-single-node.md
v20.1/cockroach-start.md
v20.1/create-security-certificates-openssl.md

it works with the following configuration file
[ req ]
prompt=no
distinguished_name = distinguished_name
req_extensions = extensions

[ distinguished_name ]
organizationName = ExampleCorp
commonName =<EMAIL_ADDRESS>
[ extensions ]
subjectAltName = email:user@example.com,DNS:user.example.com,DNS:user,DNS:root

my user2 client.cnf file is like so:
[ req ]
prompt=no
distinguished_name = distinguished_name
req_extensions = extensions

[ distinguished_name ]
organizationName = ExampleCorp
commonName =<EMAIL_ADDRESS>
[ extensions ]
subjectAltName = email:user2@example.com,DNS:user2.example.com,DNS:user2

my command to start the cluster
start-single-node --certs-dir=certs --cert-principal-map=node.example.com:node,user@example.com:root --background
Again, it's a matter of preference but at least we know the reasoning was intentional.


Fix atom-spacing, add text-mode fonts, and miscellany

Complete fix for spacing between groups.

Complete implementation of TeX rules for devolving bin atoms to ord.
Fix class of \llap and \rlap.
Mark delimiters as open and close appropriately.
Internals cleanup.

Add \mathop, \mathrel, etc. class-setting commands.
Add \stackrel.
Support \atop.
Text-mode improvements.

Do not apply italic correction to characters in text mode; TeX does not.
Combine adjacent spans when possible, improving browser font rendering.
Support \text{rm,it,bf,tt,sf,sc,normal}.

Symbol improvements.

Add text-mode support for several symbols and punctuations.

This is one PR rather than several because I've already spent more time on this than I can afford. Thanks for KaTeX.

@kohler wow, this is an epic PR... so many new features and bug fixes!  Each commit look pretty self contained so I'll just merge this without squashing.

Great set of changes! I've looked through them, and wrote down some comments and questions.
Re 9afac38da71a99dc31c5d77f4100140caa1b56e3: The \atopfrac is artificial, not a real TeX command, right? Is there an AMS command which has the same effect but follows the \‹name›{‹group1›}{‹group2›} convention? If not, perhaps we should use some artificial name which can't be generated as a token by the lexer. Something like \atop-frac or even atop-frac should work, I think, since at that point the leading \ is irrelevant.
Re 8882bb538540a8d363cd525e15ff8ddd10401622: See https://github.com/Khan/KaTeX/pull/261#issuecomment-114797510 and following comments for prior discussion. To make it short, as far as I understand it the consensus regarding unicode mappings was to either verify that some Unicode-supporting TeX implementation does handle the symbols like this, or to put them behind some opt-in guard. Otherwise we risk incompatibility with Unicode-aware TeX versions. Unlikely in this case, I think, but it's hard to draw the line. So I'll leave it to others to decide whether a conflict of this kind is sufficiently unlikely in this case.
Re eccf74e2a2cee4b233c19ced199ff95fd5bccb45: As you only use toplist[0], the rest of that argument apparently gets discarded. Is that what TeX does, too?
Re e0b5d0a8711151ad0f20f1dc27d4a08ccc88885b: Out of curiosity (and for future reference), have you found this in a book, in the TeX sources, or by dumping TeX data structures?
Re 161337215b981d94e2c8a9b6432fc3e575cda6df: I'd avoid modifying the classes argument: that may lead to surprises as it's kind of unexpected from the perspective of the caller.
Re 1448c371ccaaae07316a0b44499f68f8c42e6005: Can you point out the TeX book chapter or similar where the rules for italic correction are spelled out?
Re c05e323931bcde92c8ec97e7254cf30435ca7921: The changes in the screenshots are pretty small. Perhaps I should try to create a visual diff of these, if I find the time.
Re 6a1aa76e4c2cf90be5c0dc8573360f13d87e7064: Can we rely on the small-caps variant getting rendered in a sufficiently compatible fashion on all platforms, or could some browsers decide to use an installed font which has a built-in small-caps variant instead of generating small caps from the named font? How come we don't need metric information for the small caps variant here?

Great! Comments all addressed in latest commits.
Re 9afac38: Yes, \atopfrac is artificial. I couldn’t find an AMS equivalent; people suggest \genfrac. Using a non-typeable name seems reasonable.

Re 8882bb5: See #261 (comment) and following comments for prior discussion. …

I can only partially understand that comment chain; but to your question, yes, pdfeTeX supports these symbols (curly quotes, en dash, em dash) with the meanings I assign.
\documentclass{article}
\RequirePackage[utf8]{inputenc}
\begin{document}
“hello”
‘hello’
—hello
–hello
\end{document}

Re e0b5d0a: Out of curiosity (and for future reference), have you found this in a book, in the TeX sources, or by dumping TeX data structures?

Dumping TeX data structures and looking at sources.

Re eccf74e: As you only use toplist[0], the rest of that argument apparently gets discarded. Is that what TeX does, too?

Very nice catch!! This was a bug. The correct thing to pass is just top since supsubs are special. Updated the test.

Re 1613372: I'd avoid modifying the classes argument: that may lead to surprises as it's kind of unexpected from the perspective of the caller.

OK

Re 1448c37: Can you point out the TeX book chapter or similar where the rules for italic correction are spelled out?

There is an index reference to “italic corrections” in the texbook. p441 is where it is said that italic corrections are added to characters encountered in math mode. Elsewhere is where it is said that italic corrections are not added in horizontal mode.

Re 6a1aa76: Can we rely on the small-caps variant getting rendered in a sufficiently compatible fashion on all platforms, or could some browsers decide to use an installed font which has a built-in small-caps variant instead of generating small caps from the named font? How come we don't need metric information for the small caps variant here?

Shrug. The PR’s textsc is better than nothing but the answers to your questions are not the ones you want. If you don't want a halfway-decent-but-not-perfect textsc, then I will remove textsc from the PR.
I also added another commit which supports, in text mode, TeX’s ligatures ?` and !`, which compile to ¿ and ¡. (TeXbook page 51)

Actually you probably don’t want that last commit (2434621) b/c the katex fonts lack the ¿ and ¡ characters, so the browser must fall back to its default fonts.

I've updated the PR according to the comments above, and removed ¡ ¿ \textsc. Hopefully we're good.

@kohler LGTM.  Thanks again for all of these awesome changes.

Thanks! FWIW I think the following issues are closed by this & the previous PR: #563; #541; #534; #530 (sort of: we have \stackrel, not \buildrel); #498; #474; #468; #432; #424; #404; #30.

@kohler thanks for listing out all of those issues.  I'll close them tomorrow.

This is really awesome PR. Do you guys know when we could expect release including this changes.

@astoilkov we're going to try to do one either before the end of the year or earlier in the new year.

Perfect. Thanks so much for the information @kevinbarabash


Stronghold HD/Crusader HD

The game keep lagging when move camera/zoom in zoom out and crashing sometimes

hm, seems to be working fine for me. Do you use any custom settings in cnc-ddraw? Can you give me your ddraw.ini?

i no have issue in this game, my ini https://gist.github.com/Mitradis/a1763b93a536cb7576d370743d9430e6

https://gist.github.com/darky7669/d0873a5b00bb4a7b799623cd4bf5a7c4

Ah, looks like you enabled this here:

Any reason why you did that? This will enable the slow gdi renderer, which doesn't perform too well in combination with borderless mode

i have enabled all settings

i tried Mitradis`s settings and works great

nice :+1:


Addition of "Delete Data" Page in Admin WebApp

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Expected/desired behavior

An option to add a delete data section within the Admin app to remove documents that have been indexed previously or by mistake during testing.

Thanks! We'll be in touch soon.

Merged and this functionality was included


Do not permit write file share

This was intentional.  Was there a specific issue or failure related to this code?
The filesize/timestamp are found within the first 1k bytes of a binary (or so).  The specific use case here is that if there's a debugger (like windbg) or a parallel process containing ClrMD that's in the process of writing the file we could possibly succeed in validating that the file they are currently writing and not attempt to re-download that file.
The subsequent File.Open where we use it does not allow write (so we wouldn't attempt to use a file being written, we'd hit an IOException there and that's fine).

The filesize/timestamp are found within the first 1k bytes of a binary (or so). The specific use case here is that if there's a debugger (like windbg) or a parallel process containing ClrMD that's in the process of writing the file we could possibly succeed in validating that the file they are currently writing and not attempt to re-download that file.

Ideally makes sense. IIRC WinDbg doesn't create the PE file before the download is complete, and ClrMD doesn't pre-allocate the full file size when downloading (which is necessary because the PE reader validates the metadata size). Any thoughts?

Good point.  I haven't ever tested it and I'm not going to maintain it so I'll merge this one.

What's worse, File.Create used by SymbolServerLocator specifies FileShare.None by default.
https://github.com/microsoft/clrmd/blob/4d94633b03eba2d88f81b0841654925210d3fe62/src/Microsoft.Diagnostics.Runtime/src/Implementation/SymbolServerLocator.cs#L244


Memory error

I tried to use your program on ReactOS. At first, I thought it is about ReactOS and created an issue. But it turned out to be that the issue is about the code.
As Mark Jansen pointed out, the issue is in memory allocation of your code. Zeroing the allocated memory before using is advised by him.

Merged #2


Teams Rooms media Creation Failure

This appears to be a common issue, but again Teams room createsrsmedia.ps1 script is asking for a version of Windows that is unable to be downloaded from VLSC. The version it is asking for is 19041.631, please update this

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

Microsoft support wasn't any help they just advised to get that specific version and that they don't control the script to update it. I just manually edited the script to accept the version I was supplying to proceed.