Tableau does not recognize the version of the web data connector API.

Started going through the Examples in the dev branch (which use https://connectors.tableau.com/libs/tableauwdc-2.1.1.js) with a connector from within Tableau 10.0.2 (10000.16.1004.1720) 64-bit Mac and get the error:
An error occurred while communicating with the data Source. Tableau does not recognize the version of the web data connector API. Show Details: The version of Tableau that you are using cannot use the web data connector that you are trying to access. The connector requires at least version '2.1.1' of the web data connector API.
If I substitute https://connectors.tableau.com/libs/tableauwdc-2.1.1.js in the earthquakeUSGS.html with https://connectors.tableau.com/libs/tableauwdc-2.0.beta.js it works fine using a Web Data Connector from within Tableau.

In short it's erring out while at the same time telling me I need to use 2.1.1 which I am using...

@xicubed Thanks for bringing this to our attention, the docs change is an error, apologies for the hassle! Please use 2.0.latest (2.0.9).   We will make version compatibility clearer in the docs in future.
@jdomingu can you roll back the doc change for the version number?

@lbrendanl Should be done now :)

Thanks!


Move writeToFile in Translation classes to Generic Translator

This function is the same for all frameworks.

I have refactored the code successfully to do just this. The code still works.


Add interceptors

Maybe cool to add interceptors for check request/response after actions?

Hi @MaxFix
We already have such mechanism. It is called listeners. Please, take a look at the doc - https://github.com/open-tool/ultron/wiki/Listeners
You also can check result handler feature of Ultron - https://github.com/open-tool/ultron/wiki/Handle-a-detailed-result-of-any-operation


ESP32 fails on reading flash to SPIRAM (3.7.x LTS)

Describe the bug
In Zephyr 3.7.x (tested both 3.7.0 and 3.7.1-rc1), reading from flash to SPIRAM fails. This was previously reported and fixed in https://github.com/zephyrproject-rtos/zephyr/issues/77551.
To Reproduce
The issue is reproduced by the same way i.e.,
west build -p -b esp32_devkitc_wrover/esp32/procpu ./zephyr_os/zephyr/samples/subsys/nvs
where the boot_counter is moved to SPIRAM:
static uint32_t reboot_counter __attribute__((section(".ext_ram.bss")));
and SPIRAM is enabled (append to prj.conf):
CONFIG_ESP_SPIRAM=y
CONFIG_SPIRAM_TYPE_ESPPSRAM16=y

this results in:
I (141) quad_psram: This chip is ESP32-D0WDR2-V3
I (141) esp_psram: Found 2MB PSRAM device
I (141) esp_psram: Speed: 40MHz
I (141) esp_psram: PSRAM initialized, cache is in normal (1-core) mode.
I (585) esp_psram: SPI SRAM memory test OK
I (610) spi_flash: flash io: dio
*** Booting Zephyr OS build v3.7.0 ***
[00:00:00.611,000] <dbg> fs_nvs: nvs_recover_last_ate: Recovering last ate from sector 1
[00:00:00.620,000] <inf> fs_nvs: 3 Sectors of 4096 bytes
[00:00:00.620,000] <inf> fs_nvs: alloc wra: 1, 7e0
[00:00:00.625,000] <inf> fs_nvs: data wra: 1, 404
Id: 1, Address: <IP_ADDRESS>
Id: 2, Key: ff fe fd fc fb fa f9 f8
[00:00:00.641,000] <err> flash_esp32: esp_flash_read failed 257

When I build from https://github.com/zephyrproject-rtos/zephyr/commit/aa3dd674a97b60fe6a829942e3b21618070f56ab, it obviously works. Seems like it has regressed since. I will try to understand the fix and if I can apply it to 3.7.1. Probably a quick fix for someone with insight.
Expected behavior
Reading flash to SPIRAM works.
Impact
We can't bump to 3.7.x LTS.
Environment (please complete the following information):

Zephyr 3.7.0 and 3.7.1-rc1
Zephyr SDK: 16.9

PEBCAK

PEBCAK

PEBCAK


Setup /bot page on scholcommlab.ca

It might be useful to create a scholcommlab.ca/bot page for all our trackers and crawlers and their UserAgent headers with additional information for services

Example: http://www.google.com/bot.html


SNOPT won't build

I've been trying to install pyoptsparse with SNOPT v7.6 and can't get it to compile. I've removed the snopth.f file from src and passed the -s flag to the src directory. It breaks on sn70nobj.o
Any ideas how I can debug this? Output is here.

You may want to pose this question over at https://github.com/mdolab/pyoptsparse
Per their documentation:
From v2.0 onwards, only SNOPT v7.7 is officially supported. To use pyOptSparse with previous versions of SNOPT, please checkout release v1.2.

https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/optimizers/pysnopt.html?highlight=snopt
This script has been used with pyoptsparse v1.2/SNOPT 7.2 and with pyoptsparse v2.1.5/SNOPT 7.7 for the purposes of installing/testing OpenMDAO.

Ok, I'll post over there.
Just to check this script though: the docs say "    -b branch         pyOptSparse git branch. Default: v1.2". So this should default to v1.2 which should work with SNOPT7.6, correct?

The README had not been updated and still showed the the old default.  I have put in PR #6 to update it.
The actual default is v2.1.0:
https://github.com/OpenMDAO/build_pyoptsparse/blob/master/build_pyoptsparse.sh#L14

Ok, thanks for the help, I'll close this.


Font Size of the message Welcome to a World of personalised healthcare is too small

I want to change the font size so that the text becomes readable and the ui is improved.
Please assign me this issue for Hacktoberfest 2024 .

hey kindly assign this issue to me...
i try my best to make it more responsive..
changing font family and font size with various text properties...


constructor_args behavior not consistent between create & verify-contract

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (b0b8cfb 2023-10-18T00:19:09.114599518Z)
What command(s) is the bug in?
forge verify-contract
Operating System
Linux
Describe the bug
forge create supports --constructor-args a --constructor-args b --constructor-args c, but forge verify-contract does not.
https://github.com/foundry-rs/foundry/blob/7c122b09ce506611a76e2273f50ca497f2b0385a/crates/forge/bin/cmd/create.rs#L36-L43
https://github.com/foundry-rs/foundry/blob/7c122b09ce506611a76e2273f50ca497f2b0385a/crates/forge/bin/cmd/verify/mod.rs#L47-L49

According to #6454 , we can consider it fixed.


V3a jog screen alignment

overview
This PR implements the following updates to better align with designed UI.

Label jog axes
Move jog instructions to top
Jog button hover styles
Move to next labware button now blue
Disable run link when not calibrated

This PR includes:

[x] Chore work
[x] Bug fixes
[ ] Backwards-compatible feature additions
[ ] Breaking changes
[ ] Documentation updates
[ ] Test updates

Note: If you did not check "Documentation updates" and/or "Test updates" then your PR may not be ready!
changelog
Write descriptions for your changes. If a change is related to a GitHub issue, please tag the issue in the description.

(Chore) Match jog modal to design, css updated
(Fix) Disable run link until all labware is calibrated

Note: If your PR incorporates many changes, or many different types of changes, please consider splitting it up into smaller PRs.
review requests
This is generally CSS/organizational chore work. @mcous please double check my disable run link logic.

Still missing active labware/pipette styles. Will add in next commit


Update docker to docker-engine-17.06.2.ce

High-level description
https://jira.mesosphere.com/browse/DCOS-37670 - Update docker to docker-engine-17.06.2.ce

This repo has @mesosphere-mergebot integration. You can interact with the following commands.
@mesosphere-mergebot bump-ee
@mesosphere-mergebot merge-it
@mesosphere-mergebot override-status
@mesosphere-mergebot label [Work In Progress |Ready For Review |Holding |Ship It |Request For Comment]

PR creators can apply one of  [Ready For Review |Work In Progress]. Owners can apply any label.

Triggered AWS: Build and publish Red Hat 7 base images / AMI (standard regions) https://teamcity.mesosphere.io/viewLog.html?buildId=1090655&tab=buildResultsDiv&buildTypeId=DcosIo_Dcos_BuildCloudBaseImages_AwsBuildAndPublishRedHat7baseImagesStandardRegi


NLA Connection fails when using hostname on domain connected machines

If you use a hostname to attempt to connect to a domain connected machine from a domain connected machine on the same domain, the connection is dropped. If you attempt the same connection using the IP address, it succeeds.
Here's what we know so far:

using the hostname in this scenario (two domain connected machines) causes SPNEGO to use Kerberos because the SPN is known to the domain controller (verified by no NTLMSSP header in the outgoing negoToken)
using the IP address generates a SPN unknown to the DC, so it follows the NTLM path instead and works fine
FreeRDP 1.x series works fine because it was hardcoded to always use NTLM
the connection is dropped when the public key is echoed back to the server (last stage of NLA_STATE_NEGO_TOKEN)
on the server, we sometimes see a TermDD event 56 "The Terminal Server security layer detected an error in the protocol stream and has disconnected the client" with error 0x8009030F which seems to map to TLS1_ALERT_BAD_RECORD_MAC (https://msdn.microsoft.com/en-us/library/windows/desktop/dd721886(v=vs.85).aspx)

stderr log shows:
[16:08:57:715] [8760:000003a4] [ERROR][com.freerdp.core.transport] - BIO_read returned an error: error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error
[16:08:57:715] [8760:000003a4] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x2000D]

In the server's RemoteDesktopServices-RdpCoreTS/Operational event log I see:
The server security layer detected an error (0x80004005) in the protocol stream and the client (Client IP:<IP_ADDRESS>) has been disconnected.

I found the bug... will submit a patch soon.

that's great! we implemented workaround to resolve to IP, but it would be much better when we don't need to hack around it! thanks

Fixed is now merged to master.

@byteboon thank you.


webview-example.exe window show up very slow(about 10 senconds ) on the first run

What OS are you using (uname -a, or Windows version)?
Windows version: Microsoft Windows [版本 10.0.18363.657]
IE version: 11.57.18362

What programming language are you using (C/C++/Go/Rust)?
gcc --version: gcc.exe (Rev1, Built by MSYS2 project) 7.4.0

What did you expect to see and what you saw instead?
The webview-example.exe window should show up immediately.

Closing as stale.


content-service in automate: step one

User Story
just a bit of a placeholder ticket for folks to take a day or two familiarizing themselves with the plan, goal, acceptance criteria
wip notes: https://docs.google.com/document/d/1uvolVc36AGFhigXUSmx2sVUWHAp0l0d0xrd4JF-2ELo/edit

We can use automate-minio to store the profiles. Here is an example of how to use it. https://github.com/chef/automate/blob/1ca3deb611fa1ab5bbf28cfb55179011e16d4a3e/components/automate-deployment/pkg/backup/operations_test.go#L99.

Below are my suggested tasks for this work. I was leaving actually connecting to the SaaS CDS to the end to allow that work to be completed. I am suggesting adding a rough UI CDS page.

[ ] AllContent API - Lists all the content stored in Automate.  Rough UI listing all the content. The API will return canned data. Filtering and paging added later.
[ ]  "install" - Add an install button to each content in the UI. Create an API endpoint that takes only the content ID. This call is stubbed out and only logs that the content was installed.
[ ]  “get content” - Add a  “get content” button to each content the UI. Create an API endpoint that takes only the content ID. This call is stubbed out and only logs that the content was retrieved from CDS.
[ ]  "download" - Add a button on each content in the UI. Create a streaming API that takes the content ID
[ ]  "install" profile - add the profile to the compliance-service
[ ]  "install" hart - upload the hart file to on-prem builder with tag "unstable"
[ ]  “enable dynamic content” Create API to add CDS token to secrets service. Add this to the CDS UI page
[ ]  Add PostgreSQL to automate-cds
[ ]  Add filtering and paging to the AllContent endpoint
[ ]  Create SaaS CDS cereal to poll every hour for content metadata (only poll if there is a CDS token)
[ ]  "get content" - actually download the hart files, profiles, and cookbook tarballs from CDS. Download these to the hard drive
[ ] Store downloaded content to automate-minio

these all sound great -- that'll give us a nice skeleton to work off of! 🎉


A better implementation for is.regexp

Hi Aras,
I think this would be a better implementation for is.regexp. It is tested in all scenarios (undefined, null, object, array, etc).
Cheers
Hamid

Hey @hamid6
Thanks for the PR. I think there are 3 options for this check:

First one is instanceof check as in your implementation
Current toString check
And duck typing (like checking presence of test, ignoreCase, exec properties on RegExp object)

I thought current string check is the most performant one. Why do you think your implementation is a better choice over these options?
Cheers.


[WIP] hackfest servicemonitors and recordingrules

This is incomplete but useful.

An idea we might explore again in the future, but not currently a priority


[Improvement] Add capability to configure remote log publishing settings for each log type separately

Upcoming remote log publishing UI [1] would have a single form to configure log publishing for all log types. The UI needs to be improved so that users are be able to configure log publishing settings for each log type separately, and restore default configuration for each log type separately.
[1] https://github.com/wso2/product-is/issues/16464

This has been implemented and now available in the latest Jenkins build, hence closing.


The shape of homogenization RVE

Hi, everyone. It said in the Readme description that you can run periodic homogenization on a periodic microstructure (2D or 3D) in a unit cell (square in 2D, cube in 3D) . I want to know whether it applies to general rectangular and cuboid geometry

Yes, it should just work for rectangular unit cells. It also should work for more general unit cell shapes (e.g., parallelograms and hexagons), but for these you need to manually specify the periodically identified nodes and the volume of the RVE.

@jpanetta Thank you for your reply.


Use a virtual file system

On a GitHub app the file system and the cloned repo are not available. Currently cosmiconfig browse the filesystem to find the config files, so it cannot be used with a GitHub app.
Would it be possible to pass to the load function a Array of file Objects, which would contains the the file path and the file content as a String or a Buffer?
So a GitHub app could retrieve the config files as a String or Buffer and pass them to cosmiconfig.
For example:
const explorer = cosmiconfig('mymodule', [
  {path: 'mymodulerc.yml', content: '....'},
  {path: 'dir/mymodulerc.yml', content: '....'},
]);

explorer.load();
// => use config from `mymodulerc.yml`

explorer.load('dir');
// => use config from `dir/mymodulerc.yml`

explorer.load(null, 'dir/mymodulerc.yml');
// => use config from `dir/mymodulerc.yml`

Hi @pvdlg. To make sure I understand the full situation: What is the benefit of using cosmiconfig in your situation? Is it only to handle file format flexibility (i.e. your config might be YAML, JSON, or JS)? If so, maybe it would make sense to expose the parsing method that makes these parsing attempts (see loadDefinedFile.

The benefit would be to able to use cosmiconfig in a project, for both CLI and GitHub app usage.
In the case of a GitHub app cosmiconfig could bring the following advantages:

Parse any compatible file independently of the format
Find the config file the closest to the file passed in the load function

I'm not sure exposing loadDefinedFile as is would work as the function seems to read the file on the disk. It would also be beneficial to use the cache, determine the file format based on it's name and content and finding the config file the closest to file passed in load.

Find the config file the closest to the file passed in the load function

Find the file based on a virtual filesystem object that you pass in? So it would actually try to consolidate path properties of these objects into a mock filesystem and traverse that?

Find the file based on a virtual filesystem object that you pass in? So it would actually try to consolidate path properties of these objects into a mock filesystem and traverse that?

Yes. It's just a proposal. I don't know how hard it would be to implement and if the benefits would justify the effort though.

I see ...
I think that the intention here (taking a module that expects a real file system and running it within a virtual one) is not specific to cosmiconfig, so any solution to it shouldn't be specific to cosmiconfig, either. If there were some generic method for accomplishing this, we could look into how to make that work with cosmiconfig. There may be! But I guess I don't think that cosmiconfig should implement its own specific solution.

@davidtheclark memory-fs could be used for this. We would have to accept fs as a parameter with the default as require('fs'). Right now, in our source code, we only access fs from readFile.js. However, we might need to implement is-directory ourselves to be able to pass the filesystem instance.

@sudo-suhas: Sure, but even with that tool we'd need to change cosmiconfig to accommodate, which I feel weird about given how generic the problem is. Doesn't seem like a responsibility this library should have to take on — especially if it's not something that all kinds of other fs-reading libraries are doing. (Or are they doing it?)

The only other way I can think of is to mock the fs library and substitute memory-fs using something like mockery. This could be packaged into a separate wrapper library.

@sudo-suhas that's a good idea to try: use a mocking library to hijack fs in the code of your GitHub app — that would mean that all the libraries you use would not have to make special accommodations for the possibility of a virtual file system.
@pvdlg I'd love to hear if that works for you. I'm going to close this issue for now, because I'm still of the opinion that the problem is too generic for cosmiconfig. Still open to hearing others' thoughts and ideas, though.

Mocking the fs functions seems way too hacky...
For an application that runs both on the files system (as a CLI tool) and in a GitHub app (via API) it would really difficult to use cosmiconfig unfortunately, as the cosmiconfig features to parse any compatible file independently of the format and to find the closest config file would have to be reimplemented in the GitHub app.
Having two different implementation (one in cosmiconfig and a custom one in the app) is not really convenient and can create discrepancies.
Maybe cosmiconfig could expose the following?

a function to get all the valid filenames to look for
a function that detect the format and parse the config file

@pvdlg I'm still wondering if there is any precedent for addressing this problem outside of cosmiconfig. I can't imagine this problem is specific to cosmiconfig, right?

I guess usually project allow only one type of configuration (either yaml or json).
As cosmiconfig introduced the possibility to have multiple format that can be handled automatically, the problem arise for code that can run both with and without the cloned repo.
In such situation the code in src/loadRc.js would have to be duplicated in the case of a GitHub app.

Would it be possible to expose the parseContent function by chance?
That would allow a GitApp to figure out by itself the config file to use and parse it with parseContent which can recognize the different supported format (json, js, yaml). That would cover most of the requirement for such situation.

I was interested in what mocking the fs module would feel like - it's actually not too bad.  I'd also imagine populating a javascript object with your virtual file system wouldn't be difficult.
const { vol } = require('memfs'),
  mockery = require('mockery');

mockery.enable();
mockery.warnOnUnregistered(false);

const volume = {
  'test-cosmiconfig/child/test.js': '{ "foundme": "true" }',
  'test-cosmiconfig/.prettierrc': '{ "foundme": "true" }'
};

vol.fromJSON(volume, '/');
mockery.registerMock('fs', vol);
const createExplorer = require('cosmiconfig');
const explorer = createExplorer('prettier');

explorer
  .load(null, '/test-cosmiconfig/.somemodulerc')
  .then(loadResult => console.log(loadResult))
  .catch(anError => console.error(anError));

// outputs
// { config: { foundme: 'true' },
//   filepath: '/test-cosmiconfig/.somemodulerc' }

In the context of a GitHub app, mocking the file system might not be an option, as the mock will be global. The application wouldn't be able access the real FS, not even for logging.
Even in an other context, using a mock library made for testing might create a lot of unintended effects....
In this use case, I'd rather write the code to find the correct config file and parse it with parseContent....

yeah I guess my vote would be to add an 'fs' option where people can pass their own file system object.  This is how I've seen this problem solved anyway.  By default we would just use the required fs, but people can provide a memfs such as above if they choose.
I'm not fond of exposing an internal function - I like the simplicity and focus of the API as it stands now.

Yes that would be ideal, but as this issue was closed I don't think it would be implemented...
Exposing parseContent would be fairly simple and would solve a big part of the problem, which is why I proposed this solution.
It could even be extracted to a separate npm module. The functionality of parsing a file content (or even a string) that could be either json, js or yaml would be quite useful even outside of cosmiconfig.
In the use case of a project working both as a CLI or within a GitHub app, the important thing is for the parsing to be the identical in both scenario to avoid bugs and discrepancy. So exposing the parsing function via API or via an npm module would solve that problem.

@davidtheclark Would you reconsider accepting fs as an optional parameter to createExplorer?

🤷♂ I guess if everybody else thinks this seems like a good idea, I'm open to looking at a more precise outline of what feature would mean (what exactly would the user provide, how exactly would cosmiconfig use it, etc.). Would the user pass in some complete fake fs like memfs or avfs?

This is how I've seen the problem solved anyway.

@olsonpm where have you seen this problem solved before? As I've expressed above, I'd love to see precedent.

sure i'm pretty sure it was webpack related e.g. regular fs for writing output to the file system for creating a deployment and memfs for hotreload local development.  I'll find code to reference though to make sure i'm not misremembering

Finally at my computer today.  Webpack does allow users to modify the "outputFileSystem"
documentation:
https://webpack.js.org/api/node/#custom-file-systems
example usage with ssr and vue

Here are the steps I see to allowing the user to pass in a custom fs module:

Implement our own isDirectory function, instead of using the is-directory module.
Document precisely which fs methods we use. That way we can document that the user-provided fs must expose those methods.
Try it out, maybe with memfs.

Does that sound right?

sounds good to me

reopening. @davidtheclark Would we want to target this in v5 release? Personally, I think we could but not needed since this won't break backward compatibility. So we can pick this up after v5 release.

@sudo-suhas Agreed. It could go into whatever release it's ready for.

@pvdlg Are you still interested in this functionality? If so, I can work on a PR which implements the changes outlined in https://github.com/davidtheclark/cosmiconfig/issues/105#issuecomment-375907150.

Yes I would still be interested in such feature! Thanks!

Please see #143 and let me know what you think.

Closing as stale, since there's been no additional interest here.


Unable to start a One Master Server and One Volume Server: port 19333:connection refused

Sponsors SeaweedFS via Patreon https://www.patreon.com/seaweedfs
Report issues here. Ask questions here https://stackoverflow.com/questions/tagged/seaweedfs
Please ask questions in https://github.com/seaweedfs/seaweedfs/discussions
example of a good issue report:
https://github.com/seaweedfs/seaweedfs/issues/1005
example of a bad issue report:
https://github.com/seaweedfs/seaweedfs/issues/1008
Describe the bug
Cannot start a simple one master server and one volume server.
System Setup

Environment

I tried both on a local VMWare machine and an Aliyun ECS server. Their system version are as the following:
Local VM
Linux version 5.15.0-67-generic (buildd@lcy02-amd64-116) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023
Aliyun ECS
Linux version 4.15.0-206-generic (buildd@lcy02-amd64-070) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #217-Ubuntu SMP Fri Feb 3 19:10:13 UTC 2023

Install Seaweedfs

Download version 3.44 linux_amd64.tar.gz from the release page.
$ tar -xvf linux_amd64.tar.gz
$ chown root:root weed
$ mv weed /usr/local/bin
$ ls -lah /usr/local/bin/
total 79M
drwxr-xr-x  2 root root 4.0K Mar 31 12:19 .
drwxr-xr-x 10 root root 4.0K Apr 21  2022 ..
-rwxr-xr-x  1 root root  79M Mar 20 03:41 weed
$ weed version
version 30GB 3.44 5b43c4bb98c5e2d83dca5414b4c902b668f91ea5 linux amd64

Run server

I refer to README.md "Quick Start with Single Binary" section.
Run weed server -dir=./data -s3 get the following error:
$ mkdir data
$ weed server -dir=./data -s3
I0331 13:45:28.688352 master.go:269 current: <IP_ADDRESS>:9333 peers:
I0331 13:45:28.689331 file_util.go:23 Folder ./data Permission: -rwxrwxr-x
I0331 13:45:28.689812 file_util.go:23 Folder ./data Permission: -rwxrwxr-x
I0331 13:45:28.690026 master.go:269 current: <IP_ADDRESS>:9333 peers:<IP_ADDRESS>:9333
I0331 13:45:28.690501 master_server.go:127 Volume Size Limit is 30000 MB
I0331 13:45:28.691132 volume_grpc_client_to_master.go:43 checkWithMaster <IP_ADDRESS>:9333: get master <IP_ADDRESS>:9333 configuration: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp <IP_ADDRESS>:19333: connect: connection refused"
I0331 13:45:28.691515 master.go:150 Start Seaweed Master 30GB 3.44 5b43c4bb98c5e2d83dca5414b4c902b668f91ea5 at <IP_ADDRESS>:9333
I0331 13:45:28.692629 raft_server.go:118 Starting RaftServer with <IP_ADDRESS>:9333
I0331 13:45:28.694544 raft_server.go:167 current cluster leader:
I0331 13:45:30.482563 volume_grpc_client_to_master.go:43 checkWithMaster <IP_ADDRESS>:9333: get master <IP_ADDRESS>:9333 configuration: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp <IP_ADDRESS>:19333: connect: connection refused"
I0331 13:45:30.690445 s3.go:177 wait to connect to filer <IP_ADDRESS>:8888 grpc address <IP_ADDRESS>:18888
I0331 13:45:31.692348 s3.go:177 wait to connect to filer <IP_ADDRESS>:8888 grpc address <IP_ADDRESS>:18888
I0331 13:45:32.273947 volume_grpc_client_to_master.go:43 checkWithMaster <IP_ADDRESS>:9333: get master <IP_ADDRESS>:9333 configuration: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp <IP_ADDRESS>:19333: connect: connection refused"

Firewall has been turned off and iptable is clean. I have no idea why the connection is refused.
$ sudo iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
$ sudo ufw status
Status: inactive

Expected behavior
The Seaweedfs server should start working properly.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

I face the same problem when starting a Master server

pretty sure the prot 19333 is not open. maybe try it on a different server.


New version: Spyder.Spyder version 6.0.3

Pull request has been created with komac v2.8.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

@wingetbot run

Validation was left running overnight.

This package installs and launches normally in a Windows 10 VM.

This package installs and launches normally in a Windows 10 VM.


refactor(config): move common rules to base config file

What: Move common lint rules to a base configuration file!
Why: I like my code like I like my humor -- DRY.

LGTM

LGTM


Return actual num bytes written in write()

I noticed that BufferedOutputStream.write() just returns the current buffer position returned by append!. I changed append! to return the number of bytes appended, so the return value of write() consistently returns the actual number of bytes written.

Current coverage is 70.34%

Merging #3 into master will decrease coverage by -0.83% as of 5fbd3c8

@@            master      #3   diff @@
======================================
  Files            3       3
  Stmts          170     172     +2
  Branches         0       0
  Methods          0       0
======================================
  Hit            121     121
  Partial          0       0
- Missed          49      51     +2

Review entire Coverage Diff as of 5fbd3c8

Powered by Codecov. Updated on successful CI builds.

Thanks. Looks good to me, but we need a few tests to check your intended behavior and avoid regressions in the future.
Could you add some tests to test/runtests.jl?

OK, I've added some tests.

Thanks!


added platform discovery code back into device_tracker

Description:
Fixed platform discovery for device_tracker by reverting some of the changes (see #9683)
Related issue (if applicable): fixes #10124
Checklist:
If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

Would have been nice if a test case had caught this ...

The test for the core was removed as well. Individual platform tests are up to each platform to add.


lxcfs: 4.0.12 -> 5.0.4

Diff: https://github.com/lxc/lxcfs/compare/lxcfs-4.0.12...lxcfs-5.0.4
Changelog: https://linuxcontainers.org/lxcfs/news/
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg test incus.container lxd.container


proposal: bufio: add Writer.AvailableBuffer

There are many APIs in Go that append to a []byte and return a []byte.
Unfortunately, these APIs operate poorly with bufio.Writer since that type only accepts []byte as an input (via the Write method) and never provides a []byte. This requires logic trying to combine append-like functionality with bufio.Writer to be responsible for allocating a buffer, when bufio.Writer already has a buffer.
I propose the addition of a new method that provides access to the underlying []byte:
// AvailableBuffer returns an empty buffer with b.Available capacity.
// This buffer is intended to be appended to and
// passed to an immediately succeeding Write call.
func (b *Writer) AvailableBuffer() []byte {
    return b.buf[b.n:][:0]
}

Example usage:
var bw *bufio.Writer = ...
b := bw.AvailableBuffer()
b = strconv.AppendUint(b, ...)
bw.Write(b)

In the common cases where bw.Available() is large enough, strconv.AppendUint appends to the buffer without allocating. When the buffer is passed to Write, the underlying call to copy returns immediately without actually copying since the source and destination are identical. This saves us both an allocation and a copy.
In the rare case where it allocates, the subsequent Write call still works as expected, but needs to copy.
The detriment of this API is that it exposes the internal buffer of bufio.Writer when it was previously impossible to access it. However, the other types in the package (i.e., Reader and Scanner) already provide unsafe access to the underlying buffer via the Reader.Peek, Reader.ReadSlice, and Scanner.Bytes methods.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

This seems reasonable. Does anyone object to this?

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group


tf.gather and workarouds are very slow on TPU

Issue type
Performance
Have you reproduced the bug with TensorFlow Nightly?
No
Source
source
TensorFlow version
2.16.1
Custom code
Yes
OS platform and distribution
Ubuntu 22.04.2 LTS
Mobile device
TPU VM
Python version
3.10.12
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
Hi all,
I am trying to solve a performance bug that occurs during pretraining/fine-tuning a DeBERTa model on TPUs.
In a nutshell, the tf.gather implemention is very slow on TPUs (but very fast on GPUs).
I am now looking for a way, that boosts up the tf.one_hot + tf.einsum trick, which would have massive impact in pretraining DeBERTa models to widespread it's usage.
There are some issues that have also reported this issue:

https://github.com/huggingface/transformers/issues/18239
https://github.com/keras-team/keras-hub/issues/606

But with no solution yet. Any help is highly appreciated!
Standalone code to reproduce the issue
Here's a code snippet with an example:
def take_along_axis_v2(x, indices):
    # Only a valid port of np.take_along_axis when the gather axis is -1

    # TPU + gathers and reshapes don't go along well -- see https://github.com/huggingface/transformers/issues/18239
    if isinstance(tf.distribute.get_strategy(), tf.distribute.TPUStrategy):
        # [B, S, P] -> [B, S, P, D]
        one_hot_indices = tf.one_hot(indices, depth=x.shape[-1], dtype=x.dtype)

        # if we ignore the first two dims, this is equivalent to multiplying a matrix (one hot) by a vector (x)
        # grossly abusing notation: [B, S, P, D] . [B, S, D] = [B, S, P]
        gathered = tf.einsum("ijkl,ijl->ijk", one_hot_indices, x)

    # GPUs, on the other hand, prefer gathers instead of large one-hot+matmuls
    else:
        gathered = tf.gather(x, indices, batch_dims=2)

    return gathered

Taken from https://github.com/WissamAntoun/CamemBERTa/blob/1a1fb4a658729dfac2bb93842d88261132803ec3/modeling_tf_deberta_v2.py#L734-L750
Relevant log output
No response

@stefan-it,
Could you please share a reproducible code that supports your statement so that it helps to debug the issue in an effective way? Thank you!

Hi @tilakrayal ,
here's some basic code to reproduce the bahaviour:
import time
import tensorflow as tf

print("TensorFlow version:", tf.__version__)

start = time.time()

def take_along_axis(x, indices):
    flat_x = tf.reshape(x, (-1, x.shape[-1]))
    flat_indices = tf.reshape(indices, (-1, indices.shape[-1]))
    gathered = tf.gather(flat_x, flat_indices, batch_dims=1)
    gathered = tf.reshape(gathered, indices.shape)

    return gathered

for i in range(0, 5000):
    x_shape = [32, 128, 512]
    indices_shape = [32, 128, 128]
    x = tf.random.uniform(shape=x_shape)
    indices = tf.random.uniform(shape=indices_shape, minval=1, maxval=128, dtype=tf.int32)
    gathered_original = take_along_axis(x, indices)

end = time.time()

print("Elapsed time:", round(end - start, 2), "seconds")

On my RTX 3090 with TF 2.16.1 (on GPU) this code takes ~5.16 seconds. Without GPU-support 9.74 seconds.
On a v3-32 TPU VM Pod I ran the example and execution time is 18.26 seconds.

@stefan-it How long does it take for gathered = tf.gather(x, indices, batch_dims=2) or for the one_hot+einsum variant?

Thanks @WissamAntoun , I forgot to run experiments with version 2:
import time
import tensorflow as tf

print("TensorFlow version:", tf.__version__)

start = time.time()

def take_along_axis_v2(x, indices):
    # Only a valid port of np.take_along_axis when the gather axis is -1

    # TPU + gathers and reshapes don't go along well -- see https://github.com/huggingface/transformers/issues/18239
    if isinstance(tf.distribute.get_strategy(), tf.distribute.TPUStrategy):
        # [B, S, P] -> [B, S, P, D]
        one_hot_indices = tf.one_hot(indices, depth=x.shape[-1], dtype=x.dtype)

        # if we ignore the first two dims, this is equivalent to multiplying a matrix (one hot) by a vector (x)
        # grossly abusing notation: [B, S, P, D] . [B, S, D] = [B, S, P]
        gathered = tf.einsum("ijkl,ijl->ijk", one_hot_indices, x)

    # GPUs, on the other hand, prefer gathers instead of large one-hot+matmuls
    else:
        gathered = tf.gather(x, indices, batch_dims=2)

    return gathered

for i in range(0, 5000):
    x_shape = [32, 128, 512]
    indices_shape = [32, 128, 128]
    x = tf.random.uniform(shape=x_shape)
    indices = tf.random.uniform(shape=indices_shape, minval=1, maxval=128, dtype=tf.int32)
    gathered_original = take_along_axis_v2(x, indices)

end = time.time()

print("Elapsed time:", round(end - start, 2), "seconds")

On my GPU it runs in 1.71 seconds.
Same code on the TPU VM Pod using:
import time
import tensorflow as tf

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='roberta')
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
print("All devices: ", tf.config.list_logical_devices('TPU'))
strategy = tf.distribute.TPUStrategy(resolver)

def take_along_axis_v2(x, indices):
    # Only a valid port of np.take_along_axis when the gather axis is -1

    # TPU + gathers and reshapes don't go along well -- see https://github.com/huggingface/transformers/issues/18239
    if isinstance(tf.distribute.get_strategy(), tf.distribute.TPUStrategy):
        # [B, S, P] -> [B, S, P, D]
        one_hot_indices = tf.one_hot(indices, depth=x.shape[-1], dtype=x.dtype)

        # if we ignore the first two dims, this is equivalent to multiplying a matrix (one hot) by a vector (x)
        # grossly abusing notation: [B, S, P, D] . [B, S, D] = [B, S, P]
        gathered = tf.einsum("ijkl,ijl->ijk", one_hot_indices, x)

    # GPUs, on the other hand, prefer gathers instead of large one-hot+matmuls
    else:
        gathered = tf.gather(x, indices, batch_dims=2)

    return gathered

with strategy.scope():
    start = time.time()
    for i in range(0, 5000):
        x_shape = [32, 128, 512]
        indices_shape = [32, 128, 128]
        x = tf.random.uniform(shape=x_shape)
        indices = tf.random.uniform(shape=indices_shape, minval=1, maxval=128, dtype=tf.int32)
        gathered_original = take_along_axis_v2(x, indices)

    end = time.time()
    print("Elapsed time:", round(end - start, 2), "seconds")

takes 522 seconds!

Version 3 of the benchmark just uses tf.gather:
GPU:
import time
import tensorflow as tf

print("TensorFlow version:", tf.__version__)

start = time.time()

for i in range(0, 5000):
    x_shape = [32, 128, 512]
    indices_shape = [32, 128, 128]
    x = tf.random.uniform(shape=x_shape)
    indices = tf.random.uniform(shape=indices_shape, minval=1, maxval=128, dtype=tf.int32)
    gathered_original = tf.gather(x, indices, batch_dims=2)

end = time.time()

print("Elapsed time:", round(end - start, 2), "seconds")

Takes 1.67 seconds.
TPU code:
import time
import tensorflow as tf

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='roberta')
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
print("All devices: ", tf.config.list_logical_devices('TPU'))
strategy = tf.distribute.TPUStrategy(resolver)

with strategy.scope():
    start = time.time()
    for i in range(0, 5000):
        x_shape = [32, 128, 512]
        indices_shape = [32, 128, 128]
        x = tf.random.uniform(shape=x_shape)
        indices = tf.random.uniform(shape=indices_shape, minval=1, maxval=128, dtype=tf.int32)
        gathered_original = tf.gather(x, indices, batch_dims=2)

    end = time.time()
    print("Elapsed time:", round(end - start, 2), "seconds")

Takes 3.41 seconds.

Overview:

Hardware
Version 1 (tf.gather + tf.reshape)
Version 2 (tf.one_hot + tf.einsum)
Version (tf.gather)

RTX 3090
5.16 s
1.71 s
1.67 s

v4-32 TPU VM Pod
13.86s
522.16 s
3.41 s


Preview Main Menu images (Help and Main)

Preview Help image and Main Menu image before uploading. This should be done with js.

Closed in e37f405448cabece7fbcac0e1900c0ca8d8b9766


User created room notification has incorrect title

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Create Room
Enable immediate notifications under settings for both users
Send a message as userA
UserB should receive it

Expected Result:

Notification title should be New Expensify - #trantor-coffee-chat

Actual Result:

Notification title was New Expensify - Chat with Jules TESTING

Platforms:
Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] iOS / native
[?] MacOS / Chrome / Safari
[?] MacOS / Desktop

Version Number:
Reproducible in staging?: Yes
Reproducible in production?: Yes
Issue reported by: me
Slack conversation: link
Current

Desired

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010b78a5d117df0363
Upwork Job ID:<PHONE_NUMBER>430234624
Last Price Increase: 2023-04-27

Triggered auto assignment to @MitchExpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Job added to Upwork: https://www.upwork.com/jobs/~010b78a5d117df0363

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Triggered auto assignment to Contributor Plus for review of internal employee PR - @aimane-chnaif (Internal)

Internal issue, as backend changes are necessary.

I'll take a look into this!

Excellent, thanks Tim. Let me know if you need any help! Here's a useful guide for testing notifications from your dev env on a physical device.

Do we need any help from you friend Mitch from Bug Zero on this one? 😄

I don't think so!
On Thu, Apr 27, 2023 at 6:18 PM MitchExpensify @.***>
wrote:

Do we need any help from you friend Mitch from Bug Zero on this one? 😄
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/18071#issuecomment-1526804600,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMABZCCDUPVDLOMTMP5YLXDMEGZANCNFSM6AAAAAAXNSZKAQ
.
You are receiving this because you were assigned.Message ID:
@.***>

This was deployed a few weeks ago but didn't end up closing this issue.


Multilayer tile generator

Mapbox's map vector tile specification allows a single map vector tile contain multiple layers. Please support generation of a multilayer tile.

I have to define a new input file format that can contain multiple GeoJSON objects. It will be something similar to the following,
{
  "layername1": {
    GeoJSON object
  },
  "layername2": {
    GeoJSON object
  }, ...
}


-FilterConditons section the example and PowerShell do not match

The text states

User or Group: Active Directory attributes. For example, for the condition "('Country or region' equals 'US' or 'Canada') and 'Department' equals 'Finance'", use the following syntax: @{"Conditions" = @(@{"Conditions" = @(@{"Value" = "US"; "Operator" = "Equals"; "Name" = "CountryOrRegion"}, @{"Value" = "CA"; "Operator" = "Equals"; "Name" = "CountryOrRegion"}); "Conjunction" = "Or"}, @{"Value" = "Finance"; "Operator" = "NotEquals"; "Name" = "Department"}); "Conjunction" = "And"}

The correct PowerShell is
@{"Conditions" = @(@{"Conditions" = @(@{"Value" = "US"; "Operator" = "Equals"; "Name" = "CountryOrRegion"}, @{"Value" = "Canada"; "Operator" = "Equals"; "Name" = "CountryOrRegion"}); "Conjunction" = "Or"}, @{"Value" = "Finance"; "Operator" = "Equals"; "Name" = "Department"}); "Conjunction" = "And"}

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

ID: f296664a-de4a-4045-17a0-9a7b50b7980d
Version Independent ID: 9d9b1cdf-ae45-0565-30b2-13266c29f6b7
Content: Set-AdaptiveScope (ExchangePowerShell)
Content Source: exchange/exchange-ps/exchange/Set-AdaptiveScope.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@nikki-c, fixed in both New-AdaptiveScope and Set-AdaptiveScope.
Thanks for the feedback.
Closing.


PP-4463 Server-side responsible person date of birth validation

Add server-side validation for the date of the birth on the Stripe responsible person page. Requires a date of birth in past and uses the error messages described in the GOV.UK Design System at https://design-system.service.gov.uk/components/date-input/.

Thanks, will implement your changes in the next PR.


Add phase banner to the app

We want to add a phase banner that will indicate to our users that this app is in Beta. The banner title is dynamic based on the environment we are in and both claims and placements can control the content of it.
Context

Changes proposed in this pull request

Guidance to review

Link to Trello card

Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated or added to the Azure KeyVault

Screenshots

@CatalinVoineag Could you add a screenshot please. Looks good other than that! 🥳 (edit: PR is in draft when I commented so it may not actually be ready yet)

Yeah, it's still in draft. I'll add everything in a sec


Disable devcryptoeng on newer OpenBSD versions

It's reported that /dev/crypto support has been dropped in OpenBSD 5.7.
Fixes #10552

This is a port of #10565 to master

Here's the history of the removal of /dev/crypto in OpenBSD:
Here's the CVS log of the actual driver, cryptodev.c, so if I'm reading the code right, it was disabled by default in 4.9.
The header definitions, in cryptodev.h survived until 6.1.
In conclusion, the engine may compile (haven't tested it) until 6.1, but it couldn't be used since 4.9 without intervention, and in any case since 5.7.

Ok.  I hope this change strikes a good enough compromise, then

So, you're saying this change is good enough?

Ping @openssl/committers

(damnit, I completely forgot to leave a grace period...)
Merged.
76d0a74b8ef2902f7a534a12a043346a3d593886 Disable devcryptoeng on newer OpenBSD versions
8c06d7199e3885d24e39439f54b2ed2e5b40fbea Configuration: compute openssl_other_defines and related info later


Use sphinx scylladb theme

This is a draft PR for using the new Scylla Sphinx Theme. Feedback is welcome.
Before

After

@tzach still want this merged ?

No. We have more experience with the theme, so a new PR will be easier.


[FEATURE] Add docs for deploy react native fork to npm

Enable this will let community to make patch or share feature easily.
Related issue:
https://github.com/facebook/react-native/issues/21776
https://github.com/facebook/react-native/issues/21967
cc @kelset

As far as I know npm can also install directly from github url, we might just need section in README or docs website that explains how to correctly build forked files.
@hramos posted these https://github.com/facebook/react-native/issues/21967#issuecomment-434113687 in one of the issues you mentioned, so thats renderer bit I guess.

Github dependency in package.json works fine if you commit the Android binary from installArchives. The build output is in the .gitignore, but if you remove that line you can commit the build on your branch, which then works as a Github dependency. NPM or Maven dependencies for forks require much more effort (imho), which is not worth it considering the fork should be short lived.

This to me seems more like an issue for the https://github.com/facebook/react-native-website repo.


refactor: make return_url field as text

Type of Change

[x] Refactoring

Description

Change the return_url type in payment_intent in data models.
Additional Changes

[x] This PR modifies the database schema

ALTER TABLE payment_intent
ALTER COLUMN return_url TYPE TEXT;

Motivation and Context

In order to accomodate return urls of length 255 and more.
How did you test it?

Create a payment with return url of more than 255 characters.

Checklist

[x] I formatted the code cargo +nightly fmt --all
[x] I addressed lints thrown by cargo clippy
[x] I reviewed the submitted code

@jarnura @SanchithHegde should we make this field as text or increase the limit to 512 characters? I would suggest increasing the limit to 512/1024 instead of making this a text field as we need not support arbitrary number of query params in the return_url. what are your opinions?

Altering the type directly will cause cache_plan error on diesel. Do we store this in a new field?

Because of security reasons, we will not be making this change. If there is a specific requirement for return_url to be more than 255, we can solutionize this separately. Will be closing this issue for now


[Feature]: Performance measure API

🚀 Feature Proposal
My proposal is to add a feature in Jest for measuring performance across its different components, outputting the results in JSON. This functionality would be particularly useful for identifying and analyzing performance issues in tests, especially in large projects with complex dependency graphs.
Motivation
I'm working with several large-scale projects and using Jest for testing. However, a significant challenge is the extensive dependency graph in these projects. Importing one module often means bringing in a large number of related modules, which can be time-consuming for module path resolution, transformation, and execution. Not all of these imported modules are necessary for each test. Jest's test isolation, while beneficial, can also slow down test performance in large projects with deep dependency trees. Slow file transformations can exacerbate this issue, potentially due to slow transformers or incorrect configuration settings.
Possible measurements include:

Module path resolution time
Module transformation time
Module execution time
Runtime initialization time
etc

These metrics could help identify performance bottlenecks, such as "slow" modules or time-consuming dependency graphs. Developers could use this information to optimize tests, potentially by mocking parts of the dependency graph that are not essential for certain tests.
Example
Here's a TypeScript API proposal for Jest:
type Mark = {
  name: string;
  start: number;
  detail: Record<string, unknown>;
};

class Measure {
  protected marks: Array<Mark>;

  mark(name: string, detail?: Record<string, unknown>): void;
  getMark(name: string): Mark | null;
  *getMarks(): IterableIterator<Mark>;
}

Usage example (pseudo-code):
const moduleMeasure = new Measure();
// ...
moduleMeasure.mark('resolve-start');
const resolvedPath = resolveModulePath(moduleName);
moduleMeasure.mark('resolve-end');
// ...

Custom types for various measurements:
class ResourceMeasure extends Measure {
  constructor(url: string);
  resolveStart(): void;
  resolveEnd(detail?: {fromCache: boolean}): void
}

class ModuleMeasure extends ResourceMeasure {
  constructor(id: string);
  transformStart(detail?: {transformer: string}): void;
  transformEnd(detail?: {fromCache: boolean}): void;
  evaluateStart(): void;
  evaluateEnd(): void;
}

Further usage example (pseudo-code):
const moduleMeasure = new ModuleMeasure();
// ...
moduleMeasure.resolveStart();
const resolvedPath = resolveModulePath(moduleName);
moduleMeasure.resolveEnd({fromCache});

// ...

moduleMeasure.transformStart({transformer});
const transformed = transformer.transform(code);
moduleMeasure.transformEnd({fromCache: transformed.isCached});

// ...

moduleMeasure.evaluateStart();
const result = vm.evaluate(compiledFunction);
moduleMeasure.evaluateEnd();

// ...

For iterating through performance marks:
type TraverserEntry<T> = {
  name: string;
  start: number;
  end: number;
  duration: number;
  details: Record<string, T>;
};

class Traverser<T extends Measure> {
  constructor(public readonly measure: T);
  next(): Mark<unknown> | null;
  nextTill(name: string): Mark<unknown>[];
}

Specific traversers for measurement types:
type ResolveEntry = TraverserEntry<{fromCache: boolean}>
type TransformEntry = TraverserEntry<{transformer: string, fromCache: boolean}>

class ModuleTraverser extends Traverser<T extends ModuleMeasure> {
  resolve(): ResolveEntry[];
  transform(): TransformEntry[];
}

Using ModuleTraverser (pseudo-code):
const moduleMeasure = new ModuleMeasure();
// ...
const moduleTraverser = new ModuleTraverser(moduleMeasure);
const modulePerfData = {
  resolve: moduleTraverser.resolve(),
  transform: moduleTraverser.transform(),
};
// ...

The data can be exported to JSON for analysis and visualization, for instance, using DiscoveryJS. Jest can be configured to collect this data using the --perf-measure flag:
jest --perf-measure perf-stats.json

Or by setting it in the Jest config:
module.exports = {
  perfMeasure: '<rootDir>/perf-stats.json'
}

In the future, it would be useful to customize the detail level of these reports.
One might wonder why not use Node.js's perf_hooks. However, I find perf_hooks to be overly complicated and less intuitive. Additionally, it lacks an API for analyzing performance marks, necessitating the creation of custom traversers.
Pitch
In this text I didn't cover all possible measurements but focuses on those that can significantly aid both Jest users and its developers. By analyzing the performance of Jest's core, it could be possible to focus on optimizing the slower parts of the framework.
I'm keen to develop this feature and contribute it as a pull request, but first, I would like to discuss it with the community to see if similar efforts are underway.

We've added some performance.mark stuff, e.g. in #13859.
Can that be used rather than adding a separate API into Jest? Happy to add more if that helps.


Schoology API Sandbox setup

Jira Description
Story
As a Fizz developer, I want to be able to access a sandbox of Schoology to get access to key data points.
Acceptance Criteria

API responding and sending data
Export function working - [https://support.schoology.com/hc/en-us/articles/201000973-Export-Enterprise-]

Jira Metadata
Key: LMS-6
Epic: n/a
Created: 2020-08-13T11:08:50.000-0500
Reporter: Eric Jansson

Jira Comment
The Schoology instance I am able to access is located at [https://app.schoology.com/login]. I went through submitting a request via [https://app.schoology.com/apps/developer/request]. It took nearly a week to get a response and get approval. I did create an api consumer key and an api consumer secret. It seems that there is only the ability to have one in this environment. Ping Eric for the environment credentials and api key information
Jira Metadata
Created: 2020-08-24T16:13:10.723-0500
Commenter: Cy Jones

Jira Comment
Also, note that for Schoology we should look at the "Exports" option before deciding to go with API access.  Exports may give us what we want.
Jira Metadata
Created: 2020-08-25T09:26:15.753-0500
Commenter: Eric Jansson

Jira Comment
I'm in! Thank you.
Jira Metadata
Created: 2020-08-25T09:32:12.043-0500
Commenter: Stephen Fuqua

Jira Comment
I have successfully established an exploratory API integration, querying for all courses and all users. Code is in the repository under {{examples/schoology/explore.ipynb}}.
The export functionality does work. It takes several clicks to get a file. If you customize the included columns or provide any filters, then you need to re-apply those every time you do a manual export. There is an automated export facility that requires an SFTP server. As I do not have an SFTP server available, I did not test out this functionality.
Jira Metadata
Created: 2020-08-28T10:45:03.083-0500
Commenter: Stephen Fuqua

Jira Comment
Thanks [~Stephen.Fuqua] I'd suggest we just pursue API-based extraction for now, given possible complexities of SFTP setup and the config options you mention.
Jira Metadata
Created: 2020-08-28T11:58:12.293-0500
Commenter: Eric Jansson


missing data in target of section?

mal3 has
ATPase activator activity has_direct_input tea2
this doesn't show in the target of section for tea2

come to think of it the relationship must be odd in some way because we usually convert has_direct_input to has_substrate (note to self this one could be "directly positively regulates)
so first question  find out what is wrong, and how it slips through

This needs a configuration entry, analogous to the one for GO:0005085 in pombe-embl/website/pombase_v2_config.json .

done


Could not find documentation for userIdentity, userIdentityCollection  datatypes  claimsTransformations.

For identity linking scenario, the sample policy has some claimsTransformations specific to userIdentityCollection and userIdentity which is missing in this documentation.

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

ID: f167f4c9-f5ea-edde-579b-f2c7980349ea
Version Independent ID: 688c71d2-421a-41de-4b74-cb1ca498a33b
Content: StringCollection claims transformation examples for custom policies - Azure AD B2C
Content Source: articles/active-directory-b2c/stringcollection-transformations.md
Service: active-directory
Sub-service: b2c
GitHub Login: @msmimart
Microsoft Alias: mimart

@jeeszacharia Thanks for your feedback! We will investigate and update as appropriate.

@jeeszacharia Could you please share the specific section/sections from the policy files that you are referencing to?

GetIssuersFromUserIdentityCollectionTransformation
Extracts the list of social identity providers associated with the user

Item
TransformationClaimType
Data Type
Notes

inputClaim
userIdentityCollection
userIdentityCollection
The ClaimType to be used to get the list of identity providers (issuer).

OutputClaim
issuersCollection
stringCollection
The ClaimTypes that are produced after this ClaimsTransformation has been invoked. List of identity providers associate with the user.

The following claims transformation reads the user userIdentityCollection claim and extracts the list of identity provider names associated with that account. Use output issuersCollection to show the user the list of identity providers associated with the account. Or, on the identity provider selection page, filter the list of identity providers based on output issuersCollection claim. So, user can select to link new social identity that is not already associated with the account.
<ClaimsTransformation Id="ExtractIssuers" TransformationMethod="GetIssuersFromUserIdentityCollectionTransformation">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="userIdentityCollection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="issuers" TransformationClaimType="issuersCollection" />
  </OutputClaims>
</ClaimsTransformation>

Example

Input claims:

userIdentityCollection: [ { "issuer": "google.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]

Output claims:

issuersCollection: [ "facebook.com", "google.com" ]

AddItemToUserIdentityCollection
Adds a userIdentity to a userIdentityCollection claim.

Item
TransformationClaimType
Data Type
Notes

inputClaim
item
userIdentity
The ClaimType to be added to the output claim.

inputClaim
collection
userIdentityCollection
The ClaimTypes that are used by the claims transformation if available in the policy. If provided, the claims transformation adds the item at the end of the collection.

OutputClaim
collection
userIdentityCollection
The ClaimTypes that are produced after this ClaimsTransformation has been invoked. The new collection that contains both the items from input collection and item

The following example links a new social identity with an existing account.
<ClaimsTransformation Id="AppendUserIdentity" TransformationMethod="AddItemToUserIdentityCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userIdentity" TransformationClaimType="item" />
    <InputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>

Example

Input claims:

item: { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" }
collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]

Output claims:

collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]

RemoveUserIdentityFromCollectionByIssuer
Removes an issuer from the claim from the userIdentities collection

Item
TransformationClaimType
Data Type
Notes

inputClaim
issuer
string
The ClaimType that contains the identity provider name (issuer) to be removed from the collection.

inputClaim
collection
userIdentityCollection
The ClaimTypes that are used by the claims transformation. The claims transformation removes the issuer from the collection.

OutputClaim
collection
userIdentityCollection
The ClaimTypes that are produced after this ClaimsTransformation has been invoked. List of identity providers associate with the user after the issuer has been removed.

The following example unlinks one of the social identity with an existing account. To unlink a social identity:
<ClaimsTransformation Id="RemoveUserIdentityFromCollectionByIssuer" TransformationMethod="RemoveUserIdentityFromCollectionByIssuer">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="issuerToUnlink" TransformationClaimType="issuer" />
    <InputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="collection" />
   </InputClaims>
   <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>

Example

Input claims:

issuer: facebook.com
collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]

Output claims:

collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]

<ClaimsTransformation Id="AppendUserIdentity" TransformationMethod="AddItemToUserIdentityCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userIdentity" TransformationClaimType="item" />
    <InputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userIdentities" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>

CreateUserIdentity
Creates a JSON representation of the user’s userIdentity property that can be used in the calls to Azure Active Directory. For more information, see userIdentity's schema.

Item
TransformationClaimType
Data Type
Notes

inputClaim
issuerUserId
string
The ClaimType that specifies the social account identity provider name, such as facebook.com.

inputClaim
issuer
string
The ClaimType that specifies the unique user identifier used by the social identity provider.

OutputClaim
collection
userIdentityCollection
The ClaimType that is produced after the ClaimsTransformation has been invoked. Contains information about the identity of a social account user. The issuer is the value of the identityProvider claim. The issuerUserId is the value of the key claim in base64 format.

Use this claims transformation to generate a userIdentity ClaimType. It's used by all social identity provider technical profiles, such as Facebook-OAUTH. The following claims transformation receives the user social account ID and the identity provider name. The output of this technical profile is a JSON string format that can be used in Azure AD directory services.
<ClaimsTransformation Id="CreateUserIdentity" TransformationMethod="CreateUserIdentity">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="issuerUserId" />
    <InputClaim ClaimTypeReferenceId="issuer" TransformationClaimType="issuer" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userIdentity" TransformationClaimType="userIdentity" />
  </OutputClaims>
</ClaimsTransformation>

Thanks, can you please include this in the documentation, it will be helpful for others.

We'll update the doc in the next month
#please-close

I just would like to remind that docs still aren't updated.
Also it would be nice to have an article describing difference between alternativeSecurityIds and userIdentites as now I'm kinda lost and I don't know when should I use alternativeSecurityIds vs userIdentities.
All starter packs still use alternativeSecurityIds while account linking samples use userIdentities.
Why is that? What's the difference? All claims transformations described here by @yoelhor are also available for alternativeSecurityIds (https://docs.microsoft.com/en-us/azure/active-directory-b2c/social-transformations) and it looks like they are exactly the same just with the different names.

Why would this issue be closed before the docs were updated and not when they were updated?
Can we please have some answers to @kamilzzz questions above? At present there are way too many ambiguities surrounding identities to comfortably implement anything remotely complicated without blindly copying examples (that use non-documented features might I add).
Should we be using the methods above? Are there plans to deprecate alternativeSecurityIdCollection in favour of userIdentitiesCollection in the future?

Concerns still valid and docs still not updated btw :)

+1
The docs are still not updated. The issue should be reopened.


Disable paredit, so can use parinfer

Thx for the amazing package.
How is the best way to accomplish? Paredit seems scattered around, could not find a good way...

You'll have to edit the code a little. To keep the changes minimal, probably you can comment out (require 'init-paredit) in init.el, and add (remove-hook 'sanityinc/lispy-modes-hook) to init-local.el.


Displays jumps when collapsing content..

Can't seem to find this previously reported anywhere. But the display jumps when collapsing the content. It's bringing you to the top of the div container. I noticed this is also happening in the demo on the Readmore site too.. http://jedfoster.com/Readmore.js/
Is there a way to make the display just gracefully collapse without jumping.
http://tlwtestsite(dot)tablelegworld(dot)com/Table-Height-Table-Legs

The page "jumps" because you are animating a page scroll in your afterToggle callback:
    $('#category-collapse').readmore({
      //moreLink: '

[...]

Read more...
',
      moreLink: '
[...]

Read more...
',
      lessLink: 'Less...',
      speed: 500,
      collapsedHeight: 75,
      heightMargin: 16,
      afterToggle: function(trigger, element, expanded) {
        if(! expanded) { // The "Less" link was clicked
          $('html, body').animate({scrollTop: $(element).offset().top}, {duration: 100});
        }
      }
    });


[RC 6]When extending a class into a node's script, and changing the superclass' @export variables, the inspector doesn't update

Godot version
RC 6
System information
Windows 10
Issue description
If you have a node extend a class containing variables with @export annotations, the inspector doesn't update the node until modifying the main node script, or restarting Godot.
Steps to reproduce
Create a superclass and then make a new scene with a node, extend the superclass in the node's script
Example using Node2D as my scene node
Superclass script:
extends Node2D
class_name Superclass

Node in the scene script:
extends TestSuperclass
Then, just add a variable to the superclass with the @export annotation, like this:
extends Node2D
class_name Superclass

@export var test = "test"

You'll notice the inspector won't update to include the new variable.
Modify the Node2D script and add a variable with an @export  annotation.
Ex:
extends TestSuperclass

@export var testing = "This one is visible in the inspector"

And now both variables are visible in the inspector.
Minimal reproduction project
N/A
Re-opening the project causes to inspector to update and show everything correctly.

I'm having a problem exporting aswell using C#, but restarting or editing main node script doesn't solve it.

C# exports do not show up in the inspector until after building the project.  Add your exports, press the build button, and then they will be available in the inspector.

Reproduced in Godot 4.0.stable.
The issue has a 100% repro rate on my side. I'm happy to produce an MPV project if that helps somebody look into this.

I'm also having experiencing this issue.
v4.0.stable.official [92bee43ad]

@SirLich please do create an MRP for the bug if you are able too, Thank you.

Seems fixed in 4.2.
If you are still experiencing this bug in 4.2 (beta6 or newer), please comment with a minimal project.