New version: Microsoft.Sqlcmd version 1.7.0

Pull request has been created with WinGet Updater :rocket:
resolves https://github.com/microsoft/winget-pkgs/issues/163280
Microsoft Reviewers: Open in CodeFlow

Hi @damn-good-b0t,
This manifest adds Apps and Features entries that aren't present in previous PR versions. These entries should be added to the previous versions, or removed from this version.
(Automated response - build 886.)


Conn.Subscribe asynchronous?

I just put together a tiny application which continuously runs end-to-end tests against NATS. My NATS cluster is behind a single DNS record, so the test continously reconnects to NATS to make sure I'm testing connectivity between the NATS servers.
The problem is that I'm seeing timeouts around 25% of the calls when running it against a local gnatsd instance. I've put a workaround in place on line 218. The issue seems to be that https://godoc.org/github.com/nats-io/go-nats#Conn.Subscribe is registering asynchronously to NATS. How to recreate:
$ gnatsd &
$ go build . && ./nats-checker &
$ sleep 30
$ curl localhost:8080/metrics
$ # notice natscheck_test_timeout is larger than 0

I also tested using https://godoc.org/github.com/nats-io/go-nats#Conn.SubscribeSync (see revision 2 here), but in that case I'm receiving timeout all the time so I guess it doesn't work for some reason. (I also tried adding a time.Sleep(...) after the https://godoc.org/github.com/nats-io/go-nats#Conn.SubscribeSync call.
Is https://godoc.org/github.com/nats-io/go-nats#Conn.Subscribe expected to be async? If so, I think the behaviour should be documented. Or is this considered a bug?

have you tried using Flush? That API can help ensure that a subscription is ready before sending the message and avoid having to use Sleep

Ah, finally figured out I need to call nc.Flush() to make sure that that the subscription landed on the server... https://gist.github.com/JensRantil/56cc0d36d71d94aea57789bc2260013c#file-nats-checker-go now works. 🎉
Would it make sense to document that connection might need to be flushed to make sure that the subscription is actually in place on the server? If totally fine with not doing it and closing this issue without, though.

Another follow-up question, I tried calling nc.Flush() after nc.SubscribeSync(...) in https://gist.github.com/JensRantil/56cc0d36d71d94aea57789bc2260013c/9a36b8d0d4c38701de1317a0a82ff6efc5bb1a86 and I'm only seeing timeouts in that case. Should I expect that to work?

Thanks for the feedback @JensRantil this is certainly a FAQ so we could add some more docs around it, there is a mention about Flush here for the case of publishing but maybe should note something similar for subscribe or a section around synchronizing multiple connections probably.
re: subscribe sync, it should work the same but might be tricky to synchronize among multiple connections as you have in the gist right now, have you considered using Request instead for this? Maybe something like:
package main

import (
	"fmt"
	"log"
	"time"

	"github.com/nats-io/go-nats"
	"github.com/nats-io/nuid"
)

func main() {
	ncA, err := nats.Connect("demo.nats.io")
	if err != nil {
		log.Fatal(err)
	}

	ncB, err := nats.Connect("demo.nats.io")
	if err != nil {
		log.Fatal(err)
	}

	// Generate unique subject and sub for this test.
	inbox := fmt.Sprintf("natscheck.%s", nuid.Next())
	_, err = ncA.Subscribe(inbox, func(m *nats.Msg) {
		ncA.Publish(m.Reply, []byte("OK"))
	})
	if err != nil {
		log.Fatal(err)
	}

	// Ensure subscription is ready in the server my making a roundtrip.
	ncA.Flush()

	// Send requests and wait for single response.
	startAt := time.Now()
	timeout := 5 * time.Second
	_, err = ncB.Request(inbox, []byte(""), timeout)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("Latency:", time.Since(startAt))
}

Btw, in case it would help there is a latency framework for NATS here as well https://github.com/nats-io/latency-tests/blob/master/latency.go

re: subscribe sync, it should work the same but might be tricky to synchronize among multiple connections as you have in the gist right now

🤔 Every test run I have, I'm working on a unique topic/subject, so I'm having a hard time to understand why this doesn't work. Shouldn't a conn.SubscripeSync(...);conn.Flush() send off a subscription to the server?

have you considered using Request instead for this?

Yes, considered it. I'm sure it would work. I guess it's a bit of a pet pieve, but my use-case is one-way latency so I'd prefer to test for that.

@JensRantil For the SubscribeSync test, should you not let go the sender (started.Done()) before calling sub.NextMsg()?

@kozlovic No, if I do the message will be sent to the void as the topic will not have been created.

What I meant is that in https://gist.github.com/JensRantil/56cc0d36d71d94aea57789bc2260013c/9a36b8d0d4c38701de1317a0a82ff6efc5bb1a86, line 208 you have flushed and made sure that subscription is registered. But then line 218 you call NextMsg() but notify the sender that you are ready only at line 233. So in a case where you have 1 sub, 1 sender, then the first NextMsg() will timeout.

You don't need to be in NextMsg() to not lose the message. If the subscription is created, interest is registered in the server. When message is published, server sends to client library that will queue that message for the NextMsg() call. Like for async subs, there are limits for this queuing that is driven by Sub.SetLimits()

Ah, that explains it! Thanks! I'll close this issue. Feel free to improve documentation if you want.


Aparrently incaptible with Sodium and/or Lithium

Crashes!
java.lang.ClassCastException: net.minecraft.class_2258 cannot be cast to net.minecraft.class_3611
I tried to enable/disable some features, but could not find the issue.
Edit: Never mind! Found the issue. Just a fast search on the crash log. It was the bubbles column flow, disabling did the job. S2
Amazing work tho S2

Could you give me the full log? I'd like to be able to fix this if possible :)


gamdl populates Sort Title field with Title.

The files that I downloaded using gamdl have the Sort Title fields populated with the information from the Title field, which is causing incorrect sorting of tracks in iTunes for titles that start with "The", "A", "An", etc.
If I try to use TagScanner or MP3Tag to strip this field out, it doesn't have any effect on the information. Even if I use the Get Info panel in iTunes, I still cannot remove the Sort Name information in iTunes. In order to actually remove those strings, I have to manually reveal the Sort Name column in iTunes Song view, double-click on the field and delete it there.

The same thing is also happening for the Sort Artist field, so The Chemical Brothers end up being sorted to "T" instead of "C".


Disable order form if there is already opened position

Looks good, could you also add the no funds overlay to it? Either in this PR or another. https://xd.adobe.com/view/105826a9-20a2-4052-75e3-b0ff81bd5a24-6669/screen/2c097c1d-5500-4e02-b387-729b40c00b8a

I added it to this PR :)


create-chiselstrike-app: Depend on exact versions

Let's depend on exact versions instead of compatible versions to keep
builds reproducible.
The practical reason is that the current typescript dependency
installs latest 4.7.2, which fails the build:
ncc: Using<EMAIL_ADDRESS>(local user-provided)
Error: Module build failed (from ./node_modules/@vercel/ncc/dist/ncc/loaders/ts-loader.js):
Error: Debug Failure. False expression: Non-string value passed to ts.resolveTypeReferenceDirective, likely by a wrapping package working with an outdated resolveTypeReferenceDirectives signature. This is probably not a problem in TS itself.
at Object.resolveTypeReferenceDirective (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/typescript/lib/typescript.js:42530:18)
at /Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/loaders/ts-loader.js.cache.js:13:316837
at /Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/loaders/ts-loader.js.cache.js:13:303785
at Array.map ()
at Object.resolveTypeReferenceDirectives (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/loaders/ts-loader.js.cache.js:13:303777)
at actualResolveTypeReferenceDirectiveNamesWorker (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/typescript/lib/typescript.js:116611:163)
at resolveTypeReferenceDirectiveNamesWorker (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/typescript/lib/typescript.js:116911:26)
at processTypeReferenceDirectives (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/typescript/lib/typescript.js:118393:31)
at findSourceFileWorker (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/typescript/lib/typescript.js:118278:21)
at findSourceFile (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/typescript/lib/typescript.js:118133:26)
at /Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:37:1770552
at /Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:37:374702
at _done (eval at create (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:20:75523), :9:1)
at eval (eval at create (/Users/penberg/src/chiselstrike/chiselstrike/packages/create-chiselstrike-app/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:20:75523), :34:22)
As it's still an open issue, we anyway need to avoid that specific
version:
https://github.com/microsoft/TypeScript/issues/49257
But better to just have explicit version numbers to avoid stuff breaking
when our source stays the same.

@penberg One issue comes to mind - are these packages in any way affecting the packages that users in node mode can import? If it would be the case, could it restrict what packages they can import?

@BearLemma There's no impact on applications; this is just about the dependencies of the "create app" tool that you run with npx create-chiselstrike-app. ChiselStrike application dependencies are specified in a template in packages/create-chiselstrike-app/template/package.json.

@espindola The create-chiselstrike-app package is a standalone program so there's no dependency to ChiselStrike runtime. We need to update the packages/create-chiselstrike-app/template/package.json though


add requirements package on Debian/Ubuntu

On Ubuntu Server 22.04 LTS (and newer?), the ./configure command fails because the 'pkgconf' package is not installed by default. Suggest that the 'pkgconf' package be installed in this command line.

I ran into that several times, but every time I thought "ok, it was clearly caught by CMake...."
thanks.


bug: could not load llama2 model with Nitro 0.1.8

Describe the bug
Could not load llama2 model using Nitro 0.1.8. Nitro is crashed
https://huggingface.co/bhlim/llama-2-chat-GGUF/resolve/main/llama-2-7b-chat.gguf.q4_0.bin
[1] {
[1]   llama_model_path: '/Users/louis/Library/Application Support/jan/models/bhlim-llama-2-7b-chat.gguf.q4_0.bin',
[1]   ctx_len: 2048,
[1]   ngl: 100,
[1]   embedding: false
[1] }
[1] stderr: gguf_init_from_file: GGUFv1 is no longer supported. please use a more up-to-date version
[1]
[1] stderr: error loading model: llama_model_loader: failed to load model from /Users/louis/Library/Application Support/jan/models/bhlim-llama-2-7b-chat.gguf.q4_0.bin
[1]
[1]
[1] stderr: llama_load_model_from_file: failed to load model
[1] llama_init_from_gpt_params: error: failed to load model '/Users/louis/Library/Application Support/jan/models/bhlim-llama-2-7b-chat.gguf.q4_0.bin'
[1] 20231114 09:30:14.404524 UTC 3506815 ERROR Error loading the model will exit the program - llamaCPP.cc:291
[1]
[1] stdout: 20231114 09:30:14.404614 UTC 3506815 INFO  Started background task here! - llamaCPP.cc:306
[1] 20231114 09:30:14.404632 UTC 3506815 ERROR Sending more than 1 response for request. Ignoring later response - HttpServer.cc:355
[1]
[1] { message: 'Model loaded failed' }
[1] stdout:

Will work with @tikikun on this

Root cause: Nitro 0.1.7 does not work with gguf v1 models

For the deprecation:
https://github.com/janhq/jan/pull/618


ptvsd no longer working in VisualStudio 2017 after 15.3 Preview 3

Not sure, if I need to report the bug here as well but I'm having trouble with python on Visual Studio 2017 after release 15.3 Preview 3 (including the RTM 2017 15.3 release):
https://developercommunity.visualstudio.com/content/problem/99209/python-remote-debugging-ptvsd-cannot-establish-con.html
How do I debug problems related to ptvsd?  println debugging here we come!

Yes, print-debugging is pretty much the only way to debug the debugger, unfortunately. There's a twist there, as well - since it redirects output, if you just use print normally from inside debugger, it's possible to get weird deadlocks and hangs due to re-entrancy. The thing that always works is printing to sys.__stdout__ or sys.__stderr__ - this circumvents redirection.

To clarify, is this a problem with GAE specifically? i.e. does a simple ptvsd attach scenario work for you?

Also, you don't need to report the bug on both Developer Community and here, but we do triage new DC issues and copy them here when there is something for us to look into.

My computer that I had 15.3 RTM installed on has gone to the Computer Hospital (i.e. hardware failure).  When I get it back Monday or Tuesday next week, I'll see if a ptvsd attach on a python 'hello world' works for me.  I'm assuming it will as I had 15.3 Preview 3 working and it stopped after upgrading....  but it should be tested.   I did test on my other machine that has 15.3 Preview 3 on it and the python, hello ptvsd works.  Currently working on a deadline for work and not excited to have my main machine not working with debugging python.
Thanks for investigating!

Got my computer back.  @int19h Tested attaching to a ptvsd with a console app ('Hello, world') and it works with Visual Studio 2017 Preview - Version 15.3 Preview 7.1 and with the RTM Visual Studio 2017 - Version 15.3

Here's my hello world:
`print("starting... ")
import ptvsd  #ptvsd.settrace() equivalent
ptvsd.enable_attach(secret = 'sim')
print( "Hey World,eh. Attach to:")
print( "tcp://sim@localhost:5678")
ptvsd.wait_for_attach()
if ptvsd.is_attached:
print ("Attached debugger, eh")
#ptvsd.break_into_debugger()
print('hello, eh')
`

Figured it out myself.  The steps to attach have changed: On the earlier versions (F5 Start Debugging) was acceptable but on the newer versions, you must (Ctrl-F5 Start without Debugging) in order to attach.  Sorry for the diversion.  Looks like it's working for me.  Please close this request.


ecmult_static_context.h: add compile time config assertion

Prevents accidentally using a file which was generated with a
different configuration.

thanks!


V3 sample qc

Updates and additional sample QC functions developed for gnomAD v3

Thanks for the review -- back to you!

Looks great!


Fix typo (fiel_value -> field_value)

This merge request fixes a small typo in a variable name where field_value was intended but fiel_value was in use.

Thanks @kkirsche


transaction view: show proposals and votes

Changelog
- description: |
    transaction view: show proposals and votes
# uncomment types applicable to the change:
  type:
  # - feature        # introduces a new feature
  # - breaking       # the API has changed in a breaking way
  - compatible     # the API has changed but is non-breaking
  # - optimisation   # measurable performance improvements
  # - refactoring    # QoL changes
  # - bugfix         # fixes a defect
  # - test           # fixes/modifies tests
  # - maintenance    # not directly related to the code
  # - release        # related to a new release preparation
  # - documentation  # change in code docs, haddocks...

Context
Fixes https://github.com/IntersectMBO/cardano-cli/issues/711
How to trust this PR
TODO
Checklist

[ ] Commit sequence broadly makes sense and commits have useful messages
[ ] New tests are added if needed and existing tests are updated. See Running tests for more details
[ ] Self-reviewed the diff

Nice!!!  Here is the output of a transaction with three votes:
./dist-newstyle/build/x86_64-linux/ghc-9.6.4/cardano-cli-<IP_ADDRESS>/x/cardano-cli/build/cardano-cli/cardano-cli conway transaction view --tx-file ~/networks/sancho/transactions/threevotes-tx.signed
{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "185433 Lovelace",
    "governance actions": [],
    "inputs": [
        "96e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace":<PHONE_NUMBER>5
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "votes": {
        "drep-keyHash-efda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2": {
            "4c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50#0": {
                "anchor": null,
                "decision": "VoteYes"
            },
            "67820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027#0": {
                "anchor": null,
                "decision": "VoteNo"
            },
            "9bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397#0": {
                "anchor": null,
                "decision": "Abstain"
            }
        }
    },
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"8e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb04\")"
        },
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"80bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505\")"
        }
    ]
}

@mkoura> can you look at the newly versioned golden files and let me know if the JSON format for the new fields governance actions and voters is what we want?

If you want to see the JSON output of the new fields, execute these examples:
#!/usr/bin/env bash

threeVotesTx='{
    "type": "Witnessed Tx ConwayEra",
    "description": "Ledger Cddl Format",
    "cborHex": "84a400d901028182582096e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d0001818258390062573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c4208f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d31b0000000b8641a6ef021a0002d45913a18202581cefda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2a38258204c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50008201f682582067820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027008200f68258209bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397008202f6a100d90102828258208e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc0258408e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb048258208a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a584080bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505f5f6"
}'

proposalTx='{
    "type": "Witnessed Tx ConwayEra",
    "description": "Ledger Cddl Format",
    "cborHex": "84a400d9010281825820e51d839ec4ef4b3522a965dab8cbd0a2c52ecd5959a469384c001c8691a98ab60001818258390062573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c4208f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d31b0000000ba438aef3021a0002c50d14d9010281841b0000000ba43b7400581de008f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d38301f6820a0082784b68747470733a2f2f6769746875622e636f6d2f6361726c6f736c6f64656c61722f70726f706f73616c732f626c6f622f6d61696e2f7768792d68617264666f726b2d746f2d31302e74787458206fad941a5236c151b44c23458fb99d6812bbc5c6eb3a3a8a5d2518e8be8962aba100d90102818258208e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02584028230d2507267600d17c7f062d9f3184f4686af570c31e2f9ed652d339d776dcd72fccf30dd17bc077d2615845bbad64fd6ddffdba5b2874651d0c3533e10d0bf5f6"
}'

tx_file="/tmp/tx.json"
rm -Rf "$tx_file"
echo $threeVotesTx > "$tx_file"
set -x
cardano-cli conway transaction view --tx-file "$tx_file"
set +x

rm -Rf "$tx_file"
echo $proposalTx > "$tx_file"
set -x
cardano-cli conway transaction view --tx-file "$tx_file"
set +x

This will output:
{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "185433 Lovelace",
    "governance actions": [],
    "inputs": [
        "96e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace":<PHONE_NUMBER>5
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "voters": {
        "drep-keyHash-efda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2": {
            "4c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50#0": {
                "anchor": null,
                "decision": "VoteYes"
            },
            "67820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027#0": {
                "anchor": null,
                "decision": "VoteNo"
            },
            "9bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397#0": {
                "anchor": null,
                "decision": "Abstain"
            }
        }
    },
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"8e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb04\")"
        },
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"80bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505\")"
        }
    ]
}

and
{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "181517 Lovelace",
    "governance actions": [
        {
            "anchor": {
                "dataHash": "6fad941a5236c151b44c23458fb99d6812bbc5c6eb3a3a8a5d2518e8be8962ab",
                "url": "https://github.com/carloslodelar/proposals/blob/main/why-hardfork-to-10.txt"
            },
            "deposit":<PHONE_NUMBER>0,
            "governance action": {
                "contents": [
                    null,
                    {
                        "major": 10,
                        "minor": 0
                    }
                ],
                "tag": "HardForkInitiation"
            },
            "return address": {
                "credential": {
                    "keyHash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
                },
                "network": "Testnet"
            }
        }
    ],
    "inputs": [
        "e51d839ec4ef4b3522a965dab8cbd0a2c52ecd5959a469384c001c8691a98ab6#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace":<PHONE_NUMBER>3
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "voters": {},
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"28230d2507267600d17c7f062d9f3184f4686af570c31e2f9ed652d339d776dcd72fccf30dd17bc077d2615845bbad64fd6ddffdba5b2874651d0c3533e10d0b\")"
        }
    ]
}


Unconsistent slog::Level conversion to string on Warning variation

slog::Level::Warning.as_str() results in the same WARN as slog::Level::Warning.as_short_str() instead of the WARNING one might expect. Is this intentional in anyway?
The related source:
https://github.com/slog-rs/slog/blob/f9e30f0dd9bad610227d9374001fcc13d5b7c8c8/src/lib.rs#L2076-L2086
Where variants like Critical are CRITICAL and CRIT on the str representation.

Probably not. Weird that no one ever raised it.

Interestingly enough, log also uses WARN: https://docs.rs/log/0.4.20/src/log/lib.rs.html#414.


Add new step to specify license

Adding a new step to the Tech Docs wizards to select a License for the repo.
Currently only Creative Commons is available. Users can also select no license.
The new versions are available here: https://dev.developer.gov.bc.ca/create
Thoughts or changes?

This is looking great Galen, love this as a first step towards this!
I'm wondering if we can link out to the existing docs about license types from this somehow so we can a) see if anyone finds it and b) if they do, if they have any feedback about their usefulness cc @Shivanganii

That is a slick page =)
Content wise, I've offered some alternatives so the content isn't redundant, and some plain language. I'm unsure if these changes would change the meaning/intentions of the page. I'll defer to you here, @oomIRL

"Create or modify bcgov GitHub repositories with easy and fast templates for common tools and technologies" to "Create or change B.C. Government GitHub repositories with easier and faster templates for common tools and technologies

In the first box, "Create new technical documentation repo" to "Create technical documentation repo"

Publish a repo for techdocs by submitting required files

In the second box, "Add existing technical documentation to DevHub" to "Add technical documentation to DevHub"

Submit files to add on an existing repo on DevHub

Colour wise: I love the pink, and wondering if it works best for colour contrast with the gray star, if someone favourites it?

@MonicaG @jenreiher-bcgov

I added some extra info on each license based on what's selected.
The field description now links out to the licensing page on the BC Developer Guide

Love these content suggestions! I also would love to change the title to "wizards" instead and include the 🧙 emoji if we can... :)

Colour wise: I love the pink, and wondering if it works best for colour contrast with the gray star, if someone favourites it?

@oomIRL can you please create another ticket to address styling for these cards? we should do work to bring them in line with WCAG, and use the BC gov branding (perhaps pulling from he DS if we've got that working?). It can go into the next sprint for now :) let's make that its own piece of work so it can have the attention it needs!

@jenreiher-bcgov @Shivanganii
I created DEVX-1435 - Improve card styling on DevHub /create page for next sprint


[Migrated] KeyError: 'events' on running cli command zappa unschedule STAGE

Originally from: https://github.com/Miserlou/Zappa/issues/1577 by monkut

Context
In an attempt to reset scheduled events via zappa cli:
zappa unschedule prod

Seems that on unschedule 'events' key is expected from the defined event_source settings, but not required?
Expected Behavior

If unschedule is successful, the output should reflect that.
Actual Behavior

zappa unschedule prod
Calling unschedule for stage prod..
Unscheduling..
Oh no! An error occurred! :(

==============

Traceback (most recent call last):
  File "/project/.venv/lib/python3.6/site-packages/zappa/cli.py", line 2693, in handle
    sys.exit(cli.handle())
  File "/project/.venv/lib/python3.6/site-packages/zappa/cli.py", line 504, in handle
    self.dispatch_command(self.command, stage)
  File "/project/.venv/lib/python3.6/site-packages/zappa/cli.py", line 605, in dispatch_command
    self.unschedule()
  File "/project/.venv/lib/python3.6/site-packages/zappa/cli.py", line 1228, in unschedule
    events=events,
  File "/project/.venv/lib/python3.6/site-packages/zappa/core.py", line 2615, in unschedule_events
    print("Removed event " + name + " (" + str(event_source['events']) + ").")
KeyError: 'events'

Possible Fix

Could remove the attempt to output the missing key
(since it's not outputting now, i'm not sure what this is... but seems to work when I comment out this line)
Steps to Reproduce

Not sure if this is a problem with my setup or not.. but

create project with kinesis stream scheduled events
deploy
turn of scheduling with zappa unschedule STAGE

Your Environment

Zappa version used: 0.46.2 (was also a problem in 0.46.1)
Operating System and Python version: macOS (3.6.2)
The output of pip freeze:

argcomplete==1.9.3
aws-requests-auth==0.4.1
awscli==1.15.55
base58==1.0.0
boto3==1.7.68
botocore==1.10.68
Cerberus==1.2
certifi==2018.4.16
cfn-flip==1.0.3
chardet==3.0.4
click==6.7
colorama==0.3.9
Django==2.0.7
django-extensions==2.0.7
django-logging-json==1.15
django-reversion==2.0.13
django-storages==1.6.6
djangorestframework==3.8.2
djangorestframework-csv==2.1.0
docutils==0.14
durationpy==0.5
elasticsearch==6.3.0
future==0.16.0
hjson==3.0.1
idna==2.7
jmespath==0.9.3
jsonlines==1.2.0
kappa==0.6.0
lambda-packages==0.20.0
placebo==0.8.1
psycopg2-binary==2.7.5
pyasn1==0.4.4
PyJWT==1.6.4
python-dateutil==2.6.1
python-slugify==1.2.4
pytz==2018.5
PyYAML==3.12
redis==2.10.6
requests==2.19.1
rsa==3.4.2
s3transfer==0.1.13
six==1.11.0
toml==0.9.4
tqdm==4.19.1
troposphere==2.3.1
unicodecsv==0.14.1
Unidecode==1.0.22
urllib3==1.23
Werkzeug==0.14.1
wsgi-request-logger==0.4.6
zappa==0.46.2

Link to your project (optional):
Your zappa_settings.py:

{
    "prod": {
        "aws_region": "region",
        "django_settings": "project.settings",
        "profile_name": "myprofile",
        "project_name": "project",
        "runtime": "python3.6",
        "memory_size": 2048,
        "timeout_seconds": 300,
        "s3_bucket": "zappa-project-prod",
        "vpc_config": {
            "SubnetIds": [
                "subnet-yyyy88",
                "subnet-zzz99"
            ],
            "SecurityGroupIds": [
                "sg-119191"
            ]
        }
        "events": [
            {
                "function": "project.event_handler.x_data_handler",
                "event_source": {
                    "arn": "arn:aws:kinesis...",
                    "starting_position": "LATEST",
                    "batch_size": 500,
                    "enabled": true
                },
                "name": "lumbergh_prod_track_data_handler"
            },
            {
                "function": "project.track_event_handler.y_data_handler",
                "event_source": {
                    "arn": "kinesis-stream..",
                    "starting_position": "LATEST",
                    "batch_size": 500,
                    "enabled": true
                },
                "name": "y_event_data_handler"
            }
        ],
        "aws_environment_variables": {
            "GDAL_DATA": "/var/task/geolib/usr/local/share/gdal/",
            "GDAL_LIBRARY_PATH": "/var/task/libgdal.so.1.18.2",
            "GEOS_LIBRARY_PATH": "/var/task/libgeos_c.so.1"
        },
        "manage_roles": false,
        "role_name": "xxx"
    }
}

old migrated issue, not enough info
closing.


Wrong error message when pushing logs to non-existent stream in existing group

MWE
import boto3
from moto import mock_logs
from time import time

mock_logs().start()

group_name = 'my-group-2'
stream_name = 'my-stream'

client = boto3.client('logs')

client.create_log_group(logGroupName=group_name)

# I forgot to do this in my real code
# so the error from moto/boto should tell me this is the part I forgot
#client.create_log_stream(
#    logGroupName=group_name,
#    logStreamName=stream_name
#)

client.put_log_events(
    logGroupName=group_name,
    logStreamName=stream_name,
    logEvents=[
        {
            'timestamp': int(time()),
            'message': 'test'
        },
    ]
)

Expected behavior
If you run the above script without moto, you get:

botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the PutLogEvents operation: The specified log stream does not exist.

actual behavior
If you run the above script with moto, you get:

botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the PutLogEvents operation: The specified log group does not exist

The group does exist. The problem with the put_log_events call is that the stream does not exist. This difference in error message makes it hard to figure out why the whole script does not pass.

Thanks @mdavis-xyz - marking it as an enhancement


PIT Metric (Port of Jive)

Add PIT metric
Port of the jive code to the scores codebase
Initial port:

[x] Copy of code
[x] Initial Testing

Further work

[ ] 100% unit test coverage
[ ] Tutorial notebook

Documentation

[ ] Add the score to the API documentation
[ ] Add the score to the included list of metrics and tools

Update 17/05/24
The initial work done on this issue was a simple copy of the original code within the Jive codebase. This should not be merged as it is not yet optimised nor scientifically checked. As this metric introduces a variety of utility functions for cdf's, these also need to be tested and checked.

@rob-taggart had some suggested improvements to PIT. I'll let Rob comment as to if it can be ported straight across and updated later or if it needs updating first.

I'm using #142 as a dumping ground for scientific notes, to satisfy my own learning of the metric. While this pull request will mainly be focused on implementation.
Any information in #142 is not to be taken as "polished" and also not necessary in the implementation of this particular pull request. I'll go with @rob-taggart advice on what's required for the initial port.
If we need to split out issues/update/generalize the implementation further we will address it in future issues. The other approach is to completely dissect the code and re-purpose/re-design it to better map the data structure and operators to match the mathematical properties involved in the underlying computations from first principles - which will take a lot longer - but will naturally be well-suited for generalizations/extensions.
I'm leaning toward going with the simple approach of cleaning up the port for now based on advice on current state, especially if the use-case is fairly specific and will not be extended for the foreseeable future - let me know what you think @nicholasloveday / @tennlee ...

Consider the option of putting a version in scores.emerging in the first instance if further redesign or changes are likely to still be needed.

@nikeethr , thanks for all your work looking into PIT. I don't really have time to look into it now as I am currently working on three different projects. There may be opportunity to give some time to it in July or August, after one of those projects wraps up.
cc @nicholasloveday , @tennlee

Thanks for your comment @rob-taggart. In that case, I'll put an initial implementation in the emerging space as @tennlee suggested. We can revisit it to integrate it into the core library once you have more time.

In hydrology, PIT values are typically summarized using the alpha index, which quantifies the deviation from a uniform distribution. It would be good to have this score in future releases to appeal to a wider audience.
Reference: Renard, B., Kavetski, D., Kuczera, G., Thyer, M., Franks, S.W., 2010. Understanding predictive uncertainty in hydrologic modeling: The challenge of identifying input and structural errors. Water Resour. Res., 46(5): W05521.

In hydrology, PIT values are typically summarized using the alpha index, which quantifies the deviation from a uniform distribution. It would be good to have this score in future releases to appeal to a wider audience. Reference: Renard, B., Kavetski, D., Kuczera, G., Thyer, M., Franks, S.W., 2010. Understanding predictive uncertainty in hydrologic modeling: The challenge of identifying input and structural errors. Water Resour. Res., 46(5): W05521.

Hi @durgals. Thanks very much for taking the time to leave a comment. It's helpful to get user feedback so we can get our priorities in line with user needs. PIT is on our to-do list. I'm not across this metric myself. As such, I wanted to ask if there are any specific variations or considerations which you think are relevant for your needs? I'm aware sometimes there are nuances even within a published metric (or options which need to be supported) which can inform how useful an implementation is.

In hydrology, PIT values are typically summarized using the alpha index, which quantifies the deviation from a uniform distribution. It would be good to have this score in future releases to appeal to a wider audience. Reference: Renard, B., Kavetski, D., Kuczera, G., Thyer, M., Franks, S.W., 2010. Understanding predictive uncertainty in hydrologic modeling: The challenge of identifying input and structural errors. Water Resour. Res., 46(5): W05521.

Hi @durgals. Thanks very much for taking the time to leave a comment. It's helpful to get user feedback so we can get our priorities in line with user needs. PIT is on our to-do list. I'm not across this metric myself (we have other contributors who are). As such, I wanted to ask if there are any specific variations or considerations which you think are relevant for your needs? I'm aware sometimes there are nuances even within a published metric (or options which need to be supported) which can inform how useful an implementation is.

Hi @tennlee. Thank you for your prompt reply and for considering our feedback. Here are a few things to consider:

An argument for plotting position, such as Hazen, Weibull, etc.
Treatment of censoring thresholds (Wang, Q.J., Robertson, D.E., 2011. Multisite probabilistic forecasting of seasonal flows for streams with zero value occurrences. Water Resour. Res., 47: W02546).


Fix missing ESCAPED_DQ File Format

The definition of the custom ESCAPED_DQ file format is missing on the sf_connector file, causing issues when a user is trying to upload the data into Snowflake.
Original issue: https://github.com/jacopotagliabue/you-dont-need-a-bigger-boat/issues/6

According to my testing this works. An alternative solution that I got to work (and successfully ingest all the data) without defining a custom format is the following snippet:
self._cs.execute(f"PUT file://{absolute_file_path} @%{table}")
self._cs.execute(f"COPY INTO {table} FILE_FORMAT = (TYPE = CSV FIELD_OPTIONALLY_ENCLOSED_BY ='\"')")

This doesn't include as many delimiters that the field can be closed by, though not sure if that's an issue.


High contrast focus indicators conflict with strong focus indicators

Is this a regression?

[x] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
Unsure - will have to look - but I'm fairly certain this is a regression.
Description
I noticed that dedicated focus indicators for Windows HCM have been added to various components (https://github.com/angular/components/pull/22145, https://github.com/angular/components/pull/22889). Unfortunately, these HCM focus indicators conflict with the existing system-wide strong focus indicators if the user has opted into strong focus indicators. By "conflict", I mean multiple focus indicators render where only one should render.
For example, in the screenshot below, two focus indicators render on a radio button when in HCM with strong focus indicators opted-in.

I'm not sure yet how many components this bug affects, but I wanted to file this sooner rather than later so that we didn't merge in some pending PRs (https://github.com/angular/components/pull/22889) until a fix was identified.
Reproduction
I'd share a Stackblitz link, but Stackblitz is being buggy at the moment and so repro steps are a bit more involved.

Open the first example in Stackblitz.
Add the mat.strong-focus-indicators styles to the theme.scss file:

@include mat.strong-focus-indicators();
@include mat.strong-focus-indicators-theme($theme);

Turn on HCM.
Refresh the Stackblitz.
Focus the first checkbox in the Stackblitz demo.
Observe the double focus indicator on the checkbox.

Expected Behavior
One focus indicator should be present on the checkbox.
Actual Behavior
Two focus indicators were present on the checkbox.
Environment

Angular: Latest
CDK/Material: Latest
Browser(s): All
Operating System (e.g. Windows, macOS, Ubuntu): Windows

It's worth noting that the majority of the HC-specific styles were in place long before the strong focus indicators.

To resolve this, we need to show one of either the HCM outline or the strong focus indicator when HCM is on and strong focus indicators is opted in. If we want to show just the HCM outline, we should be able to add logic to the strong focus indicator mixin that only applies styles if the HCM class isn't detected on the body. If we want to show just the strong focus indicators, I'm not sure how to do so. We'd have to be able to check within the high contrast mixin if strong focus indicators are enabled, and I'm not sure how to check to see if a mixin has been included.


Add Security related command in DevOps CLI

Provide Security related commands
https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-5.0
Issues:
[Please go through the above link then only this will make sense]

Security Namespace does not define how token is created and there is no way to fetch the same
example: for git repository the token looks like this
'repoV2/<>/<>
so it will not be possible for user to understand how to construct this token for all the different namespace.
we can document all this into our help text but that will be a multi-sprint effort because there are ~ 60 namespaces in Azure DevOps currently.
https://dev.azure.com/ms/_apis/securitynamespaces/?api-version=5.0

The permission management APIs take descriptor as input to provide input, while I am able to understand how can we get descriptor for AD identities I am not sure how to do this for VSTS groups.

assigning to @geverghe  and @snankani to triage

When you mean security related commands - what are the scenarios that are being tackled?

When you mean security related commands - what are the scenarios that are being tackled?

Permission scenarios mainly
https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-5.0

Closing this as security group is being tackled is #471 and permissions in #472. Please let me know if there is something that has been missed.


✨ New factory functions with configurable regular expression for EmailAddress

📝 Description
We would like to introduce the following experimental factory functions with configurable regular expression for the EmailAddress type:
fun EmailAddress.Companion.create(
    text: String,
    configuration: EmailAddress.RegexConfiguration.() -> Unit
): EmailAddress

fun EmailAddress.Companion.createOrNull(
    text: String,
    configuration: EmailAddress.RegexConfiguration.() -> Unit
): EmailAddress?

interface EmailAddress.RegexConfiguration {
    var localPart: Regex
    var domain: Regex
}

Here's an example of calling the create(String, EmailAddress.RegexConfiguration.() -> Unit) function from Kotlin code:
val address: EmailAddress =<EMAIL_ADDRESS>{
    localPart = Regex("[a-z]+") // the local part now only accepts 1 or more lowercase letters
    domain = Regex("[a-z]+\.[a-z]+") // the domain now only accepts lowercase letters
    // The regular expression used for validating the text input now looks like this<EMAIL_ADDRESS>}
println(address) //<EMAIL_ADDRESS>
🔗 Dependencies
This issue is blocked by the following ones:

[x] #339
[x] #394

✅ Checklist

[ ] Add the create(String, EmailAddress.RegexConfiguration.() -> Unit) function, test its behavior with Kotlin and its compatibility with Java, update the public API binaries and update the unreleased changelog.
[ ] Add the createOrNull(String, EmailAddress.RegexConfiguration.() -> Unit) function, test its behavior with Kotlin and its compatibility with Java, update the public API binaries and update the unreleased changelog.
[ ] Close this issue as completed and update tracking ones if present.

The DSL for setting the domain property should always include the dot (.) between labels.
Here's an example for configuring the domain name's regular expression from Kotlin code:
<EMAIL_ADDRESS>{
    domain {
        firstLabel = Regex("[a-z]+")
        secondLabel = firstLabel
    }
}

We should take more time to design this solution according to the validation of the regular expression received from users.

Another implementation of the EmailAddress type will be available after resolving #635.


Newblur feed: not all saved posts appear as starred

I have 152 'saved' posts on Newsblur. 31 appear as 'starred' in NNW. In NNW I only have the Newsblur set up. The starred posts include some from 2017 so it's not the 31 most recent ones. Ideally all the posts saved in Newsblur should appear as starred in NNW. If that's not possible it would be helpful to document which ones are included as I haven't been able to guess the logic.

Best initial guess — maybe the ones that don’t appear are from feeds you’re no longer subscribed to?

That would have been a good reason, but I've just checked and found posts from feeds I still do subscribe so that's not it. Thanks for your quick response.

Where the ones you didn't get older than 90 days when you added the account to NetNewsWire? Is there anything else you can think of that is different about the ones that didn't make it to NetNewsWire?


Catch all on sources

Consider using an asterisk item to signal a catch all source. Possible alias catchAll flag on source.

Use catchAll for now, as the appropriate action for a catch all is to accept data for all unknown item types with no mapping, i.e. the source should be capable of handling Integreat's internal data format.


seq2seq tutorial example not working for python 3.4

Environment info
Operating System:
Ubuntu 14.04

Which pip package you installed.
sudo pip3 install --upgrade /tmp/pip/tensorflow-*.whl

The output from python -c "import tensorflow; print(tensorflow.version)".
0.7.1
(Built from commit 263d00d271077 with TF_UNOFFICIAL_SETTING=1 ./configure )

Steps to reproduce

Apply https://github.com/tensorflow/tensorflow/commit/cdd0e2b7c542a59322c054aa1a52b2753c1cf69e
Run python3 ../tensorflow/tensorflow/models/rnn/translate/translate.py --data_dir .
Fail with trying to decode training data as ascii (see log at the end)

What have you tried?
Modified https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/platform/default/_gfile.py#L63 to self._fp = open(name, mode, encoding="latin-1")
This seems to fix this issue for python 3.4.
Logs or other output that would be helpful
Creating vocabulary ./vocab40000.fr from data ./giga-fren.release2.fr
Traceback (most recent call last):
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 276, in
tf.app.run()
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/platform/default/_app.py", line 30, in run
sys.exit(main(sys.argv))
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 273, in main
train()
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 137, in train
FLAGS.data_dir, FLAGS.en_vocab_size, FLAGS.fr_vocab_size)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 268, in prepare_wmt_data
create_vocabulary(fr_vocab_path, train_path + ".fr", fr_vocabulary_size)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 136, in create_vocabulary
for line in f:
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/platform/default/_gfile.py", line 176, in next
return next(self._fp)
File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]

Can you confirm that you're using python 3?  You say pip3 and python above; is just python Python 3?  If so, what version?

Sorry for being unclear. The command was left over from the github issue template.
python3 --version
Python 3.4.3
python3 -c "import tensorflow; print(tensorflow.__version__)"
0.7.1
python --version
Python 2.7.6
python -c "import tensorflow; print(tensorflow.__version__)"
ImportError: No module named tensorflow

Next question: what exception are you seeing?  It may just be my eyes glazing over, but it looks like the initial comment has a traceback but not the actual exception.

The important line was missing, yes.
python3 ../../../tensorflow/tensorflow/models/rnn/translate/translate.py --data_dir .
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Preparing WMT data in .
Extracting tar file ./training-giga-fren.tar
Unpacking ./giga-fren.release2.fr.gz to ./giga-fren.release2.fr
Unpacking ./giga-fren.release2.en.gz to ./giga-fren.release2.en
Downloading http://www.statmt.org/wmt15/dev-v2.tgz to ./dev-v2.tgz
Succesfully downloaded dev-v2.tgz 21393583 bytes
Extracting tgz file ./dev-v2.tgz
Creating vocabulary ./vocab40000.fr from data ./giga-fren.release2.fr
Traceback (most recent call last):
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 276, in
tf.app.run()
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/platform/default/_app.py", line 30, in run
sys.exit(main(sys.argv))
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 273, in main
train()
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 137, in train
FLAGS.data_dir, FLAGS.en_vocab_size, FLAGS.fr_vocab_size)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 268, in prepare_wmt_data
create_vocabulary(fr_vocab_path, train_path + ".fr", fr_vocabulary_size)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 136, in create_vocabulary
for line in f:
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/platform/default/_gfile.py", line 177, in next
return next(self._fp)
File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 14: ordinal not in range(128)

Does changing with gfile.GFile(data_path, mode="r") as f: in models/rnn/translate/data_utils.py to have mode="rb" fix the problem?  If so, that's a better fix than teaching gfile.py about latin.

Line 134 to with gfile.GFile(data_path, mode="rb") as f:
together with
Line 140 to tokens = tokenizer(line.decode('latin1')) if tokenizer else basic_tokenizer(line.decode('latin1'))
also seems to solve the issue for python 3.

What error do you get if you only make the line 134 change?  The reason I ask is that it should work the same way in Python 2 and Python 3, and Python 2 doesn't automatically use unicode.

python3 ../../../tensorflow/tensorflow/models/rnn/translate/translate.py --data_dir .
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Preparing WMT data in .
Creating vocabulary ./vocab40000.fr from data ./giga-fren.release2.fr
Traceback (most recent call last):
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 276, in
tf.app.run()
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/platform/default/_app.py", line 30, in run
sys.exit(main(sys.argv))
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 273, in main
train()
File "../../../tensorflow/tensorflow/models/rnn/translate/translate.py", line 137, in train
FLAGS.data_dir, FLAGS.en_vocab_size, FLAGS.fr_vocab_size)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 268, in prepare_wmt_data
create_vocabulary(fr_vocab_path, train_path + ".fr", fr_vocabulary_size)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 140, in create_vocabulary
tokens = tokenizer(line) if tokenizer else basic_tokenizer(line)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/models/rnn/translate/data_utils.py", line 109, in basic_tokenizer
words.extend(re.split(_WORD_SPLIT, space_separated_fragment))
File "/usr/lib/python3.4/re.py", line 200, in split
return _compile(pattern, flags).split(string, maxsplit)
TypeError: can't use a string pattern on a bytes-like object

So the right fix for that is to put b in front of the regular expression definitions to get bytes-compatible regular expressions.  A few more fixes along those lines may be required.

If you want to keep trying to fix it I'm happy to keep helping, but I could also try to find someone to reproduce on our end.

I've posted an initial attempt to https://github.com/tensorflow/tensorflow/pull/1436
I've not tested this on 2.7 and would also need pointers.

I believe this was fixed by #1436.


Install external debs from repo in sawtooth-build-debs

Signed-off-by: Adam Ludvik<EMAIL_ADDRESS>

is this going to conflict with #276

#276 is rebased on this PR


Local development intro tutorial doesn't work on Windows WSL environment

Hi team,
I've discussed the issue in Discord here and here.
I'm running dfx on a Ubuntu machine (Ubuntu 20.04 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)) running on Windows 10 WSL. I followed the official docs for setting up dfx via WSL. I'm running node version v19.1.0 and dfx version 0.12.1.
[windows_dir]>wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  Ubuntu                 Running         1

This is the process I followed:
dfx new hello
dfx start --clean --background

Everything looked good, and I could access the dashboard that opens up.
Running dfx start for version 0.12.1
Using the default definition for the 'local' shared network because /home/amir/.config/dfx/networks.json does not exist.

Then, running dfx deploy ends with an error:
Creating a wallet canister on the local network.
thread 'main' panicked at 'assertion failed: (left == right)
  left: 819200,
 right: 0: The page allocator was initialized with non-empty file', replicated_state/src/page_map/page_allocator/mmap.rs:399:9

I followed a few suggestions including using the --clean option when starting dfx, as well as deleting the .dfx dir, but nothing worked.
I also tried an alternative command, but got the same issue:
dfx start --clean --backgroun
dfx identity get-wallet

Gives:
Creating a wallet canister on the local network.
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `819200`,
 right: `0`: The page allocator was initialized with non-empty file', replicated_state/src/page_map/page_allocator/mmap.rs:399:9
version: 0.8.1
 Error: Failed to get wallet for identity 'default' on network 'local'.
Caused by: Failed to get wallet for identity 'default' on network 'local'.
  Failed to create wallet for identity 'default' on network 'local'.
    Failed while installing wasm.
      The replica returned an HTTP Error: Http Error: status 500 Internal Server Error, content type "", content: Internal Server Error
Nov 30 19:21:06.947 WARN Internal Error during request:
hyper::Error(
    Connect,
    ConnectError(
        "tcp connect error",
        Os {
            code: 111,
            kind: ConnectionRefused,
            message: "Connection refused",
        },
    ),
)

I then downgraded to version 0.10.1 which started to work as expected. I suppose the issue is with the latest version then (0.12.1).
Meta
dfx --version:
0.12.1

Further log output

<log output>

Thank you for the report, the team is looking into it. (Link for myself for later)

From internal comms:

it is a runtime issue. Looks like tempfile::tempfile() is giving an already existing file to dfx on WSL

Will update if anything else comes from it

Thanks. It's probably an issue with WSL2 vs WSL. I was running the Ubuntu VM on WSL, but I've recently upgraded it to WSL2, so will try running another test if and when I get some free time to experiment with this again.


feat(chai-dom-equals): improve chai-dom-equals error reporting

fixes https://github.com/open-wc/open-wc/issues/53
The error reporting of chai-dom-equals and semantic-dom-diff were always a bit strange in complex cases. This improves it by taking advantage of built-in chai ability to diff strings with newlines.
This improvement will only be visible when utilizing mocha's advanced/deep error reporting (our karma setup uses it, but WCT does not).
I also removed the .semantically part of the chai plugin, with these changes a non-semantic quality is no longer necessary. I kept it in for backwards compatibility so that we don't break people's tests.

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


IndexError: boolean index did not match indexed array along dimension 0

I keep getting this error when running the code from the example, but with my own data swapped in. It's worth noting that it's accompanied by the message, "Only one genoptype found try rescue_genotype to find a second one".
IndexError                                Traceback (most recent call last)
Cell In[8], line 23
     21 data.cluster(k=10, threads=THREADS, resolution=0.4, seed=42, min_cells=5)
     22 if data._NL == 1:
---> 23     data.rescue_genotype(out=None, eps=1e-5, upper_mads=10, lower_mads=3)
     24 if data._NL == 1:
     25     print('cannot proceed only one genotype found')

File ~/anaconda3/envs/myenv/lib/python3.12/site-packages/sctx/genotype.py:313, in TxDemulti.rescue_genotype(self, out, eps, upper_mads, lower_mads)
    311 for i, l in zip([0, 1, 3], lnames):
    312     lidx = labels == i
--> 313     axs.scatter(counts[lidx], scores[lidx], s=5, lw=0, edgecolor='k', color=plt.cm.Dark2.colors[i], rasterized=True, label=l)
    314 axs.set_xscale('log')
    315 axs.legend(loc='upper left', bbox_to_anchor=[1.05, 1])

IndexError: boolean index did not match indexed array along dimension 0; dimension is 263 but corresponding boolean dimension is 274

Is this simply because sctx can't identify the second genotype? Is there a way around this problem if my current dataset is too small? Notably, I didn't get this error when I ran the code on a larger version of the data that included multiple tissue samples from the same patient; due to the requirements of the project, however, it's necessary for me to subset the data by tissue type.

Hi,
I think there was a bug I had not encountered before while testing that showed up with your specific sample. I have fixed the bug.  Hopefully the rescue function works now. It should give you a plot that indicates to you if there are cells that "deviate" from the predominant genotype which would suggest that there is a second one present.  It will also try to identify that genotype.

I reinstalled sctx but I'm still getting the exact same error.

Sorry, I think there was a second bug I needed to fix.  Could you repull the repository again?  I hope this fixes the issue now.

Now there's a different error:
Only one genoptype found try rescue_genotype to find a second one
Rescued Label counts: (0 = 270) (3 = 4)

Could not find a second potential genotype
cannot proceed only one genotype found
initial:  Counter({0: 270, 3: 4})

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[3], line 29
     25     print('cannot proceed only one genotype found')
     27 refine = RT.RefineGT(snv_data.strand_ref[keep].copy(), snv_data.strand_alt[keep].copy(), snv_data.snvs[keep].copy(), snv_data.barcodes, close_fig=False)
---> 29 if not refine.refine_genotypes(data._labels['initial_clustering'], out=None):
     30     print('Failed to identify a second genotype')
     32 df = pd.DataFrame({'barcode':refine._barcodes, 'label':refine._final_labels.copy(), 'gt1_score':refine._final_scores[:,0], 'gt2_score':refine._final_scores[:,1]})

File ~/anaconda3/envs/myenv/lib/python3.12/site-packages/sctx/refine.py:174, in RefineGT.refine_genotypes(self, rlabels, snv_min_cells_per_genotype, snv_total_cells, snv_AF_diff, eps, cell_min_snvs, cell_min_score, max_iterations, singlet_percentile, doublet_rate, doublet_simulate_multiplier, doublet_minimum, doublet_min_pval, seed, out)
    170 print('initial: ', Counter(labels))
    172 scats = []
--> 174 _, scores, passed, passed_snvs, gts = self._calculate_scores(labels)
    175 labels = NP.full(len(scores), 3, dtype='int')
    176 labels[passed] = NP.argmin(scores[passed], axis=1)

File ~/anaconda3/envs/myenv/lib/python3.12/site-packages/sctx/refine.py:84, in RefineGT._calculate_scores(self, labels)
     82 ogts = calc.calculate_genotypes(ref, alt, labels.astype('int32'))
     83 #print(Counter(labels))
---> 84 x, y = ogts['cells_0'], ogts['cells_1']
     85 p = self._params
     86 idx = NP.where((x >= p['snv_min_cells_per_genotype']) & (y >= p['snv_min_cells_per_genotype']) & ((x + y) >= p['snv_total_cells']))[0]

KeyError: 'cells_1'

That error basically means that even the rescue attempt could not find a second genotype.  The code following that function will not work.
Basically, It found 3 cells that had a slight deviation but not a large enough one to call it a second genotype Counter({0:270, 3:4}).  You can play with the thresholds for the rescue function.  You could lower the upper_mads from 10 to number above the lower_mads.  For example, rescue_genotype(out=None, eps=1e-5, upper_mads=7, lower_mads=3).  You can see how the line placement in the resultant plot changes the results.   I have to warn you though setting the upper_mads to a value that's too low may just find nonsense genotypes.
There's a good chance that the sample you are looking at does not have enough cells to find a second genotype.

About upper_mads and lower_mads, what do they correspond to? I'm trying to adjust the sensitivity of sctx, as I'm currently testing it on non-transplanted samples and it's still detecting "second genotypes".

If a second genotype is not found through clustering, my algorithm will look for cells that look different than the average genotype across all of the cells.  The lower_mad is used to define a cutoff for the major genotype, where cells that have a genotype divergence from the average genotype less than (median(genotype divergence) + x*MAD). Analogously, the upper cutoff defines the group of cells that are initially assigned to the second genotype prior to refinement,  The cells between the two cutoffs aren't assigned but will likely be assigned during refinement.  The goal of this is to find a small number of cells that look very different than the average genotype.  If you make the upper mad parameter too low you will almost always find a second genotype and then the refinement step will force it.

Sometimes sctx identifies multiple "genotypes" even without running rescue_genotype; what do snv_cutoff and cell_cutoff correspond to so that I can adjust the cutoff values?

This removes cells with low numbers of co-expressed SNVs with other cells.  In the case of the default parameters, we required 20 co-expressed SNVs and each of these co-expressed SNVs should be expressed with at least 25 other cells.   This removes cases where cells have a handful of private SNVs force them to appear further apart than they are.
Just a note sctx, like other genotype deconvolution tools was not designed to be used on samples where a second genotype is not present.  It will probably find a second genotype, however, the genotype score differences between genotype 1 and 2 will likely be smaller than the case of a sample with multiple genotypes.  Moreover, the number of genotype specific SNVs tends to be small and in specific regions.  It will be difficult to tweak the parameters of these algorithms to not find a second genotype when isn't there and these parameter choices will likely affect your sensitivity for samples that do have a second genotye.

Is it possible to display the poor SNV differences as a numerical value, particularly if cell annotation data is unavailable?

You can just make a barcode map that maps every barcode to the same label.  It will still separate the samples by genotype.  You can probably look at the average between genotype and within genotype distance.

How do I retrieve the data related to "between genotype distance" and "within genotype distance"? Do I just use the gt1/2 scores?

Yes you can try those.  Examining the SNV heatmap is also helpful in this case.  The number of SNV's differing between the two genotypes may be indicative of a low quality second genotype depending on what the samples are.

I guess what I'm really asking for is a way to automatically discard low-quality genotypes using numerical data from the output of the FindSNVs, score_snvs, and find_predictive functions, without having to "eyeball" a heatmap.


All errors are “Internal server error”，I find it hard to debug

Is it better to return it directly?

agreed, PR welcome anyway

@ije #64

thanks!


Add Teamate ESP

Sometimes it is nice to see where your teamates are at that's why i decided to add Teamate ESP :)

not a major change but could be useful

Lol? You don't even check if it's teammates or not, just only check if the var is enabled, ik i merged low quality pr but this is on next level

that check legit checks if entity is not equal to teamate if it is it just returns so are you stupid or something?

that check legit checks if entity is not equal to teamate if it is it just returns so are you stupid or something?
i mean you wrote it how the hell does one not know how his own code works? what i did was add to a simple condition that if the feature is enabled it wont skip teamates. (explained what an if statement means for your special kind of brain.)

Lil bro.... u only add if the the var is enabled or not, i shouldn't even explain what's wrong

that check legit checks if entity is not equal to teamate if it is it just returns so are you stupid or something?
i mean you wrote it how the hell does one not know how his own code works? what i did was add to a simple condition that if the feature is enabled it wont skip teamates. (explained what an if statement means for your special kind of brain.)

 Lil bro.... u only add if the the var is enabled or not, i shouldn't even explain what's wrong
If you want to properly add this, take a look at qo0 as this base it heavily inspired from it https://github.com/rollraw/qo0-csgo/blob/590d2132374db3aa43d5ce656f6b3f34950430eb/base/features/visual/overlay.cpp#L560
Next time learn to code properly instead of being toxic

Also from now on I'll stop merging low quality stuffs to reduce this happen again


continuity update

Coverage remained the same at 100.0% when pulling eaccbca20c62ce305323c0444ba8a3acaeb920e5 on salt-lick:patch-1 into 578e54254ac280debc65f1c83c401a61fca827e5 on peppeocchi:master.

Coverage remained the same at 100.0% when pulling eaccbca20c62ce305323c0444ba8a3acaeb920e5 on salt-lick:patch-1 into 578e54254ac280debc65f1c83c401a61fca827e5 on peppeocchi:master.

Coverage remained the same at 100.0% when pulling eaccbca20c62ce305323c0444ba8a3acaeb920e5 on salt-lick:patch-1 into 578e54254ac280debc65f1c83c401a61fca827e5 on peppeocchi:master.

@salt-lick thank you


HostPortWaitStrategy strategy does not work for localhost bound ports

Expected Behaviour
When launching a container with a port bound to localhost, the wait strategy should work.
Actual Behaviour
The HostPortWaitStrategy fails to recognize the open port and eventually times out. This issue seems to only occur on Linux machines. MacOS works fine.
Testcontainer Logs
Error: Port 4566 not bound after 60000ms

   at globalSetup.ts:38

  36 |   console.log(`Starting docker compose environment...`);
  37 |   const composeFilePath = path.resolve(__dirname, '../');
> 38 |   const environment = await new DockerComposeEnvironment(
     |                       ^
  39 |     composeFilePath,
  [40](https://github.com/bastionplatforms/monorepo/actions/runs/7124569757/job/19400552961?pr=553#step:12:41) |     'docker-compose.yml',
  [41](https://github.com/bastionplatforms/monorepo/actions/runs/7124569757/job/19400552961?pr=553#step:12:42) |   )

    at /home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/wait-strategies/host-port-wait-strategy.ts:52:15
    at IntervalRetry.retryUntil (/home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/common/retry.ts:49:16)
    at HostPortWaitStrategy.waitForPort (/home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/wait-strategies/host-port-wait-strategy.ts:[46](https://github.com/bastionplatforms/monorepo/actions/runs/7124569757/job/19400552961?pr=553#step:12:47):5)
    at HostPortWaitStrategy.waitForHostPorts (/home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/wait-strategies/host-port-wait-strategy.ts:27:7)
    at HostPortWaitStrategy.waitUntilReady (/home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/wait-strategies/host-port-wait-strategy.ts:14:5)
    at waitForContainer (/home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/wait-strategies/wait-for-container.ts:17:5)
    at /home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/docker-compose-environment/docker-compose-environment.ts:1[50](https://github.com/bastionplatforms/monorepo/actions/runs/7124569757/job/19400552961?pr=553#step:12:51):13
    at DockerComposeEnvironment.up (/home/runner/work/monorepo/monorepo/node_modules/testcontainers/src/docker-compose-environment/docker-compose-environment.ts:128:7)
    at globalSetup (/home/runner/work/monorepo/monorepo/e2e-tests/globalSetup.ts:38:23)

Steps to Reproduce

Setup a GitHub Actions workflow to launch a compose project through testcontainers.
The compose file:services:
  localstack:
    image: localstack/localstack
    ports:
      - "<IP_ADDRESS>:4566:4566"            # LocalStack Gateway
    environment:
      - DEBUG=${DEBUG-}
      - DOCKER_HOST=unix:///var/run/docker.sock
      - DYNAMODB_SHARE_DB=1
      - DYNAMODB_IN_MEMORY=1
    healthcheck:
      test: "curl --silent --fail localstack:4566/_localstack/health"
      interval: 1s
      retries: 5
      start_period: 20s
      timeout: 10s
    volumes:
      - "./.localstack/init-aws.sh:/etc/localstack/init/ready.d/init-aws.sh"  # ready hook
      - "./.localstack-volume:/var/lib/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"

Run 'await new DockerComposeEnvironment(composeFilePath, 'docker-compose.yml').up();`
See error...

Environment Information

Operating System: Ubuntu 22.04
Docker Version: 24.0.7
Node version: 18.18.2
Testcontainers version: 10.3.2

@jalaziz @cristianrgreco any solution for this?
I was in a previous project using:
  const environment = await new DockerComposeEnvironment(composeFilePath, composeFile)
    .withEnvironment({
      ...
    })
    .withWaitStrategy(serviceName, Wait.forHealthCheck())
    .up([serviceName]);

But now for a new project with lot of dependencies updated (ESM modules, different Node version...), it times out saying Port 52670 not bound after 60000ms (it seems to come from https://github.com/testcontainers/testcontainers-node/blob/9805f226ed259e451c46f15d3988bdff992c46d8/packages/testcontainers/src/wait-strategies/host-port-wait-strategy.ts#L45-L57).
Note I tried to use testcontainers with the latest version and also v9.6.0 that is on the other project.
Thank you,

@jalaziz @cristianrgreco any solution for this?

Unfortunately no solution. I've switched to Wait.forHealthCheck() with custom healtchecks for the time being.

I think I just ran into this -- except I can't actually get the custom health check to pass either, even with test: ["CMD-SHELL", "exit 0"] it just fails for however long.
It would be nice if there wasn't a default healthcheck (or it could be disbaled) that tried to use the ports -- it's helpful but a way to disable that logic would be nice


Reconstruction store

Rename factors to logic
Add buildComponent-api to mixed_store
Rename createPageStore to createMixedStore
enhance buildComponent of context (self or store)
Reconstruction page-store to mixed-store

#153


fix: don't use separate random library

I was having some build problems with random and some of the other deps from riot. I was able to build after removing random and using Random from one of the other libs.

LGTM.
The test isn't working due to a issue with connecting to the database. Havn't had time to fix it yet :D


Create a review section

One need to make this component using HTML and Tailwind CSS. I would suggest to use Tailwind Playgrounds to make things faster and quicker.
Here is a reference to the component.

After building the component please raise a PR with a screenshot of the component and add the component in path of the file.
If you need to use any icon please use it from Hero Icons
Good luck.

i think it would be helpful for the visitors to get insights on the website...


WIP: Update wl-pod-wait.sh to use complete & generations, rename, and promote to life cycle script area

When waiting for a domain stabilize, instead of asking user to specify the number of expected pods on the command line, wait for:

domain Completed condition to reach True
domain generation to match observedGeneration
each cluster generation to match its observedGeneration

This pull includes:

the above new behavior
corresponding doc and integration test updates
moving the script to the life cycle script area
renaming script to 'waitForDomain.sh' (matches pattern of other life cycle scripts)
a tidy up of the life cycle script README.md

Integration test results:

Pending

Branch 'OWLS-88344-new' is superseded by branch 'OWLS-88344'.


Instanced renderer?

Since hecs doesn't have any shared components/tags feature, would there be any way to implement an "efficient" renderer, let alone an instanced renderer?
With a regular query, I could achieve something like this:
for (id, (ltw, mesh, pip)) in world.query::<(&LocalToWorld, &Mesh, &Pipeline)>().iter()
{
    // no instanced rendering here, just update the uniform buffer for every object
    ctx.update_uniform(ltw);

    // this is a relatively expensive operation
    // the `Mesh` component is a handle to a shared mesh
    ctx.bind_mesh(mesh);

    // also a relatively expensive operation
    // the `Pipeline` component is a handle to a shared graphics pipeline
    ctx.bind_pipeline(pip);

    // draw a single "instance"
    ctx.draw(0..1);
}

The code above would be ridiculously inefficient because both the mesh and pipeline are re-bound for every entity. Ideally, I'd like to be able to achieve something like this:
for chunk in world.query::<(&LocalToWorld,)>()
                                      .shared::<(&Mesh, &Pipeline)>()
                                      .iter()
{
    let mesh: &Mesh = chunk.shared_component::<Mesh>().unwrap();
    let pip: &Pipeline = chunk.shared_component().unwrap();

    // only bind once per chunk
    ctx.bind_mesh(mesh);

    // only bind once per chunk
    ctx.bind_pipeline(pip);

    for (id, (ltw,)) in chunk.iter()
    {
        // still not instanced, but much better than before
        ctx.update_uniform(ltw);
        ctx.draw(0..1);
    }
}

And even better, instanced rendering by getting a slice of components:
for chunk in world.query::<(&LocalToWorld,)>()
                                      .shared::<(&Mesh, &Pipeline)>()
                                      .iter()
{
    let mesh: &Mesh = chunk.shared_component::<Mesh>().unwrap();
    let pip: &Pipeline = chunk.shared_component().unwrap();

    // get a slice of components(I'm not sure how hecs stores component
    // data and if this is possible at all)
    let ltw: &[LocalToWorld] = chunk.components();

    // only bind once per chunk
    ctx.bind_mesh(mesh);

    // only bind once per chunk
    ctx.bind_pipeline(pip);

    // update buffer once
    ctx.update_uniform(ltw);

    ctx.draw(0..chunk.count());
}

So far, this has all been very similar to legion's approach towards this problem. I'd be interested in any other methods that require less/no change to hecs' current API.

Thanks for the issue! This is an interesting question, as I'm open to adding shared components if a sufficiently compelling use case emerges. That said, my approach would be to aggregate from the query directly into memory-mapped instance buffers:
let mut instance_buffers = ...;
for (id, (ltw, mesh, pip)) in world.query::<(&LocalToWorld, &Mesh, &Pipeline)>().iter()
{
    instance_buffers[pip][mesh].push(ltw);
}
for (pipeline, meshes) in instance_buffers {
    ctx.bind_pipeline(pipeline);
    for (mesh, instances) in meshes {
        ctx.bind_mesh(mesh);
        ctx.bind_instances(instances);
        ctx.draw(instances.len());
    }
}

instance_buffers could be a HashMap<(Pipeline, Mesh), InstanceBuffer> or, with slightly more bookkeeping, a Vec<Vec<InstanceBuffer>>.
This theoretically could suffer from reduced write locality, but I'd like to see a benchmark of a real case where that presents an issue. Conversely, this has the benefit that you can easily schedule the transfer of instance data to device-local memory all at once, imposing a single memory barrier, rather than repeatedly interleaving transfers and draws, and you don't sacrifice the ability to perform CPU culling.
With modern graphics devices, you may even be able to use descriptor indexing to use instancing where previously CPU-side rebinding would be necessary to e.g. change sets of textures, which will help keep locality up.

That's a very interesting workaround, which I think I'll use on my current project! I think shared components could still be something hecs would benefit from, but for now, your approach seems viable.

They're definitely an interesting notion, and I'll happy to discuss further prospective applications for them. I'll close this for now since it sounds like this particular use case is adequately addressed without, but feel free to open new issues for different cases, or reopen if issues arise with the proposed solution here.


feat: adds new github-env audit

Pulls dangerous triggers detection logic from WorkflowAudit and moves to impl DangerousTriggers instance methods
Reuses only that logic in the context of to implement a new audit

cargo run -- tests/test-data/github_env.yml

error[github-env]: dangerous use of $GITHUB_ENV
  --> tests/test-data/github_env.yml:12:9
   |
12 |           run: |
   |  _________^
13 | |           message=$(echo "$TITLE" | grep -oP '[{\[][^}\]]+[}\]]' | sed 's/{\|}\|\[\|\]//g')
14 | |           echo "message=$message" >> $GITHUB_ENV
   | |_________________________________________________^ GITHUB_ENV used in the context of a dangerous Workflow trigger
   |
   = note: audit confidence → High

2 findings (1 ignored): 0 unknown, 0 informational, 0 low, 0 medium, 1 high

Some questions below!

Thanks @ubiratansoares! I'll give this a more detailed review later today.

Pulls dangerous triggers detection logic from WorkflowAudit and moves to impl DangerousTriggers instance methods

Rather than use sharing APIs across audits, I think we can probably turn these into APIs on models::Workflow -- Workflow::has_pull_request_target and similar would probably be good.

I address all the comments, including moving dangerous triggers detection logic to  models::Workflow.
I also added some docs covering the basics based on the discussions we have in the related issue, but I did not go deep there are safe ways to use $GITHUB_ENV. Happy to extended those docs based on additional input!

@woodruffw we miss an example here, happy to raise a PR there, lmk!

@woodruffw we miss an example here, happy to raise a PR there, lmk!

Please do, thanks!


Fix Decoder with BOM. Fixes #139

Streams that start with a Byte Order Mark are now understood correctly. The BOM is automatically restored to keep compatibility and consistency, but it can be disabled.

This change is

Codecov Report

Merging #140 into master will increase coverage by 0.04%.
The diff coverage is 93.75%.

@@            Coverage Diff             @@
##           master     #140      +/-   ##
==========================================
+ Coverage   94.18%   94.22%   +0.04%
==========================================
  Files          36       36
  Lines        1409     1421      +12
==========================================
+ Hits         1327     1339      +12
  Misses         70       70
  Partials       12       12

Impacted Files
Coverage Δ

document.go
57.62% <ø> (ø)
:arrow_up:

decoder.go
98.05% <100%> (+0.14%)
:arrow_up:

encoder.go
83.78% <88.88%> (+2.53%)
:arrow_up:

Continue to review full report at Codecov.

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


How to use this in project Xamarin.Forms Portable?

When you try to install the Nuget package, I get the error:
Could not install package 'Microsoft.ApplicationInsights.Xamarin 1.0.0-alpha2'.
You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile78',
but the package does not contain any assembly references or content files that are compatible with that framework.

Can I use ApplicationInsights in a Portable project?

Where did you get the nupkg from (which branch)?

From master branch

If I use the nupkg from feature/change-pcl-profile get the error:
Failed to add reference to 'AI.XamarinSDK.Abstractions'.

I use Visual Studio 2015.
My test project can be seen here: https://github.com/wcoder/AppInsightsForms (now use custom wrapper class)

Hi,
just try to remove the packages from both the shared project as well as the Android project and add them again:

Thank you,

Chris

Hi,
I tried this way, if I install package with Xamarin Studio, get the error:
Adding Microsoft.ApplicationInsights.Xamarin...
Attempting to resolve dependency 'Xamarin.Forms (≥ <IP_ADDRESS>74)'.
Adding 'Microsoft.ApplicationInsights.Xamarin 1.0.0-alpha2' to AppInsightsForms.

Could not install package 'Microsoft.ApplicationInsights.Xamarin 1.0.0-alpha2'.
You are trying to install this package into a project that targets
'portable-net45+dnxcore50+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10',
but the package does not contain any assembly
references or content files that are compatible with that framework.
For more information, contact the package author.

Which Xamarin versions are you using?

I use:
Microsoft Visual Studio Enterprise 2015 Version 14.0.23107.0 D14REL

NuGet Package Manager   3.2.0

Xamarin   3.11.1443.0
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android   <IP_ADDRESS>
Visual Studio plugin to enable development for Xamarin.Android.

Xamarin.iOS   <IP_ADDRESS>
Visual Studio extension to enable development for Xamarin.iOS.

Xamarin.Forms Intellisense   1.0
Provides intellisense for Xamarin.Forms in the XML editor.

Info from VS -> Help -> About

Hi,
thanks for the info. It seems like some of your app assemblies don't support profile 78. I'm going to have a second look at it on my Windows machine. In the meanwhile, can you please compare your app config with the one of the demo app which comes with the sdk?
Best,
-Christoph

Hi,
Are you sure we are talking about the same demo project? I just downloaded the project on my windows machine and opened it with Xamarin Studio. Then I removed the AI Xamarin SDK NuGet from the Droid target and added it again – without any problem. I repeated this step in VS 2015 and it worked as well. Did you modify your local version in the meanwhile? Can you assist me to be able to reproduce the behaviour? Are you still using the package from the feature/change-pcl-profile branch (now develop)?
Thank you

Hi Chris,
I solved this problem. It is my local problem!
The problem occurs because:

I downloaded zip archive from develop branch
unarchiving it I got the following path to the package: C:\Users\wcoder\Desktop\ApplicationInsights-Xamarin-develop\ApplicationInsights-Xamarin-develop\ApplicationInsightsXamarinSDK\NuGet
this path too long, so failed to add package to my project :smile:

Thank you for your time.

Hi wcoder,
happy that you found the issue.
Cheers,
Christoph


Dockview does not support React.memo for components

Describe the bug.
Hi there!
I have several functional components in the Dockview "components" prop which are wrapped in React.memo for performance.
const ExampleComponent = memo(function ExampleComponent() {     return <>Example JSX</>; });
This throws the following error in the JS console, coming from dockview

I was hoping to get support for these components, or maybe you can elaborate on why these are deliberately not supported if that's the case.
To Reproduce
Steps to reproduce the behavior:

Register any functional component wrapped in React.memo into Dockview
Render a pane with that component

Expected behavior
Not error

Thanks for rasing the issue!
There is no reason dockview should not support components wrapped in React.memo (or React.ForwardRef for that matter). I will get this changed, the current check is very old and not particularly clever. It simply checks if the input is typeof function.

Released in 1.10.0 https://dockview.dev/


Bounty: Wallet payment API

GoodDollar is a non-profit project, delivering digital basic income to tens of thousands of daily users in the form of the G$ token.
This bounty is about improving the wallet (wallet.gooddollar.org), adding a simple serverless payment API capabilities with retailers.
Motivation

User should be able to pay online with his G$ wallet
Sellers should be able to request payment in G$ on their websites

Details

contact us on discord/telegram for help setting up dev env for the wallet and walkthrough the bounty
you can complete tasks separately for the specified bounty for each task

User Flow and wallet specificaitons

User scans QR or press on payment link

Link will contain extra information (see below PaymentDetails)

[x] Task1 (1 hour = 30$)  - parse the following data from payment link (lib/share/index.js generateCode + readCode)

[x] Callback url - notify seller backend once payment has been sent
[x] Invoice # - seller identifier of tx
[x] website - seller website
[x] seller/store name

User then sees the payment request summary page

[x] Task2(8 hours = 240$) - In payment confirmation screen (SendLinkSummary.js, SummaryGeneric.js) also show :

[x] Callback url/website
[x] Invoice #
[x] Show notification that TX details + email + name will be sent back to website + seller
[x] Editable field for email + name (so seller can contact you)

Once user confirms TX is created and details sent to seller and saved in feed

[x] Task 3 (4 hours = 120$) - support saving extra information and calling seller callback url

[x] Add to feed item (SendLinkSummary.js onTransactionHash) the following data

senderEmail - email entered by user
senderName - name entered by user
invoiceId - invoice # from seller read from link/qr
sellerWebsite - website from seller read from link/qr
sellerName - seller/store name read from link/qr

[x] When calling sendAmount (in SendLinkSummary.js) add parameter txIdentifier and pass invoice #

In GoodWallet sendAmount when invoice is not empty use transferAndCall with txIdentifier hash (sha3) as data

[ ] Send in callback url via POST

[ ] senderEmail
[ ] senderName
[x] Tx hash
[x] Invoice #

Seller should see payment extra details on his G$ wallet. If you did task 3 correctly, the seller wallet should
have those details once TX is received. the fields will be in feed item item.data

[ ] Task 4 (4 hours = 120$) - show payment details in feed item and in feed item modal (FeedListItem.js, FeedModalItem.js)

[ ] In feed item show under name of sender: invoiceId + sellerWebsite
[ ] In feed item modal show: senderEmail + invoiceId + sellerWebsite

Seller SDK

Create a typescript npm module that works both on browser/node that implements the following methods
[ ] Task 5 (16 hours = 480$)

[ ] generatePaymentLink(PaymentDetails):string
Similar to (lib/share/index.js generateCode + readCode)
Should include extra details from PaymentDetails
[ ] generatePaymentQR(PaymentDetails):image
Same as above but create a QR containing above url
[ ] validateTx(TxData):boolean
Reads fuse blockchain for txhash and check it has a Transfer log with the amount + sha3(data | invoiceid) paid to recipient in event log data
[ ] async onPayment(recipient,invoiceid):Promise
Listens to Transfer event with to=recipient and data=sha3(data | invoiceid)
resolves promise once event detected

Types
PaymentDetails: {
  recipient,
  amount,
  reason,
  category,
  invoiceId,
  sellerName?,
  sellerWebsite?,
  callbackurl
}

TxData: {
  txHash,
  recipient,
  amount
  invoiceId
}

@bertux Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Hello, yes I still work on this issue and I will a WiP PR to track the progress. I am still waiting for environment configuration file from @sirpy but it's not blocking me yet to setup the development environment needed.

Hello, I've received the needed file for tests and I work to be able to test locally before doing any modification. I will submit changes in PR when I will have some.

I'm not working full time on it and there is no time constraints imposed, that explains why I'm not very active on it yet but I'm still contributing to GoodDollar projects.

Hey, you can read my my statement above.  Can someone please create a repo under this org that I can push or update with PR in?

@sno2
https://github.com/GoodDollar/PaymentSDK

@sirpy Sorry, I can't work on the bounty.  I couldn't figure out a way to asynchronously generate images as QR codes in Uint8Array.  All of the qr code npm packages I could find were using callbacks which I could of course promisifiy, but they injected the qr codes into an HTML canvas.  However, you can't access the canvas any DOM elements in Node.js which blocked my entire work.

@sno2 lets skip the QR part for now, i'll research it.
i'm not sure why you have an issue, you can use the same QR package we use on the wallet.
but in the meantime generating payment link is enough

@sno2 this package seems to support async/await and nodejs
https://www.npmjs.com/package/qrcode

this works perfectly fine in the above package, it returns an image in base64 that can be used directly in <img>
qr.toDataURL("https://xx.com").then(console.log)

@sno2 ??

@sno2 ??

Sorry I have exams this week.  I had time to do it last week but not now.  I already cancelled my offer.

finish current PR (need design #3279)
move 3.4.5. to the separate tasks

@sirpy @patpedrosa Does it still relevant or could be closed / moved to the IceBox ?


Interfaces around Services for testing

We are using go-kong and have been writing unit tests around our code. To help with this we have written interfaces for the various Services (RouteService, Svcservice, UpstreamService, and TargetService thus far).
In a way we have painted ourselves into a corner with this.
In trying to hook up the actual go-kong library we are writing super thin wrappers that meet our interface definitions and adapt to go-kong.
It would be much easier if the interfaces existed in go-kong.
Does this sound reasonable? We can prepare a PR if it something people think would be helpful.

@ciroque Some questions before I answer:

Have you considered injecting a mock http.Client into the New() method to mock the entire package?
What is your use-case for this library?
Could you provide a small code sample of what you mean here?

Hi @hbagdi

I had not considered this, sounds intriguing. My trouble with that approach is that we'd be testing that go-kong uses the http.Client as expected. We'd rather put the interfaces / mocks at the natural boundaries of our code.

Perhaps easiest to link to the repo: https://github.com/ciroque/k8s-kong-federated-ingress
Basically we are creating a k8s controller to synchronize Kong resources to k8s resources. While we are using Ingress Controllers we need a Global Ingress Gateway.

https://github.com/ciroque/k8s-kong-federated-ingress/blob/master/internal/kong/client.go is the most specific example. Yeah, it's kind of a disaster, but represents the boundaries we wish to enforce.

Thanks!

@ciroque Sounds like a good addition.
Please feel free to PR this.
Let's use Go's codegen facilities to generate the Interfaces from the struct definitions so that there is no drift and a user doesn't forget to add a method to the Interface if they are implementing it in the struct.

Trying to eke out some time at work to get this done. The Go codegen is not something I am familiar with, but going to learn it. Thanks!


Discussion eslint rule padding-line-between-statements

In compute we have some styling rules that are currently not enforced, but somewhat manually requested in PRs.
These two rules are:

Add an empty line before a return statement:

 something
+
 return x

Add an empty line after a variable declaration, unless next statement is also a variable declaration:

 var u = 3
 const x = 1
 let y = 2
+
 something

In zip-it-and-ship-it we enabled the rule padding-line-between-statements with the following config
    'padding-line-between-statements': [
      'error',
      // Require newline before return
      { blankLine: 'always', prev: '*', next: 'return' },
      // Require newline after a batch of variable declarations
      { blankLine: 'always', prev: ['const', 'let', 'var'], next: '*' },
      { blankLine: 'any', prev: ['const', 'let', 'var'], next: ['const', 'let', 'var'] },
    ],

and this ensures that these exact two behaviors mentioned above are enforced.
Is this something that other teams are doing as well?
Should we enable this globally in this eslint config for all nodejs projects?
Are there any reasons against doing this?
I think if we can agree on this, this is one less thing to worry about when reviewing or writing nodejs code.
I brought this up in the dev tooling guild before and now here as a concrete issue.
cc @Skn0tt @eduardoboucas @ascorbic @khendrikse @lukasholzer @netlify/netlify-dev

My vote is yes, pretty please.

I mean, why not? 🤷 the less ambiguity, the better

No objection here!

Sounds good!


DRILL-7167: Implemented DESCRIBE TABLE statement

JIRA DRILL-7167.

altered parser implementation to honor DESCRIBE TABLE syntax
extended test coverage to check the new statement

+1, LGTM. Please squash the commits.
@dgrinchenko thanks for making the changes and congratulations with he first PR :)

@dgrinchenko thanks for making the changes and congratulations with the first PR :)

Thanks!


Update dependencies

babel 5.8.23 => 5.8.29
babelify 6.3.0 => 6.4.0
browserify 11.2.0 => 12.0.1
zuul 3.6.0 => 3.7.2
updating of babel to 6.x.x cause breaking issues
ref: https://github.com/cyclejs/cycle-core/issues/188

Thanks!