Issue Report - FreeOTP Unknown Issuer in Issuer Field

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[Yes] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[Yes] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
I have encountered an issue with FreeOTP on OPNsense where the issuer field displays as "unknown." This occurs when attempting to use FreeOTP for two-factor authentication within the OPNsense environment.
To Reproduce
Steps to reproduce the behaviour:

Install FreeOTP on a device.
Set up two-factor authentication in OPNsense using FreeOTP.
Generate a token and observe the issuer field.

Expected behaviour
I expected the issuer field in FreeOTP on OPNsense to display the correct and expected issuer information.  Unfortunately i don't see an option to set the issuer field.
Screenshots

Additional context
I do not get this error on Google Authenticator, it displays the hostname given to the OPNsense correctly.
Kindly provide steps to resolve this issue.
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 24.1 (amd64).

probably better ask them what they need to display an issuer... you can find their GitHub repo's at https://github.com/freeotp

probably better ask them what they need to display an issuer... you can find their GitHub repo's at https://github.com/freeotp

Hi, sure will do.
FYI: with pfSense it displays as FreeRadius Server since external authentication is built into that package.
Thanks.

Hi @AdSchellevis,
I get here following https://github.com/freeotp/freeotp-android/issues/387 and analyze URI returned by OPNsense in this comment https://github.com/freeotp/freeotp-android/issues/387#issuecomment-1926668075.
Just to know, did you except $config['system']['hostname'] to be viewed as the issuer here?

@joggee-fr yes, usually it shows user@domain in these type of apps.

@AdSchellevis
As I understand the docs on OTP URI format, in the case otpauth://totp/User1@Mail_VPN?secret=, User1@Mail_VPN is the account name. FreeOTP seems to choose to display the issuer but none is precised here.
OPNsense:User1@Mail_VPN would certainly display OPNsense as issuer for example. Or it seems it can also be added as URI parameters OPNsense:User1@Mail_VPN?secret=&issuer=OPNsense.

I don't mind adding an issuer, but I don't expect them to have a logo on their end....

@joggee-fr can you try https://github.com/opnsense/core/commit/12001a32f2605c7356c82f6ac26803d80a686fcd ? install via:
opnsense-patch 12001a3

@Gaitonde007, as you are the initial reporter could you give this patch a test?

@Gaitonde007, as you are the initial reporter could you give this patch a test?

Hi @joggee-fr , I have tested on Android and it works as expected. Issue on IOS still persists.
Thanks

@Gaitonde007, I am not aware of the iOS version of the FreeOTP application. However, did you open an issue there?


Custom useQuery typing

Hello 👋
I'm trying to build some reusable useQuery functions so that I don't have to declare them every time I want to use them. To do so, and to avoid having a lot of type repetition I've also created some custom typing so that I don't need to declare the TError type all the time.
To build my custom typing, I just tried to replicate the usage of types of useQuery in this codebase. It is defined as if follows:
import {
 UseQueryOptions,
 UseQueryReturnType,
} from "@tanstack/vue-query"
import { AxiosError } from "axios"

import { ErrorAPIResponse } from "@/types/model/APIResponse"

export type CustomUseQueryOptions<
 TArgs,
 TData,
 TError = Error | AxiosError<ErrorAPIResponse>,
> = Omit<
 UseQueryOptions<
   TData,
   TError,
   TData,
   TArgs extends void ? string[] : (string | TArgs)[]
 >,
 "queryKey" | "queryFn"
>

export type CustomQueryHook<
 TArgs,
 TData,
 TError = Error | AxiosError<ErrorAPIResponse>,
> = TArgs extends void
 ? (
     options?: CustomUseQueryOptions<TArgs, TData, TError>,
   ) => UseQueryReturnType<TData, TError>
 : (
     args: TArgs,
     options?: CustomUseQueryOptions<TArgs, TData, TError>,
   ) => UseQueryReturnType<TData, TError>

and one example of its usage in a custom useQuery:
import { useContext } from "@nuxtjs/composition-api"
import { useQuery } from "@tanstack/vue-query"

import { ApiPaths } from "@/enums"
import { SuccessAPIResponse } from "@/types/model/APIResponse"
import { User } from "@/types/model/User"
import { CustomQueryHook } from "@/types/vue-query"

type ApiResponse = SuccessAPIResponse<User[]>
export type UsersQueryResponse = User[]

export const queryKey = "UsersQuery"

export const useUsersQuery: CustomQueryHook<void, UsersQueryResponse> = (
  options,
) => {
  const { $axios } = useContext()

  return useQuery(
    [queryKey],
    async () => {
      const { data } = await $axios.get<ApiResponse>(ApiPaths.GET_USERS)

      return data.data
    },
    options,
  )
}

This approach is working with<EMAIL_ADDRESS>but failing with<EMAIL_ADDRESS>causing the following error:
Type '(options: CustomUseQueryOptions<void, UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>> | undefined) => UseQueryReturnType<...>' is not assignable to type '(options?: CustomUseQueryOptions<void, UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>> | undefined) => UseQueryReturnType<...>'.
  Type 'UseQueryReturnType<UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>>' is not assignable to type 'UseQueryReturnType<UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>, QueryObserverResult<UsersQueryResponse, Error | AxiosError<...>>>'.
    Type 'UseQueryReturnType<UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>>' is not assignable to type 'ToRefs<Readonly<QueryObserverLoadingResult<UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>>>> & { ...; }'.
      Type 'UseQueryReturnType<UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>>' is not assignable to type 'ToRefs<Readonly<QueryObserverLoadingResult<UsersQueryResponse, Error | AxiosError<ErrorAPIResponse>>>>'.
        Types of property 'data' are incompatible.
          Type 'Ref<undefined> | Ref<UsersQueryResponse>' is not assignable to type 'Ref<undefined>'.
            Type 'Ref<UsersQueryResponse>' is not assignable to type 'Ref<undefined>'.
              Type 'UsersQueryResponse' is not assignable to type 'undefined'.ts(2322)

The issue seems to be around the QueryObserverResult generic types, but I couldn't find a reason for it to not work. Am I missing something in my custom type definition or is it an issue with the types themselves?
Thanks!

Hello!
I also faced the same problem in my project.
The only way I've been able to get around this problem is to use an explicit cast on the result of calling the useQuery function:
export function useProduct(): UseQueryReturnType<ProductDTO, unknown> {
  const options: UseQueryOptions<ProductDTO, unknown> = {
    queryKey: [...],
    queryFn: () => ...
  };

  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  // @ts-ignore
  return useQuery(options) as UseQueryReturnType<ProductDTO, unknown>;
}

In runtime, this code works properly, that is, the problem is precisely in the type declarations.
By the way, the problem is reproduced not only on the latest version of<EMAIL_ADDRESS>but also on his<EMAIL_ADDRESS>

I would assume that this is due to additional overloads, that were added to accommodate for initialData provided as an option
https://github.com/DamianOsipiuk/vue-query/pull/240/files
In that case result of initialData is inferred as TQueryFnData. So unless you add the same overloads, you might have a problem with typing it properly.
But this also be something else. However i do not remember other changes that might affect it.
Ideally your custom hooks should not allow for all the options possible, but only those which might be needed to be changed for this particular query.

You might want to check the following release, which might fix your problem: https://github.com/TanStack/query/releases/tag/v4.18.1

Do you by any chance have a type annotation somewhere around this code as UseQueryReturnType<ProductDTO, unknown>?
Because this type would not be correct here, since your initialData can still return undefined.

@DamianOsipiuk, I prepared a repo with a minimal reproduction of the problem I wrote about above.
Repo Link: https://github.com/Alexis2004/vue-query-typings-issue
Link to Stackblitz: https://stackblitz.com/~/github.com/Alexis2004/vue-query-typings-issue
Everything in this example works as it should, except for the fact that I have to explicitly type the options variable (see src/product.ts:49).
If I remove the type definition from here, then I cannot find the correct return type for the useProduct function.

@Alexis2004 I have looked at your example, basically when you use initialData you should use UseQueryDefinedReturnType instead of UseQueryReturnType.

@DamianOsipiuk, thanks for the advice!
Indeed, everything works as it should, if I specify the type UseQueryDefinedReturnType.

Glad that it worked! 🎉


README update

Need to specify the required tags ("application", "service"). These 2 tags are required in order for users to use span-search qb in Wavefront
If we can include the instruction about span extract/inject in the README, that will be great. Or the other way is to provide a URL link to the opentracing-sdk doc?!

@sliu2013 PR https://github.com/wavefrontHQ/wavefront-opentracing-sdk-python/pull/3 : Application and Service are added via ApplicationTags similar to Java Opentracing SDK.
@susanjlindner We should consider adding the similar page of Context Propagation for Python.


Failed to load config "./node_modules/kcd-scripts/eslint.js" to extend from.

Since #974 is locked this is a re-file for the same issue that still occurs and is reproducible with the repository at https://github.com/Mossop/vscode-eslint-974.
Simply clone, npm install and then open the directory in VS Code and open the test.ts file there. You'll quickly see a popup notification complaining about referencing ./node_modules/kcd-scripts/eslint.js which correctly doesn't exist as kcd-scripts is a dev-dependency of @testing-library/dom and so not installed. The ESLint CLI shows no such error.

This works for me without problems. Here is what I see after running npm install and opening the workspace

Ah you're right, looks like it depends on some settings. I narrowed it down to requiring these settings:
{
    "eslint.validate": [
        "typescript",
    ],
    "typescript.tsserver.experimental.enableProjectDiagnostics": true,
}

So perhaps this is actually a bug in the TypeScript project diagnostics?

Could be. Best would be to file an issue against VS Code then. I will close the issue. Ping if you think there is something this extension needs to do.


Project Command

Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
A command that gives the Github link when called. Simple but may be helpful when someone asks where the project is located.
Describe alternatives you've considered
N/A
Additional context
N/A

#11


Fix Test_WSL_Ubuntu_22.04.yml

try using the ${{ github.ref }} var
use the same paths filter for pull_reqest

/fast-forward

/fast-forward


Add test for incremental build behaviour on changes

As requested, tests for incremental build behavior (#7, #18)
They fail at 5ce5eca53df0fc4fbabffe7176f2c4a0a039e6dd, but succeed at 8f814c2fdfec09cabd83e5f95603245c0a5c132f, so it looks like the latest commit fixes the incremental build being always up-to-date issue.

@ciscoo These Pipeline issues didn't surface when running the build locally. I'm investigating

@ciscoo  I can't figure out what's wrong in the pipeline, can you take a look?
The tests should be correct otherwise.


multiple commands

Hi there I have a request that might be able to do now but I am doing it incorrectly.
call plug#begin('~/.config/nvim/plugins')

Plug 'Valloric/YouCompleteMe', { 'for': ['c', 'cpp'] }
autocmd! User YouCompleteMe call youcompleteme#Enable()
Plug 'rhysd/vim-clang-format', { 'for': ['c', 'cpp'] }
Plug 'scrooloose/nerdtree'
Plug 'drmikehenry/vim-headerguard', { 'for': ['c', 'cpp'] }

call plug#end()

that's my vim config for this plugin.
I would like to add a do command to vim-clang format such as
Plug 'Valloric/YouCompleteMe', { 'for': ['c', 'cpp'] } { 'do': './install.py --clang-completer' }

adding that on the same line as listed above I get an error on that line.
How can I correct this configuration?

It's a vim dictionary. See :help dict for more info.
{ 'for': ['c', 'cpp'], 'do': './install.py --clang-completer' }


Bump RxSwift version to 6

Can we get this PR merged?

@uypanha you forgot to update Cartfile

How can I support this?

@haithngn I've updated and request with new PR.

What about this PR? Is it live?

Thank you, @uypanha, and others for chiming in! RxSwift seems to have been updated to 6.0 via #2120; I'm going to close this one. We'll look into releasing a new version of Moya soon, so you can use a tagged release with RxSwift 6.0!
Thanks again for your contributions!


feat(multitenant): make cluster project creation optional

make creating the distinct eab-gke cluster projects optional (still the default)

flake due to Error: Provider produced inconsistent result after apply https://github.com/GoogleCloudPlatform/terraform-google-enterprise-application/issues/115

/LGTM


python310Packages.hatch-jupyter-builder: don't depend on hatch

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

What's the motivation?

What's the motivation?

hatch was broken on python-updates which caused some python311 packages to fail. I wondered why cause hatch is built using python310.

Yeah, fixed in a390fa901d78a1d7d1b780aaae1da168196c58ee. Not sure if we should folow through with the removal.

Not sure if we should folow through with the removal.

Why wouldn't we given that hatch isn't needed to run the tests?


add -light variations

this should help #2

Hi! Just curious, why this PR was not merged?

Same question -- is providing the light variations of the base16 themes out of the scope of this package?

Author of the package here, I wrote this in college years ago. I'm not actively maintaining it any longer maybe @milkypostman can take over the project?

I kinda stopped using it. I don't know I have the motivation.

I can take care of this project, if that's okay.

@mkaito cool! very appreciate (I always lacking nice light themes)!


[Format] Standard alternative symbol for AdbcDriverInit

Based on @lidavidm's musings:

we could avoid this (there would still be AdbcDriverInit, but we could say something like the user must always provide the name of the symbol, or the name of the symbol is derived from the name of the library, or something like that).

It would actually be nice if there was a standard for deriving the symbol name. Could be something like the PascalCase(driver_name) + Init, so adbc_driver_sqlite becomes AdbcDriverSqliteInit. Then it could be used as a fallback if AdbcDriverInit isn't found.

The slight complication is that you can directly provide a path to a DLL too. So you'd also want to define things like "libadbc_driver_foo.so.2.0.0 -> adbc_driver_foo -> AdbcDriverFooInit" or "proprietary_adbc_driver.dll -> proprietary_adbc_driver -> ProprietaryAdbcDriverInit"


Naming the RG akvrotation results in resource name conflicts

The instructions say:

Under Resource group, select Create new. Name the group akvrotation.

If followed precisely, this will result in naming conflicts for Azure SQL Server and Key Vault.
The user should either be instructed to specify their own RG name or specify a "Resource Name Prefix".

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

ID: 2e2683db-d3c3-1ddf-1446-f7261c43c1bf
Version Independent ID: 2f64224d-6b38-4b04-5d5b-a7dd3f5b5ffb
Content: Rotation tutorial for resources with one set of authentication credentials stored in Azure Key Vault
Content Source: articles/key-vault/secrets/tutorial-rotation.md
Service: key-vault
Sub-service: secrets
GitHub Login: @msmbaldwin
Microsoft Alias: mbaldwin

@MisinformedDNA
Thanks for your feedback! I have assigned this issue to the author who will investigate and update as appropriate.

@MisinformedDNA
Thanks for your feedback! I have assigned this issue to the author who will investigate and update as appropriate.

@MisinformedDNA - the resource group name is an example. There will not be conflicts for AKV and SQL as shown below:
akvrotation-kv           akvrotation      eastus      Microsoft.KeyVault/vaults
akvrotation-sql          akvrotation      eastus      Microsoft.Sql/servers

@MisinformedDNA - the resource group name is an example. There will not be conflicts for AKV and SQL as shown below:
akvrotation-kv           akvrotation      eastus      Microsoft.KeyVault/vaults
akvrotation-sql          akvrotation      eastus      Microsoft.Sql/servers

@jlichwa Maybe I'm being too pedantic, but the instructions say "Name the group akvrotation", not "Give the group a name". If the instructions are followed exactly, which is generally how MS tutorials need to be followed, then the developer will experience resource name conflicts with other developers who have also followed the instructions exactly.
That's why I recommend we explicitly say that they need to give it their own name and that "the resource group name is an example" or add instructions for the developer to customize the resource prefix.
These are long running commands that depend on each other, so getting it right the first time saves the developer a lot of frustration.

Tutorial is for testing purpose usually to follow an example, so team can see how it works, not sure why you will see duplicate testing across developers within same group/subscription.
You can probably have the same issue to hundreds of tutorials/quickstarts across entire Azure where they explicitly say type a name :
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-portal#create-virtual-machine
I will make an update

The difference between the VM and this is that the VM name does not need to be globally unique, but SQL and KeyVault names do. That's the type of collision I'm referring to.

Updated "Under Resource group, select Create new. Give group a name, we use akvrotation in this tutorial."  #please-close


Switching off basicAuth does not work

Hello, this issue is closely related to the #9 .
Simply setting
basicAuth:
  enabled: false

Does not work, because the value is automatically set to true if any credentials are provided, and pact-broker-chart provides default values admin/admin.
Also, overriding default values with empty strings/nulls is not working, because in that case it fails on reading it as an environment variables.
Thank you

Hi @TomasMocek  good spot on the first point, I'll raise a PR to change this so there are no default values for username and password.
For your second point, on the username and password fields, I'll also add a .Values.broker.config.basicAuth.enabled check in there so the empty values in the first fix work :+1:
I'll try and get this in a PR by the end of the week - unless you beat me to it :)

@TomasMocek Just merged the above, when the release has been made and you can pull it, let me know if it works the way you want it to :+1:

Hello @ChrisJBurns , tested and works, thanks a lot!


doc: example for applying codenarc.properties file

Hey @pniederlag, thanks for the contribution! Could you sign our CLA (https://ableton.github.io/cla/) so we can properly review / accept it?

(I'll pass this on to @nre-ableton, who's more qualified to review this than me)

Closing in favor of https://github.com/AbletonDevTools/groovylint/pull/134, which contains this fix but also will run on our CI.


Missing  data signature in Google Billing

Hi,
Correct me if I am wrong but I think this line:
transaction.setTransactionDataSignature(purchase.getSignature());
is missing in following method:
PurchaseManagerGoogleBilling.handlePurchase()

That's correct, the line is missing. There are some other issues for googleplay implementation unresolved, so that's apparently not the right place to look for a solution.
As I am not doing server-side verification, I don't know for sure if this line is needed or if there is even more information needed and every implementation would be a shot in the dark, so it is better if this is done by someone who really uses the feature.

Only TransactionDataSignature and TransactionData is needed for purchase veryfication.
in PurchaseVerifierAndroidGoogle add this:
private String publicKey;

public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
}

@Override
public boolean isValid (Transaction transaction) {
        return Security.verify(publicKey, transaction.getTransactionData(), getTransactionDataSignature());

}

And here is Security class:
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.Signature;
import java.security.SignatureException;
import java.security.spec.X509EncodedKeySpec;

public class Security {

	private static final String KEY_FACTORY_ALGORITHM = "RSA";
	private static final String SIGNATURE_ALGORITHM = "SHA1withRSA";

	/**
	 * Generates a PublicKey instance from a string containing the
	 * Base64-encoded public key.
	 *
	 * @param encodedPublicKey
	 *            Base64-encoded public key
	 * @throws IllegalArgumentException
	 *             if encodedPublicKey is invalid
	 */
	public static PublicKey generatePublicKey(String encodedPublicKey) {
		try {
			byte[] decodedKey = Base64.decode(encodedPublicKey);
			KeyFactory keyFactory = KeyFactory.getInstance(KEY_FACTORY_ALGORITHM);
			return keyFactory.generatePublic(new X509EncodedKeySpec(decodedKey));
		} catch (Exception e) {

		}
		return null;

	}

	/**
	 * Verifies that the signature from the server matches the computed
	 * signature on the data. Returns true if the data is correctly signed.
	 *
	 * @param publicKey
	 *            public key associated with the developer account
	 * @param signedData
	 *            signed data from server
	 * @param signature
	 *            server signature
	 * @return true if the data and signature match
	 */
	public static boolean verify(PublicKey publicKey, String signedData, String signature) {
		Signature sig;
		try {
			sig = Signature.getInstance(SIGNATURE_ALGORITHM);
			sig.initVerify(publicKey);
			sig.update(signedData.getBytes());
			byte[] decodedSig = Base64.decode(signature);
			if (!sig.verify(decodedSig)) {
				// logger.error("Signature verification failed.");
				return false;
			}
			return true;
		} catch (SignatureException e) {

		} catch (Exception e) {
			//L.error(Security.class, "exception", e);
		}
		return false;
	}

}

I am using it and it is working. Replace Base64 in my Security class with Base64Util from  com.badlogic.gdx.pay.server.util;

Thank you. I've added the code, please also check it. It is published in the 0.12.0-SNAPSHOT.

Closing because no reaction.


dyson.py unable to handle "OFF" humidity state

Home Assistant release (hass --version):
0.49.0
Python release (python3 --version):
Python 3.5.2
Component/platform:
Dyson
Description of problem:
dyson.py script is expecting a numeric value for the "humidity sensor" reading, however when provided with "OFF" the script crashes and HASS does not load.
Expected:
It is expected that the dyson.py script can cope with the status provided by the humidity sensor and allow HASS to load without issue.
Problem-relevant configuration.yaml entries and steps to reproduce:
dyson:
  username: XXX
  password: XXX
  language: GB
  devices:
    - device_id: PE9-UK-XXXXXXXX
      device_ip: <IP_ADDRESS>

Traceback (if applicable):
Traceback (most recent call last):
  File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 2606, in _thread_main
    self.loop_forever(retry_first_connection=True)
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 1470, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 995, in loop
    rc = self.loop_read(max_packets)
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 1273, in loop_read
    rc = self._packet_read()
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 1838, in _packet_read
    rc = self._packet_handle()
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 2285, in _packet_handle
    return self._handle_publish()
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 2456, in _handle_publish
    self._handle_on_message(message)
  File "/Users/ollie/.homeassistant/deps/paho/mqtt/client.py", line 2603, in _handle_on_message
    self.on_message(self, self._userdata, message)
  File "/Users/ollie/.homeassistant/deps/libpurecoollink/dyson.py", line 267, in on_message
    device_msg = DysonEnvironmentalSensorState(payload)
  File "/Users/ollie/.homeassistant/deps/libpurecoollink/dyson.py", line 679, in __init__
    self._humidity = int(self.__get_field_value(data, 'hact'))
ValueError: invalid literal for int() with base 10: 'OFF'

Additional info:
Discussed on https://community.home-assistant.io/t/dyson-link-action-and-sensor/10145/65
The fix was to edit the file /components/dyson.py
and update the line
REQUIREMENTS = ['libpurecoollink==0.2.0']
With
REQUIREMENTS = ['libpurecoollink==0.3.0']

Based on their being a fix that you've identified, are you comfortable making the change and submitting a PR?

I confirm the issue and I'll submit a PR soon.
One possible other workaround is to enable continuous monitoringon the Dyson devices (not tested yet, can not confirm).

Hi Charles, I am unable to comment on the HA forum - apparently a 3 post limit for newbies...
I've turned on continuous monitoring, and after a short while the dashboard reflected that the humidity detected is 49% (the same as reported in my app).
Also, to check that it was a viable workaround, I left continuous monitoring switched on, and reverted the setting back to
REQUIREMENTS = ['libpurecoollink==0.2.0']
I was able to start HASS without any issues.
However, for my purposes, I will switch it back to 0.3.0 so I don't need to leave continuous monitoring switched on.

Sorry for the delay, I just submit a PR to fix this issue if devices are configured with standby monitoring disable.


linger_ms = 0 not working with rdlibkafka

Hi,
Im using pykafka and its been great, but I found a tiny bug:
when using rdlibkafka, and trying to create a producer with linger_ms=0, it raises this exception:
RdKafkaException(\'Configuration property "queue.buffering.max.ms" value 0 is outside allowed range 1..900000\\n\',)

However, in the documentation , it says that "linger_ms=0 indicates no lingering."
So I guess it should notice that this option does not work with rdlibkafka
Thanks for this awesome package!
Amit :)
PyKafka version: 2.4.0
Kafka version: 0.9.1

Hi @amitripshtos, thanks so much for the feedback and issue report - I'm glad you're getting some use out of pykafka.
I think the solution here is a combination of clearer documentation around rdkafka's interpretation of this argument and possibly logic in __init__ that ensures the given value for linger_ms is within the appropriate range.

I'm getting a similar error with rdkafka even using what the documentation says is the default value
>>> producer = topic.get_producer(delivery_reports=True, max_retries=100, retry_backoff_ms=100, use_rdkafka=True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/pykafka/topic.py", line 95, in get_producer
    return Cls(self._cluster, self, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pykafka/rdkafka/producer.py", line 52, in __init__
    super(RdKafkaProducer, self).__init__(**callargs)
  File "/usr/local/lib/python2.7/site-packages/pykafka/producer.py", line 186, in __init__
    self.start()
  File "/usr/local/lib/python2.7/site-packages/pykafka/rdkafka/producer.py", line 62, in start
    self._rdk_producer.configure(topic_conf=topic_conf)
pykafka.exceptions.RdKafkaException: Configuration property "message.timeout.ms" value 1212000 is outside allowed range 0..900000

>>> producer = topic.get_producer(delivery_reports=True, max_retries=100, retry_backoff_ms=100)
>>>

Thanks @pemontto. Looks like pykafka is doing some math to calculate message.timeout.ms that relies on the max_retries kwarg. When you set this value to 100, it results in a message.timeout.ms that is larger than rdkafka allows. I'm guessing we should add a check there that ensures the resulting value is within the allowable range. An easy workaround for the moment is to simply adjust mac_retries.

@amitripshtos If you're interested in opening a pull request fixing the documentation and allowed value checks around linger_ms, please feel free. If not, I'll get to it next time I'm building a new pykafka release.

I'm opposed to adding logic to the rdkafka components that validates config values based on their acceptable ranges in librdkafka. Those ranges can theoretically change at any time, and it makes more sense to leave a note in the docstring that certain combinations of values can make librdkafka unhappy than to maintain code that relies on a number in another project not changing.


Read item info in a certain shopcart

Author: Zihan Zhang @nijya

As a developer
I need to create an API to get the item list of a certain customer's shopcart
So that user or developers can obtain the items in the designated shopcart
Details and Assumptions

discussion thread

Assumed corresponding database model for shopcarts is available and accessible.
The API should be implemented using the REST architectural style.
The API should follow the standard HTTP methods, with the READ operation using the GET method.
The API should log necessary actions for debugging
The endpoint for retrieving shopcarts should be /shopcarts/{shopcart_id}/items.
The response body should be in JSON format.
The response body should be a list of item details.
The API should return a status code of 200 (OK) for successful retrieval.
The API should include appropriate error handling for invalid requests such as invalid or non-existent shopcart ID and internal error.
Instructions on how to use the API, including the endpoint and expected response format should be updated to README.md.

Acceptance Criteria
// Happy Path or Basic Functionality
Given a request to get the item list of a certain customer's shopcart,
When the API is called with an valid shopcart ID,
Then the API should respond with a status code of 200 (OK),
And the JSON response body should be the list of item details in the shopcart (even though it is empty).

// Error Handling
Given a request to get the item list of a certain customer's shopcart,
When the API is called with the invalid or non-existent shopcart ID,
Then the API should respond with a status code of 404 (Not Found),
And the response body should contain an error message indicating that the requested shopcart does not exist.

Given a request to get the item list of a certain customer's shopcart that encounters a database or internal failure,
When the API is called with a valid shopcart ID,
Then the API should respond with a status code of 500 (Internal Server Error),
And the response body should contain an error message indicating the failure to retrieve the shopcart due to a database or internal issue.

// Documentation
Given the API documentation, i.e. README.md,
When developers or consumers refer to it,
Then the documentation should provide clear instructions on how to use the API, including the endpoint, parameters, and expected response format,
And the documentation should include examples and sample requests to assist users in understanding the API.

Hey team! Please add your planning poker estimate with Zenhub @LillisLuo @momo100110 @nijya @wl2484

GET  /shopcarts/{shopcart_id}/items

Thank you Zihan @nijya for writing the story! It is great and I just slightly modified some parts of the description 🙂

Thank you Zihan @nijya for writing the story! It is great and I just slightly modified some parts of the description 🙂

Thanks for the modifications!


[Coverity CID :190986]Control flow issues in /subsys/net/lib/sockets/sockets_tls.c

Static code scan issues seen in File: /subsys/net/lib/sockets/sockets_tls.c
Category: Control flow issues
Function: tls_opt_hostname_set
Component: Networking
CID: 190986
Please fix or provide comments to square it off in coverity in the link: https://scan9.coverity.com/reports.htm#v32951/p12996

It's a false-positive, closing.


QCCSID

I need advice, I can't find precise information, if I change the QCCSID FROM 65535 TO 280,
What problems can I encounter?
Thank you

However with version "8.30" and "Sql executor" = 'None' it works

I will have to see about enabling source dates even with QCCSID 65535.

Change incoming

thank you


[feat] Add Support for Comments

Notes for Reviewers
This PR fixes #
Signed commits

[ ] Yes, I signed my commits.

I created these two icons and added their SVG values to the integrations spreadsheet.
Color:

White:

added custom svgs


Rename module and repository to thermof

It seems like a better name.
Only concern is if it becomes a more general usage thing for MOFs and Lammps a more general name could be better. Maybe mofmd or moflammps or lamof?
I don't know it also sounds kind of irrelevant.
We'll see.
I'll probably rename it to thermof.

#12 and #13 closes this.


Upgrade to xterm.js 4.16.0

❌ XTermIT.customKeyHandlerLowLevel fails

A fix for #59 can be implemented with xterm.js 4.19.0, so we'll need to upgrade to that version instead.


GGT_INTERNAL_ERROR: Can't add new pre-shutdown operations to a TreeOwner that is already shutting down

Error ID
583799b5-8542-451f-a8bd-943f436f87e1
What happened?
I was developing using sync from Visual Studio Code with Gadget and had modified database schema files for Gadget. When I tried to stash my changes, it pushed them to Gadget. Unfortunately, I had an active ggt dev session running, which pushed the changes and removed all the schema files from Gadget. This resulted in the following error:
GGT_INTERNAL_ERROR: Can't add new pre-shutdown operations to a TreeOwner that is already shutting down
Now, I cannot open the Dev Environment on Gadget because it will not load the app and displays the above error. Additionally, I cannot delete the environment from the Gadget Editor as it prompts for changes to the environment.
What did you expect to happen?
I expected the changes to be stashed locally without affecting the Gadget environment, especially since the ggt dev session was running. The Dev Environment should have continued functioning without removing the schema files or causing any errors. Additionally, I should be able to delete or modify the environment from the Gadget Editor without encountering errors.
Steps to reproduce

Use Visual Studio Code to sync with Gadget.
Modify database schema files for Gadget.
Run a ggt dev session.
Attempt to stash changes in Visual Studio Code.
Observe that the changes are pushed to Gadget, resulting in the removal of schema files.
Try to open the Dev Environment on Gadget and observe the error:

GGT_INTERNAL_ERROR: Can't add new pre-shutdown operations to a TreeOwner that is already shutting down

Attempt to delete the environment from the Gadget Editor and observe the prompt for changes, preventing deletion.

Anything else?
No response

Sorry about this! The team is going to investigate this now.

Any update on this ?

Any update on this ?

Hey Farzaal I'm part of the infrastructure team here at Gadget. Would you happen to be on Discord? If so could we chat about this issue? My discord handle is mikepresman


Fio version update

Rhel8 does not support fio_version='2.21'.
Signed-off-by: harishmunjulur<EMAIL_ADDRESS>

rhel8- http://pulpito.ceph.redhat.com/hmunjulu-2020-03-26_03:35:06-rbd-nautilus-distro-basic-argo/
rhel 7- http://pulpito.ceph.redhat.com/hmunjulu-2020-03-26_03:34:44-rbd-nautilus-distro-basic-argo/


Post recovery:2FA

Pre restore level 2 was completed and I had set up 2FA. But after wallet restore when I went to send it asked me to scan QR to setup 2FA.
Same happened in case of Sweep funds.

Verified this issue on dev app v2.0.69(428)


DLPX-82095 Upgrade toolkits JDK to 8u345-b01 for <IP_ADDRESS>

Description
upgrade host JDK versions to 8u345b01.
Made the code conditional to make it work for master branch with the same snippet.
###Testing
ab-prepush : http://selfservice.jenkins.delphix.com/job/appliance-build-orchestrator-pre-push/3024/

changes look reasonable to me.. I'd like to get an ab-pre-push of this on both 6.0/stage and master to verify it works for both branches..
I would have expected the automatic run would have been for 6.0/stage, so I might need to dig into why it picked master as the branch to test.. when this PR is targeting 6.0/stage:
± curl -s https://api.github.com/repos/delphix/host-jdks/pulls/19 | jq .base.ref
"6.0/stage"

In the mean time, can you apply this change on top of 6.0/stage and manually kick off a run to verify it picks up the correct URLs for that branch?

DLPX-82095 Upgrade toolkits JDK to 8u345-b01 for <IP_ADDRESS>

This PR title seems inconsistent with the changes.. we're updating only <IP_ADDRESS> in this PR, right? since we're only bumping the versions on master.. not on 6.0/stage or <IP_ADDRESS>.. should we change the title to match?

changes look reasonable to me.. I'd like to get an ab-pre-push of this on both 6.0/stage and master to verify it works for both branches..
I would have expected the automatic run would have been for 6.0/stage, so I might need to dig into why it picked master as the branch to test.. when this PR is targeting 6.0/stage:
± curl -s https://api.github.com/repos/delphix/host-jdks/pulls/19 | jq .base.ref
"6.0/stage"

In the mean time, can you apply this change on top of 6.0/stage and manually kick off a run to verify it picks up the correct URLs for that branch?

I was able to kick off a 6.0/stage build by specifying it in build parameters while kicking ab-prepush manually. Here's the new build - http://selfservice.jenkins.delphix.com/job/appliance-build-orchestrator-pre-push/3034/


For the ezpp window to not close when tabbing out

Is your feature request related to a problem? Please describe.
When you tab out and you have a ezpp window open, it closes out.
Describe the solution you'd like
A setting to disable it closing out when you tab out of the chrome window, and adds a button to close it out when you have that setting on.
Describe alternatives you've considered
Maybe just make it so it wont close out and there is a button to close it instead of a setting

Thanks for posting! Unfortunately this is an UI decision by browser developers, and we cannot alter that behavior. The opening and closing of the extension window is out of our control.


Genie uses deprecated _HAS_ITERATOR_DEBUGGING flag in MSVC 14+

Per my remarks in this thread:  https://github.com/bkaradzic/bgfx/issues/1200
MSVC 2015 deprecated the _HAS_ITERATOR_DEBUGGING macro, and its use makes BGFX's generated Visual Studio projects incompatible with standard ones (for debug builds).  Otherwise the libraries are fully compatible.
The problem can be worked around by disabling this line:  https://github.com/bkaradzic/bx/blob/master/scripts/toolchain.lua#L552
I suggest removing this definition, or making it optional in Genie (and off by default).

When I used VS2015 I didn't have any problems defining it. Nor I have it now with VS2017.

Also you can build bgfx your own script (amalgamated build makes this super easy).

The issue isn't with being able to define the macro; it makes BGFX's library files link-time incompatible with standard MSVC ones.  Moreover, iterator debugging works in VS2015+ regardless of whether this macro is defined, making it unnecessary for these targets


Best way to deal with arrays and defaultValues type

I have a form to create a program that has an array of programDays and in the form a user can add or delete any amount of programDays.

The way I'm dealing with this array in the form is by using the following:
  {daysIds.map((id, index) => (
    <FormStack width="full" key={id.id}>
      <FormSelect
        name={`programDays.${index}.day`}
        label="Día"
        isRequired
        placeholder="Seleccionar día"
      >
        <option value={Weekdays.MONDAY}>Lunes</option>
        <option value={Weekdays.TUESDAY}>Martes</option>
        <option value={Weekdays.WEDNESDAY}>Miércoles</option>
        <option value={Weekdays.THURSDAY}>Jueves</option>
        <option value={Weekdays.FRIDAY}>Viernes</option>
        <option value={Weekdays.SATURDAY}>Sábado</option>
        <option value={Weekdays.SUNDAY}>Doming</option>
      </FormSelect>
      <FormInput
        name={`programDays.${index}.fromTime`}
        label="Hora Inicio"
        type="time"
        isRequired
        step="1800"
      />
      <FormInput
        name={`programDays.${index}.toTime`}
        label="Hora Fin"
        type="time"
        isRequired
        step="1800" // 30 min
      />
    </FormStack>

This means that the forms ends up with fields such us programDays.0.day so I'm using a custom validator that unflattens the data and validate it with zod:
zod schema sample:
const programSchema = z.object({
  ...
  programDays: z
    .object({
      day: z.nativeEnum(Weekdays, {
        errorMap: (issue) => ({
          message: "Day can't be empty",
        }),
      }),
      fromTime: z.string().nonempty("From Time can't be empty"),
      toTime: z.string().nonempty("To Time can't be empty"),
    })
    .array(),
});

custom Validator:
import { FieldErrors, Validator } from "remix-validated-form";
import { z } from "zod";
import { flatten, unflatten } from "flat";

const isObject = (obj: unknown) => {
  return Object.prototype.toString.call(obj) === "[object Object]";
};

function unFlattenData(data: unknown): unknown {
  if (!isObject(data)) return data;

  return unflatten(data);
}

export function flattenData(data: unknown): unknown {
  if (!isObject(data)) return data;

  return flatten(data);
}

export function withZodFlatten<T>(zodSchema: z.Schema<T>): Validator<T> {
  return {
    validate: (value: unknown) => {
      const result = zodSchema.safeParse(unFlattenData(value));
      if (result.success) return { data: result.data, error: undefined };

      const fieldErrors: FieldErrors = {};
      getIssuesForError(result.error).forEach((issue) => {
        const path = issue.path.join(".");
        if (!fieldErrors[path]) fieldErrors[path] = issue.message;
      });
      return { error: fieldErrors, data: undefined };
    },
    validateField: (data, field) => {
      const result = zodSchema.safeParse(unFlattenData(data));
      if (result.success) return { error: undefined };
      return {
        error: getIssuesForError(result.error).find(
          (issue) => issue.path.join(".") === field
        )?.message,
      };
    },
  };
}

When using defaultValues I have to flatten the data so the array is converted to something like programDays.0.day: "MONDAY" so it can be used as the Form field names.
  const programFormValidator = withZodFlatten(programSchema);
  ...
  <ValidatedForm
    validator={programFormValidator}
    defaultValues={flattenData(defaultValues)}
    method="post"
  >

The form is working and all validation errors are been shown as expected but my only issue is with defaultValues type. The type for it is Partial<DataType>; that is taken from the validator. In this case, it's a zod schema that has an array of programDays objects but I'm passing the flatten version of it where it's no longer an array but something like:
  ...
  'programDays.0.id': 8,
  'programDays.0.day': 'MONDAY',
  'programDays.0.fromTime': '20:00',
  'programDays.0.toTime': '21:00',

@airjp73 I was wondering if you can think of any workaround for this. I've been trying to come up with a solution but all I can think of is using unknown for defaultValues.

Thanks for the issue @lucascurti!
I'm gonna let this bounce around in my head for a couple days. For now you can get around the type issue by doing this:
defaultValues={flattenData(defaultValues) as any}

One idea I'm having is to add an optional toFieldValues prop on ValidatedForm. So you would do something like this:
defaultValues={defaultValues}
toFieldValues={flattenData}

I sometimes set the defaultValues manually so I like the utility of having the type of defaultValues be the validated/parsed type of the form.
Totally open to other ideas!

Another minor point: You don't actually need a custom validator to get the transformation you want. Zod allows you to do this:
const schema = z.preprocess(
  unflattenData,
  z.object({
    foo: z.string(),
  })
);

I'm thinking more on a solution where the developer won't even have to worry about flattening or unflattening the data or schema. What do you think about doing something like this:

Add a hasDeepData flag to <ValidatedForm> and add it to the context.
Then in the useField hook, if hasDeepData === true and name has a period in it, split the name (name.split(".")) and do some logic to get the default value from defaultValues instead of defaultValues?.[name]
For the Validator you can also add a flag to check if data should be unflatten or it can be unflatten by default because unflattenData will be the same as data when there are no nested objects or arrays. Only edge case is if someone uses a period in a field name and they don't want it to be treated as an array or child object. Another option would be to add a new validator to the library: withZodDeepData()

Not sure about the hasDeepData name. The idea is to use something that makes it clear that the schema has child objects and/or arrays.
I think this approach would improve the developer experience and will make it easier to create forms with nested fields. It should be clear in the Readme that always a period should be used for the names in the form. I've seen that some languages such as php uses name="persons[0][name]"

I had a discussion about this with @airjp73 over Discord and agreed that the best way to go is to accept arrays and nested objects by default since it's a common need. I'll be working on a PR.
As @airjp73 suggested, we will take a Formik similar approach:  https://formik.org/docs/guides/arrays
@airjp73 it's ok if we use https://www.npmjs.com/package/flat or do you think a custom solution would be better?

I'm okay with using flat, it's a small package with no dependencies so I'm not worried about bundle size.

So overall, I think our requirements look a bit like this:

Support dot and bracket notation for nested objects and arrays (field.nested[0].value)
Accept un-nested data in the defaultValues prop and give it to the correct fields

<ValidatedForm
  defaultValues={{ field: { nested: [{ value: 'someValue' }] } }}
  // ...etc
/>

useField('field.nested[0].value') // <- returns 'someValue' as the defaultValue

Support nested fields when validating somehow

I want to make sure to hash out this last point some. I'm thinking that the Validator object can handle unflattening the object itself, but we could provide a util to make that easier for people who want to make their own validators. Something like this:
export function withZod<T>(zodSchema: z.Schema<T>): Validator<T> {
  return createValidator<T>({
    // everything inside here remains the same
    // createValidator handles unflattening the data and passes that data to the validator
  })
}

Does that seem reasonable @lucascurti?
Optional

Fields that contain dots or brackets and are not nested or turning off nesting completely

I don't think this is going to be common enough to be a huge issue if we don't support it. We can always add support later. If you feel like doing this, I think taking a page from Formik's book and doing the [not.nested] notation works for me, too.

@airjp73 I agree with those approaches. I'll let you know as soon as I have something working. Probably next week since I'm traveling tomorrow.


[BUG] Getting "Invalid Username or Password" as soon as visiting a client with the restricted-access step in the flow.

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When visiting any client I receive an error message upon the page loading that states "Invalid Username or Password".
It doesn't even ask a username or password or try to authenticate, I just immediately experience the above on all clients after binding.
I tested:

Having added the restricted-access role to the client and users.
Without the restricted-access role on any clients.
With the restricted-access on all clients and all users.
Without the existence of the restricted-access role at all, and not configured on any client.

As soon as I remove the "Restrict user authentication on clients" step from the flow, it works.
This is my current flow (cloned from the default flow, and tested before/after adding the restrict step):

This is the configuration of the step:

The error message in action:

Expected Behavior
I expect to see the normal authentication dialog before getting access granted/access denied based on the authenticator and associated roles been given to users and clients per the readme instructions.
Steps To Reproduce

My docker config is as follows (sensitive details (such as networks and DB info) omitted, external port and host censored):

  keycloak:
    image: quay.io/keycloak/keycloak:latest
    container_name: keycloak
    restart: unless-stopped
    command:
      - 'start'
      - '--hostname=x
      - '--proxy=edge'
    ports:
      - x:8080
    volumes:
      - ./keycloak-restrict-client-auth.jar:/opt/keycloak/providers/keycloak-restrict-client-auth.jar
    labels:
      - 'traefik.http.routers.keycloak.entrypoints=websecure'
      - 'traefik.http.routers.keycloak.rule=Host(`x`)'
      - 'traefik.http.routers.keycloak.tls=true'
      - 'traefik.http.routers.keycloak.tls.certresolver=myresolver'
      - 'traefik.http.services.keycloak.loadbalancer.server.scheme=http'
      - 'traefik.http.services.keycloak.loadbalancer.server.port=8080'
      - 'traefik.enable=true

I copied the default Browser flow.
Added the 'Restrict user authentication on clients' step.
Configured it as Required and for 'client-role'.
Bound it as my Browser flow.
I did test configuring the restricted-access role on users and clients, but the problem starts from step 5 and continues no matter what I do unless I remove the authenticator from the flow.

Version
- Keycloak: 19.0.1 (quarkus)
- This extension: 19.0.0 (Latest Release)

Anything else?
No response

Hey @HrBingR,
I think you mixed up required and alternative executions in your flow.
Please see https://github.com/sventorben/keycloak-restrict-client-auth/issues/9 for configuration instructions and let me know if this works for you.

Okay yup that's on me.
Difficult working from the new interface and trying to translate flows from the old interface (which IMO was much clearer) but I see you're planning to update the screenshots soon so looking forward to that.
Thanks for the assist!


The start_rtm.rs returns "missing scope"

That example would be a really great jumping off point, but I'm not sure which permissions I need to give it. Right now I'm giving it:
channels:history, channels:read, chat:write:user, im:history, im:read
But apparently more, or different ones are needed?
Thanks!

That's odd. Perhaps something had changed but my app only has the slash command permission. Hmmm

It does seem some things have changed.
This page implies you need a bot type token with the scope bot
https://api.slack.com/methods/rtm.connect

Ever get this resolved? Having the same issue

Do you have the scopes required according to the docs?

Ended up getting this resolved. The crate docs don't contain anything about how to set up a valid RTM token and the way through legacy bot tokens etc via the Slack API portal is a bit of an average user experience.

For how slack works you should read the slack docs https://api.slack.com/rtm they change a lot and it would be impossible for the docs.rs docs to mirror them.
For rtm Slack expects you to use the oauth flow and not a tester token. in fact they're soon removing the creation of test tokens. https://api.slack.com/legacy/oauth
New slack apps can't use rtm at all and i'm a little worried they're going to kill it

I'll try and make the docs link to related places though

New slack apps can't use rtm at all and i'm a little worried they're going to kill it

Same. Sorry didn't meant to come across as though I thought it was a crate doc problem, the Slack docs themselves are lacking. When I was Googling the error messages I found a lot of Python and JS devs with the same problem


Download link not updated

The docs mention a new version but there is no link to download the new version (89) and it seems the target site has not been updated with the new version

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

ID: 57f5478b-3132-21d0-a420-a1140db235de
Version Independent ID: 266bbd16-2117-f680-6493-e183eb09fdbc
Content: Azure AD Connect: Version release history
Content Source: articles/active-directory/hybrid/reference-connect-version-history.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: rodejo

@wUEZRs
Thanks for your feedback! When trying to find the <IP_ADDRESS> download, I was only able to find the previous version <IP_ADDRESS>

https://www.microsoft.com/en-us/download/details.aspx?id=47594
I've assigned this issue to the author who will investigate and update as appropriate.
Thank you for your time and patience throughout this issue.

#please-close doc was updated.


[main > release/client/rc5]: Extract serialized blobs from the ISnapshot instead of fetching from driver which could make network calls

Description
Extract serialized blobs from the ISnapshot which contains blob contents instead of fetching from driver which could make network calls. This affects the cases in Data virtualization where initial blob contents for some trees are missing in the snapshot and therefore driver does not have the contents cached, so it ends up making a bunch of network calls.

Approving and merging patch


add toast type

Before submitting the PR:

[ ] Does your PR reference an issue? If not, please chat to the team on Discord or GitHub before submission.
[ ] Did you update and run tests before submission using npm run test?
[ ] Does your branch follow our naming convention? If not, please amend the branch name using branch -m new-branch-name
[ ] Did you update documentation related to your new feature or changes?

What does your PR address?
Adds the CSSClasses autocomplete goodness to the toast

@ryceg I believe @niktek raised a good point about this the other day - the custom CssClasses type is only relevant for component props. It's what enables his post-build script to gather those values and ensure IntelliSense works for those. In this case I think we should just call a duck a duck. The expected values is a string and the description notifies the user this should be a class.


Local variable 'out' is redundant

Removing the variable "out" since it's not used for anything after assigning it a value besides returning it.

Thanks!


promote charm action

Github action to promote a release to a different channel. Testing it out here before copying over to other repos.

mypy strikes again.
We actually got the go-ahead (in Prometheus, and the patch I'm working on for loki alerting here) to drop static analysis of tests/. Just remove the tox target for static-[unit|integration]


pharmacy

Google map

Julian, I'm curious as to what you are attempting to do here. Can you give a justification as to why we should merge this code?


Added asserts to sorting_aos_vs_soa.cu to check that the results are sorted correctly

Thanks Jake! Looks great.


Feature Request: Ability to change size of modals

Feature Requested
Could you please consider the exposure of modal sizing through the Style Settings plug? Currently, the settings modal is huge on my 4K monitor and I can't easily see what I'm changing a setting for. Would be nice to have others, but it's not critical. Being able to change the font would be the cherry on top
Relevant Screenshot
No response
Relevance

[X] The feature would be useful to more users than just me.

Style Settings

[X] I have checked that the feature is not already available via the Style Settings plugin.

ah good idea, haven't thought of that one. luckily easy and quick to implement, so I just pushed an update that includes a style setting to change modal sizes.

Being able to change the font would be the cherry on top

the cherry is already there, it's the menu font in the "Typography" section of the Style Settings :)

So awesome. Thank you so much!
PS: I think styles setting has an issue with certain values on their sliders, but at least I got to set it to something more reasonable. Would be great to have this for the height as well.


Follow-up for fixing IDE/SourceKit tests after changes for [SE-0111]

What's in this pull request?
Reviewed by Ben Langmuir.
These are changes for fixing fallout on IDE/SourceKit after changes related to [SE-0111].
The changes are intrusive but they fix critical problems, for example failing to show external argument names in code-completion or cursor-info not showing local parameter names in function types.
Resolved bug number: (SR-)
rdar://27642873

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

A smoke test on macOS does the following:

Builds the compiler incrementally.
Builds the standard library only for macOS. Simulator standard libraries and
device standard libraries are not built.
lldb is not built.
The test and validation-test targets are run only for macOS. The optimized
version of these tests are not run.

A smoke test on Linux does the following:

Builds the compiler incrementally.
Builds the standard library incrementally.
lldb is built incrementally.
The swift test and validation-test targets are run. The optimized version of these
tests are not run.
lldb is tested.

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

@swift-ci smoke test OS X platform

@swift-ci test OS X platform

test/IDE/complete_from_stdlib.swift fails because of a stdlib difference between the branches, will update the test.

@swift-ci test OS X platform

@swift-ci test OS X platform


Can't login to my account with the reset link

the page doesn't load or redirect. i get this message
Found. Redirecting to

+1
The password reset page doesn't render/redirect properly. The complete source of the html is short enough to be posted here:

Found. Redirecting to

@remy is this because of your current rewrite of jsbin?


⚠ Aither has degraded performance

In 1bace55, Aither ($AIH) experienced degraded performance:

HTTP code: 200
Response time: 3671 ms

Resolved: Aither performance has improved in 1a33367 after 15 minutes.


[Vision] Increase validation check for ImagePredictor dataset, fix #1109

Issue #, if available:
Fix #1109
Description of changes:
Check for ImageDataset with invalid labels, try to auto-correct it if possible.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Job PR-1113-2 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1113/2/index.html


[FR] Customize metadata generation to avoid adding unnecessary unused JS wrappers

Is your feature request related to a problem? Please describe.
Currently, the whole Android SDK and all native libraries used in a {N} app are included in the metadata binary files. In order to reduce app size and improve startup performance, we should allow app/plugin developers to specify which entities (e.g. Java packages) need to actually be accessible from JavaScript.
Additional context
Things to consider:

This will be a breaking change because every plugin and every app which directly call into native code will need to start stating their native dependencies
Multiple such dependency lists coming from all plugins and the app should be merged. Maybe some changes in the CLI will be necessary as well.
There should be a way to allow everything to be included (like it's been before this feature)

An idea for UI which helps generate these lists from @shirakaba: Polyfill.io shows one user interface by which one could generate a package by specifying only the libraries that one needs. Maybe something like this  could be applied to the NativeScript runtimes: https://polyfill.io/v3/url-builder/
Corresponding feature request in iOS runtime is: https://github.com/NativeScript/ios-runtime/issues/1209

Not necessary to be a breaking change. It could be done only if the user wants it.

Implementing this could also allow capability based security of some kind in order to mitigate malicious plugins.

Sure, the app can have the final word. But what happens if some plugin adds such a configuration and the app hasn't. But you're right, it's not necessary to be a breaking change -- we can still generate all metadata if the app hasn't turned on some switch.

How about implementing this feature:

to generate metadata for everything (native SDK and native libraries) except specified libraries?
the app to have the only word, i.e. no plugin configuration?

Seems to be too limited in functionality and will require more manual work by everyone who decides to opt for it, as users will have to take into account all their plugins' JS implementation and the underlying native APIs it uses.

Config requirements
It seems like it comes down to this:

Both plugins and apps can either explicitly state their native API dependencies or leave them unspecified.
If both the plugins and app leave those native API dependencies unspecified, then we'll simply have to provide the whole runtime.
If one or more plugins leave those native API dependencies unspecified, then we'll need to make a decision based on the app's configuration.
We should ideally have a strategy for dealing with multi-purpose plugins that specify more dependencies on native APIs than the user knows they will actually be calling (i.e. because the user might only be using one limited sub-module of the plugin).

Potential approaches
We then have a question of how the app's configuration is interpreted, in the case that it is explicitly given. There are three simple approaches:

=: the list describes exactly all the APIs needed, but this will be cumbersome for the user to assemble (as they'd have to take into account all their plugins).
&&: the list describes all the APIs that are needed by the app, and will be intersected with those needed by the plugins. Again, this would be cumbersome for the same reasons as before.
||: the list describes all the APIs that are needed by the app, and will be unioned with those needed by the plugins. If any plugin doesn't specify its native API dependencies, then we'd unfortunately have to bundle the whole runtime.

I think the || approach is most attractive, as it entails the least inspection of plugins and the least amount of consideration.
If we additionally allowed some way to override, at app level, the specified native API dependencies of all plugins used by the app, then we'd be able to solve both the issues of multi-purpose plugins and the issues of older plugins that lack explicit native API dependency declarations.
Config file format
So maybe each plugin should have a file, tnsNativeDependencies.js. I'll be using iOS APIs as examples here, because I'm not familiar with Android, unfortunately:
module.exports = {
    /* The plugin's native API dependencies.
     * These will be used implicitly unless overridden by the app. */
    "__self__": [
        /* Foundation and CoreFoundation will be pretty common,
         * so we may want to agree on a minimal implicit set.
         * But that's a separate discussion. */
        "Foundation",
        "CoreFoundation",
        "UIKit",
        "WebKit"
    ]
};

Apps that don't call native APIs other than via the plugins wouldn't need to specify their own tnsNativeDependencies.js file (a union of all the native API dependencies specified in each plugin would implicitly be taken). But by specifying one at app level, they'd be able to override configs specified by plugins, and detail any native API dependencies used purely by the app.
module.exports = {
    /* The app's native API dependencies.
     * These will be unioned with those of the plugins. */
    "__self__": [
        "AVFoundation"
    ],
    /* Here we override the dependencies specified by a plugin. */
    "nativescript-syntax-highlighter": [
        "Foundation",
        "CoreFoundation",
        "UIKit",
        /* In the case that we know that we're not going
         * to use any of the WebKit-related features  */
        // "WebKit"
    ]
};

Thoughts?


Purge messages up to given message

Problem:
Currently the purge/clean command takes the number of messages to clean as the only way of specifying how far to clean, this can cause some difficulties when trying to clean lots of messages as you either have to guess roughly how many messages were sent or count them manually, and also makes it easy to go too far and delete messages you didn't want to.
Proposed Solution:
We could allow a message ID or link to be given as an argument instead of the number of messages. The bot would then delete all messages up to that message. This would speed up the process of removing messages and reduce the possibility of human error.
I'm not sure what the best way to modify the command to accept the ID as an argument would be so that would need to be discussed.

I can work on that issue if that's possible.

Implemented in #1055


How can I get file in current resource path?

I wanna write my api call test that compare with mocked JSON response from resources/api-response/auth-response.json file. when I execute test from command line ./gradlew app:test was working well but with spek plugin was pending on okhttp3 mock server.
my login api test and utility file:
https://gist.github.com/WickeDev/399d54330fbd759a5659aaf68703fd9e
when execute with spek plugin (test failed):
enqueueResponse() called with: inputStream = [ null ], path = [ /Users/wickedev/Library/Android/sdk/platforms/android-27/data/res/ ]
when execute with command line (test success):
enqueueResponse() called with: inputStream = [ java.io.BufferedInputStream@48a12036 ], path = [ /Users/wickedev/AndroidStudioProjects/mojito-renew/app/build/interrmediates/classes/test/release/ ]
Thank you

Not an issue with plugin, intellij is probably not treating resources/api-response/auth-response.json as a resource that's why it's not being copied to the output directory.

@raniejade but intellij(Android Studio 3.0) default embedded JUnit plugin also can read well resources/api-response/auth-response.json file in android project
https://i.imgur.com/roNEPJS.png

What version of the plugin are you using?

Read file is working well after spek plugin update to current version (v0.5.1-android-studio). but instead two problem occurred. one thing is kotlin icon is too big. another thing is pending forever on below below code as you see.
val mockWebServer = MockWebServer()
mockWebServer.enqueue(MockResponse().setBody("""{"result" : "OK" }"""))

https://imgur.com/WOs6AMj
Android Studio: 3.0
JUnit plugin: 1.0
Spek plugin: v0.5.1-android-studio
gradle files:
https://gist.github.com/WickeDev/54f3268363804f1f01789b8787908784
https://gist.github.com/WickeDev/2854b5970b7cbb33e6c24edbaa28bedc
thank you for your commitment

It's always pending because your'e not shutting down the webserver.

I insert code mockWebServer.shutdown() but same

You should examine a thread dump, there might be a non-daemon thread that is blocking the shutdown.

Oh I'm sorry. It's my mistake. I was mockWebServer start on beforeGroup, but did not called shutdown() on afterGroup. Thank you for quick response


Add support for containerized badfish

Update the commit messge to mention that this PR resolves https://github.com/redhat-performance/jetpack/issues/452.

Update the commit messge to mention that this PR resolves #452.

done.


Feature/billboard explosive crystal effect

Level scene should be fine to test

First of all thanks for the analisis. So about this at the end what was happening is that we were publishing the billboard in a vector of particles on a method called Start. That method was also called when we activate the game object also, so it was duplicating the entry in the particles vector. This was causing the program to break because on destroying the billboard after exploding the crystal, only one entry was deleted from the vector and the duplicated one was causing the exception. I added a check and apparently is fixed.


Mark flags as deprecated

We currently have a use case around features that are being phased out but can't be deleted yet due to old mobile clients still referencing it.
Is there a way to tag/mark the features as deprecated to be able to hide them from the UI without deleting them? Otherwise, I would like to request that feature.
Right now, adding a tag could work, but it only is a positive match filter rather than "anything except this tag".

Hey, yep I see what you mean - currently no but it’s a sensible suggestion. Will take a look!

@dabeeeenster can be closed when new GH pipelines are sorted.

OK pipeline now builds to production on merges to main - about to merge this in

@amweiss This is now live, feel free to message back here if there are any issues.

Reopening this, it needs a slightly different solution in order to support non-tagged features.

I think it would be go better to have a ‘hide flags in dashboard by default’ boolean stored against a tag. You can then create a tag called e.g deprecated and select the hide by default option.
The tag itself would still show up on the dashboard but would default to deselected, and none of the flags tagged with it would show initially.

Best option would be to store the selected/deselected tags against the user account (as a flagsmith trait) and default to those.

This is now live, tags are persisted and you can filter by untagged.


Do not allow modifying fides keys from the UI

Is your feature request related to a specific problem?
As a user, I want to be prevented from updating the fides_key of any existing taxonomy element.
Users should only be able to modify taxonomy fields that they added.
Describe the solution you'd like
If a user is trying to edit a field that is part of the default taxonomy, throw a Forbidden error.
Describe alternatives you've considered, if any
A description of any alternative solutions or features you've considered.
Additional context
Blocked by https://github.com/ethyca/fides/issues/854

I think this will naturally shake out of https://github.com/ethyca/fides/pull/977 where the form field for fides_key will be read only

Reassigned!


EDM-431: Autoapprove CSRs upon creation

Presently, CSR creation is restricted to authenticated users. This sets them to autoapproved as creation is already controlled by authentication.

This is superseded by #529


docs: delete outdated tutorials

Please, restore super convergence tutorial. It is quite informative and useful. Without it nobody will use super convergence because parameters are very difficult.

Please, also restore classification tutorial. It is not outdated and being always updated with all the changes in DeepPavlov.


Setup a reasonable default for pids-limit 4096

CRI-O defaults to 1024 for the maximum pids in a container.  Podman
should have a similar limit. Once we have a containers.conf, we can
set the limit in this file, and have it easily customizable.
Currently the documentation says that -1 sets pids-limit=max, but -1 fails.
This patch allows -1, but also indicates that 0 also sets the max pids limit.
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

LGTM

@rhatdan all kinds of test unhappiness

Think you need to touch up this too:
./cmd/podman/shared/create_cli.go:	if config.Resources.PidsLimit != 0 && !sysInfo.PidsLimit {

LGTM

/lgtm
/hold

@rhatdan, can you rebase?

Restarted the tests.

@rhatdan can we increase it to 4k? 1k seems very low. Systemd default to 4k.

Changed.

@giuseppe @mheon @TomSweeneyRedHat @baude @jwhonce @QiWang19 @vrothberg
I finally got this to pass tests. Can we get it merged?

LGTM

/lgtm

/hold cancel


Parking Lot

Agenda
Day 1

[x] Forking vs branching
[x] Intro to GitHub Apps, OAuth Apps and webhooks
[x] GitHub Actions as CI/CD
[x] Tags and releases
[x] Using GitHub Actions to automate releases
GitHub Flow

PRs
CODEOWNERS

Day 2

Recap previous day and answer any outlying questions
🔵  Creating repos from templates
🔵 How to manage orgs: teams
🔵 How to manage repos: branch protection rules
Releases vs. tags: best practices
Pull Request as reviewers
🔵 Git LFS
Changing history

Git internals
Cherry-picking

Backport flow

Git reset
Commit amend

Merge strategies
Bonus overview:

[x] GitHub CLI
Codespaces
[x] GitHub’s public roadmap: https://github.com/github/roadmap/projects/1

Post any questions you may have here during the training.

@rwnfoo
Please let me know if you have shared the recording in our Github common folder. Thanks!


Multi-Trait Manhattan Plot Issues

Hello,
I am currently using MVP.Report() to make a multi trait Manhattan plot. There are two issues I am running into:

Is there an argument to change the title of the plot?

Is there an argument to change/add colors to the overlapping point-plot. It appears that there are only 4 colors by default(blue, green, purple and orange) so when a 5th phenotype is added to the plot it goes back to blue, making two different phenotypes have the same color for their respective points.

Any help would be greatly appreciated.

Hello,
Thank you for using MVP. Really happy to see you again.
Q1:
Currently MVP has no parameters to modify the title of the plot. We will consider add this feature.
Q2:
You can use the col parameter to control what and how many colors to draw.

This issue is closed because it is no longer active


Yatin: Watch kiemtien.com

Yatin requests the watch of the watch_keyword kiemtien\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

kiemtien\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ


version: Expose version retrieval functions

Otherwise client code relying on it will not compile (undefined reference to
wpe_fdo_get_minor_version, etc).

Good catch, we'll need this in the 1.6.x release branch as well.

Cherry-picked as commit 1dda80de5372e56cdc6f818a3fca493f7cc1f9d6into thewpebackend-fdo-1.6` branch.


Documentation does not list emitted events

BLUF: I had to dig around in the source to find out what values are valid to pass to db.on().
For example, I have a singleton database instance that I use in several modules.  The singleton loads the database from file at startup, but if I try to read a collection immediately in a consuming module, there's no data, because the load isn't finished.  Since I'm not in the module that's calling loadDatabase(), I can't pass a callback to that method.
This is easy to solve by listening to the "loaded" event, but nowhere in the docs does it say that this event exists.  We see that Loki implements LokiEventEmitter so it has an on() method, but we don't know what events it will emit.
The JSDoc usage notes give this example of an @event tag:
    /**
     * Snowball event.
     *
     * @event Hurl#snowball
     * @type {object}
     * @property {boolean} isPacked - Indicates whether the snowball is tightly packed.
     */

You can also use @fires / @emits to annotate methods that (sometimes) cause those events to be emitted.

Nice suggestion.
I just had the same problem, with finding documentation about the available events.

Gah, I was on vacation and just got back to find this was flagged a day or two after I left, then closed halfway through.  Is there a way to get this issue re-opened or do I need to file a new one?  @techfort ?

i am up the walls but i will try to get this done asap

"Activity"!  (Still relevant.)

gotta find time to address this, damn

Marco?

Polo!

I only found 2 events: loaded and close, luckily we can add custom events
You can also use the collection event:
close
delete
error
flushbuffer
insert
pre-insert
pre-update
update
warning

use like:
coll.on('update', (event) => {
        console.log('coll change', event)
})

Guess it's just a "more activity" kind of day?

@Grewer there are quite a few events emitted in loki, just grep for emit( in lokijs.js:

      this.emit('warning', 'collection ' + collectionName + ' not found');
      this.emit('close');
              self.emit('loaded', 'database ' + self.filename + ' loaded');
              self.emit('loaded', 'empty database ' + self.filename + ' loaded');
              self.emit('loaded', 'database ' + self.filename + ' loaded');
      this.emit('rebuild', this);
        this.emit('filter');
      this.emit('sort');
      this.emit('sort');
      this.emit('sort');
        this.emit('rebuild', this);
      this.emit('filter');
      this.emit('filter');
          self.emit('rebuild', self);
        this.emit('rebuild', this);
        this.emit('pre-insert', doc);
      this.emit('insert', results);
        this.emit('error', err);
        this.emit('pre-insert', obj);
        this.emit('insert', returnObj);
        this.emit('pre-update', doc);
        this.emit('update', returnObj, oldInternal);
        this.emit('error', err);
        this.emit('error', err);
            this.emit('delete', this.data[positions[idx]]);
        this.emit('error', err);
        this.emit('delete', arr[0]);
        this.emit('error', err);

@Grewer there are quite a few events emitted in loki, just grep for emit( in lokijs.js:

      this.emit('warning', 'collection ' + collectionName + ' not found');
      this.emit('close');
              self.emit('loaded', 'database ' + self.filename + ' loaded');
              self.emit('loaded', 'empty database ' + self.filename + ' loaded');
              self.emit('loaded', 'database ' + self.filename + ' loaded');
      this.emit('rebuild', this);
        this.emit('filter');
      this.emit('sort');
      this.emit('sort');
      this.emit('sort');
        this.emit('rebuild', this);
      this.emit('filter');
      this.emit('filter');
          self.emit('rebuild', self);
        this.emit('rebuild', this);
        this.emit('pre-insert', doc);
      this.emit('insert', results);
        this.emit('error', err);
        this.emit('pre-insert', obj);
        this.emit('insert', returnObj);
        this.emit('pre-update', doc);
        this.emit('update', returnObj, oldInternal);
        this.emit('error', err);
        this.emit('error', err);
            this.emit('delete', this.data[positions[idx]]);
        this.emit('error', err);
        this.emit('delete', arr[0]);
        this.emit('error', err);


Fix Monaco Editor Initialization Issues and Improve WebView2 Integration

Description
This pull request addresses several issues related to the Monaco editor initialization and improves the integration with WebView2 in the LInjector application.
Changes Made

Monaco Editor Initialization: I've fixed issues with the Monaco editor not loading correctly in some cases.

Content Availability Check: I've added a check to ensure that the content is available after WebView2 initialization.

WebView2 Integration: Improved the integration with WebView2 by handling the initialization completed event appropriately.

Error Handling: Enhanced error handling throughout the code.

How to Test

Clone this pull request branch.
Build and run the LInjector application.
Verify that the Monaco editor loads correctly and that content is available.

Checklist

[x] Code compiles without errors
[x] Monaco editor loads and displays content
[x] Error handling improved
[x] Code comments added for clarity

Please review and merge this pull request.


Installing and initializing the live-plugin-manager breaks the module build

Preflight Checklist

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Issue Details

**Electron Forge Version: **

6.0.0-beta.52 <!-- (output of node_modules/.bin/electron-forge --version) e.g. 6.0.0-beta.45 -->

Electron Version:

v9.1.2 <!-- (output of node_modules/.bin/electron --version) e.g. 4.0.3 -->

Operating System:

macOs 10.13.6 (

Last Known Working Electron Forge version::

6.0.0-beta.52

Expected Behavior

I followed the instructions at live-plugin-manager
Actual Behavior

After installing the live-plugin-manager and initializing the  manager as:
import { PluginManager } from 'live-plugin-manager';

const manager = new PluginManager();

the npm start results in App throwing following error:
App threw an error during load
Error: Module build failed (from ./node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js):
SyntaxError: Unexpected token (85:14)
    at Object.module.exports.pp$4.raise (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:20834:13)
    at Object.module.exports.pp.unexpected (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:18680:8)
    at Object.module.exports.pp$1.parseTryStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:19069:49)
    at Object.module.exports.pp$1.parseStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:18834:32)
    at Object.parseStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:4539:118)
    at Object.parseStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:42314:22)
    at Object.module.exports.pp$1.parseBlock (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:19157:23)
    at Object.module.exports.pp$1.parseTryStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:19073:24)
    at Object.module.exports.pp$1.parseStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:18834:32)
    at Object.parseStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:4539:118)
    at Object.parseStatement (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:42314:22)
    at Object.module.exports.pp$1.parseBlock (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:19157:23)
    at Object.module.exports.pp$3.parseFunctionBody (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:20675:22)
    at Object.module.exports.pp$3.parseArrowExpression (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:20638:8)
    at Object.module.exports.pp$3.parseExprAtom (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:20227:21)
    at Object.parseExprAtom (/Users/kmacha/Dev/kiss-my-resume/node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js:4551:117)
    at Object../node_modules/fs-extra/lib/mkdirs/make-dir.js (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:9642:7)
    at __webpack_require__ (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:21:30)
    at Object../node_modules/fs-extra/lib/mkdirs/index.js (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:9619:44)
    at __webpack_require__ (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:21:30)
    at Object../node_modules/fs-extra/lib/copy-sync/copy-sync.js (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:8559:20)
    at __webpack_require__ (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:21:30)
    at Object../node_modules/fs-extra/lib/copy-sync/index.js (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:8736:13)
    at __webpack_require__ (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:21:30)
    at Object../node_modules/fs-extra/lib/index.js (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:9485:6)
    at __webpack_require__ (/Users/kmacha/Dev/kiss-my-resume/.webpack/main/index.js:21:30)

To Reproduce

Pull the electron-app branch of my app, install the live-plugin-manager and initialize the manager.
Additional Information
Generally this bug might be caused by the live-plugin-manager. I am seraching for solution allowing users locally install npm packages without needing to depend on npm installation. I tried to fetch those packages via HTTP, but then their dependencies are not installed. Maybe there is another way of achieving this without needing to use the live-plugin-manager
Full log with DEBUG=*
https://pastebin.com/zkBdNQfr

I get the same issue when updating @electron-forge above version 6.0.0-beta.50. Tested with 6.0.0-beta.52 and 6.0.0-beta.53

similar issue: https://github.com/electron-userland/electron-forge/issues/1726

Many thanks, I tries to downgrade @electron_forge to version 6.0.0-beta.50 but this did not help
$ npm list | grep @electron-forge*
├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ └──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ └─┬<EMAIL_ADDRESS>│ │ │   ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├─┬<EMAIL_ADDRESS>│ │ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ └──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├──<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>deduped
│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>

Sorry to hear. Seems that webpack combined with native modules is a hard nut to crack: https://github.com/electron-userland/electron-forge/issues/621#issuecomment-530082551

Import fs-extra will cause this bug too.
This is caused by @marshallofsound/webpack-asset-relocator-loader, you can simply comment it out in the :
module.exports = [
  // Add support for native node modules
  {
    test: /\.node$/,
    use: 'node-loader',
  },
  // {
  //   test: /\.(m?js|node)$/,
  //   parser: { amd: true },
  //   use: {
  //     loader: '@zeit/webpack-asset-relocator-loader',
  //     options: {
  //       outputAssetBase: 'native_modules',
  //       emitDirnameAll: true,
  //     },
  //   },
  // },
  {
    test: /\.tsx?$/,

...

I can't understand why we need this plugin, it seems useless according to its readme...
And I try replace it with @zeit/webpack-asset-relocator-loader, then there will be Uncaught ReferenceError: __dirname is not defined bug
So currently just comment it out, and it is fixed.

Many thanks @linonetwo, I commented the rule out and this fixed the build errors. I also wonder what the webpack-asset-relocator-loader is good for. I have to test the app further and see if I can build and package my app without any further problems.

webpack-asset-relocator-loader finds and relocates assets. Most importantly in the electron-forge context, it relocates binaries for node native modules when bundling with Webpack.
electron-forge uses a patched version which hasn't been updated for a while.

webpack-asset-relocator-loader finds and relocates assets. Most importantly in the electron-forge context, it relocates binaries for node native modules when bundling with Webpack.
electron-forge uses a patched version which hasn't been updated for a while.

well, why electron-forge works fine without it?

well, why electron-forge works fine without it?

Unless you're using a native node module, you are unlikely to need webpack-asset-relocator-loader...

Unless you're using a native node module, you are unlikely to need webpack-asset-relocator-loader...

I don't know but in my project if I use the original @vercel/webpack-asset-relocator-loader work fine also with native modules.

I don't know but in my project if I use the original @vercel/webpack-asset-relocator-loader work fine also with native modules.

Still getting this with v6.0.0-beta.59. Hoping for https://github.com/electron-userland/electron-forge/pull/2149 to solve it 🙏

v6.0.0-beta.60 finally solved this for us 🚀

Nope, on next yarn dev I got:
App threw an error during load
Error: Module build failed (from ./node_modules/@marshallofsound/webpack-asset-relocator-loader/dist/index.js):
SyntaxError: Unexpected token (13:10)
    at Object.module.exports.pp$4.raise (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:20834:13)
    at Object.module.exports.pp.unexpected (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:18680:8)
    at Object.module.exports.pp$1.parseTryStatement (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:19069:49)
    at Object.module.exports.pp$1.parseStatement (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:18834:32)
    at Object.parseStatement (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:4539:118)
    at Object.parseStatement (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:42314:22)
    at Object.module.exports.pp$1.parseBlock (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:19157:23)
    at Object.module.exports.pp$3.parseFunctionBody (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:20675:22)
    at Object.module.exports.pp$1.parseFunction (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:19273:8)
    at Object.module.exports.pp$3.parseExprAtom (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:20219:21)
    at Object.parseExprAtom (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:4551:117)
    at Object.parseExprAtom (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:42293:75)
    at Object.parseExprAtom (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:35894:26)
    at Object.parseExprAtom (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:15975:26)
    at Object.parseExprAtom (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:380:26)
    at Object.module.exports.pp$3.parseExprSubscripts (C:\Users\alexa\kapla4\node_modules\@marshallofsound\webpack-asset-relocator-loader\dist\index.js:20116:19)
    at Object../node_modules/fs-extra/lib/empty/index.js (C:\Users\alexa\kapla4\.webpack\main\index.js:10474:7)
    at __webpack_require__ (C:\Users\alexa\kapla4\.webpack\main\index.js:13400:41)
    at Object../node_modules/fs-extra/lib/index.js (C:\Users\alexa\kapla4\.webpack\main\index.js:10687:6)
    at __webpack_require__ (C:\Users\alexa\kapla4\.webpack\main\index.js:13400:41)
    at C:\Users\alexa\kapla4\.webpack\main\index.js:13425:10
    at C:\Users\alexa\kapla4\.webpack\main\index.js:13690:3
    at Object.<anonymous> (C:\Users\alexa\kapla4\.webpack\main\index.js:13693:12)
    at Module._compile (internal/modules/cjs/loader.js:1083:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1113:10)
    at Module.load (internal/modules/cjs/loader.js:940:32)
| Compiling Renderer Code
An unhandled rejection has occurred inside Forge:
[Error: EISDIR: illegal operation on a directory, read] {
  errno: -4068,
  code: 'EISDIR',
  syscall: 'read'
}

Electron Forge was terminated. Location:
{}
error Command failed with exit code 1.

Why is this issue closed?

So this issue should be re-opened

No, see https://www.electronforge.io/config/plugins/webpack#native-modules

@malept Thanks a lot. I did not realize that the docs had changed. Following that advice I now run into https://github.com/electron-userland/electron-forge/issues/2361

O.k., so after lots of experimenting I completely changed the way to use externals. I am now following https://www.electronforge.io/config/plugins/webpack#native-modules closely, using @vercel/webpack-asset-relocator-loader. And it works.
What broke it for me was the fact that my project had quite some history, struggling with the native library. So it used a lot of tips and tricks found in a number of other issues. Which seem not to work anymore for newer versions of electron-forge. Add to that my not understanding what is going on here, and you get quite a confusing mess.
Thanks a lot for this great tool, @malept


Literals refactor

Refactored Dictionary generic syntax to use literals: Dictionary<Key, Value> to [Key: Value]
Refactored Array generic syntax to use literals: Array to [A]
#272

:boat:

Shit, sorry about that.  Let Travis do its magic again.


Inclusion of odeint headers leads to deprecation warnings

When including #include <boost/numeric/odeint.hpp>, I get the following compilation warnings with g++ 10.2/mingw-w64 on Windows:
In file included from C:\Libraries\boost_1_74_0/boost/config/header_deprecated.hpp:18,                  from C:\Libraries\boost_1_74_0/boost/range/result_iterator.hpp:18,                  from C:\Libraries\boost_1_74_0/boost/range/metafunctions.hpp:20,                  from C:\Libraries\boost_1_74_0/boost/range.hpp:19,                  from C:\Libraries\boost_1_74_0/boost/numeric/odeint/util/resize.hpp:22,                  from C:\Libraries\boost_1_74_0/boost/numeric/odeint/util/state_wrapper.hpp:26,                  from C:\Libraries\boost_1_74_0/boost/numeric/odeint/util/ublas_wrapper.hpp:33,                  from C:\Libraries\boost_1_74_0/boost/numeric/odeint.hpp:25,                  from ..MyOwnFile.cpp C:\Libraries\boost_1_74_0/boost/range/result_iterator.hpp:20:1: note: '#pragma message: This header is deprecated. Use <boost/range/iterator.hpp> instead.'    20 | BOOST_HEADER_DEPRECATED("<boost/range/iterator.hpp>")       | ^~~~~~~~~~~~~~~~~~~~~~~ C:\Libraries\boost_1_74_0/boost/range/const_reverse_iterator.hpp:20:1: note: '#pragma message: This header is deprecated. Use <boost/range/reverse_iterator.hpp> instead.'    20 | BOOST_HEADER_DEPRECATED("<boost/range/reverse_iterator.hpp>")       | ^~~~~~~~~~~~~~~~~~~~~~~ C:\Libraries\boost_1_74_0/boost/range/reverse_result_iterator.hpp:20:1: note: '#pragma message: This header is deprecated. Use <boost/range/reverse_iterator.hpp> instead.'    20 | BOOST_HEADER_DEPRECATED("<boost/range/reverse_iterator.hpp>")       | ^~~~~~~~~~~~~~~~~~~~~~~

This is a problem of Boost.Range and will be fixed in Boost 1.75, https://github.com/boostorg/range/issues/106.