feature: document the alias for priority as order

Did you check the docs?

[X] I have read all the lazy.nvim docs

Is your feature request related to a problem? Please describe.
I was having trouble with the numToStr/Comment.nvim plugin getting initialized before nvim-treesitter, so I set the order value as order = 1 for treesitter and order = 2 for Comment. I had seen this config field in a colorscheme config which I use. This didn't work, so I put 2 for treesitter and 1 for comment and now the initialization happened correctly. So I just wonder if order is an (maybe depreciated) alias for the priority plugin spec key?
Otherwise, maybe the modules precompilation/bytecode/Jit-caching might have gone out of sync or similar.
Describe the solution you'd like
If it is the case, document that order is a depreciated alias for priority as it occurs in some plugin "in the wild".
Describe alternatives you've considered
Order is not in fact an alias for the priority plugin schema key.
Additional context
Maybe I should just check the sourcecode but I'm afraid it might be vast. Someone else probably knows this and is already knowledgeable about the source.

Your alternative is correct:

Order is not in fact an alias for the priority plugin schema key.

There is no field order in the relevant source code, nor in the documentation
Kindly close this issue.

This is not an issue with folke config.
However I am curious as to why restarting Neovim twice would cause the code invocation to change. I understand that comepiled or jitted LUA modules are cached by a Lazy mechanism so I wounder if that would be able to produce some observable side-effects. I really enjoy this project by the way, makes it super easy to get "instant startup" with Neovim.

That's interesting indeed. I would be highly surprised if the caching mechanism is related to the observed behavior.
Can I use this config to reproduce?

I have only seen it happen once (but I had a feeling it occurred in the past).
The "trigger" was a little complex. Working on this commit, I had invoked ts_context_commentstring setup twice so the plugin integration would break (a typescript jsx-tag would be commented as //).
I removed the call without the enable_autocmd option being set and restarted Neovim which still used a wrong commentstring. I added order = 1 and 2 in the plugin spec:s and restarted Neovim at which point the proper context-sensitive comment was produced. I run Neovim 0.9.5 on Windows 11 with Nvy. I feel bad about only having produced this error once though before reporting it.

You wrote:

I was having trouble with the numToStr/Comment.nvim plugin getting initialized before nvim-treesitter, so I set the order value as order = 1 for treesitter and order = 2 for Comment. I had seen this config field in a colorscheme config which I use. This didn't work, so I put 2 for treesitter and 1 for comment and now the initialization happened correctly

I was under the impression the above described a reproducible scenario. Is that correct?
If this only happened once, there is really no way to test if the caching scenario is involved.
You can always delete the cache from XDG_CACHE_HOME/nvim/luac.

I feel bad about only having produced this error once though before reporting it.

No worries...)


WinINet not caching images, probably because .net core 3.1

I've got a .Net Core 3.1 WPF project, the bitmap caching stuff doesn't seem to work, I suspect it's an issue with the .Net Core implementation. I havent investigated further to confirm, but if anyone else runs into it the dedicated caching mode should work.

It should work but it doesn't.
Line #83 that reads
var response = await request.GetResponseAsync();
Throws a System. Exception with a message: "Specified argument was out of the range of valid values. (Parameter 'value')


Minor cleanup

Removed unnecessary code
Updated hardcoded value to use INVALID_FILE_SIZE
Changed implementation to use the preferred GetFileSizeEx()

looks good

re-opened and clicked "Confirm Merge"


Refactor CourseCreationDossier and fix endpoint to initiate course creation

Subtask to the user story #7
Description: Change CourseCreationDossier to CourseCreationRequest and give it reference to the dossier it belongs to (modify controller/service/repository for creation so it's associated to a dossier). Also, fix some logic in the endpoint InitiateCourseCreation in CourseService.cs
[Story Points: 2]
[Priority: High]
[Risk: Medium]

The following video was sped up by x2 to trim the video length (the initial video was 2m38s) because its file size exceeded 10 MB which is too big for GitHub.
https://github.com/JamesPartsafas/ConcordiaCurriculumManager/assets/66841718/36854e0b-a6dc-4084-8aab-baebe0f5759b


Support val

http://projectlombok.org/features/val.html

+1

+1

+1

@akozlova Where are you added this feature ( com.intellij.psi.augment.PsiAugmentProvider#inferType ), it 's some branch in commons repo, or not?

it's in master, corresponding EAP would be available shortly

14.1 EAP is out. Let's rock!

Nice!
Right now I can use:
        val lombokAllTheThings = "Lombok val test";
        Log.d("LOMBOK", lombokAllTheThings);

It builds and runs properly. I still get IntelliJ complaining about incompatible types: lombok.val vs String.
Looking forward to have it nice and clean :+1:

@hamen You can build the latest plugin and have it nice and clean :smile: There are some issues however, such as if you try assigning a val it doesn't show an error saying it is final.

@samrg472 Thank you! I'll give it a try then :)

:+1:

:+1:

Version 0.9.0 of plugin is available now. It contains some work for this issue, feel free to test and comment it.

GREAT! thanks. I'll start with lombok this weekend to possibly integrate it with CAS:
https://github.com/Jasig/cas/issues/475

:+1:

So val correctly works in IDEA 14.1 but doesn't work in IDEA 14. Am I right?

Yes, support (extension point) for val is providing only by IntelliJ 14.1 and later.

gr8. Thank you

Basic support available with plugin version 0.9.2 and IntelliJ 14.1


Add a parameter to disable load dotenv using Flask CLI

Running Flask CLI with pipenv using the new version(1.0)
pipenv run flask run

I always get the tip message about the load_dotenv feature. Since pipenv already load the .env file, It might be interesting have some parameter to disable Flask to load .env and does not show the tip message.
Expected Behavior
Disable load dotenv using the Flask CLI. Example:
pipenv run flask run --ignore-dotenv

Or just remove the tip message and let it only in the documentation.
Actual Behavior
Showing the dotenv tip message even if the developer doesn't want to use it
* Tip: There are .env files present. Do "pip install python-dotenv" to use them
Environment

Python version: 3.6.4
Flask version: 1.0
Werkzeug version: 0.14.1

The tip is harmless for you since you know that you have loaded .env with pipenv. It is useful to other people, they have a .env file, but .env seems not work.

I see his point though, this kind of "tip" gets very annoying quickly when you see it on every startup...

pipenv is using: PIPENV_DONT_LOAD_ENV
$ PIPENV_DONT_LOAD_ENV=1 pipenv shell

How about we use FLASK_DONT_LOAD_ENV.

@lepture I like the idea to use the same approach as pipenv with enviroment variable instead to add a new parameter

Thoughts on FLASK_LOAD_ENV=0 instead of FLASK_DONT_LOAD_ENV=1?

@davidism that seems weird to me. If a env var is not set, I think its value is None/False.

I'm going with FLASK_SKIP_DOTENV, as suggested in the PR. I think it more clearly describes what's happening.


For better edit relation structure

Normally when I have to draw relationships I have to correct them because they are not connected between the related fields.
I have DBs with hundreds of reports.
It is best to automatically create a connection to the correct fields and not to the center of the table.
If this is not possible it would be better to allow the connection to be moved.
If this is also not possible, allow it by pressing CTRL or ALT.
https://user-images.githubusercontent.com/96785200/198214874-2546d335-7f31-4029-a475-70f2ef0a0bd2.mp4

@paoloholzl Hi, one of our routing algorithms points directly to columns. It still has some drawbacks, but it works in most cases. You can select it in ERD Settings. Write me if it helps.

Thank you for the idea.

@paoloholzl Hi, one of our routing algorithms points directly to columns. It still has some drawbacks, but it works in most cases. You can select it in ERD Settings. Write me if it helps.

I thank you.
Since for now I have arranged them by hand I see to wait for them to integrate the modification into the program.
If it doesn't happen within a few months, I'll let you know.


improvement support load into mow table

Proposed changes
Issue Number: close #xxx
support load into mow table.
For the table of the unique model, after enabling the merge on write feature, the aggregate type is none, which causes spark load to fail to preprocess.
Therefore, when generating the configuration, process the table with merge on write enabled, and set the aggregate type of the non-key column to replace.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 47.3 seconds
stream load tsv:          530 seconds loaded<PHONE_NUMBER>9 Bytes, about 134 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          64 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.0 seconds inserted 10000000 Rows, about 344K ops/s
storage size:<PHONE_NUMBER>9 Bytes

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 48.15 seconds
stream load tsv:          535 seconds loaded<PHONE_NUMBER>9 Bytes, about 133 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          64 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          29.1 seconds inserted 10000000 Rows, about 343K ops/s
storage size:<PHONE_NUMBER>9 Bytes


3368 - adding svgs in static dir and tests

You presumably need to remove the existing SVGs from src/images? Otherwise they'll be doubled up in the repository.

sigh - excellent point (thought I had). Updated!


Allow local_serial/serial consistencies for read consistency.

As per documentation https://docs.datastax.com/en/cassandra-oss/2.2/cassandra/dml/dmlConfigConsistency.html both LOCAL_SERIAL and SERIAL are allowed levels for CONSISTENCY doing Read operations (to make sure read is done after all pending writes in LWT).
Currently there's a workaround to use integer instead of atom, but this is nice QoL change ;)

Thanks @bluesbettle for the contribution! Sorry for being so late in taking it in!


Fix aruco regressions with 4.8

All the opencv_contrib aruco testcases do not work anymore.
Fix them (maybe even add ours) to get a better coverage.
Some methods are now broken (since 4.8) and not tested at all.
Missing coverage (and broken):

[ ] refineDetectedMarkers
[ ] interpolateCornersCharuco
[ ] estimatePoseCharucoBoard

Broken existing tests, because the data files moved from contrib to opencv core docs.

[x] fixed by PR #3707

bin/opencv_test_aruco

CTEST_FULL_OUTPUT
OpenCV version: 4.9.0-dev
OpenCV VCS version: 4.9.0-251-g3aefd4862c
Build type: Debug
Compiler: /usr/lib64/ccache/c++  (ver 13.2.1)
[<EMAIL_ADDRESS>global registry_parallel.impl.hpp:96 ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
Parallel framework: pthreads (nthreads=4)
CPU features: SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?
Intel(R) IPP version: ippIP AVX2 (l9) 2021.10.1 (-) Dec  6 2023
Intel(R) IPP features code: 0x8000
[<EMAIL_ADDRESS>global ocl.cpp:1185 haveOpenCL Initialize OpenCL runtime...
[<EMAIL_ADDRESS>global ocl.cpp:1191 haveOpenCL OpenCL: found 1 platforms
[<EMAIL_ADDRESS>global ocl.cpp:983 getInitializedExecutionContext OpenCL: initializing thread execution context
[<EMAIL_ADDRESS>global ocl.cpp:993 getInitializedExecutionContext OpenCL: creating new execution context...
[<EMAIL_ADDRESS>global ocl.cpp:1011 getInitializedExecutionContext OpenCL: device=gfx902:xnack+
OpenCL Platforms:
    AMD Accelerated Parallel Processing
        dGPU: gfx902:xnack+ (OpenCL 2.0 )
Current OpenCL device:
    Type = dGPU
    Name = gfx902:xnack+
    Version = OpenCL 2.0
    Driver version = 3602.0 (HSA1.1,LC)
    Address bits = 64
    Compute units = 3
    Max work group size = 256
    Local memory size = 64 KB
    Max memory allocation size = 1 GB 716 MB 819 KB 200 B
    Double support = Yes
    Half support = Yes
    Host unified memory = No
    Device extensions:
        cl_khr_fp64
        cl_khr_global_int32_base_atomics
        cl_khr_global_int32_extended_atomics
        cl_khr_local_int32_base_atomics
        cl_khr_local_int32_extended_atomics
        cl_khr_int64_base_atomics
        cl_khr_int64_extended_atomics
        cl_khr_3d_image_writes
        cl_khr_byte_addressable_store
        cl_khr_fp16
        cl_khr_gl_sharing
        cl_amd_device_attribute_query
        cl_amd_media_ops
        cl_amd_media_ops2
        cl_khr_image2d_from_buffer
        cl_khr_subgroups
        cl_khr_depth_images
        cl_amd_copy_buffer_p2p
        cl_amd_assembly_program
    Has AMD Blas = No
    Has AMD Fft = No
    Preferred vector width char = 4
    Preferred vector width short = 2
    Preferred vector width int = 1
    Preferred vector width long = 1
    Preferred vector width float = 1
    Preferred vector width double = 1
    Preferred vector width half = 1
TEST: Skip tests with tags: 'mem_6gb', 'verylong', 'debug_verylong'
[==========] Running 6 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 6 tests from CV_ArucoTutorial
[ RUN      ] CV_ArucoTutorial.can_find_singlemarkersoriginal
unknown file: Failure
C++ exception with description "OpenCV(4.9.0-dev) /home/rurban/Software/opencv-python/opencv/modules/ts/src/ts.cpp:1071: error: (-2:Unspecified error) OpenCV tests: Can't find required data file: aruco/singlemarkersoriginal.jpg in function 'findData'
" thrown in the test body.
[  FAILED  ] CV_ArucoTutorial.can_find_singlemarkersoriginal (0 ms)
[ RUN      ] CV_ArucoTutorial.can_find_gboriginal
unknown file: Failure
C++ exception with description "OpenCV(4.9.0-dev) /home/rurban/Software/opencv-python/opencv/modules/ts/src/ts.cpp:1071: error: (-2:Unspecified error) OpenCV tests: Can't find required data file: aruco/gboriginal.jpg in function 'findData'
" thrown in the test body.
[  FAILED  ] CV_ArucoTutorial.can_find_gboriginal (1 ms)
[ RUN      ] CV_ArucoTutorial.can_find_choriginal
unknown file: Failure
C++ exception with description "OpenCV(4.9.0-dev) /home/rurban/Software/opencv-python/opencv/modules/ts/src/ts.cpp:1071: error: (-2:Unspecified error) OpenCV tests: Can't find required data file: aruco/choriginal.jpg in function 'findData'
" thrown in the test body.
[  FAILED  ] CV_ArucoTutorial.can_find_choriginal (0 ms)
[ RUN      ] CV_ArucoTutorial.can_find_chocclusion
unknown file: Failure
C++ exception with description "OpenCV(4.9.0-dev) /home/rurban/Software/opencv-python/opencv/modules/ts/src/ts.cpp:1071: error: (-2:Unspecified error) OpenCV tests: Can't find required data file: aruco/chocclusion_original.jpg in function 'findData'
" thrown in the test body.
[  FAILED  ] CV_ArucoTutorial.can_find_chocclusion (0 ms)
[ RUN      ] CV_ArucoTutorial.can_find_diamondmarkers
unknown file: Failure
C++ exception with description "OpenCV(4.9.0-dev) /home/rurban/Software/opencv-python/opencv/modules/ts/src/ts.cpp:1071: error: (-2:Unspecified error) OpenCV tests: Can't find required data file: aruco/diamondmarkers.png in function 'findData'
" thrown in the test body.
[  FAILED  ] CV_ArucoTutorial.can_find_diamondmarkers (0 ms)
[ RUN      ] CV_ArucoTutorial.can_refine_detected_markers
unknown file: Failure
C++ exception with description "OpenCV(4.9.0-dev) /home/rurban/Software/opencv-python/opencv/modules/ts/src/ts.cpp:1071: error: (-2:Unspecified error) OpenCV tests: Can't find required data file: aruco/diamondmarkers.png in function 'findData'
" thrown in the test body.
[  FAILED  ] CV_ArucoTutorial.can_refine_detected_markers (0 ms)
[----------] 6 tests from CV_ArucoTutorial (1 ms total)

[----------] Global test environment tear-down
[==========] 6 tests from 1 test case ran. (1 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 6 tests, listed below:
[  FAILED  ] CV_ArucoTutorial.can_find_singlemarkersoriginal
[  FAILED  ] CV_ArucoTutorial.can_find_gboriginal
[  FAILED  ] CV_ArucoTutorial.can_find_choriginal
[  FAILED  ] CV_ArucoTutorial.can_find_chocclusion
[  FAILED  ] CV_ArucoTutorial.can_find_diamondmarkers
[  FAILED  ] CV_ArucoTutorial.can_refine_detected_markers

 6 FAILED TESTS

@rurban, module aruco in contib is deprecated
test data were moved to opencv_extra/testdata/cv/aruco:
https://github.com/opencv/opencv_extra/tree/4.x/testdata/cv/aruco


Carousel doesn't load images with next/image

When I try to use next/image <Image fill /> instead of <img /> the carousel component won't load that image. Though this seems to be only the case with some images/ in some situations.
Steps to reproduce:
Required packages: next. sharp, react,

copy paste the Carousel Custom Navigation code from the carousel docs with "use client" in L1
Download the image files, move them to some local folder and import them
Replace <img /> with Next's <Image /> and add the fill (fill={true}) option to all three images
the carousel is either completely invisible or can't load/hides the images with fill=true option

There are some variations too where I set img2 to fill=false and img1 was able to load but img3 wasn't (see carousel.tsx and second carousel.tsx code)
code:
app/layout.tsx:
import type {ReactNode, JSX} from "react";
import type {Metadata} from 'next';
import { Open_Sans } from 'next/font/google';
import {NextFont} from 'next/dist/compiled/@next/font';
import {cn} from '../lib/utils';
import './globals.css';

const inter: NextFont = Open_Sans({
	subsets: ['latin']
});

export const metadata: Metadata = {
	title: 'Test'
}

export default function RootLayout({children}: {children: ReactNode}): JSX.Element {
	return (
		<html lang="en">
		<body className={cn(
			inter.className,
			"bg-black"
		)}>
			{children}
		</body>
		</html>
	)
}

app/page.tsx
import {JSX} from "react";
import {Carousel} from "../components/carousel";

export default function Page(): JSX.Element {
	return (
		<Carousel />
	);
}

components/carousel.tsx
"use client";

import {JSX} from "react";
import Image from "next/image";
import {Carousel as MTCarousel, IconButton as MTIconButton} from "@material-tailwind/react";
import img1 from "../public/photo-1497436072909-60f360e1d4b1.jpg";
import img2 from "../public/photo-1493246507139-91e8fad9978e.jpg";
import img3 from "../public/photo-1518623489648-a173ef7824f3.jpg";

export const Carousel = (): JSX.Element => {
	return (
		<MTCarousel
			className="rounded-xl flex relative h-full w-full overflow-hidden"
			prevArrow={({ handlePrev }) => (
				<MTIconButton
					variant="text"
					color="white"
					size="lg"
					onClick={handlePrev}
					className="!absolute top-2/4 left-4 -translate-y-2/4"
				>
					<svg
						xmlns="http://www.w3.org/2000/svg"
						fill="none"
						viewBox="0 0 24 24"
						strokeWidth={2}
						stroke="currentColor"
						className="h-6 w-6"
					>
						<path
							strokeLinecap="round"
							strokeLinejoin="round"
							d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18"
						/>
					</svg>
				</MTIconButton>
			)}
			nextArrow={({ handleNext }) => (
				<MTIconButton
					variant="text"
					color="white"
					size="lg"
					onClick={handleNext}
					className="!absolute top-2/4 !right-4 -translate-y-2/4"
				>
					<svg
						xmlns="http://www.w3.org/2000/svg"
						fill="none"
						viewBox="0 0 24 24"
						strokeWidth={2}
						stroke="currentColor"
						className="h-6 w-6"
					>
						<path
							strokeLinecap="round"
							strokeLinejoin="round"
							d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"
						/>
					</svg>
				</MTIconButton>
			)}
			navigation={({ setActiveIndex, activeIndex, length }) => (
				<div className="absolute bottom-4 left-2/4 z-50 flex -translate-x-2/4 gap-2">
					{new Array(length).fill("").map((_, i) => (
						<span
							key={i}
							className={`block h-1 cursor-pointer rounded-2xl transition-all content-[''] ${
								activeIndex === i ? "w-8 bg-white" : "w-4 bg-white/50"
							}`}
							onClick={() => setActiveIndex(i)}
						/>
					))}
				</div>
			)}
		>
			<Image
				src={img1}
				alt="image 1"
				className="h-full w-full object-cover"
				fill
			/>
			<Image
				src={img2}
				alt="image 2"
				className="h-full w-full object-cover"
				fill
			/>
			<Image
				src={img3}
				alt="image 3"
				className="h-full w-full object-cover"
				fill
			/>
		</MTCarousel>
	);
}

carousel.tsx only img3 doesn't load:
<MTCarousel>
	<Image
		src={img1}
		alt="image 1"
		className="h-full w-full object-cover"
		fill
	/>
	<Image
		src={img2}
		alt="image 2"
		className="h-full w-full object-cover"
		fill={false}
	/>
	<Image
		src={img3}
		alt="image 3"
		className="h-full w-full object-cover"
		fill
	/>
</MTCarousel>

I wrapped the carousel inside another div with a fixed height and it worked fine for me.


Make SDN watch resources more resilient

Depends on https://github.com/openshift/openshift-sdn/pull/293

The commit "Refer resource names by constants" doesn't compile because you didn't change runEventQueue() to take a ResourceName instead of a string. (This gets fixed later on, but...)

On Mon, Apr 11, 2016 at 7:37 AM, Dan Winship<EMAIL_ADDRESS>wrote:

The commit "Refer resource names by constants" doesn't compile because you
didn't change runEventQueue() to take a ResourceName instead of a string.
(This gets fixed later on, but...)

Ok, I will move the fix in the proper commit.

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/openshift/openshift-sdn/pull/289#issuecomment-208378245

Extended networking tests passed.
Manually simulated transient errors and repopulated the event queue every 3 mins during the testing for verification.

@openshift/networking PTAL

Rebased and resolved merge conflicts

"Run Watch resources forever!" means that if there's bad data in etcd, we would get into an infinite loop spamming the log with error messages, right? (eg, if there's a node with IP "bob", we'd try to addNode() it, log "Invalid node IP 'bob'", then loop). In fact, it seems like in most cases, if we get an error once, we'd likely get it again after restarting (eg, "No subnets available")...

On Mon, Apr 25, 2016 at 1:19 PM, Dan Winship<EMAIL_ADDRESS>wrote:

"Run Watch resources forever!" means that if there's bad data in etcd, we
would get into an infinite loop spamming the log with error messages,
right? (eg, if there's a node with IP "bob", we'd try to addNode() it, log
"Invalid node IP 'bob'", then loop). In fact, it seems like in most cases,
if we get an error once, we'd likely get it again after restarting (eg, "No
subnets available")...

No, If we get an error from addNode(), we will log the error but we don't
loop again. This change is mainly to ensure all our sdn watch routines are
always up and running even in case of unforeseen errors (eventqueue pop
returning an error or some panic while processing an event).
Commit "SDN watch will try to fix transient errors" will try to process all
the failed events periodically, events that are failed due to transient
errors will be fixed but the ones that can't be fixed will spam the log.

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/openshift/openshift-sdn/pull/289#issuecomment-214507939

generally lgtm though we need to finalize 293 first

LGTM


sha256 checksum for VS Code download

Where can we find sha256 checksum to verify file after downloading a new version ?

Hashes are on this page, scroll down to see them.

Thanks @KexyBiscuit !


.NET MAUI Comet App template can't build - AndroidManifest bad path

Thanks for Comet ! Unfortunately, I can't build the .NET MAUI Comet App template...
IDE : Microsoft Visual Studio Community 2022 (64 bits) - Version 17.2.0 Preview 5.0
I'm able to launch classic MAUI templates without issue. (on windows and android platforms)
I followed all the steps from https://github.com/dotnet/Comet/wiki/Getting-Started
After that, when i launch : dotnet new comet -n RideTheComet
I see this build error :
Erreur	XA1018	Specified AndroidManifest file does not exist: C:\Users\johndoe\source\repos\Comets\RideTheComet\RideTheComet\AndroidManifest.xml.	RideTheComet
C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\32.0.300-rc.2.27\tools\Xamarin.Android.Common.targets	520
(nb : if i move AndroidManifest file, i obtain many other errors about Xamarin dlls)
Thanks for any help you can give me to get started properly ! 🆘

I need to update the doc. Install RC2. Instructions are here: https://github.com/dotnet/maui/blob/main/.github/DEVELOPMENT.md

Thanks for the instructions but when i execute  dotnet workload install maui (with RC2 parameters)
I see this error :
microsoft.net.workload.mono.toolchain.manifest-6.0.300.msi.x64::6.0.5 not founded in NuGet https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-323bf2dd/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-572aeedc/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json;https://api.nuget.org/v3/index.json

Thanks, i see this instructions :
RC 2 branch

First, install .NET SDK 6.0.300 => https://dotnet.microsoft.com/en-us/download/dotnet/6.0 ; the page has a link to the SDK 6.0.201 in a 6.0.3 section (!)
Next run the following workload command:  dotnet workload install maui --from-rollback-file https://aka.ms/dotnet/maui/6.0.300/rc.2.json (...)

But i have this error =>
One or more errors occurred. (microsoft.net.workload.mono.toolchain.manifest-6.0.300.msi.x64::6.0.5 not found in NuGet https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-323bf2dd/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-572aeedc/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json;https://api.nuget.org/v3/index.json.

Here is the command, I use on CI:   https://github.com/dotnet/Comet/blob/dev/.github/workflows/dev.yml#L51-L58

Thank you, I stay tuned for this great project. I imagine things will be easier when MAUI is stabilized!


Sign up screen is overflowing

Describe the bug
Sign up screen is overflowing.
Expected behavior
Sign up screen should not be overflowed
Screenshots

Additional context
None

@shagun25  @hiashutoshsingh  Can I fix this? It is looking very bad every time we restarting the app.

@Samdid are you having the latest pull of project? I guess this has been fixed a few days back.


[FLINK-35062][table] Migrate RewriteMultiJoinConditionRule to java

What is the purpose of the change
A bit reasoning for the change
The reason is that since 1.28.0 ( CALCITE-4787 - Move core to use Immutables instead of ImmutableBeans ) Calcite started to use Immutables (https://immutables.github.io/) and since 1.29.0 removed ImmutableBeans ( CALCITE-4839 - Remove remnants of ImmutableBeans post 1.28 release ). All rule configuration related api which is not Immutables based is marked as deprecated. Since Immutables implies code generation while java compilation it is seems impossible to use for rules in Scala code.
The PR migrates RewriteMultiJoinConditionRule to java
Verifying this change
This change is already covered by existing tests
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

the reason of ci failed is the scala map hashcode is different with java. make the 'map.value' (to list) order different.

we can solve it two ways:

using scala map in the java code,  new pr here https://github.com/apache/flink/pull/24648

scala.collection.mutable.Map<RexNode, List<RexNode>> equiJoinFilterMap =
                new scala.collection.mutable.HashMap<>();

change the plan to passed the unit test

because the plan just change the description, not impact the DAG. so i suggest adopt the 2, what do you think @snuyanzin

hi @snuyanzin will you help review this?

using scala map in the java code, new pr here

IMO if we migrate from scala we shouldn't use scala maps or other scala classes


Update zerotier-one to 1.2.8

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

@vitorgalvao Thanks for taking care of those two problems!


Why choosing two segments from different contexts during pre-training?

Hi,
I have a question regarding the calculation of self-attention.
In the paper, you state that prior to pre-training,  following BERT, we randomly sample two segments (either from the same context or not) and treat the concatenation of two segments as one sequence to perform permutation language modelling. We only reuse the memory that belongs to the same context. And the input takes the form as [A, SEP, B, SEP, CLS].
It seems to me that self-attention is calculated within one sequence whether segment A and segment B are from the same context or not. I can't figure out the reason why you choose A and B from different contexts (at 50% of the time) if there is no NSP during pre-training. Will this potentially degrade the performance of the language model on predicting masked tokens?
Thank you!

@kimiyoung Just commenting for visibility, I'm also really curious about this.

also confused about this Q.

Here's my take on the problem.
While both segments share one set of in-sequence self-attention, only one of them gets to access the contextual embeddings stored inside the memory, which was obtained from yet another sequence earlier.
Apart from the obvious dropout effect on memory(and the possible generalization benefit), I can think of one use case that this feature may prove to be useful:
While you may have 2 very long sequences that you wanted to make coherent decisions with, both of them have length far exceeding the sequence limit, therefore is not possible to feed any of them to the model in one pass.
In this case, one may leverage the eXtra-Long memory and partial memory access to build 2 sets of contextual embeddings A and B that:

somewhat represents those original long sequences, and at the same time
attends to each other

I'm also confused about the same problem.
The only explanation I can think of is that, at first, the authors tried to do NSP during pre-training. But the authors abandoned NSP as a training objective, because ablation studies showed that NSP wasn't worth it. Refer to section 2.5 of the paper:

XLNet-Large does not use the objective of next sentence prediction as it does not show consistent improvement in our ablation study.

Still, I'm confused on two things:
(1) So, does that mean the authors used NSP for pre-training the XLNet-base model?
(2) If they abandoned NSP entirely, why are they using two-segment data format?


How to remove a group member?

I have the following methods in my Group model:
  def members
    users.map do |user|
      {
        value: user.id,
        display: user.name,
        # '$ref': Rails.application.routes.url_for(action: :show, id: user.becomes(Scim::User).id)
      }
    end
  end

  def members=(arr)
    return if arr.nil?
    self.user_ids = arr.map{|x| x['value']}
  end

Adding member works:
it 'adds member to group' do
 user = create(:user)
 patch "/scim/Groups/#{group.id}", headers: headers, params: {
   Operations: [{
     op: 'Add',
     path: 'members',
     value: [{
       '$ref': nil,
       value: user.id
     }]
   }]
 }.to_json

 expect(response).to have_http_status(:ok)
 expect(group.users).to include(user)
end

But removing a member from a group fails, because the array (in members=(arr)) is nil:
it 'removes member to group' do
 user = create(:user)
 group.users << user
 patch "/scim/Groups/#{group.id}", headers: headers, params: {
   Operations: [{
     op: 'Remove',
     path: 'members',
     value: [{
       '$ref': nil,
       value: user.id
     }]
   }]
 }.to_json

 expect(response).to have_http_status(:ok)
 expect(group.users).not_to include(user)
end

I am new to SCIM, how can I remove a member from a group? is this even possible?

I'm not quite sure what is going on with the "members is nil" thing to which you refer; that sounds more like perhaps a bug in your model? Anyway, maybe the following will help you out.
The SCIM API side of things
There are (at least) two ways to remove a User from a Group. Looking at the approach you've tried first, I think I see an error in your parameters - there's a level of nesting inside the value that you've missed. This reference gives a couple of fairly clear examples: https://help.salesforce.com/s/articleView?id=sf.identity_scim_manage_groups.htm&type=5 - and in our own application, our test coverage uses similar parameters:
parameters = {
  'schemas' => ['urn:ietf:params:scim:api:messages:2.0:PatchOp'],
  'Operations' => [
    {
      'op' => 'remove',
      'path' => 'members',
      'value' => {
        'members' => [
          {
            'value' => user.id
          }
        ]
      }
    }
  ]
}

Note that 'value' is not followed directly by the array of member IDs - it contains yet another hash (object) with a members key and it is this that gives the member ID list. You do not need $ref in there.
We also have test coverage for another way to do remove a User from a Group, which is described by this StackOverflow answer: https://stackoverflow.com/a/69180546.
parameters = {
  'schemas' => ['urn:ietf:params:scim:api:messages:2.0:PatchOp'],
  'Operations' => [
    {
      'op' => 'remove',
      'path' => "members[value eq \"#{user.id}\"]",
    }
  ]
}

Both approaches result in the expected removal of the member User from the Group, both for cases where there is at least one member remaining afterwards and for cases where the removal empties the Group completely.
The Ruby side of things
There is additional complexity with SCIM - which is, frankly, kind of a horrible spec! - alluded to in comments in our implementation (which is commercial / proprietary, so I'm sharing only limited amounts and have changed some of our model and concept names to match your code):
# Groups in SCIM can contain users or other groups. That's why the
# :find_with key in the Hash returned by ::scim_attributes_map has to check
# the type of thing it needs to find. Since the mappings only support a
# single read/write accessor, we need custom accessors to do what SCIM is
# expecting by turning the Rails associations to/from mixed, flat arrays of
# Users and Groups.

...this comment referring to the following code - bear in mind that our internal model attribute names and your internal model attribute names will differ:
def self.scim_attributes_map
  return {
    id:          :id,
    externalId:  :scim_uid,
    displayName: :display_name,
    members:     [
      list:  :scim_users_and_groups, # <-- i.e. Group#scim_users_and_groups - see explanation below
      using: {
        value:   :id,                # <-- i.e. Group#scim_users_and_groups[n].id
        display: :scim_display_name, # <-- i.e. Group#scim_users_and_groups[n].scim_display_name
        type:    :scim_record_type   # <-- i.e. Group#scim_users_and_groups[n].scim_record_type
      },
      find_with: -> (scim_list_entry) {
        id   = scim_list_entry['value']
        type = scim_list_entry['type' ] || 'User' # Some online examples omit 'type' and believe 'User' will be assumed

        case type.downcase
          when 'user'
            User.find_by_id(id)
          when 'group'
            Group.find_by_id(id)
          else
            raise Scimitar::InvalidSyntaxError.new("Unrecognised type #{type.inspect}")
        end
      }
    ]
  }
end

...as a result, we have special read-write accessors for what I think is our equivalent of your Group#members / Group#members= instance methods:
# Return a concatenated Array of members and any child groups.
#
# LIMITATION: Only immediate children are returned. Anything deeper in the
#             tree is not currently included.
#
def scim_users_and_groups
  self.members.to_a + self.children.to_a
end

# Given a mixture of User and Group objects, set as group members and child
# group entities. This overwrites any prior associations entirely.
#
def scim_users_and_groups=(mixed_array)
  self.members  = mixed_array.select { |item| item.is_a?(User ) }
  self.children = mixed_array.select { |item| item.is_a?(Group) }
end

Note that this code is believed correct according to our tests, but not yet exercised by a true third party SCIM connection. It should work but in practice we might need changes to deal with quirks of inbound SCIM operations.

As a followup to this I would very, very strongly recommend you familiarise yourself with the SCIM RFCs before attempting to write a SCIM implementation. It's not something you can do via guesswork. The RFC gives an example of removing a single user which follows the second approach above (the one with a path that contains the filter selecting a member by ID directly) and this is likely to be the more common and widely used approach as a result.

https://www.rfc-editor.org/rfc/rfc7644#section-<IP_ADDRESS>

The full set of RFCs are:

https://www.rfc-editor.org/rfc/rfc7642
https://www.rfc-editor.org/rfc/rfc7643
https://www.rfc-editor.org/rfc/rfc7644

It is probably not necessary to read top-to-bottom all of those but certainly doing a degree of skip-reading, so that you have an idea of what the RFCs include and where to find information within them as a reference work in future, should save you time if you're struggling with aspects of the SCIM protocol.

@pond thank you very much for your detailed response, the problem is - we need a SCIM implementation just for Microsoft Azure AD, and when you look at their documentation about removing users: https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups#update-group-remove-members  you see that is the exact payload in my test...
So you are saying Microsoft is doing the removal request wrong? But i am not able to change that, so i need to find another solution :/

Yes, technically I am not saying, the standard RFC is saying that this is a non-compliant payload. The inclusion of $ref is particularly bizarre. This is Microsoft, though, so I suppose we should be unsurprised that they aren't following standards and are expecting the rest of the world to waste countless hours working around their faults. Story of my career!
You might need to submit a PR for Scimitar to support that. If I have time I can look into it, but that's going to require significant engineering work and I don't have any spare time for that right now, so I can't give you any sort of promises or estimation on when it might happen.

...one hacky work-around to consider for the short term - in your subclass of ActiveRecordBackedResourcesController, override #update. Its current implementation is:
super do |record_id, patch_hash|
  self.storage_class().transaction do
    record = self.find_record(record_id)
    record.from_scim_patch!(patch_hash: patch_hash)
    self.save!(record)
    record_to_scim(record)
  end
end

The parameters passed to the block here are part of the documented interface of the superclass ResourcesController, so at least the super do... part of that override should not be considered fragile/risky in the face of potential future internal changes to Scimitar; at last within major version 2, it's considered part of the gem public API so it could only be broken at a major version bump.
Inside super, you could introspect specifically for the Microsoft version of that 'remove' payload, looking at the Hash to check that it's a removal operation for a member with the ID given, then rewrite that Hash into the form that Scimitar currently handles before continuing processing as normal. For example, if we knew that Microsoft only ever sent one user at a time in that form, then this simple code would work I think:
super do |record_id, patch_hash|

  # Rewrite this form:
  #
  #   https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups#update-group-remove-members
  #
  # ...to match SCIM specification requirements per:
  #
  #   https://www.rfc-editor.org/rfc/rfc7644#section-<IP_ADDRESS>
  #
  if (
    patch_hash.dig('Operations', 0, 'op') == 'Remove' &&
    patch_hash.dig('Operations', 0, 'path') == 'members'
  )
    member_id = patch_hash.dig('Operations', 0, 'value', 0, 'value')

    patch_hash['Operations'] = [{
       'op'   => 'remove',
       'path' => "members[value eq \"#{member_id}\"]"
    }]
  end

  self.storage_class().transaction do
    record = self.find_record(record_id)
    record.from_scim_patch!(patch_hash: patch_hash)
    self.save!(record)
    record_to_scim(record)
  end
end

...but slightly more complex rewrite logic might be needed if they do send arrays with multiple users or arrays with multiple operations in single payloads.

...and in the grand spirit of repeatedly contradicting myself in a public GitHub issue's commentary :joy: we've decided internally that this is high priority enough to work on straight away. The failure mode is too nasty - the RFC might be read to say "should remove all users from the group", but that's very destructive and not a good thing to do when the payload clearly has the intended outcome of only one user being removed.
I still don't know how long it'll take to sort, hopefully not too long, but happily I can say that we're going to implement support for the Microsoft case (and while I suspect the Salesforce payload is a documentation fault, I might - if not too grubby - implement a special case handler for theirs too, just in case).
This means you might want the work-around just to get going really quickly, but Scimitar itself should be handling that payload as Microsoft intend soon.

So, all the bookkeeping is done though the code I've implemented is to an extent hypothetical, as I don't have an active Microsoft endpoint calling into an implementation I can test against. Version 2.4.0 (Rails 7) and 1.5.0 (Rails 6) are now on RubyGems:
https://rubygems.org/gems/scimitar/versions
...and hopefully that will get things working for you without any hackery. Please let me know how you get on - it's possible that one or two patch versions might be needed to get things working with "real" Microsoft calls.

@pond wow ok that was quick, i was not expecting that - thank you so so much!
I will be able to test this next week!

Yes, technically I am not saying 😄 but the standard RFC is saying, as far as I understand it, that this is a non-compliant payload. The inclusion of $ref: null is particularly odd. This is Microsoft, though, so I suppose we should be unsurprised that they expect the rest of the world to waste hours working around their quirks. Story of my career!

That's so sad, we should tell them what they are doing wrong. I also had a problem for SCIM users when setting the active and inactive with Microsoft Azure AD... The documentation there was wrong, they were sending a string instead of a boolean:
  def is_active=(value)
    return true if value.nil?

    # microsoft sends {"op"=>"Replace", "path"=>"active", "value"=>"False"}
    value = ActiveModel::Type::Boolean.new.cast(value.downcase) if value.is_a?(String)
    return value if kept? == value

    self.discarded_at = value ? nil : Time.current
  end

Hmm, yeah I'm not sure how well we'll deal with string booleans either, but it shouldn't be too hard to check the schema and do an appropriate type translation - the use of ActiveModel::Type::Boolean.new.cast is a good use of the converter there too since it'll handle all manner of strange things someone might put in that are "truthy" or "falsy".
Basically it'll be a case of "test it with the real Azure backend and if things aren't working, submit another issue", I think.
Thanks for the bug report and details either way - all of this helps make the gem better and more interoperable with real-world SCIM API callers.

@pond The test works now when removing a group member, and it also works with Azure AD real life data! 🎉
FYI this is what i get from Azure AD:
{
  "schemas"=>["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations"=>[{"op"=>"Remove", "path"=>"members", "value"=>[{"value"=>"66c9d41c-34e7-43a7-9606-87097eaf641a"}]}]
}

I will close the issue now!

Great stuff - thanks for the followup. I'm glad it's working as expected now.


[Enhancement]

Description
Migrate from local state management to global state management.
Screenshots
No response
Additional information

Always use styled componets instead of plain CSS and MUI components.

Make sure to read the CONTRIBUTING and SETUP docs before proceeding
Happy contributing. 💐
Star my other Repositories here

Are you considering using context or Redux here?

Also when are you planning to add UI for update info page? I would like to work on that.

@anuj98 we are planning to avoid redux as of now and instead use react-query as discussed in

Also when are you planning to add UI for update info page? I would like to work on that.

What about this?

Also when are you planning to add UI for update info page? I would like to work on that.

What about this?

Could you create a new issue for the Update Info UI. I would assign you


Implement SSL on layout server

Background
We want to implement SSL on the layout server so that we can use a secure HTTPS connection when calling from Vuu UI. This will also satisfy the static code analysis and therefore remove the need to reference the calling code in the .semgrepignore file.
Work Required

Generate a self-signed SSL certificate using the keytool CLI or find an existing one from the Vuu server (looks like we might already be using OpenSSL)
Enable SSL in the application.properties file for the layout server
Create a SecurityConfig class to redirect HTTP requests to HTTPS
Configure the UI to make requests over HTTPS
chckout SSL usage in Scala code (vuu\src\main\scala\org\finos\vuu\net\http\VuuHttp2Server.scala)
remove "vuu-ui/packages/vuu-layout/src/layout-persistence/RemoteLayoutPersistenceManager.ts" from .semgrepignore

Testing

Ensure that calls over HTTPS are picked up successfully
Ensure that calls over HTTP are redirected to HTTP

@scottlogic-alex unblocked me, woo!

WIP on branch SLVUU-79-ssl-on-layout-server
I've created a working implementation of SSL on the server. There are a few caveats which requires more thought before we can implement TLS:

Certificate & password storage

Storing the public certificate isn't an issue. But the layout server needs the private certificate/key in order to encrypt/decrypt for the TLS protocol
Uploading the private key to GitHub wouldn't be wise, as this would entirely negate the point of it being private
Since we're not hosting this in the cloud, we don't have any to-hand third party tools for private key storage
It's also not the best idea to push an unencrypted password to GitHub
Even if we encrypt the password in application.properties so it's not pushed to GitHub, someone will need to know that password, and it will remain a matter of how do you share that password to all developers who may need it?

Replicating the certificate creation process

A possible solution to the private-key storage issue is to get developers who want to use the server to replicate the certificate creation process locally
This would work if they made sure to create the certificate with the properties the server expects, as defined in application.properties (keystore type, keystore location, keystore password, key alias)
Creating the certificates is super easy with mkcert  (the tool I used), as it abstracts away the need for complicated CLI commands, self-signing, trusting, etc. One command handles the whole thing, and makes destroying the tickets super simple too.
But this places a blocker on developers being able to use the remote server - it would fail to build if application.properties is expecting certificates to be available which wouldn't be if a developer hadn't generated certs
The CLI command could possibly be incorporated into the server build process? Which would negate the need for manual intervention, and ensures all developers will have certs. Costly overhead if it happens every time though.

The certificates that exist on the branch shouldn't be used, because by pushing it locally we've exposed the private key. If this work is going to be used, make sure to delete the current certificates and regenerate new ones.

Draft PR raised into Finos repo.


[Discussion] Handling Markdown JSDoc Content

From: https://github.com/Microsoft/vscode/issues/27936
Problem
JSDocs often contain markdown content. TypeScript does not try to parse markdown when generating the documentation for intellisense and hovers. VSCode does try to show the documentation it gets from TypeScript as markdown. In certain edge cases, this can cause unexpected behavior:
/**
 * ```
 * @Hello
 * ```
 */
class Demo {}

In this case, @Hello is treated as a jsdoc tag instead of part of the markdown code block.
[Trace  - 3:43:51 PM] Response received: quickinfo (764). Request took 2 ms. Success: true
Result: {
    "kind": "class",
    "kindModifiers": "",
    "start": {
        "line": 6,
        "offset": 7
    },
    "end": {
        "line": 6,
        "offset": 11
    },
    "displayString": "class Demo",
    "documentation": "```",
    "tags": [
        {
            "name": "Hello",
            "text": "```"
        }
    ]
}

Possible solutions
A few thoughts on how we could work around this:

TypeScript parses jsdocs as markdown. Not ideal because it adds a dependency to typescript but this would be the most complete solution.

TypeScript special cases a few markdown patterns (such as those for codeblocks) but does not try to  fully parse the documentation as markdown.

TypeScript treats any tag that is not part of the jsdoc spec as content instead of as a jsdocs tag. This is the simplest solution but I'm not sure if people are using custom jsdocs tags that this would break

// cc @mhegazy

This issue can be very bothersome when trying to document code that contains decorators.
/**
 * @example
 *
 * ```
 * class ListenerExample {
 *  name = 'John Doe';
 *
 *  @bind()
 *  onClick(e: Event) {
 *    console.log(this.name);
 *  }
 *
 *  connectedCallback() {
 *    this.addEventListener('click', this.onClick);
 *  }
 * }
 * ```
 */
export function bind() { /* ... */ }

Is rendered as:

Right now I have to replace the @ in documentation/JSDoc comments with something else, which is not very user friendly.

Same basic issue as #39371: @ is always treated as the start of a jsdoc tag
Closing this in favor of that issue since it has more comments


Invoke-Command2: change session cache key to fix leaks

Type of Change

[X] Bug fix (non-breaking change, fixes #7145)
[ ] New feature (non-breaking change, adds functionality, fixes # )
[ ] Breaking change (effects multiple commands or functionality, fixes # )
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
To prevent Invoke-Command2 from creating and abandoning multiple PSRemote sessions, potentially exceeding the WSMan remote shell quota on the target computer.
Approach
Change the key value used for session caching from $ComputerName to a unique composite value dbatools_$($Authentication)_$runspaceId_$($ComputerName.ComputerName)
This avoids clobbering cached sessions due to multiple sessions using different authentication types for the same computer.

This is what works for me, at least. It has the desired effect of only opening one session per authentication type, and not causing Update-DbaInstance to fail because the maximum concurrent shells quota on the target computer has been exceeded.
I'm open to suggestions. :)

Thanks @kozloski for the contribution and thanks @nvarscar for the review!

If you still have this branch, please fix #7231. Thanks.


lfe: 1.1.1 -> 1.2.1

Depends on #20664.
Motivation for this change
Update to 1.2.0, not 1.2.1, since it has issues wrt clj-tests. I'll need to chat with @rvirding and get that sorted.
Use buildRebar3 instead of mkDerivation, obviating the need for setup-hook.sh.
Manually build proper and patch rebar.config s.t. it doesn't try to fetch it manually.
N.B. I can't seem to figure out how to get the hermetic rebar3 to play nice with proper, so this is a hack, but it suits our needs for running LFE tests.
Set checkTarget = "travis" so we can actually run the tests.
Things done

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

[ ] NixOS
[x] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

OK, 1.2.1 now works. There were illegal patterns in the test files which I had not checked. They have been fixed, at least the ones that occurred in the tests. I have updated the tags 1.2.1 and v1.2.1 to point to the new commit in master. The old commit is still there, but now untagged.

Thanks, @rvirding. I've confirmed that works and updated the lfe commit accordingly, i.e. to use 1.2.1 instead of 1.2.0. I took the opportunity to rebase these three PRs on master too.

Looks like the build failures for this and the other two PRs have to do with DNS issues or similar.

Rebase on #20664 to include https://github.com/NixOS/nixpkgs/commit/705bdce17ecfd5dcc0e66f4b942e3841cda7fbf1.

@gleber: :+1:
Shall I rebase?

Yes

Done.

lfe compiles and runs after rebase. @dezgeg, can you please merge this one too?


(3.1.0) hung debugger with unknown error trying to trim stack

I am getting to the point, where I not able to use Jadeite for development. I need to be able to work for more that 10 minutes in a row, before having to kill my image and get back to what I am trying to figure out:

Was able to get a recurrence of the trim stack error:

I had put a breakpoint in the following code at the with: before running the method.
Executed RowanSample1 new arbitraryCode and a debugger opened.
Then from inside the debugger I added a breakpoint at show:
Then ran to show and tried the menu item Restart

This took a long time to fix and may not be complete. The heart of the problem was that Jadeite was not able to open two debuggers at once safely.
Code inherited from early Jade development opens a debugger on a server error then sends answer which waits on the idleProcess to know when it may close itself or resume. See JadeiteDebugger class>>openOn:message:terminateOnClose: and JadeDebugger>>answer. It waits by sending loopWhile: to the current instance of InputState which pumps windows host messages. I believe it was done this way to allow tests to know when the debugger is ready by hooking into the onIdleEntered event. See JadeiteDebugger>>initializeIdleProcess.
This seems to work fine when only one debugger is open.  However, if a second debugger is opened, it enters the same code path. When the second debugger sends the loopWhile: message, the Main thread in Dolphin is abruptly terminated and a new Main thread is opened to wait on the idle process. (I'm not quite sure how the main thread is terminated. Maybe in the Dolphin vm.) Because the original debugger's thread has been terminated, this leaves the system in a vulnerable state and many bad things can happen including stuck gui's, threads that seem to continue on the wrong stack, etc (at least that's what appears to happen). In short, weird things happen.
After much head-scratching, the fix was to not wait for the debugger's answer on the Main thread but instead to fork off the Main thread and wait(loopWhile:) in a forked thread which was held onto by the debugger. Then, immediately after forking off the main process, the Main thread was suspended. Both the forked thread and the waiting thread are held by the debugger and are not the new Main thread. The Dolphin vm then spawns a new Main thread to hand gui stuff. When the forked process gets it's answer or the loop is completed, we finish the forked loop by either 1) terminating the original main thread if we're not resuming and returning or 2) reinstating the suspended main thread as the main thread and resuming while terminating the new Main thread).
It's all horribly confusing but it not only seems to fix the problem but seems to have eliminated a number of odd gui problems I've seen in Dolphin. With luck, this will also help out some of the frustrations expressed in this issue. Yet, I'm not entirely confident this completely fixes the problem, or is the best fix.
No particular fix version, but sha fa7ab963 on the OscarV2.0 branch has all the changes necessary, so far, to fix the problem.

I got hit by the two debugger problem earlier today, so I'm glad you're making progress on the hung Dolphin front ...

I think that there was a fix made, and the dolphin upgrade introduced additional improvement, and later bugs filed and perhaps fixed, mean this particular bug can be closed.


Suggestion: A built-in way to make a block be run every X amount of time

I'm looking for something like this:
every(5.seconds) do
  print "This will be run every five seconds."
end

Obviously it's fairly easy to implement this yourself by using a loop with sleep. However, there are some caveats: if the code in the block runs for a non-negligible amount of time, then that time has to be measured to ensure accuracy, and if an uncaught exception crashes the block, then, depending on the exact implementation, the loop might stop entirely without that being apparent to the underlying program.
Furthermore, I find myself needing this feature quite often when developing various projects. This is, of course, highly dependent on the kind of projects one writes code for, but I feel like I can't be the only one. Making a shard for this is an option, but it's a really small thing to make an entire shard for, and there would probably end up being a slew of competing ones with no clear advantages to others.
Therefore I propose for something like this to be built into to the language or standard library. It could be tightly integrated with and a useful addition to the existing asynchronous programming features. By making it unnecessary for projects to use their own custom solution, it would also help standardise Crystal code as a whole.
Some more problems I've considered, with my own thoughts on them:

What would the method be called? In the above code example, I've used every, which is more Ruby-like in that it feels more like English, but something like schedule would be more descriptive.
Would the method block code execution? In the context of the language it seems to me like it should be non-blocking, but a blocking method allows for greater flexibility in that it can be made to be non-blocking if one desires.
How should exceptions be handled – should they terminate the loop as a whole or just the current block? There's no clear answer to this for me; in my own code I've usually needed it to keep the loop alive and just terminate the block, but use cases where terminating the whole loop is more useful are imaginable.

https://github.com/kostya/cron_scheduler

Something like that would solve the problem, but it's a bit overkill: I don't need crontab-like functionality, I just need something that runs something every, say, two minutes. Regardless of that, I still think it should be in the standard library, because as a whole the language is focused on asynchronous programming and something like this comes up quite often with that (for me, at least).

Hi @meew0! I've been working on this lib to achieve this behavior: https://github.com/hugoabonizio/schedule.cr

I'm not sure this is generally useful, so it might be better to put it in a shard (there are maybe too many decisions to make about such functions, about what happens when an exception happens, logging, etc.), and it's small enough that it's better to keep it outside the std.

@asterite Surely a simple (<10 line method) solution with no exception handling and no logging would be simple to add to the stdlib. It's a pretty useful tool for simple concurrent programs.

The problem is that this might not be enough for some, and so endless discussions about the subject will spawn.
Is there some other programming language where such function/method is in the standard library?

Python: https://docs.python.org/3/library/sched.html
JavaScript: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

This can be defined in a shard.


Passing a kube config doesn't seem to work

I run the connect piece and everything per the documentation and I check the logs (see below). If you notice in the connection I set the role to eks_opsadmin but when the api runs it says it cannot because the role (APSSelfServiceRuntimeRole) doesn't have permission.  Why isn't kconnect using the role I passed to it?
My code output:
kubeconf_path = '/home/sst_user/.kube/config'
AWS_SHARED_CREDENTIALS_FILE=/home/sst_user/.aws/credentials /home/sst_user/app/kconn/kconnect/kconnect use eks --cluster-id=arn:aws:eks:us-east-1:579282490867:cluster/aps-olympus-dev-us-east-1 --region=us-east-1 --role-arn=arn:aws:iam::579282490867:role/EKS_OpsAdmin --username=****** --password=***** --namespace=ap135646-selfservice-dev-ns --kubeconfig=/home/sst_user/.kube/config --no-input --no-history --no-version-check --idp-protocol saml --idp-endpoint https://pfprd.fmr.com/ --idp-provider PingNTLM
withopen(kubeconf_path, "a+") as f:
print(f"Writing to {kubeconf_path}")
f.write(' - name: AWS_SHARED_CREDENTIALS_FILE\n')
f.write(' value: ' + awscred_path)
os.environ["KUBECONFIG"]=kubeconf_path
config.load_kube_config(config_file=kubeconf_path)
v2 = client.AppsV1Api()
api_response = v2.patch_namespaced_deployment_scale(data.deployid,data.namespace,{'spec': {'replicas': nu_pods}})
Return message: is forbidden: User "arn:aws:iam::579282490867:role/APSSelfServiceRuntimeRole" cannot patch resource "deployments/scale\
Where is it getting that role APSSelfServiceRuntimeRole? It seems like it should use what I set in the connection.  How can I ensure the kconnect config is being used if not by the config.load_kube_config?
Environment:
Inside the fmr-ap135646/selfservice-base docker image

kconnect version 0.5.5

Kubernetes version: Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21+", GitVersion:"v1.21.9-eks-0d102a7", GitCommit:"eb09fc479c1b2bfcc35c47416efb36f1b9052d58", GitTreeState:"clean", BuildDate:"2022-02-17T16:36:28Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"linux/amd64"}

Target environment: EKS
_ OS: NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.14.3
PRETTY_NAME="Alpine Linux v3.14"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"

Hi @ltsz16 , could you edit your comment to remove references to specific AWS accounts + roles please? For a substitute you can just put something like:  arn:aws:iam::1111111111111:role/MyRole

Done

Is there an estimate on when this might be addressed?

After much discussion, we were able to get it working, and concluded that the issue was a misconfiguration.
There might have been multiple KUBECONFIG files, and/or the KUBECONFIG environment variable was misconfigured, which would explain why kconnect was using the incorrect role.


refactor(certora): introduce shared.spec to reuse helper functions

We have a couple of helper functions redefined in multiple spec files. This commit introduces a shared.spec that provides such functions.
The file is then imported in other spec files, so we can make use of the functions there.
Closes #87
Checklist
Ensure you completed all of the steps below before submitting your pull request:

[ ] Added natspec comments?
[ ] Ran forge snapshot?
[ ] Ran pnpm gas-report?
[ ] Ran pnpm lint?
[ ] Ran forge test?
[x] Ran pnpm verify?

I needed to update the commit to explicitly import StakeManager into shared.spec so that it is aware of it's function signatures, otherwise it wouldn't be able to compile.
Only happened in Stakevault.spec though.


Foreground logging

This is the first in couple of patches to make softether compatible with running inside an immutable, stateless, container. We currently run softether on top of kubernetes as a docker container and have run into a number of design decisions that make it very difficult.
In a containerized infrastructure, it is almost a rule that processes do not daemonize and direct their logging output to stdout. This is because the container process runs as PID 0 inside the container, and the process's stdout is collected by the infrastructure logging facility.
Changes proposed in this pull request:

Create a --foreground command line option so that the service does not daemonize
In foreground mode the service will log only to stdout and not to log files

Your great patch is much appreciated. We are considering to apply your patch into the SoftEther VPN main tree.
SoftEther VPN Patch Acceptance Policy:
http://www.softether.org/5-download/src/9.patch
You have two options which are described on the above policy.
Could you please choose either option 1 or 2, and specify it clearly on the reply?

PRELIMINARY DECLARATION FOR FUTURE SWITCH TO A NON-GPL LICENSE
I hereby agree in advance that my work will be licensed automatically under the Apache License or a similar BSD/MIT-like open-source license in case the SoftEther VPN Project adopts such a license in future.

are you going to resolve https://github.com/SoftEtherVPN/SoftEtherVPN/issues/93 ?

windows build is broken
https://ci.appveyor.com/project/SoftEtherVPN/softethervpn/build/build-243-22f8d26#L234
can you wrap code with #ifdef	OS_UNIX ?

I did not see #93, but yes it should resolve that. I'll take care of deffing out windows.

@chipitsine I've fixed the Windows build and updated the description with our patch policy acceptance..

great, we'll review in few days


Simplify the process of ImportSST::Upload API

Process upload stream without token and locking.

Much better
LGTM

LGTM

/run-integration-tests


sync apiregistration resources

What type of PR is this?
add apiregistration to discovery cache to support sync apiregistration resources

What this PR does / why we need it:
add apiregistration to the group because apiregistrationinformers will not discover itself.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/lgtm This is a very interesting bug

/kind bug


Large titles for edit view

As described in #1000

This one can be done easily by enabling large titles in the navigation bar.


[Don't Merge]Compile multi-module basic tests on Ubuntu

Provide stubs for p/invokes missing on non-Windows platforms that are
included in library compilation.
Allow types with GVMs to compile in SDK code by not rooting any GVMs. If
they're actually needed by anything, compilation will still fail.
Root intrinsic methods in multi-module libraries. Now we fall back to generating an IL body for methods without any code,
include intrinsic methods as roots in compilation of library code.

Closing stale PR


xp_readerrorlog in SqlTraceController.Start() fails in SqlLocalDb

For SqlLocalDb, Start() fails with following exception, while running xp_readerrorlog.
EXEC xp_readerrorlog 0, 1, N'Logging SQL Server messages in file'

Msg 22004, Level 16, State 1, Line 3
Failed to open loopback connection. Please see event log for more information.
Msg 22004, Level 16, State 1, Line 3
Error log location not found.

This could easily be avoided by providing a default location that SqlServer can write trace/logs to.

pr merged - thanks :)


Todos and workarounds for tests not yet ready for macos-14

Fix #12779
Follow up to #12746 to address issues caught in nightlies
#no-changelog

Going to merge for the nightly!


Policy for adding new modules

We often receive proposals (or fully formed PRs) for new modules, but don't have a clear policy on whether to accept them or not.
In the past we have accepted a small number of modules that have caused us significant maintenance headaches long after the contributor has gone away, and I'd like to avoid this in future. Equally, we'd like to encourage useful modules to be contributed!
We should have a policy in our documentation that:

Describes our criteria for 'what kinds of module we would accept', so that people can work out whether to expend effort on a contribution.

Provides a checklist for things we look for in a module PR (e.g. mainstream appeal, reliability and licensing for required docker images, docs, etc)

Sets out a process for gently onboarding a new module into the official modules 'ecosystem' - e.g. ensuring stability of tests in our CI, scope for user feedback that may change the public API, etc. My initial thought is some kind of beta/incubator label for new modules.

This was actually resolved in #1576


Images fade in before they finish loading

Hi, while this is a great script which I really really needed, I'm gaving an issue that is rather cosmetic, but I would be very glad if it could be resolved. My problem is that images fade in before they load, so you actually see them loading instead of fading in. This happens only when there is some latency before loading the images (for example, when you load the page for the first time and the images are not being loaded from browser cache, especially on a slow connection). After a refresh, everything is working fine. Is there anything I can do to alter the code to make it always wait until the image is fully loaded? I have a nice preloader so I don't mind even if it takes a while :)

It's not so difficult. Need to make sure the onload is assigned before assigning the source to and Image object, then it is always called even if the image is in the browser's cache already.
Please see commit humancopy/JAIL@42f76ed9529b93b597cc05b571deaabd9207c232


Export remote.LabelsToLabelsProto() and remote.LabelProtosToLabels()

Similar to https://github.com/prometheus/prometheus/pull/14306, in this PR I'm asking you if we could export remote.LabelsToLabelsProto() and remote.LabelProtosToLabels() too. The rationale is that remote read endpoints are typically implemented by 3rd party systems (Grafana Mimir in our case) and having the utilities to convert data types to/from the remote protobuf would be helpful to avoid code duplication.

I think they'll still need the helpers, it's going to be a long time before we remove support for 1.0 completely.

We are switching to v2 very soon (or at least adding it and slowly deprecating v1), and there are no labels there, so I think we will all operate on labels.Labels going forward. (see https://github.com/prometheus/prometheus/blob/remote-write-2.0/prompb/io/prometheus/write/v2/types.pb.go)

I would need these helpers for the remote read implementation in Mimir. Does the remote write v2 protocol affects remote read too?
That being said, I think v1 will still be support for long time.


Update travis build for runtime redesign and upgrade to arrow 0.11.1

The travis build now uses the cmake file in the root of the repository. As a result there is one job which builds both fletchgen and the runtime. We can change this if you liked
I also pushed a new base image with libarrow (0.11.1). This image is no longer based on alpine, but on debian buster (https://github.com/apache/arrow/issues/2080#issuecomment-434723969)
Currently FLETCHER_TESTS build is failing, so if that gets fixed we can add a separate job which runs these tests.

Thanks, I'll check out the tests and fix them.


Forked for Elixir

This issue can be closed immediately. I just wanted to share that I forked the repo and modified the function names to work with Elixir's Text Unit vim-ex_text.

Thanks for the info!


Feature request: Update / Bootstrap version 5.0.0-beta3 is out!

Hi there. Just opening to represent the feature request of (possibly) updating to 5.0.0-beta3. Thanks!

Wrong repo.


Cannot update Task with outputImageDir

Expected Behavior
An old version of a Task includes outputImageDir, which is not supported by Tekton anymore.
It should be possible to update the task with a new version that does not include outputImageDir.
Actual Behavior
Cannot update the Task:
for: "tekton/publish.yaml": Internal error occurred: admission webhook "webhook.tekton.dev" denied the request: mutation failed: cannot decode incoming old object: json: unknown field "outputImageDir"

Steps to Reproduce the Problem

On an old version of Tekton v0.8.0, create a Task that uses with outputImageDir
Upgrade Tekton to v0.9.0
Try to update the Task

Additional Info
Support for outputImageDir has been dropped in https://github.com/tektoncd/pipeline/pull/1467. We skipped the usual deprecation cycle - I updated now v0.9.0 release notes to include a note that outputImageDir has been removed.
We should make a v0.9.2 that provides a valid upgrade path, or else document that old Tasks will have to be deleted and recreated if they use outputImageDir.

/kind bug
/kind api-change

/priority important-soon

@afrittoli I moved this to the 0.10 milestone since 0.9.2 happened - or should we make a 0.9.3 release?

@afrittoli given the new timeline for 0.10 we may want to do a 0.9.3 if the fix did not get in yet

Do we need to bring the field back or is it enough to tweak validation to accept it and then ignore it?

Just FYI... I just hit this issue while attempting to apply the latest 0.3.0 dashboard release YAML.
👍  for @afrittoli 's suggestion to bring the field back & just ignore it for now until this can be resolved. As of right now I'm not entirely sure if my attempt to upgrade to latest dashboard release YAML worked or not because of this error.

After discussing this a bit with @sbwsg @dibyom @vdemeester we're not sure if it's worth making the 0.9.3 release at this point since our 0.10 release is in ~2 weeks. If we do the 0.9.3 release, folks would have to migrate to it in order to get this field back, then we'd be asking them to switch to 0.10 almost immediately.
For your issue with the dashboard @rakhbari I think the dashboard project would also have to migrate to 0.9.3 in order for it to help you - and then they'd probably migrate to 0.10 right after that so I'm not sure it's worth it :S
If we'd done this 27 days ago it would have made more sense 🙇♀  I'm going to close this for now but if folks feel strongly please comment/re-open.


Option to restrict chest/inventory slots that accept the sort click

Request Description
For multi-line inventories (player inventory, chest etc.) I'd like an option to restrict which slots can accept the sort command. Similar to the hotbar option I just requested, this is meant to avoid accidential sorting when switching between survival and creative and forgetting which one you're in.
The option could be named "Which slot can you click to sort a multi-line inventory?" and choices should be any (default), top-left, top-right, bottom-left, bottom-right, none.
Minecraft Version
1.21

Why not just use a keybind that doesn't have a creative-mode function?

That's actually a good idea. I was too caught in habit. Thanks!


basemap in appsetting

hi,
i am using your fantastic appsetting widget in my app. it is great, thank you!
i tried to add basemap as a parameter to the widget but couldn't. i would appreciate it if you could give me a hint.
thanks

What have you tried @mtabdar ? Can you post the code?
I have this slightly documented in the readme, it should work. You have to modify the basemap widget a bit to get it to publish/subscribe to the right topics and update the basemap.
Storing a setting: - When the basemap changes
//writes the object value to the appSettings[key] and stores it in localStorage
Topic.publish('AppSettings/setValue', 'basemap', value);

Retrieving a value when the widget is loaded: - On postCreate method:
//waits for the settings to be loaded and prints the appSettings object
Topic.subscribe('AppSettings/onSettingsLoad', Lang.hitch(this, function (appSettings) {
   //appSettings is a clone of the entire data structure, if your setting is saved
   //it will be directly accessible via appSettings.mySetting

   //if your using the checkbox, then the following is relevant
   if(appSettings.basemap && //make sure it exists
   (appSettings.basemap.save || //the user had the checkbox checked
    appSettings.basemap.urlLoad) //the user has loaded a url with this setting in it
    ) {
     console.log(appSettings.mySetting);
     }
}));

config (viewer.js widgets)
appSettings: {
    //.....
    options: {
        appSettings: {
            basemap: {
                checkbox: true,
                label: 'Save current basemap'
            }
        }
    }
}

hi @roemhildtg
thanks for the hint. i am still stuck.
i added both  publish/subscribe to my basemap.js in postcreate
the error is:"Topic not defined"
adding "dijit/appsettings" to define section of basemap.js doesn't work either.
could you tell me what's wrong?

You need to define Topic. Add dojo/topic to your define block and add Topic to your function. Make sure the modules line up in the same order as their variables

hi, thanks for the reply
and sorry for the delay, i was trying different approaches for solving my problem, with no success. this is my basemap.js and i put topic.publish and topic.subscribe in postcreate block. browser gives no errors but basemap object properties is not included in my url. and no "value:object" in console log.
i would appreciate any help
basemap.js:
<---
define([
'dojo/_base/declare',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dijit/_WidgetsInTemplateMixin',
'dojo/_base/lang',
'dojo/_base/array',
'dojo/topic',

'dijit/DropDownMenu',
'dijit/MenuItem',

'esri/basemaps',
'esri/dijit/BasemapGallery',

'dojo/text!./Basemaps/templates/Basemaps.html',
'dojo/i18n!./Basemaps/nls/resource',

'dijit/form/DropDownButton',
'xstyle/css!./Basemaps/css/Basemaps.css'

], function (
declare,
_WidgetBase,
_TemplatedMixin,
_WidgetsInTemplateMixin,
lang,
array,
topic,

DropDownMenu,
MenuItem,

esriBasemaps,
BasemapGallery,

template,
i18n

) {
return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
    templateString: template,
    widgetsInTemplate: true,
    i18n: i18n,
    title: i18n.title,
    baseClass: 'basemapWidget',
    basemaps: {},
    currentBasemap: null,
    mapStartBasemap: null,
    basemapsToShow: null,
    galleryOptions: {
        basemapIds: null,
        basemaps: null,
        basemapsGroup: null,
        bingMapsKey: null,
        portalUrl: null,
        referenceIds: null,
        showArcGISBasemaps: false
    },

    postCreate: function () {
        this.inherited(arguments);
        this.initializeBasemaps();
        this.createBasemapGallery();
        topic.subscribe('basemaps/updateBasemap', lang.hitch(this, 'updateBasemap'));
			//***********************Appsetting Part ***************************
		topic.publish('AppSettings/setValue', 'basemaps', basemap);
		topic.subscribe('AppSettings/onSettingsLoad', Lang.hitch(this, function (appSettings) {
				if(appSettings.basemap && //make sure it exists
		                  (appSettings.basemap.save || //the user had the checkbox checked
			          appSettings.basemap.urlLoad) //the user has loaded a url with this setting in it
			) {
			console.log(appSettings.mySetting);
			}
		}));
    },

    initializeBasemaps: function () {
        if (this.galleryOptions.basemaps) {
            // if the basemaps to show is not explicitly set, get them from the gallery's basemap array
            this.basemapsToShow = this.basemapsToShow || array.map(this.galleryOptions.basemaps, function (basemap) {
                return basemap.id;
            });
        } else {
            // no basemaps? use the Esri basemaps
            if (!this.basemaps || Object.keys(this.basemaps).length < 1) {
                this.basemaps = lang.clone(esriBasemaps);
                this.galleryOptions.showArcGISBasemaps = false;
            }

            // if the basemaps to show is not explicitly set, get them from the basemap object
            this.basemapsToShow = this.basemapsToShow || Object.keys(this.basemaps);

            var basemaps = [];
            array.forEach(this.basemapsToShow, lang.hitch(this, function (key) {
                var map = this.basemaps[key];
                // determine if it is a custom basemap or an esri basemap
                if (map.basemap && map.basemap.declaredClass === 'esri.dijit.Basemap') {
                    var basemap = map.basemap;
                    basemap.title = map.title || basemap.title;
                    basemap.id = key;
                    basemaps.push(basemap);
                } else {
                    if (!esriBasemaps[key]) {
                        map.basemap.title = map.title || map.basemap.title;
                        esriBasemaps[key] = map.basemap;
                    }
                    map.title = map.title || esriBasemaps[key].title;
                    this.galleryOptions.showArcGISBasemaps = false;
                }
            }));
            this.galleryOptions.basemaps = basemaps;
        }

        // if the starting basemap is not explicitly set, get it from the map
        this.mapStartBasemap = this.mapStartBasemap || this.map.getBasemap();

        // check to make sure the starting basemap is found in the basemaps object
        if (array.indexOf(this.basemapsToShow, this.mapStartBasemap) < 0) {
            this.mapStartBasemap = this.basemapsToShow[0];
        }
    },

    createBasemapGallery: function () {
        var opts = lang.mixin({
            map: this.map
        }, this.galleryOptions);
        this.gallery = new BasemapGallery(opts);
        this.gallery.startup();
        if (this.galleryOptions.showArcGISBasemaps) {
            this.gallery.on('load', lang.hitch(this, 'buildMenu'));
        } else {
            this.buildMenu();
        }
    },

    buildMenu: function () {
        this.menu = new DropDownMenu({
            style: 'display: none;'
        });
        array.forEach(this.basemapsToShow, function (basemap) {
            if (this.basemaps.hasOwnProperty(basemap)) {
                var menuItem = new MenuItem({
                    id: basemap,
                    label: this.basemaps[basemap].title,
                    iconClass: (basemap === this.mapStartBasemap) ? 'selectedIcon' : 'emptyIcon',
                    onClick: lang.hitch(this, 'updateBasemap', basemap)
                });
                this.menu.addChild(menuItem);
            }
        }, this);
        this.dropDownButton.set('dropDown', this.menu);
        this.setStartingBasemap();
    },

    setStartingBasemap: function () {
        if (this.mapStartBasemap && (this.gallery.get(this.mapStartBasemap) || esriBasemaps[this.mapStartBasemap])) {
            this.updateBasemap(this.mapStartBasemap);
        }
    },

    updateBasemap: function (basemap) {
        if (basemap !== this.currentBasemap && (array.indexOf(this.basemapsToShow, basemap) !== -1)) {
            if (this.gallery.get(basemap)) {
                this.gallery.select(basemap);
            } else if (esriBasemaps[basemap]) {
                this.gallery._removeBasemapLayers();
                this.gallery._removeReferenceLayer();
                this.map.setBasemap(basemap);
            } else {
                topic.publish('viewer/error', 'Invalid basemap selected.');
                return;
            }
            this.currentBasemap = basemap;
            var ch = this.menu.getChildren();
            array.forEach(ch, function (c) {
                if (c.id === basemap) {
                    c.set('iconClass', 'selectedIcon');
                } else {
                    c.set('iconClass', 'emptyIcon');
                }
            });
        }
    }
});

});
-->

You need to publish AppSettings/setValue when the basemap changes. This would be in the updateBasemap function.
updateBasemap: function(basemap){
    topic.publish('AppSettings/setValue', 'basemaps', basemap);
    //.....

Hello,  I noticed to make a custom basemap get saved in the appSettings.js I had to make this change

and then put this in the Basemap.js   (from above comment)

and this is the viewer.js  options portion of the appsettings config


Prevent Service Fabric from generating firewall rules automatically for external access

Currently, I already create an On-Premises Standalone Service Fabric Cluster with 5 nodes (Windows Server 2016 with Containers) with Windows Security, the only way that I want that external users access to the cluster it is across from the API Gateway, so I remove the firewall rules in every node of the cluster accessing the port to the Reverse Proxy (19081) and the range of ports that represents the Microservices in Service Fabric... so everything is OK at this point... but after I remove that rules and pass certain time, that firewall rules appears again in the inbound firewall rules Reverse Proxy 19081 and the range of ports that represent the Microservices specified in the cluster configuration file when I created the SF cluster.
How can I prevent Service Fabric to generate this rules that automatically it creates?, Can I suspend this action? If so, how?
Thanks in advance...

Help please ...

It's not clear what you mean by this:

the only way that I want that external users access to the cluster it is across from the API Gateway,

Stand Alone clusters will have a reverse proxy endpoint, as configured by the following setting in your json configuration file:
"nodeTypes": [
    "reverseProxyEndpointPort": "19081", //Default
[...]

A cluster has to have multiple system endpoints available always, not only for admin access and management but also for replication. Manually modifying firewall rules created by Service Fabric will likely result in your cluster just being unresponsive.
It's up to your clients to connect to the correct ports.

Ok let me more clarify my problem starting from the following image:

As you can see, all frontends just access accross a NLB installed in the 5 nodes and define the domain "api.domain.net" pointing to a specific IPAddress and port (50605), and the NLB decides to which Node of the 5 will select with the same port (50605). The only ports that I want to expose from the Service Fabric Cluster externally are 19000 (Connect to SF), 19080 (SFX) and 50605 (API Gateway) but NOT THE MICROSERVICES PORTS, so for that I use the Windows Firewall Rules in every Cluster Node, but every certain time the Rules that I already remove created by the initial Service Fabric creation add them again as you can see in the following image:

I want to remove those ports and tell to Service Fabric that not generate again those firewall rules, but how?

Note: My Service Fabric is implemented in an On-Premises infrastructure.

I think understand what you're trying to do but I think you're trying to secure your cluster incorrectly.
For example. there are even more ports that Service Fabric uses beyond 19000 and 19080 for say replication and leasing. If you're trying to secure your cluster by blocking all ingress ports except for say RDP, 19000 and 19080 you're going to cause all your nodes to fail from lease failures.
Consider also the case where you're running more than 1 service that has and endpoint, how are you supposed to handle binding then?
Is configuring NLB drop rules at the gateway an option?

Hi @samedder , my problem was solved, I reuse the same Firewall rules that Service Fabric creates and just I specify the IP Addresses of the 5 SF nodes at "RemoteAddress" field in the rules as you can see in the following image:

With that I suspend the external access to the Reverse Proxy and the Microservices port range, I just want to give external access to the posts 19000 (SF Connect), 19080 (SFX) and 50605 (API Gateway [Secure Token Access with IdentityServer4]) added to the Firewall rules by demand like in the following image:

With this movement I solve my problem.
Thanks for your help...
Greetings

In general we do not recommend modifying the firewall rules added by service fabric like this. Any modifications should be done through the cluster manifest or cluster configuration so they are durable between host operations.

Ok, but how can I do the same approach in the cluster configuration file?

@samedder Hi, how can I do that in the cluster configuration file? The same approach...
Greetings

Hi @samedder @licjapodaca, just wondering if any update on how to do this using the cluster configuration as we're following the same approach (Standalone) with locking down the default ports to remote addresses?


Multilib

This change adds multilib configuration in accordance with the documentation in https://reviews.llvm.org/D143587
For the purposes of testing the multilib configuration, this change adds lit test configuration. It is intended that this test configuration will make it easier to add tests for other purposes as well, instead of adding targets in directly in CMake.

Sorry, I had forgotten to pass -Dmultilib=false to the picolibc build system. (If that option is enabled then the picolibc build system tries to do its own multilib detection and havoc ensues).


Easymesh Satellite Routers

This is more of a discussion point / request than an issue. I have an Archer AX73 as my primary router and two C80s as backhaul satellite nodes (plus a couple traditional mesh extenders) which make up my easymesh network.
I have an automation which utilizes the 'Restart Router' sensor/button from this integration. The issue is that this does not also reboot the satellite routers, only the primary AX73. The only way to restart satellite routers seems to be buried within submenus in the Tether app. I'm currently exploring programming a couple Tasmota plugs to provide a power on/off solution but I'd love to do this all from this integration if possible. Thanks for the work on this as it already provides a ton of function and data for me.

Hi!
I have 3 routers and I have added connected each separately to the integration. So I have a full control for every router.
Unfortunately, C80 is not supported by this integration. It would be great if you could add the support for your router by implementing methods for TplinkC6V4Router class here https://github.com/AlexandrErohin/TP-Link-Archer-C6U/blob/main/tplinkrouterc6u/client.py#L644

Thanks for the reply @AlexandrErohin -- I'll add this to my list of 'weekend projects'

I just got an AX3000 Range Extender (RE705X).  After installed, i find that my device tracking on my iphone is unavailable as my iphone is connecting to the range extender, instead of the main router.  It would reappear as HOME as i walk back to near to the main router.  Is there a way to fix this?


Add per-domain configuration files

It would be useful to be able to have different configuration files per domain(s).
Example use case:
Not all of my domains should use OCSP Must-Staple, but I still want to use the --cron flag for auto-renewal.

https://github.com/lukas2511/letsencrypt.sh/blob/master/docs/per-certificate-config.md

Whoops. Nice & thank you 😃


Readme: nullable must be imported from Json.Decode

Just a small fix, nullable was imported from the wrong package.

Nice, thank you!


Not throwing error for inner items of associative array

$data=json_decode(json_encode(array(
    "inner1" => array("foo" => array("id_1232" => "blah"))
)));

$refResolver = new JsonSchema\RefResolver(new JsonSchema\Uri\UriRetriever(), new JsonSchema\Uri\UriResolver());
$schema = $refResolver->resolve('file://' . realpath('schema.json'));
$validator = new JsonSchema\Validator();
$validator->check($data, $schema);
var_dump($validator->isValid());

Schema:
{
	"title": "Lobby data schema",
	"type": "object",
	"properties": {
		"inner1": {
			"type": "object",
			"items": {
				"type": "object",
				"properties": {
					"foo": {
						"type": "string"
					}
				},
				"required": ["foo"]
			}
		}
	},
	"required": ["inner1"]
}

How to validate php associative array with array inside it?

Your JSON schema doesn't reflect what you want to do. Let's do a quick, but hopefully deep analysis :D

The top level element needs to be an object: checked, as the php array( "key" => "value" ) encodes to an object in JSON.
the object is allowed to have the following properties (as indicated by the properties key):
** inner1 -> checked, as the php array( 'inner1' => 'bla' ) encodes to the json object { "inner1": "bla" }
** ok, the inner1 object is allowed to have the following listed items. Whoops? items? According to the specification for a json schema, items is a validation keyword for arrays, not for objects. So, the entirely items section of your json schema is correctly ignored for the object (as it's not an array). That's why (because additionalProperties isn't set to false), any value is valid against the given schema.

So, to fiy the problem, you should get rid of the items section and correctly represent your expected properties for the inner1 object with the properties validation keyword. To achieve what you want, you could use this schema:
{
    "title": "Lobby data schema",
    "type": "object",
    "properties": {
        "inner1": {
            "type": "object",
            "properties": {
                "foo": {
                    "type": "string"
                }
            },
            "required": ["foo"]
        }
    },
    "required": ["inner1"]
}

Any value of foo is invalid, except strings.
Thanks for reporting this issue, but it seems to be invalid :-)

@FlorianSW thanks for jumping on this!
Closing... please re-open if necessary.


Port retry handler test improvement to 2.1

Port of similar fix for 2.2 https://github.com/aspnet/Identity/pull/2052

Fix for https://github.com/aspnet/AspNetCore-Internal/issues/1312

This repo is being archived. If this is still something you want to get merged, open a new PR against https://github.com/aspnet/AspNetCore


Add user variable for adding custom name for Databases

Description
Now opta users can change the name of the databases with this new change.
Safety checklist

[x] This change is backwards compatible and safe to apply by existing users
[x] This change will NOT lead to data loss
[x] This change will NOT lead to downtime who already has an env/service setup

Example
environments:
  - name: aws
    path: "./aws.yml"
    variables:
      max_containers: 6
  - name: gcp
    path: "./gcp.yml"
    variables:
      max_containers: 6
input_variables:
  - name: name
name: test-naming
modules:
  - type: postgres
    name: postgres
    safety: false
    identifier: "{vars.name}"
  - name: redis
    type: redis
    identifier: "{vars.name}"

How has this change been tested, beside unit tests?
Manually tested.

What would happen if someone has a pre-existing database (any of the ones you have addressed in this code). This is currently named opta-layer-module....; now the user sees this new feature and adds identifier to their opta yaml file.
What is the behavior then? Will their pre-existing DB be renamed or deleted and replaced, for example?

I tested this but in order to be totally sure, let me verify this thing once again.
At places these changes are being ignored in lifecycle...at some places they aren't.


Exclude array to accept column names as well

More or less as the title says - would be good if the exclude array accepted columns names (columns.name) as well as index positions.

+1 on this - it is actually weird it is not already...

It would nice to have, make some things easier.


Lab 10 changes

removed memo/lightbulb icons as they only appear a couple of times through the lab, not consistent with the rest of the labs (no icons)
replaced numbered list and asterisk lists with dash list
updated code to use already created variable instead of having to copy/paste ABFS path
updated last two code cells to show both the same number of records(to allow for fair comparison)
changed wording on "Analyze Delta table with SQL queries" instructions to only run the last 2 code cells and the explanation for it.
changed the recap at the end of the lab to reflect the changes made to the lab, removing the list, as it was not consistent with the rest of the labs.

Thanks @Mihai-Ac


Controller log level should not be set to debug by default

Proposal
Currently, the default logging level for the controller is set to debug in the Helm Chart. The DEBUG level is not suitable for production, therefore the default logging level should be set to ERROR, WARN or INFO.

Also, the logging configuration of the controller is not consistent with other logging configurations in the same chart:
   logging:
    debug: true

vs
logging: INFO`