Support /terminal being hosted deeper than the web server root level

This PR fixes #142, allowing WebTerminal to work on sites that configure a single web server to host apps for multiple InterSystems servers.
It also updates gulp to version 4 so it works with modern Node versions.

@ZitRos FYI I'm also thinking of doing another PR so my VS Code extension can work without the user having to edit the WebTerminal.Router class.

I'm supportive. At the time when development started, we didn't have VisualStudio code yet which I love (i.e. in general, a pipeline to work with external editors)

@gjsjohnmurray thanks a ton for the PR. I currently don't have an ability to validate the release, please do it yourself (try to install the old version and update from it through the UI as well).

The code looks good!

@ZitRos thanks for merging and releasing this. I confirmed that UI upgrade from 4.9.3 to 4.9.4 worked.


FIX - Cleanup magic strings in cli

Description
Goal of this PR to is to clean up some of the magic strings that we have hanging around and instead use configuration (currency configuration in broker-cli/configuration) OR use SUPPORTED_COMMANDS constants where applicable for all subcommands.
Related PRs
List related PRs if applicable
Todos

[n/a] Tests
[n/a] Documentation
[x] Link to Trello

 Update available commands to use SUPPORTED_COMMANDS


Add Contribution Guidelines

This addition to the README will at as a starting point for a complete
guide of Open Source Contribution.
* Add text from open source meetup
* Add about open source contribution intro paragraph

It would be useful to have additional resources from the Ruby Open Source Workshop planning doc added. Though expanding the guide might require some more content structure.
Maybe we could structure it similar to:
https://github.com/open-source-society/computer-science
https://playbook.thoughtbot.com/
Any ideas?


pattern-across backtracking

Now, following line 3 is unreachable. Because line 2 pattern is matched any value.
foo
  x | typeOf(x) == "string" = 1
  x | typeOf(x) == "list" = 2

I guessed wrong :p


Replace alphaDiv and rankedAbundance config select elements

The configurations for alphaDiv and rankedAbundance use native select elements. This PR replaces those native select elements with the new SingleSelect component from CoreUI.

This work now depends on https://github.com/VEuPathDB/CoreUI/pull/119, which changes the type of SingleSelect's value prop to be any.


Attempt at making iOS tests pass under Travis

Current coverage is 93.64% (diff: 100%)

Merging #223 into master will increase coverage by 5.91%

@@             master       #223   diff @@
==========================================
  Files            17         17
  Lines          1108       1557   +449
  Methods         236        233     -3
  Messages          0          0
  Branches        119        118     -1
==========================================
+ Hits            972       1458   +486
- Misses           90         99     +9
+ Partials         46          0    -46

Powered by Codecov. Last update 71708bf...de282e4


GEOMESA-1917 Install Jopt-simple with install-kafka scripts

Signed-off-by: Jim Hughes<EMAIL_ADDRESS>

Ok, I've nuked the jopt bits for the lambda datastore.


Support activation hooks by grammar scope

Description of the Change
Adds activation hook for grammar scope name.
Alternate Designs
None
Why Should This Be In Core?
Is core mechanic
Benefits
Makes activation package agnostic, much like the services API.
Possible Drawbacks
None
Verification Process
Tested manually. Will add tests.
Applicable Issues
Fixes #14148

The test is just a copy of the one above, but the hook changed to source.js:root-scope-used etc.
I think it passes, but running it on my computer seemed to always cause a timeout on the promises (for this, the one above, and several others that changed on each run).


New package: NetDocuments.ndOffice version <IP_ADDRESS>18

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335226 2024-01-24 01:40:33.766 [CLI ] ShellExecute installer failed: 1603 "Failed checking by MSO.dll file version. Any MSO.dll file locations not found in registry. Registry path: SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs" Action start 1:40:33: MSOfficeInsufficientVersionError. Action ended 1:40:33: MSOfficeInsufficientVersionError. Return value 3. Property(S): ErrorDialog = ErrorDlg MSI (s) (90:84) [01:40:33:561]: Product: NetDocuments ndOffice -- Installation failed. MSI (s) (90:84) [01:40:33:561]: Windows Installer installed the product. Product Name: NetDocuments ndOffice. Product Version: <IP_ADDRESS>18. Product Language: 1033. Manufacturer: NetDocuments. Installation success or error status: 1603.

(Automated response - build 642.)

Manual Validation ended with:

8:16:35 AM: Detected 7 WinGet errors: 8:16:35 AM: 2024-01-24 08:16:34.401 [CLI ] ShellExecute installer failed: 1603 8:16:35 AM: "Failed checking by MSO.dll file version. Any MSO.dll file locations not found in registry. Registry path: SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs" 8:16:35 AM: Action start 8:16:34: MSOfficeInsufficientVersionError. 8:16:35 AM: Action ended 8:16:34: MSOfficeInsufficientVersionError. Return value 3. 8:16:35 AM: Property(S): ErrorDialog = ErrorDlg 8:16:35 AM: MSI (s) (44:4C) [08:16:34:181]: Product: NetDocuments ndOffice -- Installation failed. 8:16:35 AM: MSI (s) (44:4C) [08:16:34:181]: Windows Installer installed the product. Product Name: NetDocuments ndOffice. Product Version: <IP_ADDRESS>18. Product Language: 1033. Manufacturer: NetDocuments. Installation success or error status: 1603. 8:16:35 AM: Detected 0 Manual Dependency: 8:16:35 AM: 8:16:35 AM: Detected 0 PowerShell errors: 8:16:35 AM: Detected 1 Application Log errors: 8:16:35 AM: Product: NetDocuments ndOffice -- Unable to check current Office version, please repair your Office installation and try again.

(Automated response - build 629.)

"Product: NetDocuments ndOffice -- Unable to check current Office version, please repair your Office installation and try again"
Seems like the automatic test doesn't have office installed and that's why the installer fails.
Is there anything I need to modify to include it?

Automatic Validation ended with:

Installation failed with exit code -1978335226 2024-01-24 01:40:33.766 [CLI ] ShellExecute installer failed: 1603 "Failed checking by MSO.dll file version. Any MSO.dll file locations not found in registry. Registry path: SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs" Action start 1:40:33: MSOfficeInsufficientVersionError. Action ended 1:40:33: MSOfficeInsufficientVersionError. Return value 3. Property(S): ErrorDialog = ErrorDlg MSI (s) (90:84) [01:40:33:561]: Product: NetDocuments ndOffice -- Installation failed. MSI (s) (90:84) [01:40:33:561]: Windows Installer installed the product. Product Name: NetDocuments ndOffice. Product Version: <IP_ADDRESS>18. Product Language: 1033. Manufacturer: NetDocuments. Installation success or error status: 1603.

(Automated response - build 647.)

Manual Validation ended with:

1:17:04 PM: Product: NetDocuments ndOffice -- Please install the Visual Studio 2010 Tools for Office Runtime then run this installer again. You may download the latest version from the Microsoft Download Center: http://go.microsoft.com/fwlink/?LinkId=140384

(Automated response - build 643.)

This appears to be Microsoft.VSTOR.
Name                                                  Id              Version       Source
----                                                  --              -------       ------
Microsoft Visual Studio 2010 Tools for Office Runtime Microsoft.VSTOR 10.0.60912.00 winget

Automatic Validation ended with:

Installation failed with exit code -1978335226 2024-01-24 01:40:33.766 [CLI ] ShellExecute installer failed: 1603 "Failed checking by MSO.dll file version. Any MSO.dll file locations not found in registry. Registry path: SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs" Action start 1:40:33: MSOfficeInsufficientVersionError. Action ended 1:40:33: MSOfficeInsufficientVersionError. Return value 3. Property(S): ErrorDialog = ErrorDlg MSI (s) (90:84) [01:40:33:561]: Product: NetDocuments ndOffice -- Installation failed. MSI (s) (90:84) [01:40:33:561]: Windows Installer installed the product. Product Name: NetDocuments ndOffice. Product Version: <IP_ADDRESS>18. Product Language: 1033. Manufacturer: NetDocuments. Installation success or error status: 1603.

(Automated response - build 649.)


Angle brackets in preprocessor defines don't work properly

If you have a project level preprocessor define such as ABC=<XYZ>, clang power tools doesn't appear to pass that to the preprocessor properly.  The output of the compile error resulting from that will say -lt XYZ -gt which is obviously incorrect

Indeed, this is an bug of the latest release (v4.0); thank you for reporting it.
We'll fix the issue and release an updated ClangPowerTools version as soon as possible.

It seems that ABC="XYZ" is also bugged, as it results in ""XYZ""

We've looked into it and indeed it is. The next release (v4.1) will address both these issues.


Ref implementation: revisit downloader design

The l1.Downloader is designed to handle multiple L2 execution engines attached to the rollup-node at the cost of complexity.
Why attach multiple engines to the same rollup-node?
The intention for attaching multiple L2 execution engines is to simplify infrastructure: a larger user like infura may have existing infrastructure to host many execution engines (geth/erigon/other nodes), but not the flexibility to add an extra rollup-node process to each of these instances.
Additionally, in eth2 post-merge a similar infra design problem exists as in our case, but it is much more prohibitive to run a consensus-layer node per execution-engine (beacon-nodes are not stateless, much more heavy than rollup-nodes), thus they are looking at attaching multiple execution-engines to the same beacon-node.
If we assume infura/quicknode/etc. upgrade their infra with minimal changes, and follow the L1 infra design as much as possible for L2, then we need to simplify keeping multiple execution-engines in-sync.
Downloader concerns & current remediation

DoS: fetching L1 information is heavy work (especially when fetching individual receipts), a rollup-node must not fall over when a lot of download requests are being made

Back-pressure: after many requests, halt new requests until they can be processed
Bounded parallelism: limit amount of parallel receipt downloads

Multiple engines might all require the same input data (especially in common case where they are all synced to the same block)

De-duplicate in-flight requests
Cache results with LRU

Standard RPC does not support downloading of block with all receipts included

Have to make individual receipt requests (there can be a lot)
Downloader interface can have additional different implementations in the future: detect if the L1 source is geth, we can try a graph-QL implementation to fetch everything at once.
Compatibility with standard RPC is important for usability: every user must be able to deploy a rollup-node attached to existing L1 infra.

Avoid weakest link: e.g. one slow retrieval should not hold back other engines from syncing.

context time-outs and cache eviction stopping open tasks

Complexity + current drawbacks
Thanks to @trianglesphere for going through the downloader in depth and discussing these:

Sharing in-flight and past requests in the same cache
lock around LRU for addition of new tasks is odd
Blocks are being downloaded without bound (but with deduplication), before queuing up bounded receipt requests. (with expected usage this will always be limited to number of engines though)
Retries re-use the worker queue (proto: I like this, maybe not great in some other ways)
event.Feed to distribute results to requests with multiple consumers (because of deduplicated request) is heavy for what it is worth
Adding/Removing workers would be nice to avoid
Closing is extra work

I am relatively happy with the current trade-offs, and would say we need to do a user-interview of some kind with infrastructure hosts to determine a better L1 data-retrieval strategy. The current implementation is tested + handling the work but can be simplified and/or improved if we have a better idea of infrastructure requirements.

A couple extra thoughts on a concurrent downloader

We're limiting by concurrent requests, not RPS which causes problems when using HTTP nodes (also may be able to solve this with some configuration change). RPS is probably a nicer metric to rate limit on, but may not be worth the extra effort over WS.
I explored using the Batch RPC API and it is not currently performant enough to solve the problem of getting all receipts.
While non-standard, using the parity namespace (which has a RPC handler to get all receipts) or some other modification (including another process sitting on the geth node) are options to handle getting lots of receipts
I'm in favor of separating the de-duplication layer and the concurrent downloader to make it easier to understand. When limiting total in flight requests, there will still need to be a shared semaphore, but otherwise the each component is mostly disjoint

Problems with highly concurrent HTTP connections.
When using a HTTP client and using a large amount of concurrency to fetch receipts, there are a lot of short lived HTTP connections that are created. On my mac, these connections then transition to TIME_WAIT and when enough pile up, I get an out of files error. It appears that this might be able to be solved with http://www.unixguide.net/network/socketfaq/4.5.shtml or another configuration change. Websockets and IPC both worked perfectly, even at high levels of concurrent requests.

close in favor #187


[oslog] [stdlib-private] Add a prototype of the new os_log swift APIs that accept string interpolations

The prototypes are added to stdlib/private directory and will be
used only in tests and in experimental code.

This commit adds support for logging string interpolations containing Ints. Support for other types and more exhaustive tests will be brought in incrementally in subsequent commits.

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please clean smoke test

@swift-ci Please clean smoke test

@swift-ci Please clean smoke test

@moiseev  Thanks for the comments. I have pushed a new commit that fixes them. Let me know what you think about the above mentioned choices.

@swift-ci Please smoke test

@eeckstein This is the first PR that bring in the new OSLog API. You were right that I did not need MemoryLayout.size to construct the format string. Int.bitWidth, which is a constant, did suffice  for that purpose.

@swift-ci Please smoke test

@devincoughlin Thanks for the comments.  There are a few things I have commented above that are the important changes.

@swift-ci Please test and merge

@swift-ci Please test and merge

@swift-ci Please test and merge


test(*): upgrade test support

better errors messages
work out of temp directory
debug mode
etc.

remaining failures appear to be legitimate

@lanej this LGTM overall, I have 2 outstanding comments as of this writing. also, if you'd like to omit better error messages, they're coming in https://github.com/deis/workflow/pull/191

@lanej is this ready for final reviews? Realized I've been making comments while it was still marked in progress. I'd love to get these stability fixes in.

@arschles keeps getting clobbered by other merges but it should be fine as is.

@lanej set the appropriate labels and made a few comments

@lanej if you could also amend your commits such that they follow our commit style guidelines, that would be awesome :)
http://docs.deis.io/en/latest/contributing/standards/#commit-style

@technosophos @bacongobbler @arschles got the test suite passing pre-rebase.  Calling it here so I don't have to keep doing so.

I still can't seem to be able to get the tests to pass:
Ran 39 of 58 Specs in 114.629 seconds
FAIL! -- 29 Passed | 10 Failed | 19 Pending | 0 Skipped --- FAIL: TestTests (114.63s)

Some of them are failing for very odd reasons, like so:
Apps
/home/bacongobbler/go/src/github.com/deis/workflow/_tests/apps_test.go:174
  with a deployed app
  /home/bacongobbler/go/src/github.com/deis/workflow/_tests/apps_test.go:173
    can get app info [BeforeEach]
    /home/bacongobbler/go/src/github.com/deis/workflow/_tests/apps_test.go:135

    OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
    debug1: Reading configuration data /home/bacongobbler/.ssh/config
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 19: Applying options for *
    debug1: Connecting to deis.<IP_ADDRESS>.xip.io [<IP_ADDRESS>] port 2222.
    debug1: Connection established.
    debug1: identity file /tmp/deis-workflow-home301379074/.ssh/deiskey-81 type 1
    debug1: key_load_public: No such file or directory
    debug1: identity file /tmp/deis-workflow-home301379074/.ssh/deiskey-81-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-5
    debug1: Remote protocol version 2.0, remote software version Go
    debug1: no match: Go
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-ctr hmac-sha1 none
    debug1: kex: client->server aes128-ctr hmac-sha1 none
    debug1: sending SSH2_MSG_KEX_ECDH_INIT
    debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
    debug1: Server host key: ECDSA 22:c6:51:f3:07:cb:2c:68:4e:99:12:e1:db:4d:36:6b
    debug1: Host '[deis.<IP_ADDRESS>.xip.io]:2222' is known and matches the ECDSA host key.
    debug1: Found key in /home/bacongobbler/.ssh/known_hosts:16
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: Roaming not allowed by server
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: rsa w/o comment
    debug1: Authentications that can continue: publickey
    debug1: Offering RSA public key: /tmp/deis-workflow-home301379074/.ssh/deiskey-81
    debug1: Authentications that can continue: publickey
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

    Expected error:
        <*exec.ExitError | 0xc8200803f0>: {
            ProcessState: {
                pid: 13642,
                status: 32768,
                rusage: {
                    Utime: {Sec: 0, Usec: 0},
                    Stime: {Sec: 0, Usec: 0},
                    Maxrss: 7056,
                    Ixrss: 0,
                    Idrss: 0,
                    Isrss: 0,
                    Minflt: 253,
                    Majflt: 0,
                    Nswap: 0,
                    Inblock: 0,
                    Oublock: 0,
                    Msgsnd: 0,
                    Msgrcv: 0,
                    Nsignals: 0,
                    Nvcsw: 6,
                    Nivcsw: 2,
                },
            },
        }
        exit status 128
    not to have occurred

which sounds like my key wasn't added or something. Then there are some other odd issues like
Builds with a logged-in user with no app
  can deploy the app
  /home/bacongobbler/go/src/github.com/deis/workflow/_tests/builds_test.go:27
Logged in as test-81

• Failure [20.021 seconds]
Builds
/home/bacongobbler/go/src/github.com/deis/workflow/_tests/builds_test.go:47
  with a logged-in user
  /home/bacongobbler/go/src/github.com/deis/workflow/_tests/builds_test.go:46
    with no app
    /home/bacongobbler/go/src/github.com/deis/workflow/_tests/builds_test.go:34
      can deploy the app [It]
      /home/bacongobbler/go/src/github.com/deis/workflow/_tests/builds_test.go:27

      Expected
          <string>: Creating build... done

      to contain substring
          <string>: Creating build... done

      /home/bacongobbler/go/src/github.com/deis/workflow/_tests/builds_test.go:26

Is my test environment set up wrong or something? I'm on Debian Jessie.

@carmstrong builds test got added in a part of the rebase so idk if they were passing at that point.

after cleaning the cluster according to these instructions, I got the following failures:
[Fail] Apps with a logged-in user [It] can create an app with a custom buildpack
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/apps_test.go:88

[Fail] Perms when logged in as an admin user [BeforeEach] can create, list, and delete admin permissions
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/tests_suite_test.go:178

[Fail] Releases with no app [It] can create an app
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/releases_test.go:17

[Fail] Releases with no app [It] can deploy the app
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/releases_test.go:22

[Fail] Releases with a deployed app [It] can list releases
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/releases_test.go:33

[Fail] Releases with a deployed app [It] can rollback to a previous release
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/releases_test.go:40

[Fail] Releases with a deployed app [It] can get info on releases
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/releases_test.go:48

[Fail] Builds with a logged-in user with no app [It] can create an app
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:21

[Fail] Builds with a logged-in user with no app [It] can deploy the app
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:26

Noting that my and @bacongobbler's results were significantly different, does anyone thing it's worth merging https://github.com/deis/workflow/pull/194, so that at least the client side is standardized?

@lanej additionally, I noticed two failures that would be fixed by migrating to using start (@smothiki pointed out that the CLI uses a progress indicator in these operations, which produces false negatives in the matchers):
First failure:
• Failure [2.712 seconds]
Builds
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:47
  with a logged-in user
  /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:46
    with no app
    /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:34
      can create an app [It]
      /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:22

      Expected
          <string>: Creating Application... done, created test-847
          remote available at ssh://git@deis.<IP_ADDRESS>.xip.io:2222/test-847.git

      to contain substring
          <string>: Creating Application... done, created test-847

      /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:21

Second failure:
Builds with a logged-in user with no app
  can deploy the app
  /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:27
Logged in as test-81

• Failure [5.306 seconds]
Builds
/Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:47
  with a logged-in user
  /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:46
    with no app
    /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:34
      can deploy the app [It]
      /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:27

      Expected
          <string>: Creating build... done

      to contain substring
          <string>: Creating build... done

      /Users/aaronschlesinger/gocode/src/github.com/deis/workflow/_tests/builds_test.go:26

test builds fails while matching the output string

this is my current list of failures
Summarizing 7 Failures:

[Fail] Builds with a logged-in user with no app [It] can create an app
/Users/deploy/go/src/github.com/deis/workflow/_tests/builds_test.go:21

[Fail] Builds with a logged-in user with no app [It] can deploy the app
/Users/deploy/go/src/github.com/deis/workflow/_tests/builds_test.go:25

[Fail] Releases with no app [It] can create an app
/Users/deploy/go/src/github.com/deis/workflow/_tests/releases_test.go:17

[Fail] Releases with no app [It] can deploy the app
/Users/deploy/go/src/github.com/deis/workflow/_tests/releases_test.go:22

[Fail] Releases with a deployed app [It] can list releases
/Users/deploy/go/src/github.com/deis/workflow/_tests/releases_test.go:33

[Fail] Releases with a deployed app [It] can rollback to a previous release
/Users/deploy/go/src/github.com/deis/workflow/_tests/releases_test.go:40

[Fail] Releases with a deployed app [It] can get info on releases
/Users/deploy/go/src/github.com/deis/workflow/_tests/releases_test.go:48

Ran 39 of 58 Specs in 124.711 seconds

I'd like to work on making those pass in a separate PR unless someone can confirm they were working before.

@arschles work on execute was done before you started the start stuff.  it's needed for some of the tests to pass and should stay passing after everything is converted to start

@lanej yea, I know. What I'm saying is that the start stuff will likely fix those two test failures, as they're false negatives.

@arschles i converted the tests you were referring to.  One Xit on a actual failure.  Now have a consistently passing build with the exception of sporadic ssh key issues that happen ~1/10 full runs.

@lanej added 2 "not blocking this PR" comments, so otherwise LGTM

Ref #183


Provider can wrap non-root components

Provider only needs to wrap an ancestor component to pass store to connect. A small reference, but it's always good to use consistent language.

Thanks!


fix: yurtctl fail to convert minikube cluster.

Ⅰ. Describe what this PR does
(1) support domain name for server addr.
(2)add  Usages and  Groups when creating bootstrap token.
Ⅱ. Does this pull request fix one issue?

No issue, the reason for the modification is as follows:
(1)minikube use domain name control-plane.minikube.internal to access apiserver.
(2)bootstrap token need set  authentication,signing for  Usages and system:bootstrappers:kubeadm:default-node-token for groups.
Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
Ⅳ. Describe how to verify it
make test
make build
_output/bin/yurtctl convert --provider [minikube|ack|kubeadm]
Ⅴ. Special notes for reviews

LGTM

LGTM


Correct error in definition of smallfuck

The stated definition made me wonder for quite a while if I was crazy, but it would not be a usable language; one coud never progress past a loop. The definition I've updated to follows the one stated on esolang: https://esolangs.org/wiki/Smallfuck. I hope the PR can be merged soon.
Also, thanks for the fascinating blog post!

Oops! Thanks for the PR! Appreciate it.


high_resolution no class_name "fm-vjs-quality"

I got this error when I set the options --high-resolution
selenium.common.exceptions.NoSuchElementException:
Message: no such element: Unable to locate element:
{"method":"class name","selector":"fm-vjs-quality"}

The problem is there is no class name "fm-vjs-quality" in some cases.
P.S.
@KrzysztofKarol It's from your last PR. I don't want to step on your feet. But if you want me to fix that just let me know.

fm-vjs-quality seems like random generated className

@exitudio Could you tell me what course is that or what class has this element in your case

Oh, I tried it again. It seem like, I typed the wrong password then it took me to the guess page which there is only one resolution.


Add ARM template for spinning up an Azure SQL instance

Added an ARM template for spinning up a Azure SQL instance with one or more databases based on the configuration in current production environment. This enables a standard configuration for all Azure SQL instances across the IOC application landscape

Reviewing ARM-templates is kind of hopeless... :-S

Yes, it's quite an extensive process.


Pop up form

ayoBranch pop up form unable to close itself or reopen itself
Uncaught TypeError: Cannot read property 'style' of undefined     at closeForm (script.js:42)     at HTMLSpanElement.onclick (?authuser=0:21)

form was a global variables. Issue has been fixed.


not able to update!!!!

I am not able to update spyder!!!

Hi @akkiteja, could you please provide more information about the error that you are getting?

I have the same problem. I'm using Anaconda Navigator in macOS and when I use the the command conda update spyder  it tells me:
Updating spyder is constricted by

anaconda -> requires spyder==4.1.4=py38_0

If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>`

done

# All requested packages already installed.

@akkiteja, @luismiguells, please open the Anaconda prompt and run there
conda update anaconda
conda update spyder

That should work.

@ccordoba12 there is not Anaconda prompt in macOS.

Then ue Terminal.app.

Thanks. Can I invite any of you members to my organization?????
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: Carlos<EMAIL_ADDRESS>Sent: Friday, September 4, 2020 11:03 AM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [spyder-ide/spyder] not able to update!!!! (#13702)
Then ue Terminal.app.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/spyder-ide/spyder/issues/13702#issuecomment-686918664, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQWXQHIO725N55NSX4ZKLSDSEB32XANCNFSM4QUTH55A.

K
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: Luis Miguel López<EMAIL_ADDRESS>Sent: Friday, September 4, 2020 10:28 AM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [spyder-ide/spyder] not able to update!!!! (#13702)
I have the same problem. I'm using Anaconda Navigator in macOS and when I use the the command conda update spyder it tells me:
Updating spyder is constricted by
anaconda -> requires spyder==4.1.4=py38_0
If you are sure you want an update of your package either try conda update --all or install a specific version of the package you want using conda install <pkg>=<version>
done
All requested packages already installed.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/spyder-ide/spyder/issues/13702#issuecomment-686906496, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQWXQHIZF6UTANZDMEOJ3C3SEBXW3ANCNFSM4QUTH55A.

I believe I am having a similar issue.  When I run the commands you suggested, I am told:
>conda update anaconda
Collecting package metadata (current_repodata.json): done
Solving environment: done
# All requested packages already installed.

Then
>conda update spyder
Collecting package metadata (current_repodata.json): done
Solving environment: |
Updating spyder is constricted by
anaconda -> requires spyder==3.3.6=py37_0
If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>
done
# All requested packages already installed.

FYI:
>conda --version
conda 4.8.4

On Windows 10.

@PrinceBlueberry, please run
conda install spyder=4.1.5

to see if it works for you.

@ccordoba12 after about 30 minutes of run time (and thousands of debug lines), conda install spyder=4.1.5 decided:
UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

and then listed a bunch of things like python-dateutil -> python[version='>=3.8,<3.9.0a0'].  I'm assuming that means the version of python that I have insalled (v3.7) is not compatible with Spyder v4+?
By the way, one of the debug messages was:
If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.

So if someone did want conda to update python along with Spyder, then how would they "explicitly specify that"?

It seems you'd need to reinstall Anaconda to avoid that issue. If you don't want to do that, then you need to install Spyder in a different environment.
For that, please use this command:
conda create -n spyder-4 spyder=4.1.5 python=3.7

@PrinceBlueberry, please run
conda install spyder=4.1.5

to see if it works for you.

I use the command in the Terminal.app in macOS 10.15.6 and it doesn't update, throws me the following:

@luismiguells, It hasn't finished. Please wait for it to finish.

After using the command conda install spyder=4.1.5 suggested by @ccordoba12, Spyder is updated. The problem is that when I use  conda update --all command  it downgraded the version. I atttach the picture.

Then don't use that command (it's really not recommended).

hi


Write User Guide in the Wiki

Basics that need to be covered:

[ ] Using AJTS in Maven
[x] Basic JUnit test example transformation with @Public and implications
[ ] Security and default Configuration
[ ] Hidden Tests and Deadlines
[ ] Timeouts with @StrictTimeout
[ ] Test failures and Exceptions
[ ] Path Access
[ ] Trusted Classes and @WhitelistClass
[ ] IO-Testing and @MirrorOutput
[ ] Networking with localhost
[ ] Testing with jqwik

I will use asciidoc for that and likely set up a separate repository and website (e.g. GitHub pages), similar to https://mograsim.net


Initial system plugins

Initial plugins added. These won't actually run until we get the component run-time in the browser working, which will have to include the dynamic component linking.
But this will actually build each of these plugins, and it shows the ergonomics of writing plugins.

Closes #541, #630


Check if OIDC provider is already present before creating it.

What type of PR is this?
/kind bug
What this PR does / why we need it:
Check if OIDC provider is already present before creating it. This handles the case where OIDC provider was added outside CAPA.

Could you create a Jira ticket to track the work to merge this to upstream? Thanks!

https://databricks.atlassian.net/browse/PLAT-56773


📝 Enumerating eslint rules

This is a non breaking change.
Followed the basic structure of eslint-config-walmart and migrated our rules.
What changed

Split the rules into categories according to http://eslint.org/docs/rules/
Added supports for different configurations (es5, es5-test, es6, etc.)
Added support for commitizen
Added validation on commit messages (husky and validate-commit-msg)
Added eslint as a dependency and peer dependency
Added npm scripts

npm run commit for those who don't have commitizen installed globally
npm run lint self linting
npm run find-new-eslint-rules - checks for new (missing) rules inside for all the configurations
npm run test - lints and checks for rules

Pimped up README
Added a license files
Added ignore on debug files

More things to look into

[x] Add contribution guide

[x] How to commit

[x] Split envs into separate files
[x] Add support for eslint-find-rules
~Add travis support (maybe this shouldn't be part of this PR)~ Moved to issue https://github.com/Casumo/eslint-config-casumo/issues/2
~Add version bumping (maybe this shouldn't be part of this PR)~ Moved to issue https://github.com/Casumo/eslint-config-casumo/issues/3

I don't know the right solution yet, I am just starting out from that I would like to use something like this:
// tests/.eslintrc
{
    "extends": [
        "casumo",
        "casumo/es6"
        "casumo/mocha"
    ]
}

// gulp/.eslintrc
{
    "extends": [
        "casumo",
        "casumo/es6"
        "casumo/node"
    ]
}

So the environment specific stuff would be only in casumo/node and casumo/mocha in this case. What do you think about that?

Had a change of heart and completely changed the direction.
Now we have

./configurations all configurations every application should ideally pick from here
./rules rules grouped by plugin type
./rules/eslint eslint rules split by categories
./rules/mocha relevant mocha rules

So you could use it like this:
By default it is es5 config
{
    "extends": "casumo"
}

or
{
    "extends": "casumo/configurations/es5-browser"
}

and in the gulp folder
{
    "extends": "casumo/configurations/es5-node"
}

Also all rules are enabled (no commented rules), this is to prepare for the check for missing rules npm script

One thing that I miss is the contribution guideline for it, as I don't really get the main differences between on and off rules, and how to update / use them, so I think new people wouldn't get it as well.
First I thought that the off rule files are containing rules that we don't use, however I saw that the on files contain also the same rules. Are they used to turn off categories explicitly?

PR changes complete. Bumped the version to v1.1.0.
Waiting for 👍 so I will merge it in and publish the package.


Contract undefined not found with npx oz deploy of @openzeppelin/contracts-ethereum-package/StandaloneERC20

Deploying @openzeppelin/contracts-ethereum-package with OpenZeppelin CLI 2.8 RC2 gives error Contract undefined not found for both a development network and to a public testnet.
Works with OpenZeppelin CLI 2.71 using oz create.
node v10.19.0
npm 6.13.7
oz 2.8.0-rc.2
os: Windows 10 WSL
Setup
$ npx oz init
$ npm i @openzeppelin/cli@rc
$ npx oz link @openzeppelin/contracts-ethereum-package

Deploy (fails)
$ npx oz deploy
Nothing to compile, all contracts are up to date.
? Choose the kind of deployment upgradeable
? Pick a network development
? Pick a contract to deploy @openzeppelin/contracts-ethereum-package/StandaloneERC20
Contract undefined not found

This seems like an error in oz create in 2.8 RC as well.


Document Calyx's signal interface

The docs should explicitly state that simulating Verilog generated by Calyx requires that the toplevel reset and go signals are asserted in that order.
@rachitnigam Any thoughts on where to put this? Verilator and Icarus are talked about here, but it seems a bit of a weird place to put it. On the other hand,  not sure of a better place to put before doing some bigger refactoring (possible a dedicated "Simulation" section?).

As seen here:

@nathanielnrn had a synchronous discussion about this and we noticed a couple of problems:

The main.go signal isn't asserted in the cocotb harness
The main.reset is not asserted which is needed to reset the state inside the control registers

The fix was to add the following to the top of the harness:
    # Assert reset for 5 cycles
    main.reset.value = 1
    await ClockCycles(main.clk, 5)  # wait a bit
    main.reset.value = 0

    # Start the execution
    main.go.value = 1

There is a bigger problem to address here: writing a harness to execute Calyx programs is non-trivial because the user needs to reset control state and then correctly assert the go signal. We should document this somewhere.

Originally posted by @rachitnigam in https://github.com/cucapra/calyx/issues/1801#issuecomment-1854509259

I think this should go under "Running Calyx Programs" with a new file called "Interfacing with Calyx". Do you want to take a shot at writing this up? Might be a good exercise so that we can figure out which details need to be mentioned!

Yes, that sounds like a great location! Thanks for bringing it up. This will in general be very helpful for people who want to generate a thing with Calyx and then incorporate it into a larger RTL design.
(This is slightly tangential, but it occurs to me that this points out a deviation that we will incur when transitioning from the old Verilog AXI interface to a Calyx-generated AXI interface… that is we probably want to have some way to make this interface not be required for the latter! Otherwise, the Xilinx shell will of course not know that it needs to do these things.)

Happy to take this up


Make window same size as image (full size)

I am currently using this as per the comments in other open issues:
app.config(function (LightboxProvider) {
  LightboxProvider.fullScreenMode = true;
  LightboxProvider.calculateImageDimensionLimits = function (dimensions) {
          return {
              'maxWidth': dimensions.windowWidth,
              'maxHeight': dimensions.windowHeight
          };
      };

  LightboxProvider.calculateModalDimensions = function (dimensions) {
      return {
          'width': dimensions.imageDisplayWidth,
          'height': dimensions.imageDisplayHeight
      };
  };
});

I have also tried variants of these and they don't seem to work.
How can this be achieved?

I reworked the core, but you could also use the same methods in provider.config https://github.com/elementdigital/angular-bootstrap-lightbox/tree/style-animate


tensorflow/core/platform/setround.cc:27:4: error: 'fesetround' is not a member of 'std'

ERROR: /local/tmp/tensorflow/tensorflow/core/BUILD:1036:1: C++ compilation of rule '//tensorflow/core:lib_internal' failed: gcc failed: error executing command /local2/tmp/brew/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/local2/tmp/brew/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 ... (remaining 104 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
tensorflow/core/platform/setround.cc: In constructor 'tensorflow::port::ScopedSetRound::ScopedSetRound()':
tensorflow/core/platform/setround.cc:27:4: error: 'fesetround' is not a member of 'std'
    std::fesetround(FE_TONEAREST);
    ^
tensorflow/core/platform/setround.cc:27:4: note: suggested alternative:
In file included from tensorflow/core/platform/setround.cc:19:0:
/local2/tmp/brew/include/fenv.h:88:12: note:   'fesetround'
 extern int fesetround (int __rounding_direction) __THROW;
            ^
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.

Looks like the issue is that this file is being compiled with gcc instead of g++

gcc vs. g++ is highly unlikely to be the reason.  What platform are you on, and what compiler are you using?

@girving FYI: I'm fixing this internally and will get it pushed to github. port::ScopedSetRound was kind of broken.

@carlorosati FYI: The fix was submitted internally at Google and should appear on Github in a day or two.


[ISSUE #7131] Replace java.nio.ByteBuffer with class name

Fixes #7131
Brief Description

How Did You Test This Change?

LGTM

Hi, I've read the log but can't understand why it building fail, cause I havn't modify any code actually.

@RongtongJin Pay attention to this patch, can it be merged?

Codecov Report
Attention: 10 lines in your changes are missing coverage. Please review.

Comparison is base (c2c29c2) 43.20% compared to head (5a3cddd) 43.17%.
Report is 1 commits behind head on develop.

Files
Patch %
Lines

...apache/rocketmq/store/timer/TimerMessageStore.java
20.00%
4 Missing :warning:

...apache/rocketmq/broker/slave/SlaveSynchronize.java
0.00%
3 Missing :warning:

...pache/rocketmq/common/message/MessageAccessor.java
0.00%
3 Missing :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #7132      +/-   ##
=============================================
- Coverage      43.20%   43.17%   -0.03%
- Complexity      9796     9799       +3
=============================================
  Files           1164     1164
  Lines          84420    84428       +8
  Branches       10961    10963       +2
=============================================
- Hits           36474    36456      -18
- Misses         43420    43447      +27
+ Partials        4526     4525       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


reference searchbox.js to inject styling, fixes #16

Instead of duplicating all the CSS as suggest in #16 , references the js and inject the style dynamically. Fixes the issue of the search dialog not appearing for me.

Cool, thanks for PR! :+1:


Settings menu on the page

Find a good place to place settings menu on the page

phandango has a menu bar :)


Add Netlify previews

https://www.netlify.com/ can greatly speed up website previews if integrated.

Hi, thanks for the suggestion. I'm not sure I understand how you're suggesting this project use it. Could you elaborate?

@paulmelnikow see Netlify check results here - https://github.com/kubernetes/kubernetes.github.io/pull/3522

I see, there's a Github integration which generates a built copy of the website for a PR.
An alternative we could consider is Heroku Review Apps, which puts up a live version of the app against a PR. It would let reviewers and commenters interactively test example badges without having to install and run the review branch locally. We could paste live badge links into the PR too.

Netlify is a host for static websites. Their service wouldn't work for this project, as we need to serve badges dynamically.
However, something like Heroku Review Apps is a great idea! Either that or spin up a Docker container on our own VPS. I'm not sure how the shields.io site is currently hosted, but the approach that is chosen should be close to whatever is done in production so it's an accurate representation of how the change would behave 😃

@Daniel15 shields is a static site. no? There is no backend logic IIRC.

@techtonik - It's not static, otherwise the badges wouldn't actually work as expected. The badges need to load data in real-time, for example:

In order to be static, every single badge would need to be computed ahead of time rather than dynamically generated at runtime. This is impossible as there's a practically infinite number of possible combinations :)

Server is needed, indeed. Heroku Review App looks neat, but from what I could see it is a paid option and I don't understand the 5 days lifespan. Netlify static copy could be available indefinitely.

A snapshot of the index page could be useful for some PRs as a basic confidence check. Though if we have a review apps running while PRs are open, we probably wouldn't need the static copy too.
I'm not sure review apps would end up costing anything. If they did we could ask Heroku if they'd sponsor us.
Spinning up our own docker containers is an interesting idea. I wonder if there is a tool that would integrate with github and do most of the work for us. It would be a fun tool to build – though it would be a project of its own!
Test–prod parity is a good principle to strive for, though we should balance that against how much work it is to build and maintain our own automation system.
Tangentially related: something I'd really like to see is a scalability test: a test suite which simulates real traffic against a test server. We could run it before a deploy, on PRs which seem risky, maybe weekly on master. That's the area where test–prod parity would be really important.

So are PR previews functional?

Spinning up our own docker containers is an interesting idea. I wonder if there is a tool that would integrate with github and do most of the work for us. It would be a fun tool to build – though it would be a project of its own!

There are tools like https://github.com/drone/drone but for GitHub integration they need to have some authenticated point of access to submit results.

Tangentially related: something I'd really like to see is a scalability test: a test suite which simulates real traffic against a test server. We could run it before a deploy, on PRs which seem risky, maybe weekly on master. That's the area where test–prod parity would be really important.

Is it already possible to catch anonymized traffic from current site? Or at least get some statistics?

Heroku Review Apps are live for PRs. They need to be triggered by one of the maintainers, but it's an easy thing to do when it's useful.
Stats, unfortunately not, though this would definitely be useful! That's in #966.

Is there a documentation about how triggering process works?

Yes, our maintainer documentation could be better. There is so much to do in this project! I'd be happy for you to add it to CONTRIBUTING.md.
Alternatively you could work on automating it. By design, Heroku doesn't auto deploy review apps from forks. But maybe we could configure probot to respond to a maintainer comment and deploy from that, chat-ops style.

Well, I am not a maintainer, so I can not write about something I can not try. Only after there is a description of the manual procedure, it can be automated. I guess right now it is like this - somebody with Heroku privileges (who?) goes to Heroku, chooses (or enter?) the PR and triggers a build for this PR. I mean I would be happy to read more and infer the correct order operation if not this:

=)


ethereum.decode does not work for all encodings

I have the following bytecode which is an input of the following tx
0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000dbd510f9ebb7a81209fccd12a56f6c6354aa8cab000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003ba340bc4194d7315c6f9f19aabc5f4a5cdc2e220000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000493e0000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000005d7000000000000000000000000000000000000000000000000000000000597771400000000000000000000000000000000000000000000000000000000059682f0000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4f34308ef00000000000000000000000040a2accbd92bca938b02010e17a5b8929b49130d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000152007ddefa2f027691116d0a7aa6418246622d70b12a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000a275da33fe068cd62510b8e3af7818ede891cdff0000000000000000000000000000000000000000000000000005b7e11a47f000000014f33fc01017d9ac6762e8285b51ad07089e51000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000649b890b700000000000000000000000003ba340bc4194d7315c6f9f19aabc5f4a5cdc2e22000000000000000000000000ffcc60e7dbf2c9accdb0b8caa699d7b50086c8070000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091a275da33fe068cd62510b8e3af7818ede891cdff0000000000000000000000000005ba1044cbc00000000000000000000000000000015549b2f3b4007ddefa2f027691116d0a7aa6418246622d70b12a6a27a1a4dd4981e40f406dcef00a654b997f0d1e97b9c9d904e497d6770822215c49b80b54abe913192231475ce47b6ca4a38518440e209941e0592d6bc414891b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000413a177d93f69420b30a4b870a016171e2b088b8db1ffddab4221c5e326c4bfd3101afb0daad0e623f926ac626248bdeb3b08ef2e9781478f3c78961af4fb4e7931b00000000000000000000000000000000000000000000000000000000000000

To do that , the only way right now would be to slice off the function name and then use ethabi decode function. But even then , the eth decode fails.
// Following function was used inside the mapping file.
function decodeUserOpInput(userOpInput: string): void {
  const inputParams = userOpInput.slice(10);
  log.info("{}", [inputParams]);

  const decoded = ethereum.decode("((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", Bytes.fromHexString(inputParams));
  if (decoded == null) {
    return;
  }
  // log.info("{}",[decoded.toTuple()[1].toString()]);
}

The ABI for the tx input is
{
    "inputs": [
      {
        "components": [
          { "internalType": "address", "name": "sender", "type": "address" },
          { "internalType": "uint256", "name": "nonce", "type": "uint256" },
          { "internalType": "bytes", "name": "initCode", "type": "bytes" },
          { "internalType": "bytes", "name": "callData", "type": "bytes" },
          {
            "internalType": "uint256",
            "name": "callGasLimit",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "verificationGasLimit",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "preVerificationGas",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxFeePerGas",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "maxPriorityFeePerGas",
            "type": "uint256"
          },
          {
            "internalType": "bytes",
            "name": "paymasterAndData",
            "type": "bytes"
          },
          { "internalType": "bytes", "name": "signature", "type": "bytes" }
        ],
        "internalType": "struct UserOperation[]",
        "name": "ops",
        "type": "tuple[]"
      },
      {
        "internalType": "address payable",
        "name": "beneficiary",
        "type": "address"
      }
    ],
    "name": "handleOps",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }

Since the mapping decoding did not work , I tried doing it with ethabi and the following code had to be used to break it down.
The ethabi needed multiple params to debug due to the following issue - https://github.com/rust-ethereum/ethabi/issues/245
ethabi decode
params -t '(address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[]'
-t 'address'
0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000dbd510f9ebb7a81209fccd12a56f6c6354aa8cab000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003ba340bc4194d7315c6f9f19aabc5f4a5cdc2e220000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000493e0000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000005d7000000000000000000000000000000000000000000000000000000000597771400000000000000000000000000000000000000000000000000000000059682f0000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4f34308ef00000000000000000000000040a2accbd92bca938b02010e17a5b8929b49130d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000152007ddefa2f027691116d0a7aa6418246622d70b12a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000a275da33fe068cd62510b8e3af7818ede891cdff0000000000000000000000000000000000000000000000000005b7e11a47f000000014f33fc01017d9ac6762e8285b51ad07089e51000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000649b890b700000000000000000000000003ba340bc4194d7315c6f9f19aabc5f4a5cdc2e22000000000000000000000000ffcc60e7dbf2c9accdb0b8caa699d7b50086c8070000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091a275da33fe068cd62510b8e3af7818ede891cdff0000000000000000000000000005ba1044cbc00000000000000000000000000000015549b2f3b4007ddefa2f027691116d0a7aa6418246622d70b12a6a27a1a4dd4981e40f406dcef00a654b997f0d1e97b9c9d904e497d6770822215c49b80b54abe913192231475ce47b6ca4a38518440e209941e0592d6bc414891b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000413a177d93f69420b30a4b870a016171e2b088b8db1ffddab4221c5e326c4bfd3101afb0daad0e623f926ac626248bdeb3b08ef2e9781478f3c78961af4fb4e7931b00000000000000000000000000000000000000000000000000000000000000

I want to understand if it's possible to do it using the current implementation in the graph-ts library or if there is any work around for this ?

Hi, I have been trying to decode below input in the said decode signature and the ethereum.decode function from<EMAIL_ADDRESS>is not able to decode and always returns null. I have mentioned the expected output below.
Encoded Data: 0x000000000000000000000000c9154424b823b10579895ccbe442d41b9abd96ed00000000000000000000000000000000000000000000000000000000000000404b1bd82c5788cdd04891805420fb25b998f04a9000000000000000000000004800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000342f697066732f516d5972774b507942736f634b7141644232547a6a51504548667a334a38676b6b647368445559636565725a594400000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004b1bd82c5788cdd04891805420fb25b998f04a90000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004b1bd82c5788cdd04891805420fb25b998f04a9000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000411f0520c593dc4abdab59c4d98857aecb5c2044fa54c38457a9af73d4a92643b60f20f43770e9e4eee28c308cfa280051214e21e4d569f53a610e25e971d1987d1b00000000000000000000000000000000000000000000000000000000000000
Decode Signature: (address,(uint,string,(address,uint96)[],(address,uint96)[],bytes[]))
Expected Output: address: addr 0xc9154424B823b10579895cCBE442d41b9Abd96Ed,tuple(uint256,string,tuple(address,uint96)[],tuple(address,uint96)[],bytes[]): mintData<PHONE_NUMBER>7161002881133299338343911466387578307505366653877749112949075607624,/ipfs/QmYrwKPyBsocKqAdB2TzjQPEHfz3J8gkkdshDUYceerZYD,0x4b1BD82c5788Cdd04891805420fb25B998f04A90,10000,0x4b1BD82c5788Cdd04891805420fb25B998f04A90,1000,0x1f0520c593dc4abdab59c4d98857aecb5c2044fa54c38457a9af73d4a92643b60f20f43770e9e4eee28c308cfa280051214e21e4d569f53a610e25e971d1987d1b
txHash: https://etherscan.io/tx/0x0061c42b5c653d330c90f5d4cd83b952b1e157a9d32a3394df20d13eb0eb9846
Expected solution: It would be great if graph-ts lib could support array decoding OR if subgraphs could support external libraries like ethers.js


Change order in migrations CI

closes #1163
Checklist before merging

[ ] I added an appropriate entry to CHANGELOG.md
[ ] I merged main into the current branch.

Before this pr (e.g https://github.com/fractal-analytics-platform/fractal-server/actions/runs/7478203056/job/20352645332?pr=1137#step:10:21)
2024-01-10 16:56:27,040 - fractal_server.app.db - WARNING - SQLite is supported (for version >=3.37) but discouraged in production. Given its partial support for ForeignKey constraints, database consistency cannot be guaranteed.
WARNING:root:[Project    1] timestamp_created=datetime.datetime(2023, 6, 27, 15, 54, 31, 667519, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    2] timestamp_created=datetime.datetime(2023, 6, 27, 15, 55, 23, 122511, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    3] timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 30, 361417, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    4] timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 56, 714489, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    5] timestamp_created=datetime.datetime(2023, 6, 27, 16, 47, 3, 587612, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    6] timestamp_created=datetime.datetime(2023, 6, 30, 9, 3, 49, 643708, tzinfo=datetime.timezone.utc) -> skip.

After this pr (e.g. https://github.com/fractal-analytics-platform/fractal-server/actions/runs/7501702670/job/20422860888?pr=1164#step:10:23)
2024-01-12 11:43:59,358 - fractal_server.app.db - WARNING - SQLite is supported (for version >=3.37) but discouraged in production. Given its partial support for ForeignKey constraints, database consistency cannot be guaranteed.
WARNING:root:[Project    1] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    1] New value: timestamp_created=datetime.datetime(2023, 6, 27, 15, 54, 31, 667519, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    2] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    2] New value: timestamp_created=datetime.datetime(2023, 6, 27, 15, 55, 23, 122511, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    3] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    3] New value: timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 30, 361417, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    4] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    4] New value: timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 56, 714489, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    5] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    5] New value: timestamp_created=datetime.datetime(2023, 6, 27, 16, 47, 3, 587612, tzinfo=datetime.timezone.utc)
 WARNING:root:[Project    6] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    6] New value: timestamp_created=datetime.datetime(2023, 6, 30, 9, 3, 49, 643708, tzinfo=datetime.timezone.utc)

Before this pr (e.g https://github.com/fractal-analytics-platform/fractal-server/actions/runs/7478203056/job/20352645332?pr=1137#step:10:21)
2024-01-10 16:56:27,040 - fractal_server.app.db - WARNING - SQLite is supported (for version >=3.37) but discouraged in production. Given its partial support for ForeignKey constraints, database consistency cannot be guaranteed.
WARNING:root:[Project    1] timestamp_created=datetime.datetime(2023, 6, 27, 15, 54, 31, 667519, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    2] timestamp_created=datetime.datetime(2023, 6, 27, 15, 55, 23, 122511, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    3] timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 30, 361417, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    4] timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 56, 714489, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    5] timestamp_created=datetime.datetime(2023, 6, 27, 16, 47, 3, 587612, tzinfo=datetime.timezone.utc) -> skip.
WARNING:root:[Project    6] timestamp_created=datetime.datetime(2023, 6, 30, 9, 3, 49, 643708, tzinfo=datetime.timezone.utc) -> skip.

After this pr (e.g. https://github.com/fractal-analytics-platform/fractal-server/actions/runs/7501702670/job/20422860888?pr=1164#step:10:23)
2024-01-12 11:43:59,358 - fractal_server.app.db - WARNING - SQLite is supported (for version >=3.37) but discouraged in production. Given its partial support for ForeignKey constraints, database consistency cannot be guaranteed.
WARNING:root:[Project    1] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    1] New value: timestamp_created=datetime.datetime(2023, 6, 27, 15, 54, 31, 667519, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    2] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    2] New value: timestamp_created=datetime.datetime(2023, 6, 27, 15, 55, 23, 122511, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    3] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    3] New value: timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 30, 361417, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    4] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    4] New value: timestamp_created=datetime.datetime(2023, 6, 27, 16, 38, 56, 714489, tzinfo=datetime.timezone.utc)
WARNING:root:[Project    5] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    5] New value: timestamp_created=datetime.datetime(2023, 6, 27, 16, 47, 3, 587612, tzinfo=datetime.timezone.utc)
 WARNING:root:[Project    6] timestamp_created=datetime.datetime(2000, 1, 1, 0, 0, tzinfo=datetime.timezone.utc) -> replace with job timestamps.
WARNING:root:[Project    6] New value: timestamp_created=datetime.datetime(2023, 6, 30, 9, 3, 49, 643708, tzinfo=datetime.timezone.utc)

That's great!
Thanks for catching this :)


Allow ram shares to come from SSM params

Currently running into the following error because my ram shares are coming from SSM params:
  64:   for_each = local.ram_share_enabled ? toset(var.pool_config.ram_share_principals) : []
    ├────────────────
    │ local.ram_share_enabled is true
    │ var.pool_config.ram_share_principals is list of string with 1 element

Sensitive values, or values derived from sensitive values, cannot be used as
for_each arguments. If used, the sensitive value could be exposed as a
resource instance key.

This is a simple fix using "nonsensitive"

Instead can you just up pack them yourself in a local value then pass to the module?
locals {
  ramprinciple = nonsensitive(xyz)
}

As per @drewmullen's message, this feature can be applied outside the module using a local variable.
locals {
  ramprinciple = nonsensitive(xyz)
}


[AutoPR applicationinsights/data-plane] [App Insights] Update python output folder

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4120

This PR has been merged into https://github.com/Azure/azure-sdk-for-js/pull/206


Change color of powerbar?

https://raw.githubusercontent.com/GryllsAddons/AddonPreviews/main/GryllsUnitFrames/GUF1.png
I tried to download the gryllsUnitFrames where the screenshot is from, but while the other features described in the addon works - it does not make the manabar white like on the screenshots, and there seems to be no function inside the addon that can change it. It can change the text on the manabar to white, but not the bar itself.
It said in that github that the addon is a part of the shagutweaksmods now, so thats why im posting here.
Maybe im doing something wrong, otherwise i beg you to add this feature :) thank you

Thanks for the request, the GryllsUnitFrames addon allowed you to colour the text or hide the text under certain conditions.
To clarify, you would like to find a way to change the color of the manabar to white? e.g. mana/rage/energy would show as a white bar instead of blue/red/yellow?

Correct. However energy and rage have colors that are easily seen, it would be nice to keep the colors for those. Only in the case of mana is the color an issue. Dark blue on dark background dont work. So i would like the powerbar to be white in the case of mana. White/yellow/red instead of dark blue/yellow/red.

I've added a mod which should change the mana color to white. Please download and install the addon again and it should appear in the "Unit Frames" section under "Unit Frames White Mana".

It works! amazing feature thank you

I've just uploaded a new version of this which should be more efficient.


Expire timers when switching modes or connecting EV

Current situation:

Charge mode changes do not happen instantly, but only depending on the current interval configuration
When the previous charging mode was PV and the charger is capable of 1p3p, it might be in the 1p state
Switching between 1p and 3p is also depending on timers, as this should not happen too often (it could cause damages otherwise)

The problem:

When switching to now charging might start with 1p, and it is unclear to the user if or when it might change as the expectation is charge mode node will always charge with 3p

Solution options:

When the user switches to now and the charger is in 1p mode, ignore the timer and switch to 3p
Highlight in the UI that the switch will happen and how long it will take, also why. See https://github.com/evcc-io/evcc/issues/1821

See also: https://github.com/evcc-io/evcc/discussions/1819

Now schaltet bereits auf 3p, berücksichtigt aber die Timer. Frage wäre ob wir- technisch gesprochen- bei jedem Moduswechsel (und nicht nur bei now) alle Timer expired wollen i.S. von "Anwender tut was und erwartet sofort Ergebnis"?

Ja, bitte.

Sollte zumindest in Teilen durch https://github.com/evcc-io/evcc/pull/2168 adressiert sein


How to initialize storage with environment variable rather than using key.json

I want to do this because I am working on this because I don't want to commit my credentials into the source control.

It worked I had to do this
const storage = new Storage({
  projectId: process.env.project_id,
  credentials: {
    private_key: process.env.private_key.replace(
      new RegExp("\\\\n", "g"),
      "\n"
    ),
    client_email: process.env.client_email,
  },
});


Remember my native language to the extension settings

The following chat allows code descriptions in my language (Japanese).
/explain 日本語で回答

However, it is time-consuming to specify my language each time.
So, please add a setting item for my native language to the extension settings, and add it automatically to AI instructions. If the instructions are only /explain, it will save my time.
If my native language can be automatically obtained from "VSCode settings" or "GitHub account settings", it may save further time to setup this extension.

@lilacs2039 do you use a language pack in VS Code? Perhaps we could infer the desired language from that, cc @TylerLeonhardt

vscode.env.language would be set to ja I believe if the user is using a language pack.

@lilacs2039 do you use a language pack in VS Code? Perhaps we could infer the desired language from that

No, I'm not using any language packs.

vscode.env.language would be set to ja I believe if the user is using a language pack.

This method looks good. My AI suggested the same method. (But I couldn't set up the vscode extension development environment in my environment, so I couldn't check the value)

Using a language pack has been the way to tell VS Code you're looking to use a different language and installing one is what changes the value of the vscode.env.language API.
I think that Copilot Chat could use this value to influence how Copilot should respond, but this won't help you if you don't use a language pack.


Native QR code support

Description
These days, QR codes are a common addition to print  and digital media. It would be nice for Typst to support native creation of QR codes from strings via a #qrcode( data ) function.
Use Case
There are a lot of use cases. For URLs in print documents, a QR code could point to the mentioned website. As a teacher, I often use QR codes to hide hints or solutions the students can scan during work.

Do you have a schedule for qasm plugins somewhere?

Sounds great. I hope there will be some developer documentation- at least for the wasm-plugin-interface- ;-)

See #1555

I will have a look at the plugin system once it's merged.

I will have a look at the plugin system once it's merged. QR-Codes, however, will only be possible with the #1810 functionality, since a plugin seems to return only pure data, so content elements.

The QR code could be created using typst drawing commands instead of an image

@jneug - Please see the discussion under https://github.com/typst/typst/discussions/1643

@Enivex , it could be a package even if it uses WebAssembly plugins!

@Enivex , it could be a package even if it uses WebAssembly plugins!

I know, I'm just saying that in theory it could be created in pure typst.

Would incremental compilation mean that the QR code is not rerendered each time a new character is typed?

Yes

WebAssembly plugins have been merged.


Can we edit the data-list drop down menu design?

I wanted to know if there's any way to edit the design of the data list drop-down menu. I mean not just a raw black border, like modify to add a scroll-bar or edit border design.

This isn't the right place for this kind of questions. Try stackoverflow.com instead. (I don't believe there is a way to change its design though)


dotCover reports WPF binding leak for bindings in TabablzControl template

The Binding of DragablzItemsControl.MaxWidth to  DesiredSize.Width in the TabablzControl template will cause dotCover to report a WPF binding leak.
https://github.com/ButchersBoy/Dragablz/blob/b7cf42899fe20d172dd81958360803836e48a99b/Dragablz/Themes/MaterialDesign.xaml#L622-L633
The issue seems to also be present in the default style.
This might not be a big issue but if we can come up with a nice solution I think it is good if remove even the small leaks so they do not cause too much noise when looking for the big ones.
However, I'm not sure what the the best solution would be. We could update the converter to also support Size values and pick either the Width or Height depending on the orientation of the converter. Thoughts and ideas?

I'm closing this issue since it is a duplicate issue of #222. Sorry to have spammed :)


Async Function are not being tested like runAuthScript

Mocha by default cannot test async function it will mark it passed if the function does not throw Error of any sort synchronously.
I am working on fix. I just need to know all the async functions.

Only file needed to get update is auth.test.js which is bit tricky as it does not return promise but will asynchronously throw error.

@cPhost Good catch, I think you will only need to mark the function passed to it async, return a Promise from runAuthScript that resolves in proc.on('close')? cc @addaleax

Good catch, I think you will only need to mark the function passed to it async, return a Promise from runAuthScript that resolves in proc.on('close')?

I requires a little bit more work, need to replace all the throws with the wrapping promise's reject, and find the place that signifies the end of the test and call resolve. I couldn't get it to work since after that's done it still doesn't work on Windows (probably because of the explicit \n that in some places might need to be replaced with os.EOL), and I didn't find the place where the promise should be resolved.

@joyeecheung Yeah, basically that’s it (@refack I think Joyee had ~ the same thing in mind)

@joyeecheung @refack the current problem is when proc.on('close') is wrapped in a Promise mocha times out as the event is emitted at the very end when all the tests are done!

@cPhost You can hold off the resolve in proc.on('close') so Mocha will wait for it. This is what I roughly had in mind..
diff --git a/test/unit/auth.test.js b/test/unit/auth.test.js
index 8436b30..40ad742 100644
--- a/test/unit/auth.test.js
+++ b/test/unit/auth.test.js
@@ -8,9 +8,10 @@ const fs = require('fs');
 const assert = require('assert');
 let testCounter = 0; // for tmp directories

-describe('auth', () => {
-  it('asks for auth data if no ncurc is found', () => {
-    runAuthScript(undefined, [
+describe('auth', async function() {
+  it('asks for auth data if no ncurc is found', async function() {
+    this.timeout(1000);
+    await runAuthScript(undefined, [
       'Reading configuration for node-core-utils failed:',
       /ENOENT: no such file or directory, open/,
       'Please enter your Github user information:',
@@ -21,8 +22,9 @@ describe('auth', () => {
     ]);
   });

-  it('asks for auth data if ncurc is invalid json', () => {
-    runAuthScript('this is not json', [
+  it('asks for auth data if ncurc is invalid json', async function() {
+    this.timeout(1000);
+    await runAuthScript('this is not json', [
       'Reading configuration for node-core-utils failed:',
       /Unexpected token h in JSON at position 1/,
       'Please enter your Github user information:',
@@ -33,80 +35,98 @@ describe('auth', () => {
     ]);
   });

-  it('returns ncurc data if it is present and valid', () => {
-    runAuthScript({ username: 'nyancat', token: '0123456789abcdef' }, [
+  it('returns ncurc data if it is present and valid', async function() {
+    this.timeout(1000);
+    await runAuthScript({ username: 'nyancat', token: '0123456789abcdef' }, [
       'bnlhbmNhdDowMTIzNDU2Nzg5YWJjZGVm'
     ]);
   });
 });

 function runAuthScript(ncurc = undefined, expect = []) {
-  const HOME = path.resolve(__dirname, `tmp-${testCounter++}`);
-  rimraf.sync(HOME);
-  mkdirp.sync(HOME);
-  const ncurcPath = path.resolve(HOME, '.ncurc');
+  return new Promise((resolve, reject) => {
+    const HOME = path.resolve(__dirname, `tmp-${testCounter++}`);
+    rimraf.sync(HOME);
+    mkdirp.sync(HOME);
+    const ncurcPath = path.resolve(HOME, '.ncurc');

-  if (ncurc !== undefined) {
-    if (typeof ncurc === 'string') {
-      fs.writeFileSync(ncurcPath, ncurc, 'utf8');
-    } else {
-      fs.writeFileSync(ncurcPath, JSON.stringify(ncurc), 'utf8');
+    if (ncurc !== undefined) {
+      if (typeof ncurc === 'string') {
+        fs.writeFileSync(ncurcPath, ncurc, 'utf8');
+      } else {
+        fs.writeFileSync(ncurcPath, JSON.stringify(ncurc), 'utf8');
+      }
     }
-  }

-  const proc = spawn(process.execPath,
-    [ require.resolve('../fixtures/run-auth') ],
-    // XXX this could just be env: { ...process.env, HOME } but the test loader
-    // is complaining?
-    { env: Object.assign({}, process.env, { HOME }) });
-  let stderr = '';
-  proc.stderr.setEncoding('utf8');
-  proc.stderr.on('data', (chunk) => { stderr += chunk; });
-  proc.on('close', () => {
-    if (stderr) { throw new Error(`unexpected stderr:\n${stderr}`); }
-  });
+    const proc = spawn(process.execPath,
+      [ require.resolve('../fixtures/run-auth') ],
+      // XXX this could just be env: { ...process.env, HOME } but the test loader
+      // is complaining?
+      { timeout: 1000, env: Object.assign({}, process.env, { HOME }) });
+    let stderr = '';
+    proc.stderr.setEncoding('utf8');
+    proc.stderr.on('data', (chunk) => { stderr += chunk; });
+    proc.on('error', (err) => {
+      proc.kill();
+      reject(err);
+    });
+    proc.on('close', () => {
+      try {
+        assert.strictEqual(stderr, '');
+        assert.strictEqual(expect.length, 0);
+        rimraf.sync(HOME);
+      } catch (err) {
+        reject(err);
+      }
+      resolve();
+    });

-  let pendingStdout = '';
-  let flushNotYetTerminatedLineTimeout = null;
-  proc.stdout.on('data', (chunk) => {
-    pendingStdout += chunk;
-    clearTimeout(flushNotYetTerminatedLineTimeout);
-    flushNotYetTerminatedLineTimeout = null;
+    let pendingStdout = '';
+    let flushNotYetTerminatedLineTimeout = null;
+    proc.stdout.on('data', (chunk) => {
+      pendingStdout += chunk;
+      clearTimeout(flushNotYetTerminatedLineTimeout);
+      flushNotYetTerminatedLineTimeout = null;

-    let newlineIndex;
-    while ((newlineIndex = pendingStdout.indexOf('\n')) !== -1) {
-      const line = pendingStdout.substr(0, newlineIndex);
-      pendingStdout = pendingStdout.substr(newlineIndex + 1);
+      try {
+        let newlineIndex;
+        while ((newlineIndex = pendingStdout.indexOf('\n')) !== -1) {
+          const line = pendingStdout.substr(0, newlineIndex);
+          pendingStdout = pendingStdout.substr(newlineIndex + 1);

-      onLine(line);
-    }
+          onLine(line);
+        }

-    if (pendingStdout.length > 0) {
-      flushNotYetTerminatedLineTimeout = setTimeout(() => {
-        onLine(pendingStdout);
-        pendingStdout = '';
-      }, 100);
-    }
-  });
+        if (pendingStdout.length > 0) {
+          flushNotYetTerminatedLineTimeout = setTimeout(() => {
+            onLine(pendingStdout);
+            pendingStdout = '';
+          }, 100);
+        }
+      } catch (err) {
+        proc.kill();
+        reject(err);
+      }
+    });

-  function onLine(line) {
-    if (expect.length === 0) { throw new Error(`unexpected stdout line: ${line}`); }
-    let expected = expect.shift();
-    let reply;
-    if (typeof expected.reply === 'string') {
-      ({ expected, reply } = expected);
-    }
-    if (typeof expected === 'string') {
-      expected = new RegExp(`^${expected}$`);
-    }
-    assert(line.match(expected), `${line} should match ${expected}`);
-    if (reply !== undefined) {
-      proc.stdin.write(`${reply}\n`);
+    function onLine(line) {
+      assert.notStrictEqual(expect.length, 0, `unexpected stdout line: ${line}`);
+      let expected = expect.shift();
+      let reply;
+      if (typeof expected.reply === 'string') {
+        ({ expected, reply } = expected);
+      }
+      if (typeof expected === 'string') {
+        expected = new RegExp(`^${expected}$`);
+      }
+
+      assert(line.match(expected), `${line} should match ${expected}`);
+      if (reply !== undefined) {
+        proc.stdin.write(`${reply}\n`);
+      }
+      if (expect.length === 0) {
+        proc.stdin.end();
+      }
     }
-    if (expect.length === 0) { proc.stdin.end(); }
-  }
-  proc.on('close', () => {
-    assert.strictEqual(expect.length, 0);
-    rimraf.sync(HOME);
   });
 }

@joyeecheung does that work on mocha because i have pretty much the same thing for proc.on('close'!

@cPhost Mocha works on async functions, so as long as you can make the promise resolve/reject the way you want it works. I've tested it with a few cases and it seems to fail/pass properly

@joyeecheung this is what i had. Looks ugly as i was trying diffrent thing
describe('child process', () => {
    it('child process did not have error at close event', async (done) => {
      let test = new Promise((reject, resolve) => {
        proc.on('close', () => {
          if(stderr) {
            reject(new Error(`unexpected stderr:\n${stderr}`));
          } else {
            resolve();
          }
        });
      });

      await test
      .then(_ => { done() })
      .catch(err => {
        done(err);
      })
    });
  });

@cPhost I think you don't have to mind the done part if it's already in async functions, see https://mochajs.org/#using-async--await
Also probably should not resolve right there unless you merge the two proc.on('close') listener, because the other one needs to run before resolving as well.

@joyeecheung i knew about it from before and so i tried both async and node style it(msg, function(done) {}).
But the problem was i was describing a testing on an event listener which timed out. I don't know what i was thinking!!!
But this issue got resolved quick.


Test crosscompiling on CI

This is being worked on in #135

Fixed by https://github.com/Cogitri/gxi/commit/4280292c709de4da5118331def2a15be37903863


Fatal error in IE

There is an error in IE at initialization stage in profile decorator. console.profile there isn't a "normal" function with Function prototype, so calling console.profile.bind(console) causes an error.
Fixed in #111.

Was fixed unknowingly in #110, released in 0.18.0

It looks like you forget to build es-version before publish 0.18.0 to npm…

Yes, I have 0.19.0v and I  see the error in IE.
Why is it happen?

@jangot can you provide more details? When I search in 0.19.0 I cannot find any cases where we call console.profile.bind. Can you share where in our code it is? What version of IE?
Triple check you really do have 0.19.0 installed in your node_modules--you might have it in your package.json but an older version is in node_modules


ITarian full disclosure

This PR includes PR #441  and PR #442

Looking good, made a small mistake splitting the PR's. Thanks for helping <3


Not able to run project. Some files missing.

At first Pods are empty.Once i fixed that by creating new pod file. Then Some files are missing Can you help me ?

Did you also fetch the submodules? You can do so by either doing git clone --recursive or git submodule update --init after the fact.

Thanks neo ! For quick reply.
Done. But now pods are not installing. Podfile have some unexpected syntax errors .

Please run
bundle install
bundle exec pod install

to make sure you're using the correct version of CocoaPods.

@neonichu
Can you please help me to get access_token. I am going through the my account i am able to get api keys/ space key but where i can find  access_token ??

API key and access token are basically the same thing.

Okay. Thanks Neo !


Can't set background colour in Phaser.WEBGL

Hello,
I'm using an ES6 boilerplate (ce v2.8.8) - all is good until I want to set the background colour:
When the renderer is - renderer: Phaser.CANVAS then this:
 this.game.stage.backgroundColor = '#ffffff';
Within the create method works fine, sets bg to white.. However if it's renderer: Phaser.WEBGL or renderer: Phaser.WEBGL-MULTI, the screen remains black no matter what I try.
export default class Preload extends Phaser.State {

  preload() {
    this.game.load.image('loader', 'assets/images/loader.gif');
  }

  create() {

    // Set BG as White
    this.game.stage.backgroundColor = '#ffffff';

    // Fix CORS issues with the loader and allow for unlimited parallel downloads.
    this.game.load.crossOrigin = 'anonymous';
    this.game.load.maxParallelDownloads = Infinity;

    console.log('Preloading..');
    // Begin loading all of the assets.

  }

  update() {

  }
}

Anyone been able to see this/get around it?

It seems to work for me: https://codepen.io/samme/pen/QqQmJX.
What do you get for console.log(this.stage._bgColor)?

I see this:
a:1
b:1
color:16777215
color32:-1
g:1
r:1
rgba:"rgba(255,255,255,1)"

Which appears to be data for white.. but screen is still black.  Chrome, Version 61.0.3163.100 (Official Build) (64-bit) - macOS Sierra 10.12.6.
From this:
export default class Preload extends Phaser.State {

  preload() {
    this.game.load.image('loader', 'assets/images/loader.gif');
  }

  create() {

    // Set BG as White
    this.game.stage.backgroundColor = '#ffffff';
    console.log(this.stage._bgColor);

    // Fix CORS issues with the loader and allow for unlimited parallel downloads.
    this.game.load.crossOrigin = 'anonymous';
    this.game.load.maxParallelDownloads = Infinity;

    console.log('Preloading..');
    // Begin loading all of the assets.

  }

  update() {

  }
}

Some more code from the start up states:
// index.js
// Setup the game's stage.
    super({
      width: window.innerWidth * dpr,
      height: window.innerHeight * dpr,
      renderer: Phaser.WEBGL_MULTI,
      antialias: true,
      multiTexture: true,
      enableDebug: process.env.NODE_ENV === 'development',
    });

// Boot.js
export default class Boot extends Phaser.State {
  /**
   * Preload any assets needed for the preload state.
   */
  preload() {

  }

  /**
   * Setup anything that is needed before the preload state begins.
   */
  create() {

    // Scale the game to fill the entire page.
    this.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;

    // Don't pause the game on blur.
    this.game.stage.disableVisibilityChange = true;

    // Disable clearing the canvas on each tick (usually not needed).
    this.game.clearBeforeRender = false;

    // Disable right click.
    this.game.canvas.oncontextmenu = e => e.preventDefault();

    // Move on to the preload state.
    this.game.state.start('Preload');
  }
}

I've found the problem.
this.game.clearBeforeRender = false;
Commenting this out displays the white screen. I'm not sure if that's intended behaviour?

It is, but I guess it's undocumented.


markdown Table broken in Dart version

https://buildbot-dart-2015-04-22-dot-dartlang-pub.appspot.com/packages/google_visualization_api

This is caused by the Dart markdown package currently not supporting tables, see https://github.com/dpeek/dart-markdown/issues/38.

We are not really using package:markdown but rather package:mustache which lives here. But it has the same problem.

We are still inserting HTML generated by the markdown package into the mustache template.
https://github.com/dart-lang/pub-dartlang-dart/blob/master/app/lib/templates.dart#L140

You're absolutely right. I confused the server-side rendering of our html pages with package:mustache and the rendering of readme/changelog files with package:markdown.


MAG-48, Public hash missing on product update and shipping method change

Can you explain what the public hash is for?
Is this attached to a saved payment method?


False AttributeError.

I was trying to answer this question at StackOverflow:

http://stackoverflow.com/questions/31261350/automatically-generate-ijulia-notebooks

So I try to use PyCall:

http://nbviewer.ipython.org/gist/Ismael-VC/4c4fcee41b8761af9673

And I get this error at Out [7]:
PyError (:PyObject_Call) <type 'exceptions.AttributeError'>
AttributeError("'dict' object has no attribute 'worksheets'",)
  File "/usr/local/lib/python2.7/dist-packages/IPython/nbformat/current.py", line 188, in write
    s = writes(nb, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/nbformat/current.py", line 154, in writes
    return versions[version].writes_json(nb, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/nbformat/v3/nbjson.py", line 48, in writes
    nb = split_lines(nb)
  File "/usr/local/lib/python2.7/dist-packages/IPython/nbformat/v3/rwbase.py", line 85, in split_lines
    for ws in nb.worksheets:

while loading In[7], in expression starting on line 3

 in pyerr_check at /home/juser/.julia/v0.3/PyCall/src/exception.jl:58
 in pycall at /home/juser/.julia/v0.3/PyCall/src/PyCall.jl:91
 in fn at /home/juser/.julia/v0.3/PyCall/src/conversions.jl:188
 in anonymous at In[7]:4
 in open at iostream.jl:137

But the dictionary in question indeed does have a worksheets key, as can be seen at Out [8] .

The dict has an "worksheets" key, but not a worksheets attribute.
I think the problem here may be that the conversion to a Julia Dict is losing some Python info.  Try using lower-level functions that give you more control over the type conversions:
nbf = pyimport("IPython.nbformat.current")
nb = pycall(nbf["new_notebook"], PyDict)

or even nb = pycall(nbf["new_notebook"], PyObject)

@stevengj I did what you told me, but now in this part:
fname = "test.ipynb"

open(fname, "w") do f
    nbf[:write](nb, f, "ipynb")
end

I have this error:
PyError (:PyObject_Call) <type 'exceptions.TypeError'>
TypeError("'unicode' does not have the buffer interface",)
  File "/usr/local/lib/python2.7/dist-packages/IPython/nbformat/current.py", line 191, in write
    return fp.write(s)

while loading In[6], in expression starting on line 3

 in pyerr_check at /home/juser/.julia/v0.3/PyCall/src/exception.jl:58
 in pycall at /home/juser/.julia/v0.3/PyCall/src/PyCall.jl:91
 in fn at /home/juser/.julia/v0.3/PyCall/src/conversions.jl:188
 in anonymous at In[6]:4
 in open at iostream.jl:137

I don't know hot to convert an ASCIIString into a normal Python string (not unicode). I tried aliasing python with python3 and also this:
function PyCall.PyObject(s::ASCIIString)
    PyCall.@pyinitialize
    PyObject(PyCall.@pycheckn ccall(pystring_fromstring,
                                 PyPtr, (Ptr{Uint8},), bytestring(s)))
end

but then I get:
PyObject(ascii("test"))

s not defined
while loading In[15], in expression starting on line 1

 in PyObject at In[12]:88

I haven't been able to figure out why.

@Ismael-VC I checked the python source and AFAICT the issue is not passing a bytestring to python, rather python is passing a string (unicode) to julia and julia don't know how to write it to the file object.
My working example here
Also note that the interface is deprecated (You can see the deprecation warning from a ipython notebook) and AFAICT it is encouraged to specify the version of the notebook format directly.

Also, to convert a python str to bytes you can do what you would do in python, i.e. calling encode on it.

See also http://stackoverflow.com/questions/25115042/typeerror-unicode-does-not-have-the-buffer-interface


Add public blob access exception tag to dev OIDC storage account

Which issue this PR addresses:

What this PR does / why we need it:
Creating storage accounts with public blob access in MSFT tenants without this tag will cause the storage account to be flagged. We want to keep the storage account blob access public because it will save effort required to onboard Azure Front Door in development and e2e environments, and save cost of having long-running Azure Front Door instances.
The longer term goal is to migrate to a different subscription for CI e2e where this rule won't apply.

Test plan for issue:
Nic has created a storage account with this tag in the MSFT tenant already, we are monitoring it to see if it will prevent the account from being flagged.

Is there any documentation that needs to be updated for this PR?

How do you know this will function as expected in production?

Closing in favor of https://github.com/Azure/ARO-RP/pull/3585.