External services not appearing in load balancer configuration page

Rancher Versions:
Server: 1.4.0
Docker Version: 1.13
OS and where are the hosts located? (cloud, bare metal, etc): AWS
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB) HA rancher, external (RDS) DB
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) Cattle
Steps to Reproduce:

Create external service
Attempt to add external service to the load balancer

Results: There is not an option to select the external service in the load balancer config.
This seemed possible at on point but appears to be a regression: https://github.com/rancher/rancher/issues/2624#issuecomment-277448137
I don't see where I could find the load balancer version number but I just updated to the latest one - 0.5.something.
(We're trying to get around some SSL cert mismatch issues by proxying our requests through Rancher.)

Version - 1.5.0-rc1
External Services that use a hostname instead of IP address as Target are not showing up in the Target drop-down for Load Balancers.  This is indeed a regression of #2624.

I am also running into this on v1.4.1

This is still broken in 1.5.5 :-(

No, it's not.  External hostnames intentionally do not show up because balancing to a name has a variety of implications and tradeoffs and configuration that we do not have controls to manage.
External IPs were probably broken in 1.4 but work fine in 1.5.

Yes, it very much is, because it is a regression of #2624.


Remove obsolete code in Castle.Facilities.Logging

This is the work to resolve #616; it's built off the #630 branch, so I anticipate rebasing this branch once that's merged down. There will be more noise in this PR until then.

I've re-based this, and build now passing again. Still need to update the docs regarding deprecated APIs.

Looks like this is only missing the changelog update now. @Jevonius would you accept those as a PR into your feature branch? I think @lunchin did the hard work already so I'd happily add that to the changelog so we get get #621 out the door.

@jonorossi is there something preventing us from moving forward here as suggested by @Regenhardt?


Question re: usage and extending to excalidraw or slides.

Hey. Remember me? I am random person who you kindly wrote this plugin for, and I assume I am probably the only person using it. So I really owe you a great ton of thanks. That said, just to keep you honest, here I am for more... ;-)
Also, sorry for the longwinded and possibly stupid question, I just want to be clear and explain what I have tried already.

My first question is what exactly are you matching to initialize the js? Is it pre.scratchblock, code.scratchblock? ...

The things that work are:
```scratchblock
go to x: (0) y: (0)
```

````ad-note
~~~scratchblock
go to x: (0) y: (0)
~~~
````

but things like this don't:

go to x: (0) y: (0)

go to x: (0) y: (0)

(this may be because obsidian doesn't process markdown within html?)
or, using attributes
go to x: (0) y: (0)
{ .scratchblock }

even though when rendered the parent elements have class scratchblock.
In the original html  implementation for scratchblocks I believe one can render to any tag, not just class scratchblock or even code blocks. You might recall that it uses a js call like this:
<%*
scratchblocks.renderMatching('div.ad-scratch pre', {
  style:     'scratch3',   // Optional, defaults to 'scratch2'.
  languages: ['en', 'de'], // Optional, defaults to ['en'].
  scale: 1,                // Optional, defaults to 1
});
%>

where I can specify a list of tags to match...
Is there a way to use it in this way, i.e. specify other tags ot match??

I know this isn't the intended usage, but on a lark I tried using this in conjunction with obsidian + excalidraw (probably impossible) and slides (should be  possible). Slides didn't find it and just rendered the code.

Excalidraw allllmost got there. It clearly must have called the plugin, as it is showing the block shapes, but it's showing up all black, which I guess is to be expected. (It also only works if no icon is used. The large arrow in the picture is the icon...).

I have to look more closely at their api but I wonder if you know anything about this...
(Canvas works fine.)
I realize these may be issues with excalidraw and slides, but you might have information that would be of help...

In fact, what I really want is to be able to apply this to 'inline code', but there is no way to assign class attributes to inline code in Obsidian, as far as I know, and even so, would it work?

like this:
`go to x: (0) y: (0) { .scratchblock }`
go to x: (0) y: (0)

or some other way.
I am wondering if there is a way to fix any of these.

When you shared this with me you mentioned something about using it with templater, but I couldn't get that working. What did you mean?

If this is all too much of a drag or you are too busy or for any other reason, please feel free to say so and I won't take offense. Or if I can compensate you in any way...I really appreciate what you did and it's been a great help...too good I guess... :D

https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/974#issuecomment-1399410015
https://github.com/scratchblocks/scratchblocks/issues/467#issuecomment-1400761194
I fixed it. I just needed to add the correct css to the excalidraw css settings.


Example of xunit tests in c# to access application settings.

How can I integrate application settings to HttpTrigger azure function xunit tests?

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

ID: a571957f-41ce-e7ea-5f0b-1aefb8b219fa
Version Independent ID: 6c676eb8-581c-c5c5-0047-c7a7531fa423
Content: Testing Azure Functions
Content Source: articles/azure-functions/functions-test-a-function.md
Service: azure-functions
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

Hi @Bhsha Thank you for your feedback! We will review and update as appropriate.

@Bhsha  Just checking if you have gone through this GitHub samples and see if that helps.

Yes, but this example doesn't use application settings. That is what I am looking for.

@craigshoemaker Can you please provide your inputs here.

@Bhsha The best approach is to use System.Environment.GetEnvironmentVariable. From the docs:

App settings can be read from environment variables both when developing locally and when running in Azure

I'll add a link to the doc to make it easy to find.

Hi Craig,
Thanks for pointers. Yes, I tried this approach but Environment variable doesn’t have values set when function is triggered from xunit test.
Thanks,
Bhoomi Shah
From: Craig Shoemaker<EMAIL_ADDRESS>Sent: Friday, April 5, 2019 10:13 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Bhoomi Shah<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Example of xunit tests in c# to access application settings. (#28806)
@Bhshahttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FBhsha&data=02|01|Bhoomi.Shah%40microsoft.com|c6d3288e06a048a1858e08d6b9e9eeff|72f988bf86f141af91ab2d7cd011db47|1|0|636900811718892152&sdata=UVzWAj5dNRSsUep%2FFNNUSqKJOeuEoiA6k6h5JDeEqhk%3D&reserved=0 The best approach is to use System.Environment.GetEnvironmentVariablehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-functions%2Ffunctions-dotnet-class-library%23environment-variables&data=02|01|Bhoomi.Shah%40microsoft.com|c6d3288e06a048a1858e08d6b9e9eeff|72f988bf86f141af91ab2d7cd011db47|1|0|636900811718902168&sdata=j8qEb3zre1Wd12aVypvjwmfLj31C9tMY82sy%2BIFoRIA%3D&reserved=0. From the docs:
App settings can be read from environment variables both when developing locally and when running in Azure
I'll add a link to the doc to make it easy to find.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F28806%23issuecomment-480352650&data=02|01|Bhoomi.Shah%40microsoft.com|c6d3288e06a048a1858e08d6b9e9eeff|72f988bf86f141af91ab2d7cd011db47|1|0|636900811718902168&sdata=Lq57Zcd%2BBlx9b9uIiArNYvhaEhhG9wUmjWpiO51fmHE%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAvAt938yfSJaMszyoFB34t1tRXAyVY4nks5vd4QSgaJpZM4cd8_d&data=02|01|Bhoomi.Shah%40microsoft.com|c6d3288e06a048a1858e08d6b9e9eeff|72f988bf86f141af91ab2d7cd011db47|1|0|636900811718912173&sdata=2%2F7WNav1KjNbFRwbAVndWhqEschY4WvAdmNMt5a%2Fkzo%3D&reserved=0.

Any update on this yet? Currently facing a similar situation and would love to see an example of how to access the environment variables from xUnit.

@usmanmohammed, @Bhsha - I have a request out to the Product Team to find out the best approach. I'll let you know what I find out.

@Bhsha I found a workaround some weeks back, however I'm not sure if it's a recommendable approach:
Steps:

Add your environment variables to the launchSettings.json file located in your test project's /Properties path. For example:

{
  "profiles": {
    "Project.Functions.Test": {
      "commandName": "Project",
      "environmentVariables": {
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "<variable_name>": "<variable_value>",
        .......

Create a helper method you can call early within the test project to set those variables from the config file:

public void SetEnvironmentVariables()
{
    using (var launchSettingsFile = File.OpenText("Properties\\launchSettings.json"))
    {
        // Load environment variables from json configuration file
        JsonTextReader jsonReader = new JsonTextReader(reader: launchSettingsFile);
        JObject jsonObject = JObject.Load(reader: jsonReader);

        // Get variables from config file into List
        List<JProperty> envVariables = jsonObject
            .GetValue("profiles")
            .SelectMany(profiles => profiles.Children())
            .SelectMany(profile => profile.Children<JProperty>())
            .Where(property => property.Name == "environmentVariables")
            .SelectMany(property => property.Value.Children<JProperty>())
            .ToList();

        // Manually set each variable read from config file
        envVariables.ForEach(variable =>
        {
            Environment.SetEnvironmentVariable(
                variable: variable.Name,
                value: variable.Value.ToString());
        });
    }
}

Variables in the test project config file can now be accessed from within the main project using the recommended method outlined by @craigshoemaker here (https://github.com/MicrosoftDocs/azure-docs/issues/28806#issuecomment-480352650).

This article is now updated with guidance on using dependency injection for mocking environment variables in tests. The live site will be updated soon to reflect this change.
#please-close


Documentation advice results in error

In https://github.com/microsoft/terminal/blob/master/doc/user-docs/UsingJsonSettings.md#setting-the-startingdirectory-of-wsl-profiles-to- it is suggested to use $WSL paths but if you do, you'll get the following error:
'\\wsl$\Ubuntu\home\stan'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.

And just to confirm, you did this with a wsl profile? One that launches wsl, and not CMD.exe?
Interesting!

Yup, it was
{
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl",
                "startingDirectory" : "//wsl$/Ubuntu/home/stan"
},

I can't reproduce this; my WSL profile is actually launching WSL. Curious!
Now, if I launch cmd from WSL (or a script does it for me (!)), I do get the error in your original report.
(Libra) ~ % cmd.exe /c dir \\
'\\wsl$\Debian\home\dustin'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.
 Volume in drive C is γ
 Volume Serial Number is B645-B3DE

That's unavoidable, and if something on in your startup scripts is shelling out to cmd.exe that's just not something we can help with.

FWIW: if that's the case, this should also happen if you use wsl.exe -d Ubuntu ~ from outside WT.

Oh interesting, it does happen with wsl.exe ~ -d Ubuntu as well. Guess it's a user error then?

I wouldn't go so far as to call it user error, it's just that.

interop (wsl -> windows) attempts to inherit the current working directory, possibly through path translation
translating a WSL working directory that has no mapping to the windows filesystem yields a \\wsl$\$DISTRIBUTION path
that is, unfortunately, a UNC path
CMD cannot run from a UNC path
CMD prints an error message on startup when it's run from a UNC path


[test] Enable high baud rates on silicon

The FPGA cannot clock high enough for 1MBd or 1.5MBd, but silicon can.
This change enables a wider range of baud rates and changes how the 1MBd and 1.5MBd are restricted to be better for multitop.
Backport of #23605

Hm, it failed in CI. I guess it's still flaky.


'Box has already been closed' error right after openBox()

Steps to Reproduce
Running the code below four times causes an error: HiveError: Box has already been closed.
It does not occur without box.close(). Using await for box.put() and box.delete() also prevents the error. Even if this is not a bug, the error message may be inaccurate or misleading.
Code sample
I used the sample code in the Add to project page and changed it slightly to confirm that compaction is surely triggered at the fourth execution as the condition specified as deletedEntries > 3.
import 'dart:io';
import 'package:hive/hive.dart';

void main() async {
  Hive.init(Directory.current.path);
  final box = await Hive.openBox(
    'testBox',
    compactionStrategy: (entries, deletedEntries) => deletedEntries > 3,
  );

  box.put('name', 'David');
  box.delete('name');

  print('Name: ${box.get('name')}');

  box.close();
}

Version

Platform: Windows
Flutter version: N/A; only Dart without Flutter
Hive version: 1.3.0

Have similar problem

any solutions yet?

Still facing issue when you delete a box

Is the issue resolved?

Facing the same issue while tesing my code. This error occurs when I run all tests instead of a single test.
When running the test individually:

When I run all tests:

I solved this issue by getting another instance of the current box, and then closing it before the act

am also still having this issue

am also still having this issue

am also still having this issue

same error

any solutions ? I am having the same issue 😑

Same for me using the latest version :   hive: ^2.0.5

Mine happen because I use the same box again.
First I run get then if empty result I run put.
Here's my code.
put({
    required String boxName,
    required String key,
    required String value,
  }) async {
    try {
      final Box box = await Hive.openBox(boxName);
      await box.put(key, value);
      if(box.isOpen) {
        box.close();
      }
    } catch (error) {
      throw HiveError('Hive error: ${error.toString()}');
    }
  }

  Future<String> get({
    required String boxName,
    required String key,
  }) async {
    try {
      final Box box = await Hive.openBox(boxName);
      String? result = await box.get(key);
      if(box.isOpen) {
        box.close();
      }
      if(result != null) {
        return result;
      } else {
        throw HiveError('Result Empty');
      }
    } catch (error) {
      throw HiveError('Hive error: ${error.toString()}');
    }
  }

I'm using hive: ^2.0.6

My temporary solution is to open the box again when it is not opened yet.
  put({
    required String boxName,
    required String key,
    required String value,
  }) async {
    try {
      Box box = await Hive.openBox(boxName);
      if(!box.isOpen) {
        box = await Hive.openBox(boxName);
      }
      if(box.isOpen) {
        await box.put(key, value);
        box.close();
      }
    } catch (error) {
      throw HiveError('Hive error: ${error.toString()}');
    }
  }

I don't really understand what makes that behavior occur. I thought that this behavior is same as BLoC cubit when we emit 2 state after each other that the second state is not emitted.

Similar issue here. It seems that deleteFromDisk() does not wait for the actual deletion of the box?

Similar Issue on Windows app with latest FlutterHive version: hive_flutter: ^1.1.0


OAuth2 / OIDC access token isn't invalidated on logout

After logging out of CAS SSO Session (/cas/logout),  any OAuth2 or OIDC access token created by that session doesn't get invalidated and is still reported as valid on
OAuth2 profile endpoint  /cas/oauth2.0/profile or OIDC endpoint /cas/oidc/profile
Tested on 5.0.4 and 5.1.0-RC2
Steps to reproduce:

sign on via OAuth2 implicit flow /cas/oauth2.0/authorize?response_type=token&client_id=clientid&redirect_uri=http%3A%2F%2Fhello
or
OIDC implicit flow (5.1.0-RC2)  /cas/oidc/authorize?response_type=token&client_id=clientid&redirect_uri=http%3A%2F%2Fhello

validate the access token via /cas/oauth2.0/profile?access_token= or /cas/oidc/profile?access_token=

logout

re-validate the same access token.  It will still be reported as valid.

Excellent diagnosis.
Are you prepared to submit a pull request to resolve the issue?

I've only briefly checked the code. It seems that AT tickets' life cycle is completely unaware of TGT.  I think that the AT tickets should behave the same way as service tickets (TicketGrantingTicketImpl.trackServiceSession..) but i'm not very familiar with the overall design to be certain.
Short-term wise i don't have the free time nor an excuse to commit to the task (we're not using CAS yet, just evaluating it), but i'll try to help if nobody else beats me to it :)

Excellent. Thanks for the response. It's very unlikely that someone might beat you to this :) I'll go ahead and get this issue closed for the time being, but as soon as you find the time and your deployments moves in a more serious direction, please circle back so we can revisit the issue and make some progress. And thanks again for raising and documenting the issue here.


Minnowboard Turbot

I'd like to see the page updated to note mappings for the newer Minnowboard Turbot hardware. If there are no differences, a note to that effect would suffice. Have a close look at GPIO 9 on pin 26, though; by the schematics, the Max routed this to ball BH12 on its SoC, on Turbot this routes to BH8; a test program meant to toggle pin 26 as an output on the Turbot as GPIO pin 9 does not appear to work (the same program works fine for GPIO 0 or 1, however, on pins 21 and 23). It would be useful to understand how the logical GPIO pins are mapped to the physical balls on the SoC, and this page should at least point to such a resource.

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

ID: c4b5c424-b310-c7d0-ca35-bc7582ea62d9
Version Independent ID: fa229f25-c4ba-6e9c-fde0-fb9160661916
Content: Minnowboard Max Pin Mappings - Windows IoT
Content Source: windows-iotcore/learn-about-hardware/PinMappings/PinMappingsMBM.md
Product: windows-iot
Technology: iot
GitHub Login: @saraclay
Microsoft Alias: saclayt

Hi @druske, I've added a note to the Minnowboard Turbot documentation to the Pin Mappings doc.

@druske I've put a note to the Minnowboard Turbot documentation to the Pin Mappings doc.


Model RSpec testing

In this milestone, complete the testing as per the requirements given below:

Install the RSpec for rails using gem.
Add the RSpec to the project by generating it using rails.
Make sure that all test should pass.

Well Done ! 👏🏻


Upgrade xstream

to version released yesterday.
For 3. of https://github.com/CosmWasm/cosmjs/issues/412#issuecomment-702887962

Done in #462


Release v0.8.3 to master

Detailed changelog to accompany release

Invalid signature on cosmetic commit by @lightclient, reason as stated by Matt:

I saw that 😔 the issue was that I signed that commit when my username was c-o-l-o-r and I use the private github email for commits to avoid leaking my personal email — problem is, when you change your username a new private email address is generated for the account, so that broke the relation to that signature and my account email

Rebased and signed it.


Re-assess CI options

I'm slightly unhappy with Travis (Open Source support slipping, weird errors (like #364)). AppVeyor seems fine but slow. So, considering other options.
@rth, you're more tapped into the community than the rest of us – What's the current best practice for simple CI testing? GitHub actions? As you know, PyAbel just needs to run basic tests on Linux+Mac+Windows, nothing too crazy.
Link to CI with github actions: https://docs.github.com/en/actions/automating-builds-and-tests/about-continuous-integration

Hi,
yes, GitHub Actions is probably the easiest way to go currently for cross-platform builds.
Also https://github.com/pypa/cibuildwheel to building binary wheels if necessary is fairly straightforward now in CI.

Awesome, thanks @rth! We'll probably try to transition to GitHub Actions for CI testing in the near future.

To get the basic testing working, we just need to add a file to .github/workflows/.
Here is an example that runs a single Py3.9 test on Linux: https://github.com/DanHickstein/PyAbel/pull/2


Social sign in with apple scope, mapping and environment variables

Recently sign in with apple option is added to the supported options in CLI (5.1.2). The hostedUIProviderMeta parameter is generated as follows:
    "hostedUIProviderMeta": "[{\"ProviderName\":\"Facebook\",\"authorize_scopes\":\"email,public_profile\",\"AttributeMapping\":{\"email\":\"email\",\"family_name\":\"last_name\",\"given_name\":\"first_name\",\"username\":\"id\"}},{\"ProviderName\":\"Google\",\"authorize_scopes\":\"openid email profile\",\"AttributeMapping\":{\"email\":\"email\",\"family_name\":\"family_name\",\"given_name\":\"given_name\",\"username\":\"sub\"}},{\"ProviderName\":\"SignInWithApple\",\"authorize_scopes\":\"email,name\",\"AttributeMapping\":{\"email\":\"email\",\"family_name\":\"lastName\",\"given_name\":\"firstName\"}}]",

This authorisation scope for sign in with apple is comma separated and attribute mapping is missing name to name and sub to username maps, this results in a weird configuration of the federation identity provider and mapping (a record with email,name is added on the top) in console and when redirected to Apple throws an error of "Invalid client scope"
If the checkboxes of the authorisation scope is unticked and ticked and saved in the console,  the issue goes away.
The console environment variables page does not specify the default variables for sign in with apple either. Please update it.
https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html

Is this a bug report for the CLI? If so can you provide steps to reproduce, and describe what you expected vs what you got?
As for your comment about the doc site, I believe that page is owned by amplify console, you can open up a ticket with them here

Yes it is a bug report. The steps to reproduce it:
amplify update auth

Then select:
Update OAuth social providers

Then tick
Sign in with Apple

Then provide the requested information and finally
amplify push

The result is what I attached in the previous post and what is expected is this screen shot:

If you'd like, you can test a fix we've been working on<EMAIL_ADDRESS>


Update engineering section with more details on ops

Description
Adds more details on our production environment and general operations.
Updates details on our staging environment.
Relabeled to Engineering to align with how we talk about the team

Just pushed a big set of changes that tidies up the whole Development section.

removes a number of duplicated pages
moves things around to a more organised structure
adds redirects for everything that has moved

Waiting to see if I've broken any links...


covalent start --no-cluster + covalent restart = covalent start with dask executor

@kessler-frost can this be closed as a result of https://github.com/AgnostiqHQ/covalent/pull/1148

Yes, this was resolved there as well.


15 Create lifecycle manager with factory

#26
GIVEN a lifecycle manager factory
WHEN delegating creation with entity type
THEN a lifecycle manager instance for the given entity type will be created
    AND will be initialized with the state machine config loader defined in the configuration file

No factory necessary


Equivalent to listsinceblock?

Is there some way to pull up all omni transactions since a certain block?
In the same way that listsinceblock on bitcoin-cli will pull up a list of all transactions affecting your wallet after a certain block?

Hi & welcome,
Please take a look at https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_listtransactions
You're probably looking for:
``omnicore-cli omni_listtransactions "*" 999 0 startblock```
This will retrieve up to 999 transactions, skipping the first 0, that occurred on or after startblock.
Thanks
Z

Yup perfect, thanks.


The localized version of an image asset doesn't show when changing app language

As shown in the example project, localized images only show the image for the development language even after changing the language.

We are currently looking into this issue.
However the current workaround is to use different names for each image localization, and get them using localized strings.


More configurable colors that follows the original pure colors

I changed the prompt symbol color to the one used in the original pure theme (ref: #69). I kept the gray color used, as the one used in the original (242) was quite unreadable in my opinion. I also created color variables for every event/attribute/symbol used, to make the theme more configurable.
I can split this pull request in two if desired; one for the color change of the prompt symbol (057e8fc and 7a19f21), and one for the new color variables (e211aa6 and cebf84e).

Ok, so the test passed after re-committing the last commit (git commit --amend --no-edit when even with origin/master, followed by git push --force origin master). So there seems to be some instability with the current travis configuration. I have never experienced this before.

The isse seems to be with the dist: xenial option within the travis configuration. See #71

Thanks a lot for your effort here. I will take a better look at everything this weekend once I have time and will get back to you.

@boyeborg It seems like everything should be good to go to merge this in as well?

@rafaelrinaldi Yes, I rebased to match the latest changes in master, so should be good now

Looking forward to this 💖

Will do my best to launch in the upcoming days as soon as I have some time left.

@boyeborg Would you be kind enough to extract the code related to git (L96→L142) in its own function in order to improve maintainability and help us test the project?

@edouard-lopez Sorry for the delay, I'll try to fix it this weekend

@boyeborg Have you had the chance to look into this? Maybe we can jump into to help get this out.

@boyeborg Have you had the chance to look into this? Maybe we can jump into to help get this out.

@rafaelrinaldi I’ve rebased it and made a couple of additional tweaks: https://github.com/rafaelrinaldi/pure/issues/103

@boyeborg I just merge #96 to introduce a number of tests, could you rebase and update your code and tests?
Let me know if you need help with the tests

@edouard-lopez done here


node-gyp 5.1.0 MacOS?

I have installed node-gyp 7.x globally, yet a make init is trying to us node-gyp 5.1.0. I have checked the package.json and it's not listed, where is this being pulled from or referenced? I need to updated it for the Mac.
I end up with this trying to compile
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.
No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.
No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.
gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
However, Xcode is installed, 12 beta for BigSur. Thoughts? From what I have seen out there the remedy is suppose to be upgrading node-gyp. Again there is some reference to node-gyp 5.1.0 and would like to know where this is being referenced.
Thanks
DB

Resolved. If Xcode 12 Beta installed be sure to reset path, sudo xcode-select --reset
DB

We are now using node-gyp@7 so I think this can safely be closed.


When an entity selection list in automations appears at the bottom of the screen, it doesn't work in Firefox and Chrome

The problem

When I create an automation, and I go to select the entity, by start typing it, it will shorten the list momentarily, and then jump back to the full list. It only happens when the list is at the bottom of the screen, making it open above the line, if it's at the top, opening down, it seems to work correctly.
Environment

Home Assistant release with the issue:  0.105.4
Last working Home Assistant release (if known):  pre-0.100
Operating environment (Hass.io/Docker/Windows/etc.):  hassio
Browser: Firefox 72.0.2 (and also developer edition), Chrome 80.0.3987.116
Link to integration documentation on our website:

Problem-relevant configuration.yaml

Traceback/Error logs

Additional information
I did a small 'video' of the problem:
https://www.screencast.com/t/wGrgSIYIt

@frenck could you please move this issue to home-assistant-polymer? Thanks 👍


Sonic the Masked Werehog: Watch codeandpixels.net

Sonic the Masked Werehog requests the watch of the watch_keyword codeandpixels\.net. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

codeandpixels\.net has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Rejected by Ryan M in Charcoal HQ. Reason: 'duplicate watches submitted simultaneously'


Rat Origin

There is no rat origin :angry:

We couldn't get the rights for such an amazing origin.

I give rights for this amazing origin.


Reconnect Wifi after reset

For correct connect to WiFi after reset please add 2 string into
void connectWifi() {
WiFi.disconnect(); //must be added
WiFi.mode( WIFI_STA ); //must be added
thanks!

Dup of #55


Demonstrating a bug with nested layouts and YAML front matter

Is this a fix to the issue or simply a test case to detect it?
Can you give a fuller description of the issue?

 I only really meant for this commit to be included:
24664e4 - demonstrate bug with nested_layouts and YAML front matter

Please ignore the rest :P

This is related to #206
If you have YAML data in your template, and use nested layouts, the data you load seems to get cached and follow around even as you visit other pages. data.page.title will be set once, and for some reason persist as you load other pages.

Would it be better for me to open a pull request on just 24664e4?

No worries, I can pull just that commit.


Sass variable inside another sass variable / path?

In LESS it is possible to add variables within variables and inject a variable within the path of a folder structure. I've yet to find a solution for this issue for Sass.
Its not a biggy... users are able to update a few instances of code themselves, but its would be handy of this was possible in Sass. This would improve coding a lot. You only need one place to update your framework versioning, and not -like in Font Awesome's case- five updates lines of code.
Example LESS vs Sass vars

Its a SASS bug, not a bug in my own project. I'm still interested in the solution, which has been part of LESS for years, but does not seem to work in SASS.

Its actually not really a bug, but a limitation of Sass. Would be nice to have, but not super crucial... especially with the ease of this framework settings. To be continued.

Interpolation seems to work, but not for every compiler.
https://stackoverflow.com/questions/8608498/have-a-variable-in-images-path-in-sass


e2e/docker-dns-srv: test with TLS

To test https://github.com/coreos/etcd/pull/8651.

lgtm. but this probably can be merged into our e2e test (make e2e test run under container evn in the future?)

Sure, I will add those simple tests to semaphore.

Later we can run e2e tests against this cluster.
c.f. https://github.com/coreos/etcd/issues/8502


RFC 3339 support for both Marshal and Unmarshal.

Builds upon #201.

@quetzyg please take a quick peek and let me know what you think! This builds upon what @omarismail submitted in #201 (which I reverted yesterday in #202, due to missing the Serialization/Marshaling part, which I've now added)

@googlebot I fixed it, @quetzyg was the author of the code and has accepted the CLA. The commits were with the email<EMAIL_ADDRESS>which is @quetzyg.

Want me to sign CLA again @aren55555 ?

@quetzyg if possible yes please, would make my life a tad bit easier! You need to sign it with<EMAIL_ADDRESS>

@aren55555 I've added my other email, so it should be sorted now.

@googlebot rescan plz


/dev/fb0 vertical refresh is running at 120Hz

Rocko / PICO-PI-IMX7
root@pico-imx7:~# cat /sys/class/graphics/fb0/modes
U:480x272p-120
U:480x272i-120
Should be no more than 60Hz, or it's burning power for no good reason...

@jwinarske
For PICO-IMX7,  the default panel is 5-inch 800x480 parallel LCD in Yocto 2.4 release image:
ftp://ftp.technexion.net/demo_software/pico-imx7-sd/pico-imx7_pico-pi_yocto-2.4-qt5_sdcard-preview_QCA9377_lcd-800x480_20181102.zip
The frequency i get is 53Hz:
root@pico-imx7:~# cat /sys/class/graphics/fb0/modes
U:800x480p-53
U:800x480i-53

Please check the settings of device node lcdif in arch/arm/boot/dts/imx7d-pico.dtsi:
&lcdif {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lcdif_dat
		     &pinctrl_lcdif_ctrl>;
	lcd-supply = <&lcd_on>;
	display = <&display0>;
	status = "okay";

	display0: display {
		bits-per-pixel = <32>;
		bus-width = <24>;

		display-timings {
			native-mode = <&timing0>;
			timing0: timing0 {
				clock-frequency = <33260000>;
				hactive = <800>;
				vactive = <480>;
				hback-porch = <11>;
				hfront-porch = <11>;
				vback-porch = <12>;
				vfront-porch = <11>;
				hsync-len = <46>;
				vsync-len = <210>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
				interlaced =  <0>;
			};
		};
	};
};

drivers/video/fbdev/mxsfb.c gets the information from lcdif to calculate frequency.
(I didn't really dig into it. )
BR,
Richard

Okay I sorted that out for the kernel.  The timing was wildly off from the display spec.  I'm surprised it worked...
Where is the timing config for u-boot, as the TechNexion logo is far off to the right, and clipped.

Okay I'm all set.  The timing was set wrong in both boot and kernel dts.  Thanks!


2000 char limit?

Is it not possible to work around this?

I have thought about sending the data in chunks. I will give it a try.

I already tried it, it does not work from bookmarklet, as it looses focus (which stops the code) and therefore sends just the first chunk, but perhaps the extension could do it.

extension also couldn't do it....

I think I have a potential solution.
I could encrypt the clipping and post it to a storage service provided by the same service that generates chrome extensions (obsidian clipper.com), which would temporarily store the encrypted clipping and return an id.
I could then call the local obsidian:// URL, passing the id and the key to decrypt.
The plugin can make a GET call to the obsidianclipper.com service with the ID, retrieve the encrypted clipping, decrypt with the provided key, and write out the clipped info as usual.
The obsidianclipper service would delete the encrypted clipping from ETS after returning it.

I think I have a potential solution.
I could encrypt the clipping and post it to a storage service provided by the same service that generates chrome extensions (obsidian clipper.com), which would temporarily store the encrypted clipping and return an id.
I could then call the local obsidian:// URL, passing the id and the key to decrypt.
The plugin can make a GET call to the obsidianclipper.com service with the ID, retrieve the encrypted clipping, decrypt with the provided key, and write out the clipped info as usual.
The obsidianclipper service would delete the encrypted clipping from ETS after returning it.

Are you meanings if clipping can provide an external service to store data, and if Obsidian can fetch encrypted data from that API? That sounds really cool! It would be even better if you could run the service locally.

I think I have a potential solution.
I could encrypt the clipping and post it to a storage service provided by the same service that generates chrome extensions (obsidian clipper.com), which would temporarily store the encrypted clipping and return an id.
I could then call the local obsidian:// URL, passing the id and the key to decrypt.
The plugin can make a GET call to the obsidianclipper.com service with the ID, retrieve the encrypted clipping, decrypt with the provided key, and write out the clipped info as usual.
The obsidianclipper service would delete the encrypted clipping from ETS after returning it.

Would this work on Obsidian Mobile? I seem to remember use of Obsidian URIs is limited in the mobile version, if they are usable at all. I ask because I run mobile in the Android container on my Chromebook. It works as a desktop app just as effectively as the native Mac or Win version. Therefore, can I request that if you do implement this, you retain the current transfer mechanism and maybe make it an option in Settings. After all, if I clip something > 2000 chars I can easily perform two or more separate clips to capture the entire text. Thanks.


Learn all spells

You can add "Learn all spells on character's level" function
Some times ago I made PR which wasnt' merged
https://github.com/azerothcore/azerothcore-wotlk/pull/6339

Thank you, this is useful code! If there are anyone who is wanting to use this module, I think this would be a good improvement. I can implement if there is interest.


Added basic unit test for testing dependant dropdowns

As per request of user, added one basic unit test of dependant dropdowns.

Looks good! Thanks!

And congratulations on your first publicly merged code contribution!


black view when back from other activity

When jump to an other activity from the current one which contains the video view while the video is playing and then come back again to the video activity, the video view shows black.

a similar problem on Nexus 5, Lenovo A5000, Nexus 7 2013..

I think that it's similar problem to VideoView loading again when activity comes from back stack. As far as I know there is no way to deal with it. Only one workaround - set some image while video is loading so user wouldn't see black screen.
See some explanations  here


bug: error: image envd-quick-start:dev not found

Are you use the envd server?

[ ] Yes, I am using the envd server.
[X] No, I am not using the envd server.

Describe the bug
The following build.envd failed to be built:
def build():
    config.repo(url="https://github.com/tensorchord/envd", description="envd quick start example")
    base(os="ubuntu20.04", language="python3")
    # Configure pip index if needed.
    # config.pip_index(url = "https://pypi.tuna.tsinghua.edu.cn/simple")
    install.python_packages(name = [
        "numpy",
        "torch",
        "tensorflow"
    ])
    shell("zsh")
    config.jupyter()

To Reproduce
pip install envd
envd boostrap
git clone https://github.com/tensorchord/envd-quick-start.git
cd envd-quick-start

modify build.envd to be:
def build():
    config.repo(url="https://github.com/tensorchord/envd", description="envd quick start example")
    base(os="ubuntu20.04", language="python3")
    # Configure pip index if needed.
    # config.pip_index(url = "https://pypi.tuna.tsinghua.edu.cn/simple")
    install.python_packages(name = [
        "numpy",
        "torch",
        "tensorflow"
    ])
    shell("zsh")
    config.jupyter()

Run envd up
Expected behavior
No response
The docker info output
(base) ➜  envd-quick-start git:(master) ✗ docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.10.0)
  compose: Docker Compose (Docker Inc., v2.15.1)
  dev: Docker Dev Environments (Docker Inc., v0.0.5)
  extension: Manages Docker extensions (Docker Inc., v0.2.17)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.23.0)

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 8
 Server Version: 20.10.22
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9ba4b250366a5ddde94bb7c9d1def331423aa323
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.15.49-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 7.674GiB
 Name: docker-desktop
 ID: CEJB:TN2Q:FCMX:OJPT:2YFR:DY3D:HIPY:5ZNV:AI4Y:4JU4:LMZP:PTVD
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5000
  <IP_ADDRESS>/8
 Live Restore Enabled: false

The envd version output
envd: v0.3.20
  BuildDate: 2023-05-02T09:41:36Z
  GitCommit: 6e055c61fdc1cdba6959c8a54ead5aad6654090e
  GitTreeState: clean
  GitTag: v0.3.20
  GoVersion: go1.19.8
  Compiler: gc
  Platform: darwin/amd64

Additional context
Error Stacktrace:
(base) ➜  envd-quick-start git:(master) ✗ envd up
[+] ⌚ parse build.envd and download/cache dependencies 0.0s ✅ (finished)
 => 💽 (cached) download oh-my-zsh                                                                                0.0s
[+] build envd environment 2.3s (2/53)
 => importing cache manifest from docker.io/tensorchord/python-cache:envd-v0.3.20                                                                                2.3s
 => docker-image://docker.io/library/ubuntu:20.04                                                                                2.3s
 => => resolve docker.io/library/ubuntu:20.04                                                                                2.2s
 => docker-image://docker.io/tensorchord/horust:v0.2.1                                                                                2.2s
 => => resolve docker.io/tensorchord/horust:v0.2.1                                                                                2.2s
[+] build envd environment 2.4s (2/53)
 => importing cache manifest from docker.io/tensorchord/python-cache:envd-v0.3.20                                                                                2.4s
 => docker-image://docker.io/library/ubuntu:20.04                                                                                2.4s
 => => resolve docker.io/library/ubuntu:20.04                                                                                2.4s
 => docker-image://docker.io/tensorchord/horust:v0.2.1                                                                                2.4s
 => => resolve docker.io/tensorchord/horust:v0.2.1                                                                                2.4s
[+] build envd environment 2.6s (2/53)                                                                                0s
 => importing cache manifest from docker.io/tensorchord/python-cache:envd-v0.3.20                                                                               2.6s.4s
 => docker-image://docker.io/library/ubuntu:20.04                                                                                2.6s.4s
 => => resolve docker.io/library/ubuntu:20.04                                                                                2.5s.0s
 => docker-image://docker.io/tensorchord/horust:v0.2.1                                                                                2.6s.4s
 => => resolve docker.io/tensorchord/horust:v0.2.1                                                                                2.5s.4s
[+] build envd environment 2.7s (2/53)                                                                                0.0s
 => importing cache manifest from docker.io/tensorchord/python-cache:envd-v0.3.20                                                    2.7s                       2.6s
 => docker-image://docker.io/library/ubuntu:20.04                                                                                2.7s                       2.5s
 => => resolve docker.io/library/ubuntu:20.04                                                                                2.7s                       0.0s
 => docker-image://docker.io/tensorchord/horust:v0.2.1                                                                               2.7s                       2.6s
 => => resolve docker.io/tensorchord/horust:v0.2.1                                                                                2.7s                       2.5s
[+] build envd environment 2.9s (2/53)
 => importing cache manifest from docker.io/tensorchord/python-cache:envd-v0.3.20                                                    2.9s
 => docker-image://docker.io/library/ubuntu:20.04                                                                                2.9s
 => => resolve docker.io/library/ubuntu:20.04                                                                                2.8s
 => docker-image://docker.io/tensorchord/horust:v0.2.1                                                                               2.9s
 => => resolve docker.io/tensorchord/horust:v0.2.1                                                                                2.8s
[+] build envd environment 427.4s (54/54) FINISHED                                                                                => importing cache manifest from docker.io/tensorchord/python-cache:envd-v0.3.20                                             5.3s
 => docker-image://docker.io/library/ubuntu:20.04                                                                             5.5s  => => resolve docker.io/library/ubuntu:20.04                                                                                5.5s
 => docker-image://docker.io/tensorchord/horust:v0.2.1                                                                        5.5s  => => resolve docker.io/tensorchord/horust:v0.2.1                                                                            5.5s
 => CACHED [internal] setting pip cache mount permissions                                                                     0.0s  => docker-image://docker.io/tensorchord/envd-sshd-from-scratch:v0.3.20                                                       5.4s
 => => resolve docker.io/tensorchord/envd-sshd-from-scratch:v0.3.20                                                           5.4s  => local://cache-dir                                                                                1.4s
 => => transferring cache-dir: 7.75MB                                                                                1.4s  => docker-image://docker.io/tensorchord/starship:v0.0.1                                                                      4.6s
 => => resolve docker.io/tensorchord/starship:v0.0.1                                                                          4.6s
 => CACHED [internal] install built-in packages                                                                               0.0s
 => CACHED [internal] create conda directory                                                                                0.0s
 => CACHED [internal] install conda                                                                                0.0s
 => CACHED [internal] install horust                                                                                0.0s
 => CACHED [internal] mkdir for horust service: /etc/horust/services                                                          0.0s
 => CACHED [internal] mkdir for horust log: /var/log/horust                                                                   0.0s
 => CACHED [internal] change directory permission for logging                                                                 0.0s
 => CACHED [internal] add envd-sshd from tensorchord/envd-sshd-from-scratch:v0.3.20                                           0.0s
 => CACHED [internal] add envd-starship from tensorchord/starship:v0.0.1                                                      0.0s
 => CACHED [internal] create user group envd                                                                                0.0s
 => CACHED [internal] create user envd                                                                                0.0s
 => CACHED [internal] add user envd to sudoers                                                                                0.0s
 => CACHED [internal] mkdir config and cache dir                                                                              0.0s
 => CACHED [internal] install system packages                                                                                0.0s
 => CACHED [internal] initialize conda bash environment                                                                       0.0s
 => CACHED [internal] create conda environment: bash -c "/opt/conda/bin/conda create -n envd python=3.9"                      0.0s
 => CACHED [internal] conda python environment                                                                                0.0s
 => CACHED copy /oh-my-zsh /home/envd/.oh-my-zsh                                                                              0.0s
 => CACHED mkfile /home/envd/install.sh                                                                                0.0s
 => CACHED [internal] install oh-my-zsh                                                                                0.0s
 => CACHED mkfile /home/envd/.zshrc                                                                                0.0s
 => CACHED [internal] configure shell zsh                                                                                0.0s
 => CACHED pre-python stage                                                                                0.0s
 => CACHED [internal] install conda packages                                                                                0.0s
 => CACHED [internal] create cache dir                                                                                0.0s
 => [internal] create dir for ssh key                                                                                0.1s
 => pip install numpy torch tensorflow                                                                                106.0s
 => [internal] install ssh keys                                                                                0.0s
 => [internal] install ssh key                                                                                0.0s
 => pip install jupyter                                                                                14.5s
 => [internal] install PyPI packages                                                                                0.1s
 => [internal] generating the image                                                                                11.8s
 => => merging                                                                                11.8s
 => [internal] update alternative python to envd                                                                              0.2s
 => [internal] update alternative python3 to envd                                                                             0.1s
 => [internal] update alternative pip to envd                                                                                0.1s
 => [internal] update alternative pip3 to envd                                                                                0.1s
 => [internal] init conda zsh env                                                                                0.5s
 => [internal] add conda environment to /home/envd/.zshrc                                                                     0.1s
 => [internal] creating config dir                                                                                0.0s
 => [internal] setting prompt starship config                                                                                0.0s
 => [internal] setting prompt bash config                                                                                0.1s
 => [internal] setting prompt zsh config                                                                                0.1s
 => [internal] configure user permissions for /opt/conda/envs/envd/conda-meta                                                 0.1s
 => [internal] create work dir: /home/envd/envd-quick-start                                                                   0.0s
 => [internal] create file /etc/horust/services/sshd.toml                                                                     0.0s
 => [internal] create file /etc/horust/services/jupyter.toml                                                                  0.0s
 => exporting to oci image format                                                                                286.6s
 => => exporting layers                                                                                228.0s
 => => exporting manifest sha256:75c19703722ef77972e716f4dfd351688e7536835e0f15e9e517291b6f10082f                             0.0s
 => => exporting config sha256:b6ba0a8c4c7bf4a36bb4919d9d781949c51625459184f8037a3d95aef6b0edf4                               0.0s
 => => sending tarball                                                                                58.5s
⣾ [1/5] configure the environment  [0s]
error: image envd-quick-start:dev not found

Similar to https://github.com/tensorchord/envd/issues/1165
Please check the space usage for docker.


2.0.10 and 2.0.11 not compatible with node < 8

BEFORE YOU SUBMIT please read the following:

I'm submitting a bug report
Webpack version:
3.x
Webpack Karma version:
2.0.11
Karma version:
1.7.1
Current behavior:
Updating source-map dependency to 0.7.0 in<EMAIL_ADDRESS>(here) breaks compatibility with node versions < 8, since the source-map 0.7.0 dropped support for node < 8.
Expected/desired behavior:
The package.json of karma-webpack says it should be compatible with node >= 4, so it should still work correctly with node < 8.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem along with a gist/jsbin of your webpack configuration.
Install the latest karma-webpack with node < 8.
Thanks.

Released in v2.0.12 🎉

@michael-ciniawsky Thank you for the quick fix. :)

Hi, I would love to be able to set the source-map version myself as source-map 0.7.0 has some very interesting optimizations that I want to utilize. Is it possible to allow for both versions?


Introduce FUIPrivacyAndTermsOfServiceView to make the message consistent across all sign in screens.

Hi @protocol86 do you know the possible cause which cause the build failure?
It doesn't happen locally on my machine.

I updated the podspec. should make the thing compile again.

I still don't know why the build can't find such a simple header. I tried adding it to podspec but it doesn't work either.


Exclude package from pinning during pip-compile

What's the problem this feature will solve?

In the requirements.txt compiled by pip-compile, I would like to leave a particular dependency unpinned.
Describe the solution you'd like

A new command-line flag (or config file option) to not pin certain packages.  In other words, an allow-list of packages to not pin.

Our internal packages infer their own dependency dynamically inside setup.py, and if pip-compile pins it in the generated requirements.txt, this messes things up.
Alternative Solutions

None tried.
Additional context

I think this is already solved in master for inclusion in the next release, as --unsafe-package.
$ python3 -m venv venv
$ . ./venv/bin/activate
$ pip install -U 'pip-tools @ git+https://github.com/jazzband/pip-tools@master'
$ printf '%s\n' requests httpx >requirements.in
$ pip-compile --unsafe-package httpx --annotation-style=line --no-header

anyio==3.6.1              # via httpcore
certifi==2022.6.15        # via httpcore, httpx, requests
charset-normalizer==2.1.0  # via requests
h11==0.12.0               # via httpcore
httpcore==0.15.0          # via httpx
idna==3.3                 # via anyio, requests, rfc3986
requests==2.28.1          # via -r requirements.in
rfc3986[idna2008]==1.5.0  # via httpx
sniffio==1.2.0            # via anyio, httpcore, httpx
urllib3==1.26.11          # via requests

# The following packages are considered to be unsafe in a requirements file:
# httpx

$ pip-compile --unsafe-package requests --annotation-style=line --no-header

anyio==3.6.1              # via httpcore
certifi==2022.6.15        # via httpcore, httpx, requests
charset-normalizer==2.1.0  # via requests
h11==0.12.0               # via httpcore
httpcore==0.15.0          # via httpx
httpx==0.23.0             # via -r requirements.in
idna==3.3                 # via anyio, requests, rfc3986
rfc3986[idna2008]==1.5.0  # via httpx
sniffio==1.2.0            # via anyio, httpcore, httpx
urllib3==1.26.11          # via requests

# The following packages are considered to be unsafe in a requirements file:
# requests

$ pip-compile --unsafe-package requests --unsafe-package httpx --annotation-style=line --no-header

anyio==3.6.1              # via httpcore
certifi==2022.6.15        # via httpcore, httpx, requests
charset-normalizer==2.1.0  # via requests
h11==0.12.0               # via httpcore
httpcore==0.15.0          # via httpx
idna==3.3                 # via anyio, requests, rfc3986
rfc3986[idna2008]==1.5.0  # via httpx
sniffio==1.2.0            # via anyio, httpcore, httpx
urllib3==1.26.11          # via requests

# The following packages are considered to be unsafe in a requirements file:
# httpx
# requests

$ pip-compile --unsafe-package sniffio --annotation-style=line --no-header

anyio==3.6.1              # via httpcore
certifi==2022.6.15        # via httpcore, httpx, requests
charset-normalizer==2.1.0  # via requests
h11==0.12.0               # via httpcore
httpcore==0.15.0          # via httpx
httpx==0.23.0             # via -r requirements.in
idna==3.3                 # via anyio, requests, rfc3986
requests==2.28.1          # via -r requirements.in
rfc3986[idna2008]==1.5.0  # via httpx
urllib3==1.26.11          # via requests

# The following packages are considered to be unsafe in a requirements file:
# sniffio

@AndydeCleyre thank you for the fast response!  This almost works, except I need the --unsafe-package=foo to be uncommented at the bottom.
So for example from bottom example above, sniffio needs to be uncommented:
...
urllib3==1.26.11          # via requests

# The following packages are considered to be unsafe in a requirements file:
sniffio

How can one accomplish that in the next release?  Also, any ideas when the next release will happen?

As for when the next release will happen, my guess is as soon as #1649 is all wrapped up.
My recommendation for your case is to arrange files something like:

pinned-requirements.in compiled to pinned-requirements.txt, specifying --unsafe-package PKG
unpinned-requirements.txt containing all pkgs passed as "unsafe"
requirements.txt:-r pinned-requirements.txt
-r unpinned-requirements.txt

I do hear your solution, and it makes sense.  It requires having 1 requirements.in and 3 requirements.txt.  Thanks for the proposed workaround!  An aside is I wouldn't need to use --unsafe-package in the pinned-requirements.in because the "unsafe" package would actually live in unpinned-requirements.txt.
However, I think the workaround is heavy handed, I don't want four files when there only needs to be two files.
Ideally there's 1 requirements.in and 1 requirements.txt + invoking pip-compile --allow-unpinned=foo (or something like this).  That takes us back to the feature request in the original post.  Let me know what you think!

Passing them as unsafe during compilation ensures you won't get conflicts if one of your pinned deps starts depending on an unpinned dep, but I guess you don't need to bother in your case.
I don't know about the kind of change you're asking for, as pip-compile so far always creates exactly pinned lockfiles, and including unpinned reqs may not fit the tool.
I'll step back and see if any contributors or users have something to say about it.

Passing them as unsafe during compilation ensures you won't get conflicts if one of your pinned deps starts depending on an unpinned dep, but I guess you don't need to bother in your case.

Gotchu on this, thanks for clarifying. And thanks again @AndydeCleyre for the suggestions, I actually tried to implement them just now.
One thing came up: when I move the unpinned foo package to another unpinned-requirements.txt file, its indirect dependencies no longer get reflected by pip-compile.  Ideally its indirect dependencies get compared + optimized along with all other indirect dependencies coming from pinned-requirements.in.
So in other words, I realize the workaround posed won't work for my use case.  Ideally foo gets slurped up along with all other packages for analysis by pip, and then foo is left unpinned in the output requirements.txt.

You should include those packages in pinned-requirements.in and exclude them via --unsafe-package when compiling.

Ah I am tracking again.  Thanks for your patience @AndydeCleyre ! 😄

Just adding a convenience Zsh function for that behavior here:
pc-unpinned () {  # <unpinned-pkg-csv> <output-file> [<pip-compile-arg>...]
  emulate -L zsh

  local help_text='pc-unpinned <unpinned-pkg-csv> <output-file> [<pip-compile-arg>...]'

  if [[ ! $1 ]] || [[ ! $2 ]] || [[ $1 == -* ]] {
    print -u2 $help_text
    return 1
  }

  local unpinned_pkgs=(${(s:,:)1})
  shift

  local destination=$1
  shift

  local unsafe_args=() pkg
  for pkg ( $unpinned_pkgs )  unsafe_args+=(--unsafe-package $pkg)

  pip-compile $unsafe_args -o $destination $@

  print -l $unpinned_pkgs >>$destination
}


Automatically disable an endpoint after multiple failures.

Customer request:

is there a native BT way to have it turn off webhooks to an endpoint after N failures?  we can probably add real quick if not but figure we don't want to waste resources on endpoints that never have success, force user to manually come back and re-add if they want to try it again

The way Stripe handles this is just marking the endpoint disabled and users can come and re-enable the existing configuration.

Hi! Looked into this briefly and will work on it next!
Back from vacation and picking up on testing the 2FA changes locally and getting a PR out first.


GEO_REF="self"0 requires DEBUG

Using the latest github pull on linux requires 'DEBUG' to run correctly. If the keyword 'DEBUG' is not used, 0 is assumed to be an unknown keyword.

That example is also working for me on both Mac and Linux with the development version. What operating system is this happening on? Are you using CMake to build your executable?
The parsing of keyword arguments in quotes has been adjusted somewhat recently, so this could be a subtle special case that is triggering in a very narrow range of conditions. MOPAC's input parsing is extremely complicated, and I can't efficiently debug a problem unless I can reproduce it and then trace back the problem in GDB or some other debugger.

While I'm not getting the error that you are seeing, the constraint value appended to GEO_REF doesn't seem to be parsed correctly in your example when I set it to a value other than zero, so the parsing isn't correct here even when an error isn't reported. Maybe if I fix this, then your error will also go away.

The CMake version is 3.18.4-2+deb11u1

The problems with GEO_REF that I was able to reproduce have been resolved by this PR. Can you confirm whether or not your problem has been fixed by this update?

I will on next tuesday!


[BUG] InProcessConfiguration not injecting env-vars if set to default

If I set an InProcessConfiguration like this:
apiVersion: core.openfeature.dev/v1beta1
kind: InProcessConfiguration
metadata:
    name: in-process-config
spec:
    host: flagd-standalone
    port: 8015

the resulting container looks like this (note FLAGD_PORT is missing):

If I change the port to something other than 8015 like this:
apiVersion: core.openfeature.dev/v1beta1
kind: InProcessConfiguration
metadata:
    name: in-process-config
spec:
    host: flagd-standalone
    port: 8033

Then the var is set (note FLAGD_PORT is now set to 8033 as expected):

is this really a bug? If the port != than the default, do we really need to specify it?  I'd see it as a chore/improvement more than a bug. In case, we would need to adapt this line here: https://github.com/open-feature/open-feature-operator/blob/main/apis/core/v1beta1/inprocessconfiguration_types.go#L162


[backport #5920] Fix sel

Fixes a nasty Epochs bug where using Epochs(..., preload=True) followed by epochs.drop_bad(...) causes the data and selection to be incorrect.

CircleCI will need the "pyqt5<5.12" that is in master

You should probably also cherry pick https://github.com/mne-tools/mne-python/commit/ec4844e0c6ba40a39030b06253f1adf7e7c55123

... and the <5.12 you need is in .config/circle.yml

circle failure is legit @massich  https://circleci.com/gh/mne-tools/mne-python/11286?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link
I can live with the pep violations on travis.

circle is green.


Can no longer use admin.ping

After upgrading from v1.4.4 to 1.4.13 and 2.0.0, I can no longer use the db.admin().ping method. Its undefined. In fact, it look like lots of methods aren't available in there, and there's a weird circular reference to admin. Maybe the wrong object is being returned for admin?

Just confirmed that ping works properly in v1.4.4

Yeah you're right, it needs to be db.admin() rather than db.db('admin');

@vkarpov15 Thanks for the quick response! However, I updated and still have the same issue. I tried debugging through to that point and checking db.admin().ping, but it was still undefined. I tried a bit to figure out why that might be but I couldn't find it.
I noticed tho, that admin.js doesn't seem to have the same thing as in this repo. I installed the latest versio nof mongoskin (2.0.1), and I see the following file:
/*!
 * mongoskin - admin.js
 *
 * Copyright(c) 2011 - 2012 kissjs.org
 * Copyright(c) 2012 fengmk2<EMAIL_ADDRESS> * MIT Licensed
 */

"use strict";

var SkinAdmin = exports.SkinAdmin = function(db) {
  return db._admin();
}

Note the underscore in db._admin(). I tried changing it to db.admin() but got a stack overflow.

Hmm that's odd, it should just return a mongodb driver admin class. I'll re-open this and try again later.

Great that worked! Thanks!


Fix ES module filename not visible in stack trace/debugger

JsParseModuleSource() had been creating the source context with url set to nullptr, which caused the module name not to be visible in error backtraces or debugger JSON, e.g.:
Error: PIG!
   at mp3Demo (:28:3)

With this patch the URL for the module is set to the host-normalized module specifier, so that:
Error: PIG!
   at mp3Demo (@/bin/main.mjs:28:3)

I'm not sure if I implemented this properly; in particular I wasn't sure if SourceTextModuleRecord::GetSpecifier() could ever return nullptr, in which case the fix is incorrect.  Please advise on that point.
Fixes #3618.

@fatcerberus,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

...aaaaannnnddd I broke all the tests.  Will have to fix it later tonight.

This is still failing CI tests after my fix, but it looks like the same tests fail in master so I’m not sure whether this change is good or not... someone?
I’m not yet sure who’s responsible for what around here :)

I'm failing CI tests, but I don't understand why--do the tests somehow rely on ES modules not having a filename?  Because that's literally the only change I've made here.

I took a look into the tests I'm failing and it seems that this is what has happened:
22:05:39 Output:
22:05:39 ----------------------------
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'undefined'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'null'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'true'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'false'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '1234567890'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'abc789cde'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'number1007.2'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '[object Promise]'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'Infinity'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '[object Promise][object Promise]'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: 'NaN'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '0'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '-12345'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '1.1234567890123457'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '-1.1234567890123457'
22:05:39 WARNING: DynamicProfileStorage: Dynamic Profile Data corrupted: '[object Object]'
22:05:39 pass

That just seems like something went wrong in the test framework itself rather than any problem with my change per se.  Note the pass at the end, but the test framework still fails the test because the output doesn't match.

@dotnet-bot test Windows x64_debug please

@MSLaguana It looks like the issue is that the failing test does things like import(undefined) in which case the file doesn't exist and the promise should be rejected - however ch.exe still calls JsParseModuleSource anyway.  That seems like a bug - should I fix it?

On further investigation, it turns out that a module which fails to parse for any reason (a syntax error, for example) will produce DynamicProfileStorage warnings in the dynapogo tests causing them to fail, but only if the module's source context has an URL associated with it.  This actually seems like it might be a bug in the test harness. as the test output indeed contains the word "pass".

@MSLaguana
On the advice of @rhuanjl here, I changed the patch to set the URL after calling CreateSourceContextInfo, which seems to have allowed the tests to pass.  It's an ugly hack but does seem to work, and it would be nice to get further insight into the warnings mentioned above.  If there is a better way to avoid triggering them than what I have here, I wasn't able to figure it out.

Closing in favor of championing #4080.


GND Button

User story

As a user
I need the GND button coupling disconnects the scope input and sets it to ground, or 0VDC.
So a flat line trace will be displayed.  This mode is used to set the scope to a known reference point so DC measurements can be correctly measured.

Acceptance criteria

[ ]  When the user presses the ground button, the amplitude of the visualized signal should be set to zero.
[ ]  The data stream from backend should not be considered for the visualization during ground button usage.
[ ]  When the user releases the ground button, the data from input stream should be picked up and continue visualization.
[ ]  The data stream to front end should not be interfered during any time.

Definition of done (DoD)

[ ]  Feature/Bug/Change has been implemented

[ ]  Application compiles successfully

[ ]  Code is documented

[ ]  Feature/Bug/Change is tested by at least one unit or e2e test

[ ]  Tests have been passed without warnings (except "deprecated" warnings)

[ ]  Changes have been reviewed

[ ]  PR has been merged to dev branch

[ ]  New dependencies have been added to bill of materials

[ ]  Software architecture diagram has been updated

[ ]  All acceptance criteria are fulfilled

[ ]  Screenshot is attached to issue


Update Meta (formerly Facebook) contacts

thanks @JoelMarcey - we should probably get you updated on the OSPO landscape too https://l.todogroup.org/

@caniszczyk Is that something you could change on the landscape? Or do I send a PR for that?

send a PR is the preferred way
On Mon, Nov 22, 2021 at 1:49 PM Joel Marcey @.***>
wrote:

@caniszczyk https://github.com/caniszczyk Is that something you could
change on the landscape? Or do I send a PR for that?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/todogroup/governance/pull/137#issuecomment-976013678,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAPSIP4VZRQDSTHPVNRO43UNLJJVANCNFSM5INIQ6LQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--
Cheers,
Chris Aniszczyk
https://aniszczyk.org


[SCB-487] SDK consumer download file

Coverage decreased (-0.08%) to 87.383% when pulling ff68c0a66af670608c45d37e5cf996b51eb2de90 on wujimin:consumer-download-file into 3ca168a5c9ae33416ddb2384fcce37bda1f24ebb on apache:master.


Forward Referrer header or other repo info

It would be cool if the referrer header for the original request was sent along. This would be useful for github repo badge images because they could detect the source of the request (i.e. the repo and branch) from this header. Alternatively, maybe just sending that info along in a custom header would be easier.
The idea is that a badge could be put on a readme with a simple url http://badge.com/badge.svg and from the headers figure out which repo requested the badge. This would be great for when people fork repos or otherwise make branches and you want the badge to refer to the correct fork or branch.

This has been covered before:

https://github.com/atmos/camo/issues/43
https://github.com/blog/1766-proxying-user-images

The current behavior is done to protect privacy and prevent leaking information to third parties.

@rmm5t what browser info or privacy would be leaked by providing the repo and branch from public repos? I understand the need to proxy overall, but think that some information could be included that would be cool for the service to provide a better experience.
I have read up on some of the previous discussions but wanted to raise this as a potential solution (an alternative to just sending the referrer header) since maybe the thinking has changed.
Note that while the issue is titled with the referrer header, I include other ways to solve this that don't involve sending a referrer header.

@defunctzombie I'm just regurgitating information and decisions that github and @atmos have already made public. i.e. Just helping to triage.
In general though, relying on the (misspelled) "referer" header for almost anything is generally a bad idea anyway. Many proxy servers filter it out anyway. Many privacy web plugins filter it out.
I understand your proposal to add a new header, but if camo isn't guaranteed to receive the "referer" header in the first place (because proxies and privacy plugins), how does that help?

@rmm5t fair enough, just didn't know where else to propose the feature to send along this data except this repo. Maybe not the best place but it was only place I thought to discuss it.

Maybe not the best place but it was only place I thought to discuss it.

It totally is the right way place to ask questions.

what browser info or privacy would be leaked by providing the repo and branch from public repos?

There's a couple of things, mainly like what @rmm5t mentioned above.  There's definitely something to be gained by forwarding the referer, but it's not forwarded by design.
I also don't work at GitHub anymore so introducing the changes on this repo would likely never make it to github.com.

We are using Camo to proxy images and some of the upstream providers whitelist the proxy using referer header than user agent. Currently we have patched camo but it will be nice to have it as an option.


arduino-esp32 BLE program works using make but not CMake

I wrote a simple BLE server using the Arduino BLE library and am trying to build it using arduino-esp32 as an ESP-IDF component.
When I use the make-based build system, it works as expected.
When I use the CMake-based build system, it fails to initialize the Bluetooth controller.
I filed the details on this issue here: https://github.com/espressif/arduino-esp32/issues/2549
Any suggestions on what to look at?

FWIW, I worked around this by eliminating the arduino-esp32 component and using https://github.com/nkolban/ESP32_BLE_Arduino as a component directly.  I had to add CMakeLists.txt and component.txt files, but otherwise seems to work fine now.


Migrate to Observable and MutableObservable

As discussed in https://github.com/roberthein/Observable/issues/24, this PR tries to fix the issue.
@roberthein What do you think about this? I would like to know your opinion on this.
Thanks

I think I needed some incubation time to adjust to this, but I do see the advantage now.. I'll take this up in the next release later today. Thank you for your effort! 👌

No problem, thanks for taking a look at this 👍

That was fast @4brunu 😂

I subscribed to the other PR 😄

Thanks for merging this 👍
Maybe before next release, https://github.com/roberthein/Observable/issues/32 should be fixed, what do you think?

I believe @Edudjr is working on a PR for this..

I think so, I was just saying that maybe it's worth waiting to that PR before the next release.
Or then another release can be created 🙂

Yes, good idea, let's wait for that.


Nested use of produce?

Hello, I've tried searching through the existing issues and reading through the documentation, but I'm still not exactly clear on how nested produce calls are designed to work. Could this be added to the docs?
It seems like a common use case to me, with a simple example being:
const increment = (counter) => {
  return produce(counter, c => {
    c.count++
  })
}

If somewhere else I want to reuse the increment logic, can I do:
produce(counter, c => {
  increment(c)
})

Does that work seamlessly? With the nested call to produce seeing that c is already a draft, and just passing through to let it be modified? Thanks!

Yes that should work seamlessly and 'draftness' should be preserved when
passing a draft in as base state to a producer
On Wed, Oct 2, 2019 at 3:31 AM Ian Storm Taylor<EMAIL_ADDRESS>wrote:

Hello, I've tried searching through the existing issues and reading
through the documentation, but I'm still not exactly clear on how nested
produce calls are designed to work. Could this be added to the docs?
It seems like a common use case to me, with a simple example being:
const increment = (counter) => {
return produce(counter, c => {
c.count++
})
}
If somewhere else I want to reuse the increment logic, can I do:
produce(counter, c => {
increment(c)
})
Does that work seamlessly? With the nested call to produce seeing that c
is already a draft, and just passing through to let it be modified? Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/immerjs/immer/issues/433?email_source=notifications&email_token=AAN4NBBZIANFRCUA6KNBB5LQMQBXDA5CNFSM4I4Q7NL2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HPAKVWQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN4NBCLKI74NSN5RQHQNILQMQBXDANCNFSM4I4Q7NLQ
.

Beautiful, thank you!

Actually, that begs a follow up which I think should be documented too: does that apply for all nested objects inside the initial draft? Or does the "draft" only refer to the top-level object?
For example:
const increment = (counter) => {
  return produce(counter, c => {
    c.count++
  })
}

const incrementAll = (counters) => {
  return produce(counters, cs => {
    for (const c of cs) {
      increment(c)
    }
  })
}

Is it right to say that in all cases:
Any function which uses produce to return a new value could be called a "producer". In normal execution, producers don't mutate their inputs, and instead return a new immutable value. However, when producers are called inside of a produce() callback, they do mutate their inputs.

Yes :). But just trying it in a sandbox is a quicker way of finding that
out ;-). Feel free to PR the docs to clarify!
On Thu, Oct 3, 2019 at 8:00 PM Ian Storm Taylor<EMAIL_ADDRESS>wrote:

Actually, that begs a follow up which I think should be documented too:
does that apply for all nested objects inside the initial draft? Or does
the "draft" only refer to the top-level object?
For example:
const increment = (counter) => {
return produce(counter, c => {
c.count++
})
}
const incrementAll = (counters) => {
return produce(counters, cs => {
for (const c of cs) {
increment(c)
}
})
}
Is it right to say that in all cases:
Any function which uses produce to return a new value could be called a
"producer". In normal execution, producers don't mutate their inputs, and
instead return a new immutable value. However, when producers are
called inside of a produce() callback, they do mutate their inputs.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/immerjs/immer/issues/433?email_source=notifications&email_token=AAN4NBGEU3LLADPF33EIFO3QMY6M3A5CNFSM4I4Q7NL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAJHI7Q#issuecomment-538080382,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN4NBDMK3YQWF7MZ7QGNNLQMY6M3ANCNFSM4I4Q7NLQ
.

Thanks. A sandbox can work! But I'm more interested in what the mental model is and how to structure things, than what happens to work in whatever test case I write up.
With functions like increment, the above behavior makes sense.
But... it seems like the current design—where a produce() in the call stack changes the mutability of producers further down the stack—limits immer to only being used for transform-ish functions? And that it can't really be used as internals for writing cleaner get-ish functions?
For example, consider:
const getParent = path => {
  return produce(path, p => {
    p.pop()
  })
}

const getNext = path => {
  return produce(path, p => {
    p[p.length - 1]++
  })
}

In this case, I'm just using produce for convenience for the internals of a these functions that need to ensure they act without mutating.
But this seems like this creates an unexpected problem. If these functions happen to be called inside a produce() higher up the stack and the path argument was some nested object in that draft state, they no longer just get a related path, they now mutate the input path itself?
Is that right?

could you provide real and running examples? I find your examples really
hard to follow; you have getter functions with side effects? That
sounds terribly confusing in any case, regardless whether you use immer or
not. If you don't intend to have side effects, just create a utility like
peek, instead of using pop. That will be much clearer for everybody
involved.
On Fri, Oct 4, 2019 at 4:40 AM Ian Storm Taylor<EMAIL_ADDRESS>wrote:

Thanks. A sandbox can work! But I'm more interested in what the mental
model is and how to structure things, than what happens to work in whatever
test case I write up.
With functions like increment, the above behavior makes sense.
But... it seems like the current design—where a produce() in the call
stack changes the mutability of producers further down the stack—limits
immer to only being used for transform-ish functions? And that it can't
really be used as internals for writing cleaner get-ish functions?
For example, consider:
const getParent = path => {
return produce(path, p => {
p.pop()

})
}
const getNext = path => {
return produce(path, p => {
p[p.length - 1]++

})
}
In this case, I'm just using produce for convenience for the internals of
a these functions that need to ensure they act without mutating.
But this seems like this creates an unexpected problem. If these functions
happen to be called inside a produce() higher up the stack and the path
argument was some nested object in that draft state, they no longer just
get a related path, they now mutate the input path itself?
Is that right?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/immerjs/immer/issues/433?email_source=notifications&email_token=AAN4NBFK2KWURSXLNZBSJR3QM23L3A5CNFSM4I4Q7NL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAKIN3I#issuecomment-538216173,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN4NBGHUAE4S34YDJHQL3LQM23L3ANCNFSM4I4Q7NLQ
.

Absolutely, happy to elaborate. I think the reason you don't understand my examples is because we have slightly different mental models for what we think immer does—and "side effects" is a great way to put it. (So I ask that you give me the benefit of the doubt a little bit, I'm not trying to annoy you.)
As someone just coming to immer, after reading the docs...

Immer (German for: always) is a tiny package that allows you to work with immutable state in a more convenient way.

This means that you can interact with your data by simply modifying it while keeping all the benefits of immutable data.

The interesting thing about Immer is that the baseState will be untouched, but the nextState will be a new immutable tree that reflects all changes made to draftState (and structurally sharing the things that weren't changed).

…

There are actually two different mental models you can take away from these. They are only very slightly different, but they have a big impact on whether you run into unexpected behaviors:

Immer allows you to write side-effects easily, by expressing them as mutable instructions to make on an initial state.

Immer allows you to write immutable functions more conveniently, by letting you write mutable instructions but produce immutable values.

Especially if you're someone coming from Immutable.js, the 2nd mental model is going to feel familiar, because it's very similar to how you might think about the withMutations helper.
So... if you apply these to code...
(Again, please... benefit of the doubt here. These examples are very simplified, but it should be possible to imagine that the mutating logic in either of them could be much more complex. Either a complex side-effect or a complex getter computation.)
// Model #1: You'd only write your "side-effect" functions using immer
// and your non-side-effect functions using traditional immutable ways.
const increment = path => {
  return produce(path, p => {
    p[p.length - 1]++
  })
}

const getParent = path => {
  return path.slice(0, -1)
}

// Model #2: You're not limited to just side-effect functions. You use
// immer as convenient for mutating to arrive at an immutable value.
const increment = path => {
  return produce(path, p => {
    p[p.length - 1]++
  })
}

const getParent = path => {
  return produce(path, p => {
    p.pop()
  })
}

In case it's not obvious, the 2nd model is very similar to what you could do with Immutable.js's withMutations helper as well: (Not that I'm saying they are equivalent!)
// Immutable.js
const increment = path => {
  return path.withMutations(p => {
    const i = p.size - 1
    p.set(i, p.get(i)++)
  })
}

const getParent = path => {
  return path.withMutations(p => {
    p.pop()
  })
}

But with the current nested produce() behavior, the 2nd model actually leads to unexpected bugs, only when the getParent method is wrapped in a produce() call.
This is made even more clear if instead of getParent, we implemented getNextSibling:
// Model #2
const getNextSibling = path => {
  return increment(path)
}

It would be tempting to use increment() here as a shorthand, since it returns an immutable value that is equivalent to the next sibling. And if as the end user your mental model for the increment helper is that it just returns a new immutable path, you wouldn't think twice about it. But again this has the same bug.

Which is where the "side effects" distinction comes in.
If you truly think of immer as "applying side effects", then you might be able to avoid this bugs. But I think it's really counter-intuitive to say that a function "has side effects" when using immer, since the whole point is eliminating side effects by returning with immutable state... (And I'd assume I'm not alone in thinking that.)
To me it seems like the nested produce() behavior introduces a significant amount of emergent complexity into the system. It seems like a footgun. You have to always be aware of the callstack you're in, which as an exported utility function in a library is impossible.
For React-specific Redux-like use cases I think this might not ever crop up, because you're only ever processing a single reducer at once. But if you're trying to use immer for a framework or set of utility functions, to replace Immutable.js, then you get tripped up?
Does that make sense?

For a potential solution... Right now the issue is that the most common way people use immer is via the produce singleton:
import { produce } from 'immer'

And that singleton is configured to have the problematic cascading mutations behavior.
If instead, the cascading behavior was configurable, opt-in and defaulted to false... that produce singleton would be safe by default. You could use it anywhere in any codebase, without fear that your logic could be broken at any time by a produce() call higher up the callstack that you had no control over.
Then for the cases that really do benefit from the higher performance of cascading draft mutations, they could opt in to that behavior by initializing their own instance of immer with custom configuration that enabled that feature.
Seems like that could unlock immer for a wider range of use cases? While also eliminating the potential footgun that exists right now that many might not be aware of?

The goal of immer is to be able to write functions that mutate the draft.
That doesn't seem to be the goal of the functions you are writing (rather
the opposite, you want to loose those and keep some derived data), so I
think it is simpler to say Immer isn't designed for your case.
Iirc if you create a separate Immer instance, you get a separate produce
function, that doesn't share drafts with the default instance, so that
might work for you.
Personally I think that your examples are still unnecessarily confusing
though by using side effectfull APIs where you don't intent them.
Op za 5 okt. 2019 04:09 schreef Ian Storm Taylor<EMAIL_ADDRESS>
For a potential solution... Right now the issue is that the most common
way people use immer is via the produce singleton:
import { produce } from 'immer'
And that singleton is configured to have the problematic cascading
mutations behavior.
If instead, the cascading behavior was configurable, opt-in and defaulted
to false... that produce singleton would be safe by default. You could
use it anywhere in any codebase, without fear that your logic could be
broken at any time by a produce() call higher up the callstack that you
had no control over.
Then for the cases that really do benefit from the higher performance of
cascading draft mutations, they could opt in to that behavior by
initializing their own instance of immer with custom configuration that
enabled that feature.
Seems like that could unlock immer for a wider range of use cases? While
also eliminating the potential footgun that exists right now that many
might not be aware of?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/immerjs/immer/issues/433?email_source=notifications&email_token=AAN4NBEG24QG24ZKKTCMMDDQNAAOBA5CNFSM4I4Q7NL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEANI3LI#issuecomment-538611117,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN4NBE3YHRLFOTZPYQBY43QNAAOBANCNFSM4I4Q7NLQ
.

I don’t think you’ve understood what I’m trying to say.
 And not even real side effects, but “if this function was really mutable, would it have had side effects?”  Despite the entire point of using immutable structures being to avoid side effects.
You’re absolutely right about initializing my own instance. But what I’m pointing out is two things:

That the default configuration leaves open an unexpected surface for bugs, which currently isn’t well documented. Because nesting two calls to the global produce unintuitive-ly changes the behavior of code that you haven’t written.

And that the default configuration—in search of better performance—is actually limiting the utility immer could provide by artificially restricting to a single use case. When there’s an adjacent use case that could be equally solvable by eliminating the footgun.

The thing is... by switching the configuration default you’d actually end up with a safer library and one with more utility.
Under the current architecture, using nested produce calls requires you to have complete knowledge of the callstack. This kind of emergent complexity actually is much better suited to cases where you’ve created your own instance of immer, not used the global one.  Which is why it makes sense to flip the configuration.
Obviously I can convince you if you don’t want to listen. But all I’m saying is the current architecture is a footgun. And by switching the default you’d actually unlock new use cases with no extra work—pretty much the ideal use case when designing a library like this one.

Would you mind create a PR for that @ianstormtaylor? That would be really helpful to avoid confusion in the future


⚠ Samsung has degraded performance

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

HTTP code: 200
Response time: 2903 ms

Resolved: Samsung performance has improved in 9afdcf2.


Simplify context done checks

The doc for Context.Err says
that the result is non-nil only if context is done, and only the two context
errors can be returned. So we can simplify logic that tests for done-ness.

/lgtm
/approve


ksp-block-stig-rhel-v-244541

@nandakrr
RHEL V-244541 states
RHEL 8 must not allow blank or null passwords in the password-auth file.
The Fix:
Remove any instances of the "nullok" option in the "/etc/pam.d/password-auth" file to prevent logons with empty passwords.

Note: Manual changes to the listed file may be overwritten by the "authselect" program.

Which is not feasible with the current KubeArmor/Cilium capabilities. So closing the PR
cc: @syeddhadi  @raviknox @salman-accuknox


[OpenAI-Assistant] Rename some method and model names.

Renames to

get* instead of retrieve*,  [NEED A DISCUSSION]
uploadFile instead of createFile
use update instead of modify

ServiceApiVersion value should be v2024_02_15_preview instead of v2023_02_15_preview

From Travis' reply in chat:
Although OpenAI [[uses the word get](https://github.com/openai/openai-openapi/blob/master/openapi.yaml#L4710)] in the newer Assistants surface for e.g. operationId: getAssistantFile, the older /files API [[uses the word retrieve](https://github.com/openai/openai-openapi/blob/14cdf216006c8c7360ec4ab4cbec5e3b2c971a74/openapi.yaml#L1496)] for e.g. operationId: retrieveFile

We can either preserve the name split for parity and highlight the inconsistency in our selective surface (as-is right now) or do a unilateral rename that's consistent but (slightly) divergent (as in the PR)

Bonus, just for more headache: [[the more friendly documentation still calls even the newer things "retrieve"](https://platform.openai.com/docs/api-reference/assistants/getAssistantFile)], introducing an "option C" of snapping everything to "retrieve" instead of "get"

We would need to have a discussion on renaming retrieveFile to getFile. But will keep this PR changes as it is.


feature/urdd timing strategy

Created a new DD pass URDDSequenceStrategy that inherits from PadDynamicalDecoupling, but only inserts a certainumber num_pulses of the URDD sequence when the delay time is greater than specified time min_delay_time. Also includes a helper function urdd_strategy_passes which constructs the list of passes for doing this sequentially, most likely in decreasing order in both num_pulses and min_delay_time so that larger blocks of delay times are taken up by longer sequences.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

13 of 82 (15.85%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-2.0%) to 83.333%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_research/utils/dynamical_decoupling.py
13
82
15.85%

Totals

Change from base Build<PHONE_NUMBER>:
-2.0%

Covered Lines:
2440

Relevant Lines:
2928

💛  - Coveralls


Fix compile error in Vs plugin with gcc 8.2.

Description
Resolves #45
I modified the code to eliminate a compile error. I saw some similar code a few lines above that did compile, but decided to change it to match. I'm not sure why the code above is ok, but the code I replaced it with is very straightforward.
Type of change
Please select one below (Please click check boxes AFTER submitting ticket)

[X] Bug fix
[ ] New feature
[ ] New Documentation

How Has This Been Tested?
The code change is simple so the only testing I did was to inspect the code and convince myself it is ok. I'm relying on the CI and regression suite to catch any errors.
Checklist:

[X] My code follows the style guidelines of the Vs reader
[X] I have performed a self-review of my own code

Fixing compile error found by CircleCI.


[WIP] Add text of about canary

I am looking for a way to deploy to Netlify by specifying a branch.

I will merge this PR once to confirm that it works.
This is because merging into the canary branch will allow us to see how the deployment works.