Project structure

From https://anchorecommunity.slack.com/archives/C0190NF9TSM/p1597250962029500
I'm going through and adding documentation to syft now throughout the project structure... that combined with zach’s question yesterday regarding the location of main.go is making me consider a slightly different project layout.
Today we have:
.
├── cmd           <--- all "syft" bin functionality
│   ├── cmd.go
│   ├── root.go
│   └── ...
├── syft          <--- the top "lib" package github.com/anchore/syft/syft
│   ├── cataloger
│   ├── distro
│   ├── event
│   ├── ...
│   └── lib.go    <--- our lib helper utilties
└── main.go       <--- the entrypoint, main package, and root package

I think it could be more advantageous to pivot to this instead:
 .
├── cmd
│   ├── syft      <--- all "syft" bin functionality, main package #1
│   │   ├── cmd.go
│   │   ├── root.go
│   │   ├── main.go  <--- the entrypoint
│   │   └── ...
├── pkg
│   ├── cataloger
│   ├── distro
│   ├── event
│   └── ...
└── lib.go       <--- our lib helper utilities and root package

Advantages are:

More closely follows what the community expects (purely convention, but not 100% uniformly adopted by the community) https://github.com/golang-standards/project-layout
Allows for multiple binaries. This is not "needed", but would be very awkward to add later... so why corner ourselves now?
The github.com/anchore/syft documentation on pkgs.go.dev would reflect the library functionality first and the binary as a nested package.
Gets rid of the "stutter" in the import path (e.g. import github.com/anchore/syft/syft/... )

Disadvantages:

go run main.go  -> go run cmd/syft/main.go  is somewhat annoying and relatively not as easy to discover
We would have github.com/anchore/syft/pkg/pkg  for the existing pkg  package today, which looks pretty odd. (so while we're taking away several stuttering paths, we're adding one).

Something worth noting, since the lib helpers are in the root of the repo and there are no structs or functions defined in pkg (the new one) then the usage would still be the same (e.g. syft.Catalog(...)).
LOE should be pretty low given IDE refactoring tools (on the order of minutes).

(replayed from Slack)
My initial reaction is that this proposal is interesting, but not worth the change at this point in time.
I think the cost of changes like this for developers on the project is high. I see the logic behind the new design, but there's logic behind the current design, too. I don't see either of these logics being stronger than the other. Secondarily, I don't see this new layout as "what the community expects", at least not without some significant caveats.


Add continuous query example

Added the continuous query example.

verify

Test FAILed.

verify

Test FAILed.

verify

verify

verify

Test PASSed.


Rails 5 compatibility

This is more a request for comments and a general discussion than an actual pull-request.
This is the patch that I'm using for Rails 5 compatability, but there might be better ways. So let's explore.
Rails 5 has changed method signature for ActionDispatch::FileHandler to take a hash of headers and not a single string.
module ActionDispatch
  class FileHandler
    def initialize(root, index: 'index', headers: {})
      # ...
    end
end

Hi! First of all, thanks for your PR.
I think that what's missing is to add a Rails version check here, and either provide the second parameter as string (for Rails::VERSION::MAJOR < 5) or as {headers: ...} for >= 5.

Added a Rails' major version check, and reimplemented backwards compatability.

Thanks!


[SPARK-15333] [DOCS] Reorganize building-spark.md; rationalize vs wiki

What changes were proposed in this pull request?
See JIRA for the motivation. The changes are almost entirely movement of text and edits to sections. Minor changes to text include:

Copying in / merging text from the "Useful Developer Tools" wiki, in areas of

Docker
R
Running one test

standardizing on ./build/mvn not mvn, and likewise for ./build/sbt
correcting some typos
standardizing code block formatting

No text has been removed from this doc; text has been imported from the https://cwiki.apache.org/confluence/display/SPARK/Useful+Developer+Tools wiki
How was this patch tested?
Jekyll doc build and inspection of resulting HTML in browser.

Test build #58616 has started for PR 13124 at commit ec59065.

Test build #58616 has finished for PR 13124 at commit ec59065.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/58616/
Test PASSed.

merged to master/2.0


nodePackages.pnpm: 7.29.1 -> 8.1.1

Description of changes
This PR bumps the pnpm package from version 7.29.1 to 8.1.1. Despite this being a "major" semantic version change, users are only required to update their pnpm lockfile(s).
Support for "Node.js 14" did end with this release, but there are other ways to use node 14.x.x versions without using bundled "Node.js 14" with pnpm (which, you probably wouldn't be using anyway if you are using nix and pnpm).

https://github.com/pnpm/pnpm/releases/tag/v8.1.1
https://github.com/pnpm/pnpm/releases/tag/v8.1.0
https://github.com/pnpm/pnpm/releases/tag/v8.0.1
Resolves #224011
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Other Notes
Ran the following with success on macOS version 13.0 (22A380):
nix run nixpkgs#nixpkgs-review pr 224851

Tagging @tjni... hello! Since it appears that you upgrade this package this most, I thought that I'd ping you on this PR. This is my first nixpkgs PR, so (only if you have the time and desire) please let me know if there's anything I should do/change, especially since this is a major semantic version change.

That could be great! This is my first nixpkgs PR, so I'm willing learn, but want to give a heads up if I were to refactor this to do that.
Alternatively, that could be a great idea for a PR after this one too.

@ofborg build nodePackages.pnpm

Thanks for the pnpm upgrade, I was looking for this.
Feel free to ping me if you have related PRs.


delete references to mpt proofs

Coverage remained the same at 91.076% when pulling 22083e601039a7aa04076a0afca8ed78f7ade0d9 on boguslavsky:mpt-proof-examples into cfbb4ddd8bf47a0e27ef7b54c1aee6f308a309e4 on exonum:master.

Coverage remained the same at 91.076% when pulling 22083e601039a7aa04076a0afca8ed78f7ade0d9 on boguslavsky:mpt-proof-examples into cfbb4ddd8bf47a0e27ef7b54c1aee6f308a309e4 on exonum:master.


StatusTorrent 'blockchain' rate always says 0

Raspiblitz StatusTorrent 'blockchain' rate does not seem to work, was always 0 for me, even though days later blockchain download was complete.

I am now also seeding that torrent again - did you had any luck? Also if torrent is not working, cancel it with X and and try another option: https://github.com/rootzoll/raspiblitz#getting-the-blockchain

Please close this.


Fix: ensure archive files do not carry object files from prior builds

Summary
This is the corresponding change to the one on main NuttX repo (see https://github.com/apache/incubator-nuttx/pull/1765).
In this case this involves splitting the build of libapps.a into: a) building
all applications (which is safely parallelizable), b) adding each
application's object files to the archive in turns (serial by nature).
This removes the need for the flock used to protect the parallel build.
NOTE: this will not pass CI since it depends on the other PR
Impact
Build
Testing
Builds correctly

LGTM, @Ouss4 please merge it if you are fine too.

Sorry, just remeber that we can remove .built and .lock from .gitignore? @v01d

Sorry, just remeber that we can remove .built and .lock from .gitignore? @v01d

Done

LGTM, @Ouss4 please merge it if you are fine too.

@xiaoxiang781216 did you had the chance to take a look at https://github.com/apache/incubator-nuttx/pull/1765?  If all is good I'd like that we merge that one first and restart the checks here.
I just want to make sure we won't have any leftovers.  Some configs are tricky.


Package Adapter as ROS2 Package

We found this useful for us, but did it in a way that the script could still be run and used as it previously has been. No functionality was lost, just gave it another way to run. We updated the README for instructions on how to use it.
Also removed config.json since it has been called out in the .gitignore for several commits, but never removed.
Feel free to offer any feedback on this change!

Looks good! I will make a couple small revisions and we can merge it.
I see the config.json was ignored, but I liked including it in an empty state to show new users the basic structure. So I plan on re-adding it and removing it from the .gitignore.

I think that's a perfectly reasonable. Thank you!


[Snyk] Upgrade graphql-tag from 2.10.3 to 2.12.0

Snyk has created this PR to upgrade graphql-tag from 2.10.3 to 2.12.0.
As this is a private repository, Snyk-bot does not have access. Therefore, this PR has been created automatically, but appears to have been created by a real user.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 3 versions ahead of your current version.
The recommended version was released 21 days ago, on 2021-01-29.

Release notes

Package name: graphql-tag

2.12.0 - 2021-01-29Bump npm version to 2.12.0.

2.11.0 - 2020-07-28
package.json sideEffects changes to clearly identify that graphql-tag doesn't have side effects.
@ hwillson in #313

2.10.4 - 2020-07-09

2.10.3 - 2020-02-05v2.10.3

Further adjustments to the TS index.d.ts declaration file.
@ Guillaumez in #289

    from graphql-tag GitHub release notes

Commit messages

Package name: graphql-tag

a9f689a Bump npm version to 2.12.0.
1809a56 Set up dependabot to keep dependencies up-to-date.
a9e1cc9 Merge pull request #325 from PowerKiKi/master
bfe5a61 Mention PR #325 in CHANGELOG.md.
1dc4a23 Avoid using direct eval in tests.
159979b Convert repo to TypeScript.
9558fe3 Implement ES6 export file
e06bd06 Remove no-longer-used .travis.yml configuration file.
aa9c5c9 Set up GitHub Actions.
292bb8f Rename graphql-js to graphql (#318)
fbbb02e Merge pull request #313 from apollographql/side-effects
0d0b220 Clearly identify that `graphql-tag` doesn't have side effects
3bd664b Bump js-yaml from 3.10.0 to 3.13.1 (#287)
61cd678 Add a package-lock.json file.
c2f8189 Bump lodash from 4.17.4 to 4.17.19 (#310)
a73bc25 Version bump, changelog update, prep for publish
7b66f05 fix(deps): update to graphql@15 (#299)
9b719a7 Cleaning up the README a bit (#246)

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This looks to be failing the build check.


fix: Fixed small issue with cost-insights README diff code block

Signed-off-by: Marley Powell<EMAIL_ADDRESS>
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Thanks! :tada:


To Running peer-calls demo in live server

Demo run successfully but it display message like this in browser
Cannot GET /

Hi there, sorry for replying this late to your issue. There have been many updates in Peer Calls since August. If you're still experiencing the issue, please reopen and let me know if it happens on peercalls.com.


Omit the Alembic Migration Files From Analysis

Description
This PR excludes the alembic files from LGTM and codecov analysis as they are automatically generated.
Status

[ ] Ready to go

Codecov Report

Merging #6 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #6   +/-   ##
=======================================
  Coverage   53.00%   53.00%
=======================================
  Files          98       98
  Lines        3713     3713
=======================================
  Hits         1968     1968
  Misses       1745     1745

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8e2c740...ea509b0. Read the comment docs.


feat: tls for rpc-srv

To test:

generate the key files by running ./scripts/gen-certs.sh
Run server : just run rpc-proxy --rpc-server-cert scripts/client.crt --rpc-server-key scripts/client.key --cloud-api-addr https://qa.glaredb.com --cloud-auth-code test
just run local -c glaredb://test:adhish@org.<IP_ADDRESS>:6444/abc --domain glaredb.com --ca-cert-path scripts/server.crt

the cert names in the testing are weird because I didn't wanted to break pgsrv tests

@tychoish some additional context here: https://github.com/GlareDB/cloud/issues/2164

I'm just a guy reading through things, and I definitely lack all context, so take all of these comments with a very large grain of salt.

the cert names in the testing are weird because I didn't wanted to break pgsrv tests

do they need to be the same certificate?
speaking of tests? 😂

we can have separate cert generators for them for the actual tests, these commands are to test that tis is working fine locally

we can have separate cert generators for them for the actual tests, these commands are to test that tis is working fine locally

This makes sense, I was more saying that we should have some kind of CI-able test of this rather than relying on local/manual testing. (sorry for the shorthand)
I realize that this is (mostly) for ourselves, and likely to get used mostly in scripts and config files, [which is why i think I tend toward the longer flag names are a bit better, though I don't think its particularly material], but for service-type things, config files seem a bit easier to manage anyway, (I also feel like its easier to add a new flag than it is to remove an old one, so I'd tend to avoid aliases but...

@greyscaled @tychoish
Added a config file path that defaults to "/etc/glaredb.conf" which is supposed to be TOML file.
Also added a param to disable tls on the server side. If this looks good, I will do the same for client.
[rpc_tls]
server_cert_path = '/Users/adhish/GlareDB/glaredb/server.pem'
server_key_path = '/Users/adhish/GlareDB/glaredb/server.key'


Update config after setting datadirs so that it persists when populating nodes

Hello,
I noticed that when I create a cluster like so:
ccm create test --datadirs=3
After I populate the cluster with nodes, the nodes still come up with only 1 data directory (data0). Digging into it it looks like cluster.conf only has datadirs: 1, and that seems to be because when we first create the cluster after we set the number of datadirs we do not update cluster.conf. (See cluster_cmds.py:ClusterCreateCmd.run).
I believe this fixes it, feel free to let me know if there is any feedback.
Thanks!

Hm - the failed build on travis-ci doesn't look like a by-product of the PR, anyone able to elaborate/point me in the right direction?

Ahh, I broke the travis build on Friday, its not your fault.
+1

Thank you very much!


json-schema yak shaving for schematics

Proper description for each commits.

There isn't much of a description for the overall changes behind this large PR, but Hans mentioned some of it here.
Some key details from that:

It will resolve using the following list:

is it a node package relative to process.cwd()?
is it a node package relative to the tool (CLI in your case)?
is it a node package installed globally?

You might notice there is two missing fallbacks that's missing; is it a package relative to your schematics and is it a package relative to your project? That's coming, it's just a bit more complicated to implement. In any case, you could install your schematic globally and that will work fine.

I'm glad to hear that this is coming. I guess that it makes sense to handle the global case first since that is needed for creating a new application.
I'm working with an enterprise client atm and we need a solution for installing our schematics into the given project along with the @angular-cli under devDepenedencies. Currently we install them in an npm package like node_modules/my-schematics/ in our project and would like to be able to then generate our custom components/services.
I was wondering if it was safe for me to work with schematics on the 1.4.3 CLI builds (where I started), but with critical pieces like this still coming in, it looks like I should move all of our efforts over to 1.5.0-beta?

@Splaktar There isn't much of a description for the PR as it is really just a list of commits. Each commit is self explanatory (and since we use the git history as documentation, the PR description is basically relevant only for review context).

I was wondering if it was safe for me to work with schematics on the 1.4.3 CLI builds (where I started), but with critical pieces like this still coming in, it looks like I should move all of our efforts over to 1.5.0-beta?

If I were you I would not rely on CLI itself for Schematics development. We're coming up with a tutorial, but you should try to use @angular-devkit/schematics directly (there is a command line tool for schematics that will include more debug information). In the general case there is no differences between running schematics and ng generate (differences are handling of the angular-cli config which we are in the process of rewriting, so there'll be even less differences in the future).


Error on creating new project - Background Application (IoT)

[Window Title]
devenv.exe
[Main Instruction]
An unexpected error occurred
[Content]
Please press Ctrl+C to copy the contents of this dialog and report this error to our issue tracker.
[^] Hide details  [Închidere]
[Expanded Information]
Build: 15.8.18241.1

System.InvalidOperationException: Failed to initialize analyzer
   at Microsoft.PythonTools.Intellisense.VsProjectAnalyzer.<InitializeAsync>d__42.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PythonTools.Intellisense.VsProjectAnalyzer.<CreateForProjectAsync>d__34.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PythonTools.Project.PythonProjectNode.<CreateAnalyzerAsync>d__134.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.PythonTools.Project.PythonProjectNode.<ReanalyzeProjectHelper>d__147.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PythonTools.Project.PythonProjectNode.<ReanalyzeProject>d__146.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PythonTools.Infrastructure.VSTaskExtensions.<HandleAllExceptions>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

Thanks! Duplicate of https://github.com/Microsoft/PTVS/issues/4708


Adoption problem

After successful installation, HomeAssistant suggests adoption, which succeeds. However, when I try to make changes to the Glow configuration file afterwards, the update fails and ends up in an error message "Home assistant glow ERROR Connecting to 192.168.xxx.xxx:3232 [Errno 111] Connection refused". I wondered about this for some time until I realized that the YAML file referred to a GitHub URL "klaasnicolaas.home-assistant-glow: github://klaasnicolaas/home-assistant-glow/home-assistant-glow/esp32.yaml@main", even though I am using an ESP8266 board. By fixing the URL to point to the correct yaml file "klaasnicolaas.home-assistant-glow: github://klaasnicolaas/home-assistant-glow/home-assistant-glow/esp32.yaml@main", the updates started to work.

I see indeed that I forgot to change the package_import_url 😅


[bug]: Node stuck during synchronization when using --neutrino.connect=faucet.lightning.community

Background
While setting up an lnd node on testnet, following the example in Docker Instructions, the node gets stuck during synchronization when using --neutrino.connect=faucet.lightning.community. The node operates normally without this parameter.
The output of lncli --network=testnet neutrino status shows:
{
    "active": true,
    "synced": false,
    "block_height": 0,
    "block_hash": "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943",
    "peers": []
}

Attempts to manually add peers with lncli neutrino addpeer fail:
[ERR] RPCS: [/neutrinorpc.NeutrinoKit/AddPeer]: could not found peer: [peer-ip]:[peer-port]

Environment
lnd version: v0.18.2-beta
Docker on Apple Silicon
Testnet with Neutrino backend
docker-compose.yaml:
version: '3'

services:
    lnd:
      image: lightninglabs/lnd:v0.18.2-beta
      container_name: lnd-testnet
      volumes:
        - ./data:/root/.lnd
      command: >
        --bitcoin.active
        --bitcoin.testnet
        --bitcoin.node=neutrino
        --neutrino.connect=faucet.lightning.community
        --feeurl https://pastacity.nl/VjtaVK73NZwGBAisrA3iFg
        --debuglevel=debug

Steps to reproduce
Start the lnd service and monitor the logs.
Check status with lncli --network=testnet neutrino status.
Attempt to add any available peer using lncli neutrino addpeer.
Try to connect with faucet.lightning.community using the port number from the lnd log via telnet:
telnet faucet.lightning.community 18333
Trying <IP_ADDRESS>...
telnet: connect to address <IP_ADDRESS>: Connection refused
telnet: Unable to connect to remote host

lnd.log
lnd-after-unlock.log
Expected behaviour
The node should operate normally with the parameters mentioned in the documentation.
Actual behaviour
The node fails to connect to faucet.lightning.community and gets stuck in the synchronization state and manual another peers addition fails with "could not found peer."

We'll look into it.
In the meantime, can you try some other nodes?
[neutrino]
# Testnet addpeers
neutrino.addpeer=btcd-testnet.lightning.computer
neutrino.addpeer=lnd.bitrefill.com:18333
neutrino.addpeer=faucet.lightning.community

From: https://github.com/alexbosworth/run-lnd?tab=readme-ov-file#install-lnd

The node faucet.lightning.community was restarted and should work again.


[Bug]: locked in FLAT worldtype generation

/mv version -p output
https://paste.gg/edb119025e374aee99fbae7161cbaac1
Server logs
https://paste.gg/p/anonymous/9b25ffe134254adda3c2496b66ffd962
Server Version
This server is running Paper version git-Paper-366 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 8d7d927)
You are running the latest version
Previous version: git-Paper-323 (MC: 1.19.3)

Bug Description
since a while, I fail to get a world with a NORMAL generation, because all my worlds - old or new-created - generating with the FLAT worldtype generation.
For example, when i create a new world - even in specifying the world type (with -t NORMAL) - the world generation is flat :

But its not the same thing when i dirrectly create a flat world : we can see the sky is not the same. (⬆dark, but not night ⬇normal)

Steps to reproduce
I dont konw exactlty when and why its happend, i used some generator and update my server in the 1.19.3 version at the same time.
But now, I have removed any generator plugin when i saw the bug, and the bug is still there, even in new-created worlds.
I can't try to get the trigger of the bug beceause I cant remove the bug :/
So, step to reproduct but im not sure :

create a server in 1.19.3 with multiverse and multiverse-inventory
create worlds (its work fine)
try to use VoidGenerator and Terra ?
type /mv create test normal -t normal or generate new chuncks in a existing world
And normaly, your world generation is flat
(you can now remove VoidGenerator and Terra, and the bug is still here)

Agreements

[X] I have searched for and ensured there isn't already an open or resolved issue(s) regarding this.
[X] I was able to reproduce my issue on a freshly setup and up-to-date server with the latest version of Multiverse plugins with no other plugins and with no kinds of other server or client mods.

Same issue on my server

I cannot reproduce this issue, can you re-open the issue with tested reproduction instructions


[+] Add DialogUtils class for displaying different dialogs

#2

I think keeping Dialog in private static ProgressDialog mProgressDialog; as static variable might lead to Activity leak, since it will keep the reference to the activity context then the activity can't be garbage collected.


add tests for preprocess_targets_manager_refresh

preprocess targets runs the manager refresh which needed specs, mostly the only different thing is the allow_targeted_refresh setting matters and line 65 does in fact return the manager
the initialize spec really can stay, i guess
I expect Adam's gonna tell me that 25 should be testing something other than a stack.
@miq-bot add_label test
@miq-bot assign @agrare

Overall LGTM


traffic_manager: Fix --tsArgs.

It looks like --tsArgs was broken by the log rotation changes. This restores that to a working state and does some other cleanup on the argument processing for traffic_manager. I added a format wrapper to Buffer Writer for this and updated the related documentation.
Waiting on #3908.

[approve ci autest]

[approve ci autest]

It's a no win situation for me. If I need any sort of additional support for a fix and put it in the fix, I get complaints like yours. If I pull that support out and put as a separate PR, then I get complaints that I'm adding features that aren't used. I suppose this is the best path - do the PR and split it if someone complains.

Separating the commit into two commits should solve the situation. Then people can see the fix on a commit and cleanups on the other commit. You don't have to have only one commit on a PR. It depends on cases.

Well, I get complaints about having multiple commits on a PR too, even if they are distinct as in this case.

It is separated, it's in #3908. Once that's merged, I'll rebase this one and all the extra bits will drop out.

Rebased after #3908 was merged.

It seems like args have to be appended to lmgmt->proxy_options instead of replacing it entirely. Is my understanding correct?
If so, you could fix the bug by just using strcat. Use of BufferWriter made code more readable but it also made the point of this PR unclear. And this kind of things make backporting hard, I'm not sure whether this fix have to be backported to old versions though.

I think it's good to take opportunities like this to do more general code cleanup. I'm on vacation this week, I will look at splitting it in to two commits when I get  back.

Don't get me wrong. I'm not saying "Don't cleanup". I would let you off the hook if it was a really trivial tiny obvious cleanup (, or it was a big change that can be considered as an overhaul). I just requested you to split the commit so that I can see the fix and the cleanup separately because it was hard to find the fix part. It would be a double handling but I think it worth to do in this case.

Where did my comment go? I split out the simpler fix for 8.0 in to #3938 leaving this purely as cleanup. I could have put the other changes here, but they would have just been overwritten anyway.

Why is #3938 for 8.0? I think it would probably cause conflicts if we backported this cleanup to 8.x branches in the future. I'd suggest splitting fad898c into two commits and backporting one of them to 8.0.

#3938 is for 8.0 because it's the simple fix you wanted separated out.  The change in that PR is how TextBuffer is called, but in this PR there is no TextBuffer. Therefore there's no change in this PR that could be separated from commit fad898c4517b28faf7597c3726f2b7f37ba231ee in a useful way. The equivalent change in this PR is completely dependent on the other changes in the PR. The result is #3938 can't be brought back in to this PR, and would be pointless to merge in to master if we're also going to commit this PR.

Well, anyway, I decided to do as requested and put the 8.0 fix in as a pre-commit to the cleanup commit.

[approve ci autest]

Cherry-picked to 8.0.x, I cherry-picked all of this because we need it later.


Json JSON_OBJ_DESCR_OBJ_ARRAY misbehaving

Hey, I have an array of board_discovery_temp_sensor_device which utilizes the following structures:
typedef struct board_discovery_device_handle
{
    const char *device_description;
    uint32_t device_id;
    uintptr_t device;
} board_discovery_device_handle_t;

typedef struct health_monitor_configurations_temp_sensor
{
	int32_t over_temperature_limit;
	int32_t under_temperature_limit;
} health_monitor_configurations_temp_sensor_t;

typedef struct board_discovery_temp_sensor_channel
{
    const char *channel_name;
    uint32_t channel_id;
    health_monitor_configurations_temp_sensor_t channel_monitoring_params;
} board_discovery_temp_sensor_channel_t;

typedef struct board_discovery_temp_sensor_device
{
    board_discovery_device_handle_t device_handle;

    /* In case temp_sensor has channels, temp_sensor_monitoring_params will be unused because we should have controling params per channel. */
    health_monitor_configurations_temp_sensor_t temp_sensor_monitoring_params;

    /* In case temp_sensor has no channels, channels_arr_len will be assigned to 0 and channels_arr will be unused. */
    board_discovery_temp_sensor_channel_t channels_arr[BOARD_DISCOVERY_TEMP_SENSOR_MAX_CHANNELS];
    uint32_t channels_arr_len;
} board_discovery_temp_sensor_device_t;

Here are the coresponding json descriptions:
static const struct json_obj_descr g_board_discovery_device_handle_json_description[] =
{
	JSON_OBJ_DESCR_PRIM(struct board_discovery_device_handle, device_description, JSON_TOK_STRING),
	JSON_OBJ_DESCR_PRIM(struct board_discovery_device_handle, device_id, JSON_TOK_NUMBER),
    JSON_OBJ_DESCR_PRIM(struct board_discovery_device_handle, device, JSON_TOK_NUMBER),
};

static const struct json_obj_descr g_board_discovery_temp_sensor_health_monitor_json_description[] =
{
	JSON_OBJ_DESCR_PRIM(struct health_monitor_configurations_temp_sensor, over_temperature_limit, JSON_TOK_NUMBER),
    JSON_OBJ_DESCR_PRIM(struct health_monitor_configurations_temp_sensor, under_temperature_limit, JSON_TOK_NUMBER),
};

static const struct json_obj_descr g_board_discovery_temp_sensor_channel_json_description[] =
{
    JSON_OBJ_DESCR_PRIM(struct board_discovery_temp_sensor_channel, channel_name, JSON_TOK_STRING),
    JSON_OBJ_DESCR_PRIM(struct board_discovery_temp_sensor_channel, channel_id, JSON_TOK_NUMBER),
    JSON_OBJ_DESCR_OBJECT(struct board_discovery_temp_sensor_channel, channel_monitoring_params, g_board_discovery_temp_sensor_health_monitor_json_description),
};

static const struct json_obj_descr g_board_discovery_temp_sensor_device_json_description[] =
{
	JSON_OBJ_DESCR_OBJECT(struct board_discovery_temp_sensor_device, device_handle, g_board_discovery_device_handle_json_description),
    JSON_OBJ_DESCR_OBJECT(struct board_discovery_temp_sensor_device, temp_sensor_monitoring_params, g_board_discovery_temp_sensor_health_monitor_json_description),
    JSON_OBJ_DESCR_OBJ_ARRAY(struct board_discovery_temp_sensor_device, channels_arr, BOARD_DISCOVERY_TEMP_SENSOR_MAX_CHANNELS, channels_arr_len,
				 g_board_discovery_temp_sensor_channel_json_description, ARRAY_SIZE(g_board_discovery_temp_sensor_channel_json_description)),
};

The board_discovery_temp_sensor_device array is a part of a larger structure, and here is its declaration:
board_discovery_temp_sensor_device_t temp_sensor_devices_arr[BOARD_DISCOVERY_TEMP_SENSOR_NUM_DEVICES];
 uint32_t temp_sensor_devices_arr_len;

and it's correspond json description:
/* Temperature Sensor Devices */
JSON_OBJ_DESCR_OBJ_ARRAY(struct board_discovery_devices_arr, temp_sensor_devices_arr, BOARD_DISCOVERY_TEMP_SENSOR_NUM_DEVICES,
                temp_sensor_devices_arr_len, g_board_discovery_temp_sensor_device_json_description,
                ARRAY_SIZE(g_board_discovery_temp_sensor_device_json_description)),

The array initialization (I have only two devices):
.temp_sensor_devices_arr = {
[0] = {
.device_handle = {
.device_description = "MAX31730 Temperature Sensor",
.device_id = 25,
//.device = (uint32_t)DEVICE_DT_GET(DT_ALIAS(temp_sensor_0)),
.device = (uint32_t)NULL,
},
/* temp_sensor_monitoring_params variable is unused for this device because it has channels. */
        /* Channels */
        .channels_arr = {
            [0] = {
                .channel_name = "Temperature Sensor Channel 0",
                .channel_id = 0,
                .channel_monitoring_params = {
                    .over_temperature_limit = 70,
                    .under_temperature_limit = 50,
                },
            },
            [1] = {
                .channel_name = "Temperature Sensor Channel 1",
                .channel_id = 1,
                .channel_monitoring_params = {
                    .over_temperature_limit = 70,
                    .under_temperature_limit = 50,
                },
            },
            [2] = {
                .channel_name = "Temperature Sensor Channel 2",
                .channel_id = 2,
                .channel_monitoring_params = {
                    .over_temperature_limit = 70,
                    .under_temperature_limit = 50,
                },
            },
        },
        .channels_arr_len = 3,
        /* End Of Channels */
    },
    [1] = {
        .device_handle = {
            .device_description = "Protean-tech Temperature Sensor",
            .device_id = 26,
            //.device = (uint32_t)DEVICE_DT_GET(DT_ALIAS(temp_sensor_1)),
            .device = (uint32_t)NULL,
        },
        .temp_sensor_monitoring_params = {
            .over_temperature_limit = 70,
            .under_temperature_limit = 50,
        },
        /* channels_arr variable is unused for this device because it has no channels. */
        .channels_arr_len = 0,
    },
},
.temp_sensor_devices_arr_len = 0,

When I print the output json of this array it looks like this:
"temp_sensor_devices_arr":[{"device_handle":{"device_description":"MAX31730 Temperature Sensor","device_id":9,"device":0},"temp_sensor_monitoring_params":{"over_temperature_limit":0,"under_temperature_limit":0},"channels_arr":[{"channel_name":"Temperature Sensor Channel 0","channel_id":0,"channel_monitoring_params":{"over_temperature_limit":70,"under_temperature_limit":50}},{"channel_name":"Temperature Sensor Channel 1","channel_id":1,"channel_monitoring_params":{"over_temperature_limit":70,"under_temperature_limit":50}},{"channel_name":"Temperature Sensor Channel 2","channel_id":2,"channel_monitoring_params":{"over_temperature_limit":70,"under_temperature_limit":50}}]},
                           {"device_handle":{"device_description":"O\\fF\x16F\x07i\\nFD\xea\x06\\b\x87\xb0\x05F\x97\xf8$\x10\xc8\xf3\x0b\\b8h","device_id":1610754939,"device":10},"temp_sensor_monitoring_params":{"over_temperature_limit":0,"under_temperature_limit":70},"channels_arr":[]}],

While debugging, I observed that after finishing the encoding of temp_sensor_devices_arr[0], the val pointer in the encode function advanced to the offset of the channels_arr_len field. This explains why, when inspecting the json_escape_internal() function in the debugger, the value of the str pointer is 0x3. I also verified against the actual array, and it corresponds to the address of channels_arr_len from element 0. However, it should actually be the start address of temp_sensor_devices_arr[1]. The channels_arr_len field should be encapsulated within the call to JSON_OBJ_DESCR_OBJ_ARRAY, and it should be taken into account when calculating the offset of each object.

Zephyr version: 3.4.99
build: v3.4.0-rc1-723-gf08ba0d654ee
Thanks,
Ofir.

Please use our bug template when reporting bugs. You need to edit this issue to include the information requested in https://github.com/zephyrproject-rtos/zephyr/blob/main/.github/ISSUE_TEMPLATE/001_bug_report.md

Upon further observation, I noticed that there is an open PR that could potentially shed light on the issue I'm currently facing. It seems that the PR addresses a similar scenario involving nested arrays, which aligns with my situation.  https://github.com/zephyrproject-rtos/zephyr/pull/50816/files#diff-d60199059b33fa2cc46a73a35a5f8cc5569238277adc4662858743af0fd487fa

Hey,
Any update on this matter?

Fixed by #50816 which was merged in ae6aa61.

@mrfuchs
I'm reopening that issue since there are still troubles while multidimensional array encoding. https://github.com/zephyrproject-rtos/zephyr/pull/50816 fixes the case when there is  declared struct json_obj_descr with only one multidimensional array but when you add another field then there is no data in that array. I've used the code from the tests that you have written to show the problem.
The encoding works well when I declare the following struct json_obj_descr
static const struct json_obj_descr test_multidimensional_array_descr[] = {
	JSON_OBJ_DESCR_ARRAY_ARRAY(struct obj_array_2dim, data, 4,
				   objects_array_array_len, obj_array_descr,
				   ARRAY_SIZE(obj_array_descr)),
};

with the test data:
struct obj_array_2dim obj_array_array_ts = {
		.data = {
			[0] = {
				.data = {
					[0] = {
						.name = "Sim\303\263n Bol\303\255var",
						.height = 168
					},
					[1] = {
						.name = "Pel\303\251",
						.height = 173
					},
					[2] = {
						.name = "Usain Bolt",
						.height = 195
					},
				},
				.num_elements = 3
			},
			[1] = {
				.data = {
					[0] = {
						.name = "Muggsy Bogues",
						.height = 160
					},
					[1] = {
						.name = "Hakeem Olajuwon",
						.height = 213
					},
				},
				.num_elements = 2
			},
			[2] = {
				.data = {
					[0] = {
						.name = "Alex Honnold",
						.height = 180
					},
					[1] = {
						.name = "Hazel Findlay",
						.height = 157
					},
					[2] = {
						.name = "Daila Ojeda",
						.height = 158
					},
					[3] = {
						.name = "Albert Einstein",
						.height = 172
					},
				},
				.num_elements = 4
			},
		},
		.objects_array_array_len = 3,
};

I have the correct output:
[00:00:01.335,449] <inf> cloud: json data {"data":[[{"name":"Simón Bolívar","height":168},{"name":"Pelé","height
":173},{"name":"Usain Bolt","height":195}],[{"name":"Muggsy Bogues","height":160},{"name":"Hakeem Olajuwon","height":
213}],[{"name":"Alex Honnold","height":180},{"name":"Hazel Findlay","height":157},{"name":"Daila Ojeda","height":158}
,{"name":"Albert Einstein","height":172}]]}

but when I add another field e.g
static const struct json_obj_descr test_multidimensional_array_descr[] = {
	JSON_OBJ_DESCR_PRIM(struct test_string_struct, tId, JSON_TOK_STRING),
	JSON_OBJ_DESCR_ARRAY_ARRAY(struct obj_array_2dim, data, 4,
				   objects_array_array_len, obj_array_descr,
				   ARRAY_SIZE(obj_array_descr)),
};

then in the multidimensional array, there is no data.
[00:00:01.335,723] <inf> cloud: json data {"tId":"TEST1","data":[]}

Do you have any clues what could be wrong?


xls => json => manipulation => xlsx

So, I've been digging around this repo a bit and it seems like the go-to method for filtering etc is to convert things to json using XLSX.utils.sheet_to_json(wb.Sheets.SheetName), however I can't find any documentation on then turning that manipulated json back into a workbook. Please advise! (thanks in advance)

@reidblomquist at a high level, sheet_to_json takes an options argument.  The header field of the options argument controls the output format: default is an array of JSON objects whose keys are determined by the first row, "A" will use the column labels rather than the first row, and  1 will generate an array of arrays.  By default it will emit the formatted strings, but also setting raw:true will give you the underlying values.  Using the write.xlsx file from the test files repo :
> var wb = XLSX.readFile('test_files/write.xlsx');
> XLSX.utils.sheet_to_json(wb.Sheets.SheetJS, {header:1})
[ [ '1', '2', '3' ],
  [ 'TRUE', 'FALSE', , 'sheetjs' ],
  [ 'foo', 'bar', '2/19/14', '0.3' ],
  [ 'baz', , 'qux' ] ]
> XLSX.utils.sheet_to_json(wb.Sheets.SheetJS, {header:1, raw:true})
[ [ 1, 2, 3 ],
  [ true, false, , 'sheetjs' ],
  [ 'foo', 'bar', 41689.604166666664, '0.3' ],
  [ 'baz', , 'qux' ] ]

https://github.com/SheetJS/js-xlsx/blob/master/tests/write.js includes an example of how to convert an array of arrays back into a worksheet.  The essence of it is to walk the array and generate a cell object for each value based on its position.
This will eventually have to be merged into the codebase when we add in support from js-harb -- for formats like DIF and PRN, which effectively represent everything as text, it's structurally easier to generate an array of arrays.
PS: The date/number confusion is due to how Excel stores dates -- they are actually date codes with a special number format.  This will be addressed when we settle on the correct behavior for cellDates option.
Keep this open until we add all of this to the documentation and have a proper roundtrip demo

@SheetJSDev thank you very much for the prompt response! I wanted to leave my json a bit more structured for my filtering purposes (so, an array of objects instead of an array of array) - but (just in case anyone else wants the sauce there) I managed to walk the resulting data as an array of arrays like so:
  function json2ws(data, opts) {
    var ws = {};
    var range = {s: {c:10000000, r:10000000}, e: {c:0, r:0 }};
    for(var R = 0; R !== data.length; ++R) {
      for(var C = 0; C !== Object.keys(data[R]).length; ++C) {
        if(range.s.r > R) range.s.r = R;
        if(range.s.c > C) range.s.c = C;
        if(range.e.r < R) range.e.r = R;
        if(range.e.c < C) range.e.c = C;
        var cell = {v: data[R][Object.keys(data[R])[C]] };
        if(cell.v === null) continue;
        var cell_ref = XLSX.utils.encode_cell({c:C,r:R});

        /* TEST: proper cell types and value handling */
        if(typeof cell.v === 'number') cell.t = 'n';
        else if(typeof cell.v === 'boolean') cell.t = 'b';
        else if(cell.v instanceof Date) {
          cell.t = 'n'; cell.z = XLSX.SSF._table[14];
          cell.v = datenum(cell.v);
        }
        else cell.t = 's';
        ws[cell_ref] = cell;
      }
    }

    // TEST: proper range
    if(range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
    return ws;
  }

@reidblomquist here's an example: https://runkit.com/sheetjs/58dc6ea1eae8b800146359eb Let us know if that makes any sense

@SheetJSDev I'm having the same issue with the Dates.. What's the best approach to get back the "date" format and not a number?

If you are starting from a file, pass the option cellDates:true:
> var XLSX = require('xlsx'), wb;

// default
> wb = XLSX.readFile('write.xlsx'); XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], {raw:true, header:1})
[ [ 1, 2, 3 ],
  [ true, false, , 'sheetjs' ],
  [ 'foo', 'bar', 41689.604166666664, '0.3' ],
  [ 'baz', , 'qux' ] ]

// cellDates:true
> wb = XLSX.readFile('write.xlsx', {cellDates:true}); XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], {raw:true, header:1})
[ [ 1, 2, 3 ],
  [ true, false, , 'sheetjs' ],
  [ 'foo', 'bar', 2014-02-19T14:30:00.000Z, '0.3' ],
  [ 'baz', , 'qux' ] ]

@SheetJSDev cool. Now it reads the Date. But when I write back to file i see just the numbers instead of the Dates.
module.exports = function(aoa, fileName){
  var wb = aoa_to_workbook(aoa); // wb will be a workbook with one sheet
  XLSX.writeFile(wb, fileName); // save to file
}

function sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {
	var n = opts && opts.sheet ? opts.sheet : "Sheet1";
	var sheets = {}; sheets[n] = sheet;
	return { SheetNames: [n], Sheets: sheets };
}

function aoa_to_workbook(data/*:Array<Array<any> >*/, opts)/*:Workbook*/ {
	return sheet_to_workbook(XLSX.utils.aoa_to_sheet(data, opts), opts);
}

aoa_to_sheet also needs the argument:
var wb = XLSX.readFile('write.xlsx', {cellDates:true});
var json = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], {raw:true, header:1});
var wb2 = {SheetNames:["SheetJS"], Sheets:{SheetJS:XLSX.utils.aoa_to_sheet(json, {cellDates:1})}};
XLSX.writeFile(wb2, 'writenew.xlsx', {cellDates:true});

The relevant part of the docs is https://sheetjs.gitbooks.io/docs/#array-of-arrays-input -- how should it be changed to explain that behavior?  Currently it says:

cellDates	false	Store dates as type d (default is n)

I guess it should just say "raw dates" rather than "type d"?

Thank you!
Yeah "raw dates" would be better.
Btw, I changed the code this way:
module.exports = function(aoa, fileName){
  var wb = aoa_to_workbook(aoa, {cellDates: true}); // wb will be a workbook with one sheet
  XLSX.writeFile(wb, fileName, {cellDates: true}); // save to file
}

function sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {
	var n = opts && opts.sheet ? opts.sheet : "Sheet1";
	var sheets = {}; sheets[n] = sheet;
	return { SheetNames: [n], Sheets: sheets };
}

function aoa_to_workbook(data/*:Array<Array<any> >*/, opts)/*:Workbook*/ {
	return sheet_to_workbook(XLSX.utils.aoa_to_sheet(data, opts), opts);
}

But now the Date columns are blank.
PS. my date format is "mm/gg/yyyy"

Excel does some weird things with localization.  Can you try with the date format mm/dd/yyyy?  Also, if you can share an input file I'd love to take a look

@SheetJSDev sorry i made a typo in my previous post, date is already mm/dd/yyyy. I'm using a standard XLS file.. Are you able to reproduce the issue?

Just tried:
var XLSX = require('xlsx');
var wb = XLSX.readFile('write.xlsx', {cellDates:true});
var json = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], {raw:true, header:1});

/* Set D4 to a date */
json[3][3] = new Date("2017-02-19 14:30");
var wb2 = {SheetNames:["SheetJS"], Sheets:{SheetJS:XLSX.utils.aoa_to_sheet(json, {cellDates:1})}};

/* force the cell format to `mm/dd/yyyy` */
wb2.Sheets.SheetJS.D4.z = "mm/dd/yyyy";

/* write it */
XLSX.writeFile(wb2, 'writenew.xlsx', {cellDates:true});

source file: write.xlsx
output file: writenew.xlsx
The loss of the original format is expected (since the JSON loses the format info) but setting the format to mm/dd/yyyy doesn't result in a blank cell:

Really weird. Still having that issue. Btw I'm using XLS files not XLSX.

@roccomuso yes I can reproduce with the XLS write, there are two issues:

the blank cells are coming from a missing case in https://github.com/SheetJS/js-xlsx/blob/master/bits/78_writebiff.js#L59 .  XLS has no native date cell concept, so it has to be converted back to number.  This fix is easy:

        if(cell.v != null) switch(cell.t) {
-               case 'n':
-                       if((cell.v == (cell.v|0)) && (cell.v >= 0) && (cell.v < 65536))
-                               write_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, cell.v));
+               case 'd': case 'n':
+                       var v = cell.t == 'd' ? datenum(cell.v) : cell.v;
+                       if((v == (v|0)) && (v >= 0) && (v < 65536))
+                               write_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));
                        else
-                               write_biff_rec(ba, 0x0003, write_BIFF2NUMBER(R,C, cell.v));
+                               write_biff_rec(ba, 0x0003, write_BIFF2NUMBER(R,C, v));
                        return;

XLS writer is not saving the format table.  That's a bit more involved.  We'll look into it.

I saw the 3a310bd commit. When will it be released? :+1:

@roccomuso it should be in 0.9.9 (the latest version) already.  As mentioned, that is only the first half of the fix (to ensure that the date cells aren't blank).

@SheetJSDev alright, what's missing exactly? will the v0.9.9 output the data cells as expected?

The dates will show up as numbers.  forcing dates isn't particularly hard, but we're trying to rebuild the formatting library before attacking those issues

@SheetJSDev thanks for being so responsive here.
Excuse me for asking another question but i've reached the point where I cant find the answer and I need to ask somebody.
In my excel sheet the date is inserted as: "03/12/2015", but excel formats it to: "03-Dec-15" .
When I turn the sheet into json, the date comes through as the formatted version "03-Dec-15".. I want the unformatted version "03/12/2015". I have added {raw:true} and {cellDates:true} but this isnt producing the result im looking for.
Any help or advice? :)

@GreggOD the specific input format is not preserved in the file.  For example, if you type Jan 1 in US English Excel the input bar will show 1/1/2017 and the cell will show 1-Jan.  So where's Jan 1? it was lost.
If you want to see 03/12/2015, you can force the output to render using the format code mm/dd/yyyy:

force input dates with cellDates:true option in the input function (read, readFile, aoa_to_sheet, ... however you are building the worksheet)
force output date format with dateNF:"mm/dd/yyyy" in sheet_to_json

Alternatively you can change the output date format manually by editing the z property of the relevant cells to mm/dd/yyyy.

@reidblomquist there are new utility functions sheet_add_aoa and sheet_add_json that can directly append to the worksheet without having to convert to JSON.

@SheetJSDev
How we can join multiple array in one object.
Suppose i have two xlsx file.
var url = ['assets/sample-dataset.xlsx', 'assets/sheet2.xlsx'];
XLSX.utils.sheet_to_json(worksheet, { raw: true });
In that i am getting two JSON data.

Now how we can merge in one object ? is there any method to merge multiple object in to one ?

@rahulpathak  -> I feel like that's a JavaScript question and not a sheetjs question.
Merge your two arrays using the spread operator:
let data = [...sheetArray1, ...sheetArray2]

And then if you want to sort the data use sorting methods from JavaScript.

Hi @SheetJSDev / @GreggOD
I am using angular 7, I have to read multiple excel file. so i created one function to read data and after read data i have to merge all data in one object.
But here urldata not getting any value. In datalog getting value but not returning any value.
Please help me out why i am not getting any value he saying 'undefined'.
ngOnInit() {
        // this.url = ['assets/sample-dataset.xlsx', 'assets/sheet2.xlsx'];

        const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{
            // Here i am getting datalog data but this data not retunning any value
            console.log(JSON.stringify(datalog));
            return datalog;
        }});

        // const urldata1 = this.filereader('assets/sheet2.xlsx', (datalog1) => {{
        //     console.log(JSON.stringify(datalog1));
        //     return datalog1;
        // }});

        console.log(urldata);
    }

filereader(url, callback) {
        const req = new XMLHttpRequest();
        req.open('GET', url, true);
        req.responseType = 'arraybuffer';
        req.onload = (e) => {
            const data = new Uint8Array(req.response);
            const arr = [];
            for (let j = 0; j !== data.length; ++j) {
                arr[j] = String.fromCharCode(data[j]);
            }
            const bstr = arr.join('');
            const workbook = XLSX.read(bstr, { type: 'binary' });
            const first_sheet_name = workbook.SheetNames[0];
            const worksheet = workbook.Sheets[first_sheet_name];
            this.jsonData = XLSX.utils.sheet_to_json(worksheet, { raw: true });
            // create callback function to get data form here
            callback(this.jsonData);
        };
        req.send();
    }

ngOnInit() {
        // this.url = ['assets/sample-dataset.xlsx', 'assets/sheet2.xlsx'];

        const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{
            // Here i am getting datalog data but this data not retunning any value
            console.log(JSON.stringify(datalog));
            return datalog;
        }});

        // const urldata1 = this.filereader('assets/sheet2.xlsx', (datalog1) => {{
        //     console.log(JSON.stringify(datalog1));
        //     return datalog1;
        // }});

        console.log(urldata); <-- DO YOU MEAN THIS IS UNDEFINED?
    }

ngOnInit() {
        // this.url = ['assets/sample-dataset.xlsx', 'assets/sheet2.xlsx'];

        const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{
            // Here i am getting datalog data but this data not retunning any value
            console.log(JSON.stringify(datalog));
            return datalog;
        }});

        // const urldata1 = this.filereader('assets/sheet2.xlsx', (datalog1) => {{
        //     console.log(JSON.stringify(datalog1));
        //     return datalog1;
        // }});

        console.log(urldata); <-- DO YOU MEAN THIS IS UNDEFINED?
    }

You need to return your callback in your filereader function:
return callback(this.jsonData);

after return callback() still getting 'undefined'

@rahulpathak
Does the datalog in here have data?
const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{
            console.log(JSON.stringify(datalog)); <-- does this print out data?
            return datalog;
        }});

@rahulpathak
Does the datalog in here have data?
const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{
            console.log(JSON.stringify(datalog)); <-- yes datalog having data.
            return datalog;
        }});

But 'urldata' variable doesn't have any value. getting 'undefined' value. I guess filereader function not returning any value. I check with setTimeout() also but no still same output. Is there any logic need to change ?

Im a little confused why you have double brackets on your function
const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{ <-- remove one bracket
            console.log(JSON.stringify(datalog)); //<-- yes datalog having data.
            return datalog;
        }} //<-- remove one bracket);

Im a little confused why you have double brackets on your function
const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => {{ <-- remove one bracket
            console.log(JSON.stringify(datalog)); //<-- yes datalog having data.
            return datalog;
        }} //<-- remove one bracket);

Shorthand would actually look like this
const urldata = this.filereader('assets/sample-dataset.xlsx', (datalog) => datalog);

Yes i have done changes. But still not working.
I have attached sample excel sheet and use above code.
sheet2.xlsx;


haskellPackages: cleaning up obsolete overrides (9/x)

Motivation for this change
Remove obsolete overrides on the following haskellPackages:

zeromq4-haskell: -dontCheck
bytestring-progress: -dontHaddock
simple-sendfile: -dontCheck

Part of https://github.com/NixOS/nixpkgs/issues/86500
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build haskellPackages.zeromq4-haskell
@GrahamcOfBorg build haskellPackages.bytestring-progress
@GrahamcOfBorg build haskellPackages.simple-sendfile

LGTM, thanks!


⚠ Samsung has degraded performance

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

HTTP code: 200
Response time: 2721 ms

Resolved: Samsung performance has improved in 7c5e68c.


ViewChild/ ElementRef gets server side elements instances instead of client side.

If you inject any elements into your component with ViewChild or ElementRef the nativeElements are the hidden server side rendered elements instead of the client side rendered elements.
This happens because the components are instantiated before preboot can clean up the DOM to give the user a nice transition from server to client rendered html.
I suspect angular assumes there are only one instance of specific DOM elements and then selects the first one in the DOM which are in fact at this point in time the hidden server side rendered elements.
ANOTHER possibility is that it's getting the correct elements but because they are display:none they have no heights etc.

So for now I have solved this be getting all elements with a certain class and using the element whose dimensions are > 0.
const elements = this.docRef.document.getElementsByClassName('browse-card-row');
    let virtualWidth = 0;
    for (let i = 0, len = elements.length; i < len; i++) {
      const elem = elements[i];
      if (elem.clientWidth > 0) {
        virtualWidth = elem.clientWidth;
      }
    }

@ktersius Can you point me to a code example so that I can reproduce this?


Options get confused if the value is the same as a subcommand

In the fly CLI, we have a command named test (like fly test).
We also have a "global" option to specify and environment -e, --env <value>.
The issue is if you do fly -e test other_command, commandpost thinks test is the command, not the value of the env option.

sorry for very late response...
I will find my leisure and fix it later.
If you give me a fix pull request it is great 😉


How to suppress some lint warning?

Hi there.
I want to suppress warnings like this (an maybe some other):
W  46         var clientId, clientAccId, mcc, mnc, total int      var clientAccId should be clientAccID

@rstrlcpy how did you fix this?  Related to #491


"valueOrDefault" not defined when using custom IstioOperator (-f) with manifest apply

Bug description
With 1.6.0-beta.1:
landow@landow-macbookpro3:istio-1.6.0-beta.1 $ istioctl version
no running Istio pods in "istio-system"
1.6.0-beta.1
landow@landow-macbookpro3:istio-1.6.0-beta.1 $ istioctl --context=$CTX_1 manifest apply -f manifests/examples/multicluster/values-istio-multicluster-gateways.yaml
Error: failed to apply manifests: template: :258: function "valueOrDefault" not defined

With 1.5.1 it works fine:
landow@landow-macbookpro3:istio-1.5.1 $ ./bin/istioctl version
2020-05-11T17:22:06.026750Z	warn	will use `--remote=false` to retrieve version info due to `no Istio pods in namespace "istio-system"`
1.5.1
landow@landow-macbookpro3:istio-1.5.1 $ ./bin/istioctl manifest apply -f install/kubernetes/operator/examples/multicluster/values-istio-multicluster-gateways.yaml
- Applying manifest for component Base...

This happens on release-1.6branch, looks like this is caused by
  values:
    global:
      # Provides dns resolution for global services
      podDNSSearchNamespaces:
        - global
        - "{{ valueOrDefault .DeploymentMeta.Namespace \"default\" }}.global"

https://github.com/istio/istio/blob/release-1.6/operator/data/examples/multicluster/values-istio-multicluster-gateways.yaml#L18
which will be rendered in values of istio-sidecar-injector configMap.
I can see that the line "{{ valueOrDefault .DeploymentMeta.Namespace \"default\" }}.global" has removed from master.

@ClareChu this line has been removed in the pending 1.6.1 - see removal PR: https://github.com/istio/istio/pull/23900.
There is still some busted logic that @howardjohn had indicated he understood but had not provided more context about related to the gotpl parsing of values.yaml. In some cases it may make sense  for values.yaml to parse gotpl, although I am not immediately sure what they may be.
Cheers
-steve

@sdake
ok， thanks！


Do not set our due parameter on a card update if empty/null

Trello tries to set a due date if we provide the parameter at all; so if it is set but is empty, we need to unset it.
Fixes #26

Looks like TravisCI failed because of an issue in one build version unrelated to the code changes.  Failure on TravisCI's part?

Closing this PR to pull from a specific branch for this fix.


Return list comprehension. map() is a generator.

Returning a generator means that the field value will be empty if it's iterated a second time in Python 3. That would be unexpected for most users.

Ping?

I'm no longer using this package. Closing.


Session control api not available

Session control (manually creating and invalidating google analytics sessions) have not been developed.
Session control reference in anlaytics.js -https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#session

PR is welcome. That's the wrong docs btw, this is the correct:

iOS: https://developers.google.com/analytics/devguides/collection/ios/v3/sessions#manual
Android: https://developers.google.com/analytics/devguides/collection/android/v4/sessions#manual

Hi, Thank you very much for the reply. I referred this readme /
documentation https://github.com/idehub/react-native-google-analytics-bridge.
My concern is that I couldn't find any methods for session control.
On Thu, Aug 3, 2017 at 5:09 PM, Christian Brevik<EMAIL_ADDRESS>wrote:

PR is welcome. That's the wrong docs btw, this is the correct:

iOS: https://developers.google.com/analytics/devguides/
collection/ios/v3/sessions#manual
https://developers.google.com/analytics/devguides/collection/ios/v3/sessions#manual
Android: https://developers.google.com/analytics/devguides/
collection/android/v4/sessions#manual
https://developers.google.com/analytics/devguides/collection/android/v4/sessions#manual

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/idehub/react-native-google-analytics-bridge/issues/157#issuecomment-319944945,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARqLsF4Epivzrb1gJzoOEjhWjYQ-bwZmks5sUbFdgaJpZM4OsSai
.

Published in 5.3.0


add tailwind elemetns to frameworks.md

This page was recently removed via https://github.com/expressjs/expressjs.com/pull/1484 so this PR is no longer relevant.  Thanks anyway for your contribution, and we'd be happy to consider your future doc contributions.


Move GoogleConfig initialization into setup of component

Description:
Remove helper function that just introduce complexity in setup
Related issue (if applicable): reduces size of #29158
Checklist:

[ ] The code change is tested and works locally.
[X] Local tests pass with tox. Your PR cannot be merged unless tests pass
[X] There is no commented out code in this PR.
[X] I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

@MartinHjelmare think you can have a second pair of eyes on this. I'm pretty much maintainer on this integration. but a second pair of eyes doesn't hurt.


Style password reset dialog

Fix styling of dialog for resetting password (when visiting generated link).

Done.


Restrict access of Sentinl app to admin

Hi,
I'm using Elasticsearch-5.5, Kibana-5.5, searchguard-5.5 and sentinl-5.5.
Is there a option to show sentinl app for creating alerts and reports only to admin?

Hi,
This is currently only possible when using Kibi and its integration with SearchGuard featuring user-level permissions, etc.


Convert Idea component to function component

Currently this is a class component. Convert the existing code by implementing it as a function component in React.

I can work on this issue.Please assign it to me

@sharmaaditya570191 I would like to work on this issue. please assign this to me.

I can work on this issue. Please assign it to me if not done . @sharmaaditya570191


NFV Selection Based on ONF

NFV solution realizes the intelligence and simplification of cloud computing IDC network at a lower cost
Network configuration has been improved to achieve multi tenant isolation, but some issues have also arisen, such as relatively low reliability compared to dedicated
Telecommunications equipment, forwarding performance loss, etc

基于ONF的NFV选项.pdf


ThisRecord to handle Blank rows

Issue https://github.com/microsoft/Power-Fx/issues/1327.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.


Package request: libgccjit (for trying gccemacs)

Project description
libgccjit lives in the gcc src package and is an optional configure flag to build, just like the other backends:
https://gcc.gnu.org/onlinedocs/gcc-8.3.0/jit/internals/index.html
There was a previous attempt at allowing an option for this here:
https://github.com/NixOS/nixpkgs/pull/13400
Motivation: In the emacs world, recently there's been a lot of interest in trying to improve performance of elisp, including adding some threading support, adding libjansson for C JSON serialization/deserialization, etc.  One such project in this camp is gccemacs, which adds native compilation to elisp files with libgccjit:
http://akrl.sdf.org/gccemacs.html
https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01137.html
It's possible the author may succeed in getting it into emacs master, in which case we'll need to add libgccgit support regardless, but in the meantime packaging it would allow us to easily support a gccemacs build in one of the NUR emacs overlays.
Metadata
All metadata is shared with gcc, since it's in the same src repo with the same license.

@bhipple While testing your package for libgccgit in https://github.com/bhipple/dotfiles/blob/master/config/nixpkgs/overlays/spacemacs.nix, a problem occurs during the compilation where it complains about there being no /usr/include directory, and exits the compilation. Potentially we could fix this with a patch? Not sure where that would need to go though if so.

Hi, I know nothing of nix but I think you could add a --prefix option to the libgccjit configure to have the make install install it in the directory you want.

@AndreaCorallo Thanks for the info! Do you happen to know if there’s a way to tell it where the header files (which are usually in /usr/include) it needs are? Since Nix doesn’t use that directory, I think we’ll either have to find a way to change that directory or use buildFHSUserEnv or something similar.

Status update: I forked the entire gcc9 directory into my nixpkgs-user-repository, got
libgccjit to compile, then worked on deleting a lot of the unnecessary
components. There's still quite a bit more related to cross-compilation that I
could prune, but at any rate the built artifact is not working, due to ld being
unable to find crti.o, which is in glibc. It looks like there's an issue as well
with the load path on gcc, which puts artifacts into:
${prefix}/gcc/lib/gcc/x86_64-unknown-linux-gnu/9.3.0/

Even adding this onto the RPath, I still get issues.
Here's the code:
https://github.com/bhipple/nur-packages/blob/master/default.nix#L27
gccjit can be compiled from my NUR repository by adding the overlay:
https://github.com/nix-community/NUR
And then running
nix-build -A nur.repos.bhipple.gccjit
However, the jitter doesn't work due to missing libs, as mentioned.
Here's a minimal test case to reproduce:
#!/usr/bin/env nix-shell
#! nix-shell -I nixpkgs=/home/bhipple/src/nixpkgs -p gccjit -i bash
gcc hello.c \
    -o hello \
    -lgccjit

./hello

where hello.c is the first file from the tutorial here:
https://gcc.gnu.org/onlinedocs/jit/intro/tutorial01.html
You'll see it immediately crash due to missing crti.o, even though I've made
some effort to put those dirs into the binary RPaths.
Not sure when I'll get more time to hack on it, so I figured I'd post some
progress in case anyone else has ideas or sees something obvious. I'm quite keen
to try out gccemacs though as the performance looks amazing, so maybe I'll hack
on it again soon.
The actual emacs part will be trivial once we get the jitter going, and I'll
build a cachix cache so others don't have to recompile it.

Thanks for the progress so far!

@matthewbauer cracked the puzzle above: https://github.com/NixOS/nixpkgs/pull/87157
That will eventually work its way through staging -> staging-next -> master, at which point we'll have an operational libgccjit!
Since we now have a working libgccjit, I'm going to resolve this ticket and open a new one with specific gccemacs work items here: #87400


fix broken objc test jobs

There's currently a CBF for objc jobs:
++ LANG=en_US.UTF-8
++ gem install cocoapods --version 1.7.2 --no-document --user-install
WARNING:  You don't have /Users/kbuilder/.gem/ruby/2.6.0/bin in your PATH,
	  gem executables will not run.
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0/wrappers directory.

Confirmed with an adhoc run that this makes the objC tests green again.


Fixed Font Size

Fixes #555
The font size of the dropdown in the Contact-Us page has been fixed.

Update branch again


Login page UI

The login/signup page needs to be improved
I can do it pls allow me to improve this page

@apu52

Hey, I can work on this issue. Can you please assign this to me?

@apu52 pls assign me

First of all, this issue doesn't follow any of the guidelines and the Issue template and secondly, no proper implementation details or approach hasn't been specified. Closing this issue.
In case, any one of you want to contribute to this, just open a Proper issue with the issue template along with the necessary details  or the approach.


FileSystemEvent.isDirectory property returns wrong value

The code is the following:
import "dart:io";
import "dart:async";

main() {
  Directory dir = new Directory(Directory.systemTemp.path + Platform.pathSeparator + "test-dir");
  dir.createSync();
  StreamSubscription s = dir.watch().listen((FileSystemEvent event) {
    print(event);
    print(event.isDirectory);
  });

  Directory d = dir.createTempSync();
  d.delete().then((_) {}).timeout(new Duration(seconds: 1)).then((_) {
    s.cancel().then((_) {
      dir.delete(recursive: true);
    });
  });
}

This prints for me:
FileSystemCreateEvent('C:\Users\sgrekhov\AppData\Local\Temp\test-dir\e77feb7c-7c24-11e7-b777-bcaec534d2ad')
false
FileSystemDeleteEvent('C:\Users\sgrekhov\AppData\Local\Temp\test-dir\e77feb7c-7c24-11e7-b777-bcaec534d2ad')
false

event.isDirectory here must be true
Another example:
import "dart:io";
import "dart:async";
main() {
  Directory dir = new Directory(Directory.systemTemp.path + Platform.pathSeparator + "test-dir");
  dir.createSync();
  StreamSubscription s = dir.watch().listen((FileSystemEvent event) {
    print(event);
    print(event.isDirectory);
  });
  dir.createTemp().then((Directory d) {
    d.delete().timeout(new Duration(seconds: 1)).then((_) {
      s.cancel().then((_) {
        dir.delete(recursive: true);
      });
    });
  });
}

This produces:
FileSystemCreateEvent('C:\Users\sgrekhov\AppData\Local\Temp\test-dir\5e409e53-7c25-11e7-b777-bcaec534d2ad')
true
FileSystemDeleteEvent('C:\Users\sgrekhov\AppData\Local\Temp\test-dir\5e409e53-7c25-11e7-b777-bcaec534d2ad')
false

event.isDirectory here must be true in the second case.
Tested on Dart VM version: 1.25.0-dev.9.0 (Tue Aug 01 01:52:00 2017) on "windows_x64"

On Windows, the file system watcher is implemented with ReadDirectoryChangesW. From ReadDirectoryChangesW we get a stream of FILE_NOTIFY_INFORMATION structures. The FILE_NOTIFY_INFORMATION structures do not indicate the type of file that the event is for. Therefore, for delete events, we no longer have access to the type of the file.
Given this limitation, I don't think there's a nice way to address this issue. Instead, I'm going to a documentation issue. In particular, FileSystemEvent.isDirectory should be updated to indicate that it will always return false for delete events on Windows even if the event was for a directory.

https://codereview.chromium.org/2997573002/

@zanderso please look at the following
import "dart:io";
import "dart:async";

main() {
  Directory dir = new Directory(Directory.systemTemp.path + Platform.pathSeparator + "test-dir");
  dir.createSync();
  StreamSubscription s = dir.watch().listen((FileSystemEvent event) {
    print(event);
    print(event.isDirectory);
  });

  Directory d = dir.createTempSync();
  d.delete().then((_) {}).timeout(new Duration(seconds: 1)).then((_) {
    s.cancel().then((_) {
      dir.delete(recursive: true).then((_) {
        print("Deleted");
      });
    });
  });
}

This prints
FileSystemCreateEvent('C:\Users\sgrekhov\AppData\Local\Temp\test-dir\d6d89476-7cb3-11e7-b777-bcaec534d2ad')
false
FileSystemDeleteEvent('C:\Users\sgrekhov\AppData\Local\Temp\test-dir\d6d89476-7cb3-11e7-b777-bcaec534d2ad')
false
Deleted

Note, that by the time the both (create and delete) events have arrived the entity is not deleted yet but isDirectory is false for the both events anyway. So, I think, suggested explanation doesn't cover this case. In particular (look to the code examples from original issue description), seems, that if temp directory is created by Directory.createTemp() then isDirectory is true, but when it crreated by Directory.createTempSync() then isDirectory for CREATE event is false

Note that Dart Isolates are single threaded, and that there are no ordering guarantees for asynchronous callbacks. Thus, the listen callback for the create event in all of these examples is not guaranteed to execute before the file is deleted. If it does, then it is only by luck. You'd need some additional synchronization (like a Completer completing in the listen callback) to make it happen every time.
tl;dr: In all of these examples, the listen callback is racing with the delete operation.


Fix altitude 0, and speed in PolylineWalker

Scenario:

when there is no cached Polyline we get a None back from the .get_alt()
when altitude is 0  we get 0 from .get_alt

Issue:

In polylineWalker I was checking if .get_alt() or uniform(min_alt, max_lat) that clearly fails when altitude is zero.

Fixes:

will fallback to the read position of the bot..
get the speed in PolylineWalker and passthrough to StepWalker

@th3w4y Thank you.

@th3w4y can you rebase? @solderzzc put some changes in to polyline_walker

@mjmadsen i rebased...

:+1:

With these changes, now the problem is that movements are chaotics just like the screenshot of @solderzzc .
So there is still something to fix :P.

@Anakin5 check last commit I believe this was causing the whole thing... https://github.com/PokemonGoF/PokemonGo-Bot/pull/5135/commits/8f7f22c90e92ccafafa4956ba006624c3f90ab5e

Yes looks better :)

:+1:
We agree this is in a working state now? :)

Yes, it is working fine


Kernels should be associated per notebook instead of being global.

If I pick connect to remote, then I get a list of remote kernels.
On the next notebook, I'm in remote mode.
If I switch to local, then go back to the first notebook, it's also in local mode now.
Seems like the 'local' vs 'remote' state should be per notebook, not global.

Right. Yeah, this isn't just about local vs remote. It gets really confusing and potentially data-destructive if the user tries to connect to more than one remote.

applies to experiment "jupyter.showOnlyOneTypeOfKernel": true

Closing as this is covered by the new picker experiment. Still needs to roll out fully, but will be covered by other work items.


v1.1.2

[OBS] Fix for broken Nozzle temp widget

https://github.com/t0nyz0/BambuBoard/issues/14

Looks good, thanks!


Add a legend to the bottom of the map

This is a feature request. Add a legend to the bottom of the map as a reference for various marker types. Perhaps this would pull from a new description or label field in the marker icon rules. The legend could be hidden/displayed based on a setting or checkbox/toggle in the ui.

Very nice idea, I like it a lot.


issue of reading visiumHD file

hd = cs.read_visiumHD(hd_dir)

loading 2um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:5039m
2um binned data loaded!
loading 8um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:02
8um binned data loaded!
loading 16um binned data...
Formatting cell polygons...
16um binned data loaded!
MethodError: no method matching Union{Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}(::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})

Stacktrace:
[1] convert(#unused#::Type{Union{Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}}, a::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})
@ Base ./array.jl:554
[2] convert(#unused#::Type{Union{Nothing, Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}}, x::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})
@ Base ./some.jl:36
[3] CellScopes.VisiumImgObject(highresImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}}, lowresImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}}, fullresImage::Nothing, detectedTissue::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, alignedImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, jsonParameters::Dict{String, Any})
@ CellScopes ~/.julia/packages/CellScopes/pM38e/src/spatial/sp_objects.jl:249
[4] read_visiumHD(hd_dir::String; min_genes::Vector{Int64}, min_cells::Vector{Int64}, prefix::Nothing, postfix::Nothing, default_bin::String)
@ CellScopes ~/.julia/packages/CellScopes/pM38e/src/fileio.jl:660
[5] read_visiumHD(hd_dir::String)
@ CellScopes ~/.julia/packages/CellScopes/pM38e/src/fileio.jl:628
[6] top-level scope
@ In[6]:1

I tried using hd = cs.read_visiumHD(hd_dir) to read the Spaceranger output from two samples again, and I couldn't reproduce the error you came across. Please make sure that hd_dir is the output directory from Spaceranger to use this function correctly. Other troubleshooting steps you can take include reinstalling CellScopes using Julia 1.8.4. I tested CellScopes on both Julia 1.7.3 and Julia 1.8.4, and it works fine. Other users have reported dependency issues with newer versions of Julia.

Same issue on both Julia 1.8.4 and 1.7.3, any help for this?

loading 2um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:4239m
2um binned data loaded!
loading 8um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:05
8um binned data loaded!
loading 16um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:02
16um binned data loaded!
MethodError: no method matching Union{Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}(::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})

Stacktrace:
[1] convert(#unused#::Type{Union{Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}}, a::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})
@ Base ./array.jl:554
[2] convert(#unused#::Type{Union{Nothing, Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}}, x::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})
@ Base ./some.jl:36
[3] CellScopes.VisiumImgObject(highresImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}}, lowresImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}}, fullresImage::Nothing, detectedTissue::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, alignedImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, jsonParameters::Dict{String, Any})
@ CellScopes ~/.julia/packages/CellScopes/XZUoC/src/spatial/sp_objects.jl:249
[4] read_visiumHD(hd_dir::String; min_genes::Vector{Int64}, min_cells::Vector{Int64}, prefix::Nothing, postfix::Nothing, default_bin::String)
@ CellScopes ~/.julia/packages/CellScopes/XZUoC/src/fileio.jl:660
[5] read_visiumHD(hd_dir::String)
@ CellScopes ~/.julia/packages/CellScopes/XZUoC/src/fileio.jl:628
[6] top-level scope
@ In[2]:1

I am transitioning everything to Julia 1.10.4, as older versions have too many dependency issues. Could you please try this and let me know if you come across any problems? Thanks.
https://github.com/HaojiaWu/CellScopes.jl/tree/dev

Thanks for your reply, when running 'Pkg.add(url="https://github.com/TheHumphreysLab/CellScopes.jl")', I saw some issues:
┌ Interpolations
│  WARNING: method definition for checkbounds at /home/liangxs/.julia/packages/Interpolations/y4lLj/src/Interpolations.jl:454 declares type variable N but does not use it.
│  WARNING: method definition for checkbounds at /home/liangxs/.julia/packages/Interpolations/y4lLj/src/Interpolations.jl:457 declares type variable N but does not use it.
│  WARNING: method definition for GriddedInterpolation at /home/liangxs/.julia/packages/Interpolations/y4lLj/src/gridded/gridded.jl:37 declares type variable pad but does not use it.
│  WARNING: method definition for GriddedInterpolation at /home/liangxs/.julia/packages/Interpolations/y4lLj/src/gridded/gridded.jl:60 declares type variable pad but does not use it.
│  WARNING: method definition for interpolate! at /home/liangxs/.julia/packages/Interpolations/y4lLj/src/deprecations.jl:30 declares type variable TWeights but does not use it.
└
┌ VariantCallFormat
│  [ Info: Compiling VCF parser...
└
┌ PyCallUtils
│  WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
│  ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
└
┌ CellScopes
│  WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
│  ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
└

After cs.read_visiumHD(), the same error appeared again:

loading 2um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:52[39m
2um binned data loaded!
loading 8um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:041:39
8um binned data loaded!
loading 16um binned data...
Formatting cell polygons...
Progress: 100%[==================================================] Time: 0:00:02
16um binned data loaded!
MethodError: no method matching Union{Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}(::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})

Stacktrace:
[1] convert(::Type{Union{Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}}, a::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})
@ Base ./array.jl:665
[2] convert(::Type{Union{Nothing, Matrix{ColorTypes.Gray{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, Matrix{ColorTypes.RGBA{FixedPointNumbers.N0f8}}}}, x::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}})
@ Base ./some.jl:37
[3] CellScopes.VisiumImgObject(highresImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}}, lowresImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f16}}, fullresImage::Nothing, detectedTissue::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, alignedImage::Matrix{ColorTypes.RGB{FixedPointNumbers.N0f8}}, jsonParameters::Dict{String, Any})
@ CellScopes ~/.julia/packages/CellScopes/XZUoC/src/spatial/sp_objects.jl:249
[4] read_visiumHD(hd_dir::String; min_genes::Vector{Int64}, min_cells::Vector{Int64}, prefix::Nothing, postfix::Nothing, default_bin::String)
@ CellScopes ~/.julia/packages/CellScopes/XZUoC/src/fileio.jl:660
[5] read_visiumHD(hd_dir::String)
@ CellScopes ~/.julia/packages/CellScopes/XZUoC/src/fileio.jl:621
[6] top-level scope
@ In[2]:1
Could you please help me figure out what the problem is? Any clues might be helpful is that the 'import CellScope as cs' produced Precompiling erros and I don't known whether it is associate with the failure of reading samples:
Precompiling CellScopes
✓ StructArrays → StructArraysGPUArraysCoreExt
? PyCallUtils
Info Given CellScopes was explicitly requested, output will be shown live
WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
? CellScopes
1 dependency successfully precompiled in 18 seconds. 575 already precompiled.
2 dependencies failed but may be precompilable after restarting julia
2 dependencies had output during precompilation:
┌ PyCallUtils
│  WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
│  ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
└
┌ CellScopes
│  [Output was shown above]
└
[ Info: Precompiling CellScopes [708d50d9-0a30-4b01-8594-5d83c0e43023]
WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
[ Info: Skipping precompilation since precompile(false). Importing CellScopes [708d50d9-0a30-4b01-8594-5d83c0e43023].
The WebIO Jupyter extension was not detected. See the WebIO Jupyter integration documentation for more information.
Precompiling PyCallUtils
Info Given PyCallUtils was explicitly requested, output will be shown live
WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
? PyCallUtils
[ Info: Precompiling PyCallUtils [02651160-e6c3-11e9-0e2a-551f75d9519e]
WARNING: Method definition getindex(PyCall.PyObject, Union{AbstractString, Symbol}) in module PyCall at /home/liangxs/.julia/packages/PyCall/1gn3u/src/PyCall.jl:349 overwritten in module PyCallUtils at /home/liangxs/.julia/packages/PyCallUtils/GJ7TW/src/PyCallUtils.jl:45.
ERROR: Method overwriting is not permitted during Module precompilation. Use __precompile__(false) to opt-out of precompilation.
[ Info: Skipping precompilation since precompile(false). Importing PyCallUtils [02651160-e6c3-11e9-0e2a-551f75d9519e].
┌ Warning: Using an un-quoted Symbol on the LHS is deprecated. Write :SumValue = ... instead.
└ @ DataFramesMeta ~/.julia/packages/DataFramesMeta/Ga6VV/src/parsing.jl:387
Welcome to use CellScopes.jl!

As mentioned in the link provided (https://github.com/HaojiaWu/CellScopes.jl/tree/dev), if you are using Julia v1.10.4, please use the following command to install:
using Pkg
Pkg.add(PackageSpec(url="https://github.com/bicycle1885/Leiden.jl"))
Pkg.add(PackageSpec(url="https://github.com/HaojiaWu/CellScopes.jl", rev="dev"))

I reinstalled it on a fresh Linux machine, and the methods described above worked for me when reading VisiumHD data.

A typical VisiumHD analysis uses around 30 GB of RAM. If your server has more memory than this, it should be enough. What error you saw when JupyterLab crashed? "segmentation fault"? I am using jupyterlab v4.2.4 with notebook v7.2.1 and it works fine.
You can try copying the code from your notebook into a file (e.g., test_run.jl) and then running it in terminal "julia test_run.jl" to see if the error can be reproduced."


[release/1.3] Update Golang 1.12.17

full diff: https://github.com/golang/go/compare/go1.12.16...go1.12.17
go1.12.17 (released 2020/02/12) includes a fix to the runtime. See the Go 1.12.17
milestone on the issue tracker for details:
https://github.com/golang/go/issues?q=milestone%3AGo1.12.17+label%3ACherryPickApproved

Codecov Report

Merging #4030 into release/1.3 will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           release/1.3    #4030   +/-   ##
============================================
  Coverage        42.46%   42.46%
============================================
  Files              129      129
  Lines            14355    14355
============================================
  Hits              6096     6096
  Misses            7364     7364
  Partials           895      895

Flag
Coverage Δ

#linux
45.97% <ø> (ø)
:arrow_up:

#windows
37.5% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9fcd35a...6a34164. Read the comment docs.


Replace Custom Autofac Wiring with Caliburn.Micro.Autofac

In the spirit of DRY, the Caliburn.Micro.Autofac package on Nuget already provides the autofac wiring for Caliburn.Micro, including the auto-registration of event handlers. It should be used instead of writing or writing new code to do the same.
I have made this change on my fork of the code. The URL for the commit is https://github.com/dbuksbaum/DownmarkerWPF/commit/20b4482d4b05d88fa1e7205ed8c683db866fea09

My initial reasons for using a modified version of that framework are no longer valid. So this is good to go.

i reverted the unwanted changes (left only the autofac ones) and did the pull request again.

Issue 57 was merged in. There's a compile warning with Caliburn.Micro.Autofac referencing an old version of Autofac, but the rest is fine.


Add CISA Known Exploited Vulnerability Catalog

Enhancement #4878
Adds a new datasource for the CISA Known Exploited Vulnerability Catalog and adds the information to the reports for any known exploited vulnerability that has been identified.

For reviewers - I accidentally included some unrelated updates suggested by checkstyle.