MPRemote ignores almost every command from pallete when running under Linux

I trying to use mpremote in VSCode OSS under linux, but most of options seems to do nothing, even no error messages in developer debug window. It act as no-action binds..
for example show devices will open terminal and run devices, but others like repl, mkdir, sync... etc, nothing.
Is there any way how to put it to more debug mode to check whats going on ?

I think to see debug output you'll need to clone the extension's GitHub repository and run it using the VS Code debugger. That's how I do it, but I'm developing on a Windows system, so obviously I won't see exactly what you're seeing. However, there's nothing really magical about the extension. It's just putting together mpremote command-line options and running the command in the VS Code terminal window. Are you seeing any errors in the terminal window or is it just nothing coming up?

I ran into this problem too. I am also running Linux. The mpremote commands that need an additional input - chdir for example do not bring up the dialog to enter the rest of the command line. However some commands do bring up the dialog - mkdir for example. I don't see any errors in the terminal window. I can type in the mpremote command sin that window so the shell connection is OK.

I don't use VS Code in Linux, so I have no way of confirming or testing. If anyone with a Linux installation of VS Code and knowledge of VS Code extensions wants to help out, I'd appreciate it.

I'd help but I don't want to learn .ts (typescript I suspect) and how to debug it and how to use it inside VSCode. You could install virtualbox and a smallish linux on Windows or OSX and install VSCode in that Linux. Or as I mentioned install Windows Subsystem for Linux (WSL).

I'm kind of in the same boat. My primary desktop OS is Windows, so that's what I develop and test on. I have no desire to install VS Code on Linux. Not trying to be flippant, it's just that my time is limited. If someone else can do this, great. That's why I'm leaving the issue open and tagged it with help wanted.

Looks like 'functions', if that is the correct term, looks more like a block to me,  that use vscode.window.showQuickPick() have this problem - see extension.ts.  That seems like a well used function in VScode so I expect it works OK on Linux.

For what it is worth, the same failure occurs with OSX - it's not just Linux.

Out of curiosity, what happens if you create a directory and then remove it? For example:
MPRemote: Make a new directory (mkdir)
MPRemote: Remove a directory from remote filesystem (rmdir)

You should see an InputBox asking for the directory name when you do mkdir and then a QuickPick showing you choices for directories to deleted when you do the rmdir.
Do you get these prompts?

ccoupe@bronco:~/Projects/iot/micropython/esp32-s3/spidisplay/src$
ccoupe@bronco:~/Projects/iot/micropython/esp32-s3/spidisplay/src$ python -m mpremote connect /dev/ttyACM1 fs mkdir '/foo'
mkdir :/foo
ccoupe@bronco:~/Projects/iot/micropython/esp32-s3/spidisplay/src$ python -m mpremote connect /dev/ttyACM1 fs ls '/'
ls :/
           9 boot.py
        3139 config.py
       80675 deja48.py
        2164 font_test.py
           0 foo/
        1936 main.py
         291 memchk.py
        9269 messagedevice.py
       29113 mqtt_as.py
         203 rangerdevice.py
         224 scan.py
       36743 st7789py.py

There is no prompt for the rmdir and no drop down list.
My guess is the list is empty (bug) and vscode skips the prompt (bug?) or the Quickpick is incorrect on Linux and OSX. There are hints in the massive github issues list that there are two picking mechanisms and they can't be mixed. I don't know if that apply here.

In reference to: "There are hints in the massive github issues list that there are two picking mechanisms and they can't be mixed. I don't know if that apply here."
Are there any links you can provide? My searching has not come up with anything yet.

Try google search  github: quickpick seems to restrict the query to github. That makes it easier. One thought I had was to find another vscode extension that has drop down quickpick and see if it's broken in Linux  - if not broken then it would have clues to something that does work.

Since it looks like you're using an ESP32, I'm wondering if you'd be willing to try out my esptool extension for VS Code on a spare microcontroller you don't mind flashing. There is a QuickPick prompt when you flash firmware that asks for the offset address (0x0 or 0x1000). I'd be curious to know if the QuickPick in esptool works. The way I've coded the two extensions is nearly identical. But, the choices offered by esptool for 0x0 or 0x1000 are hard coded, whereas with MPRemote, the directory choices are gathered from a short python script running on the microcontroller. If the QuickPick offered by esptool works, but not MPRemote, I would say the problem is not with QuickPick, but the dynamic list of choices. Hopefully that makes sense.

Okay, I think I found it. This is the short bit of code I run to find directories and files on the microcontroller...
        let oneLiner = `from os import listdir, stat ; print([entry for entry in listdir('${cwd}') if stat('${cwd}' + '/' + entry)[0] & ${mask} != 0])`;

        // TODO: fix hard-coded py.exe
        let listDirCmd = `py.exe -m mpremote connect ${port} exec "${oneLiner}"`;

Notice the TODO note I left myself. So yeah, that totally explains why it only works on Windows.
Now that I know what it is, I can work on a fix.  Thanks @ccoupe for the help in narrowing this down.

I have a phrase I use when I'm bug hunting in my code and find one of my TODO comments. God D*mn it, Not Again!

Mine was something along the lines of Homer Simpson's DOH! I also have a flat spot on my forehead where I smacked myself.

FWIW erase flash didn't ask for an offset but it did vigorously flash the LED on the S3 - but nothing was erased. I think I need the usb cable in the other connector to actually reprogram the thing.

I just published the fix for the quick pick selections. Once you update to v1.21.3 of the mpremote extension, give it a whirl and see if the selection prompt works for you. Fingers crossed over here.

That was it! Below, I removed the 'foo' dir created earlier and also a file from the drop down list. Thank You. I'll let you close the issue unless you want me too.
ccoupe@bronco:~/Projects/iot/micropython/esp32-s3/spidisplay/src$ python -m mpremote connect /dev/ttyACM1 fs rmdir ':/foo'
rmdir :/foo

ccoupe@bronco:~/Projects/iot/micropython/esp32-s3/spidisplay/src$ python -m mpremote connect /dev/ttyACM1 fs rm ':/scan.py'
rm :/scan.py

@ccoupe Excellent news! Thank you for your help and patience in tracking this down.

I hate to do this but there is a related bug in OSX, at least the way my python is setup (homebrew installed). There is no 'python' executable - just python3 - a symlink from python to python3 works well for a short term fix.

@ccoupe Can you put this under issue #16? I'd been wondering about python vs. python3. And #16 will address that.


unable to recognize "kube-deployment.yml": no matches for kind "Deployment" in version "apps/v1beta1"

unable to recognize "kube-deployment.yml": no matches for kind "Deployment" in version "apps/v1beta1"

Change to apps/v1 and it should work on the latest Kubernetes version.

fixed in #11


The new Apply spec for Fantasy-Land

Most-ly a question

So it looks like there was a big update to the Apply spec here.
Basically it reversed the "parameters". So given that a is an Apply wrapping a value and b is an Apply wrapping a function, it is defined as: a.ap(b)
It used to be that a wrapped the function and b was the value, allowing for "chaining" your Application.
Are there plans to implement against the new spec, or is most going to stay locked down to the old spec. I was planning on writing a lib that did some interop with most through the fl-interface and am wondering what the plan is.
This of course would mean that now for ap you would apply functions to a streamOfValues, instead of applying a values to a streamOfFunctions.

Hey @evilsoft, thanks for bringing this up.  It seems like the right thing is to rely on semantic versioning: most 1.x can continue to support Fantasy-Land 0.x, and we'll need to release most 2.0 to support the breaking changes in FL 1.0.
I can't really speak to a timeline for most 2.0 yet, but I don't mind being pragmatic about it: if there are important changes that are needed for ecosystem compatibility, then we can consider doing it.
Does that seem reasonable for your project?

Sounds perfect. Just needed to know what it is you are doing. So I can follow you.
So happy you honor semantic!! 🎈 🍰 🎈

Closing this out!!

Cool.  We're hoping to post a 2.0 roadmap pretty soon.  Fantasy-land 1.0 compat will def be on it.


Add Sematext Monitoring & Logging agents to trusted k8s containers

Please note
registry.access.redhat.com/sematext/agent,
registry.access.redhat.com/sematext/logagent
are not available yet, but we are in the process of certification ...

Please note that sematext/agent and sematext/logagent are now certified by RedHat and Docker. So please add the images to Falco rules.
Just published in RedHat registry:
https://access.redhat.com/containers/#/registry.connect.redhat.com/sematext/logagent
https://access.redhat.com/containers/#/registry.connect.redhat.com/sematext/agent

Hi @megastef - I'm working on how to get this merged. I need more information to make sure we are on the same page on what are the the permissions needed by your images and wether this is ok or needs to change.
Adding the images to trusted_k8s_containers implies

Create privileged pods
Create Sensitive Mount Pod
Create Hostnetwork Pod

For each one I need to understand why the three permissions are needed.
For example for sematext/sematext-agent-docker I see that the docker socket is needed https://github.com/sematext/sematext-agent-docker#quickstart and that is different from what you are proposing here, that container doesn't need Hostnetwork for instance.
Just need to clarify that kind of points for all the images you posted then we understand what changes are needed and we merge.

Hi,
Sematext Docker Agent will be replaced with sematext/agent and sematext/logagent.
https://sematext.com/blog/better-observability-new-container-agents/

Sematext Docker Agent could be limited to docker socket and directories like /var/logs.

Logagent might need access to docker socket and logs in /var/logs or access to containerd directories to collect logs or metadata via Kubernetes and Docker API.  See e.g.: https://github.com/sematext/logagent-js/blob/master/kubernetes/ibm-cloud-logagent-ds.yml

Sematext Agent works very much like cAdvisor or sysdig agent, e.g. mounting several directories to collect system information, collecting information via eBPF kernel functions as well. It can also capture network packets for topology and network maps and might use pcap or eBPF for packet capture - so for network monitoring users can enable access to the host network.

docker run -d  --restart always --privileged -P --name st-agent \
-v /sys/kernel/debug:/sys/kernel/debug \
-v /var/run/:/var/run/ \
-v /proc:/host/proc:ro \
-v /etc:/host/etc:ro \
-v /sys:/host/sys:ro \
-v /usr/lib:/host/usr/lib:ro \
-e INFRA_TOKEN=<Infra App Token> \
-e CONTAINER_TOKEN=<Docker App Token> \
-e JOURNAL_DIR=/var/run/st-agent \
-e LOGGING_WRITE_EVENTS=false \
-e LOGGING_REQUEST_TRACKING=false \
-e LOGGING_LEVEL=info \
-e NODE_NAME=`hostname` \
-e CONTAINER_SKIP_BY_IMAGE=sematext \
sematext/agent:latest

I hope this helps.

Ok, thanks. I think we'll want to eventually restructure our exceptions to have separate lists of images for individual capabilities like mounts, running privileged, etc. but for now, there's sufficient justification to add it.


generic-deriving-extra: initial commit

This forks off generic-deriving into generic-deriving-th. Read the description in generic-deriving-extra for a rundown of what this library does and its scope.

Oops, this isn't the repo I meant to open this against.


[Python] add_column method missing in pyarrow.RecordBatch

add_column method missing in pyarrow.RecordBatch object (It's available for Table though). I think it's a simple, yet important functionality :)
Reporter: Niranda Perera / @nirandaperera
Related issues:

[Python] Consolidate shared methods of RecordBatch and Table (is related to)

Note: This issue was originally created as ARROW-15434. Please see the migration documentation for further details.

Issue resolved by pull request 39506
https://github.com/apache/arrow/pull/39506


Rolling updates of the manager nodes

We are running Infrakit on the swarm manager nodes and want to issue a rolling update of managers group.
It appears that Infrakit is not waiting for each manager to complete before proceeding to the next node.
Note that we are using block storage to backup /var/lib/docker and re-using the same IP address for each manager. This means that, during a rolling update of a manager node, the node is not removed from the swarm (so docker node ls still shows it).
A possible issue is that the Destroy is asynchronous and that the DescribeInstances nodes have no status attribute (like "provisioning" or "complete"). Here's what the flow looks like:

Group controller issues a DescribeInstances and gets instances with Logical ID values of mgr1, mgr2, mgr3
Group controller issues a Destroy on node with Logical ID of mgr1 and then issues a Provision with a Logical ID of mgr1
The next DescribeInstances poll cycle from the group controller gets instances with Logical ID values of mgr1, mgr2, mgr3. In this case the "new" mgr1 is not yet provisioned -- moreover, the "old" mgr1 is probably still even online since the backend cloud VM destroy takes a minute or so to power down the VM (which means that the swarm node is still ready and available)
Group controller issues a Destroy on node with Logical ID of mgr2 ... etc.

Do we need to return some "provisioning status" on the DescribeInstances so that the group controller can determine if a node still being provisioned or if it is complete?

This is related to #782.  There are parts to this process for managers.   For managers, we assume parallelism of 1 which means one sequential thread of updates for this entire group.

Ordering of rolling update for managers
Ensuring proper replacement before continuing -- this includes health-check (e.g. new manager joins the swarm)
Transferring leadership proactively to a new updated manager node
Recording the operations so that when leadership is transferred, the new leader can continue this process correctly.

Some key issues:
Order of Rolling Updates
We need to compute the correct ordering of the nodes before rolling update for certain types of groups...   for workers this is not essential but for managers this is critical in order to avoid scenario where the leader itself gets terminated.
At this moment, my idea is to have this computation be the responsibility of the Flavor plugin.  The group controller depends on the Flavor to determine health of a node, it probably make sense to add a new RPC method to have the Flavor determine the proper ordering of rolling update.   If necessary, the Flavor can also determine the mapping of a physical node to a swarm node (for example).  This requires addition of a new RPC method.
Note that the group controller does compute a 'Plan' and we can have this ordering of updates be the detail part of the plan.   This plan is then persisted in the backend (e.g. Swarm raft/ etcd) as described next:
Status of Rolling Update
We need a way to record the transactions as we perform the rolling update.  This is important for #782 and necessary for continuation of the update when a new leader takes over the coordination of the updates.
As I described in the comment for #782, I am wondering if we can leverage the metadata plugin (the vars plugin).   When the manager gets a user's commit and detects a rolling update is required, it can launch an instance of the vars plugin and call it updating.  This will create a new key in the swarm raft (or whatever backend -- be it etcd or file) to store data but the plugin instance is running in the same process as the rest of infrakit.   The existence of the updating namespace via the plugin presence will inform other plugins that an update is in progress.   We can then write the instances / transactions / progress into the backend store (schema TBD) and this data can be queried by all of the other plugins (in process or out).  When the leadership is transferred, the new leader can continue based on this state.  The user can also query the state via the CLI.  When the update completes, the plugin instance stops and can archive this data and remove the updating namespace.  The update is considered complete when all the "Plan" steps described in the previous section are completed.
Pacing of Updates
Similar to the discussion in #782 -- we can gate the calls to Destroy and Provision of the new nodes and continuation to the next target of update with checks against the health of the node (via Flavor) and against the stored status/ plan described above.
Leader Transfer and Handling Failure During Updates
It's pretty tricky in the self-updating scenario because if we store the state / plan for the update in the same swarm raft and somehow the quorum is lost, we may not be able to read that data back out.  But having a copy somewhere (locally on disk of the running leader or say S3) isn't ideal either.  I think initially I'd still go with storing the information in the Swarm raft to keep things simple.  I'd make sure the ordering and leadership transfers are taking place properly, so that at any given time, the quorum is always up and running.  In the event that a new replacement manager node fails to come up, the update will have to come to a halt and wait for human intervention.
There's also the case where a network interruption or slowness of the running leader causing the leadership to change.  So now the ordering described above is no longer valid -- the next node to be terminated and replaced maybe the leader now.  So we'd have to build in a way for the group controller to never terminate itself (suicide).   I am thinking this mechanism could even do away the need to even compute the ordering of rolling update altogether...   We should explore that a bit... maybe it's not so much the ordering that matters but the specific identities of the nodes whose rolling updates need to be tightly coordinated / single-threaded would be sufficient.
Anyway sorry for the braindump.  I will think about this some more and let me know your thoughts.  I think the vars plugin solution has some legs and could be the first place to start...

@chungers Thanks for the detailed info; I like the design.
I would like to talk more about the pre-defined ordering. Since, as you stated, leadership may change during an update, could we instead track the nodes that have and have not been updated? Then, when picking the next node to update, we'd never pick the current leader and, if that's the last one left, we'd force leadership change. Then, when the new leader wakes up, it would get the persisted state and continue the algorithm; in this case, the only manager left would no longer be the current leader and the update could be applied.

I think we can assume that the node that is running the code is always the leader... so the requirement to compute ordering may be reduced to something as simple as "thou shall not terminate self".   So when the leader is terminating nodes, it first checks that if the target isn't itself.  If it is, then it just picks one from a list of nodes that have yet to receive an update.  Since we will be writing the progress of the rolling updates into raft, we'd know which nodes have completed, and by extension, which nodes need to receive update.  The leader just needs to pick one.  If there are none, then the update is complete.  Example:

Managers A, B, C, D, E need to be rolling updated.  A is currently the leader.
There are no records in raft about which node has been updated.  So A picks from the list of [A, B, C, D, E] to update.
A happens to pick A from this list.
A determines that A is itself.  So it can't destroy itself.  A picks another node.  A picks B.
B is updated.  B is now written into raft.
A continues this for C, D, and E.
A now can force a leadership change, say to B.  <=== A may not even have to do this here?
B now is the leader.  It reads from raft and sees that only A has not been updated.  It updates A.

I'm going to work on the very first step of making sure a leader doesn't destroy itself.  This may mean we would leave the leader without an update.  In a follow up I will work on handing over leader status to an updated node to continue the rolling update by finishing the last unupdated node.

This work is completed via:
https://github.com/docker/infrakit/pull/869
https://github.com/docker/infrakit/pull/864
https://github.com/docker/infrakit/pull/859
https://github.com/docker/infrakit/pull/856
https://github.com/docker/infrakit/pull/844
https://github.com/docker/infrakit/pull/841


fix for redis >= 2.4.10

Found by Samuele Kaplun.
https://github.com/andymccurdy/redis-py/blob/master/CHANGES#L303
[...]
SETEX in StrictRedis is now compliant with official Redis SETEX command.
the name, value, time implementation moved to "Redis" for backwards
compatibility.

@kaplun Are you sure about this change? In maint-1.2, Redis is pinned to redis==2.9.0, and all the tests are passing. Using this patch, one cannot login, and many tests fail...

This change looks odd, looking at the documentation it seems that it is ok the way it is https://redis-py.readthedocs.io/en/latest/#redis.Redis.setex

Assuming I wasn't crazy at the time :stuck_out_tongue_closed_eyes: maybe redis has reverted its API change in subsequent versions.

It probably also depends on the version of Nydus, which by default now uses the strict Redis implementation https://github.com/disqus/nydus/blob/master/nydus/db/backends/redis.py#L64 which caused at a certain point the swap of the argument in the API.
Nydus switched to enforce strict redis here: https://github.com/disqus/nydus/commit/98ee7b388e0310a9b2c2f0a9674a09e6a0e8e925
Instead by using the non-strict version, the API arguments have always stayed the same.

We pin Nydus to nydus==0.10.6 in requirements.txt.
Anyway, I'm closing this PR, because the current version works perfectly well.


Prom: change prom brokers and users

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


refactor(updated codemirror): updated codemirror package in 3 files

Proposed Changes
Snyk created a PR to update codeMirror in 1 of the 3 packages which didn't work. I locally bumped the versions in Vapor, React Vapor and Demo and it runs fine locally with tests passing
Potential Breaking Changes
Hard to tell until the build passes, but I'm. confident it should work
Acceptance Criteria

[ ] The proposed changes are covered by unit tests
[ ] The potential breaking changes are clearly identified
[ ] README.md is adjusted to reflect the proposed changes (if relevant)

Didn't fix it - will continue investigating


Hacked node-speaker exports and other imports here to get examples working

Please note I changed package.json to refer to my fork of node-speaker also.
As a newb to the TypeScript ecosystem I don't know if my export/import changes are correct/modern/acceptable, but I got the examples working.
There is still a bug (in usb?) where fm_tone doesn't exit on a ^C interrupt.  I don't quite understand some of the changes you're proposing, I'll add comments

Mainly just things to get it compiling. I tried under VSCode, then command line, just saying "tsc" at the top level.

tsconfig.json compiles things in examples
examples import from ../lib, where the code is
usb updated to a version that works
speaker updates to a version that exports itself in a way that works (I understand there are two kinds of export):

https://github.com/cjheath/node-speaker/commit/09377c3544742a32afaa4e8aeff8a6ada33f0205

Also I've just done this:

  const carrierFrequency = 98.8e6

  let carrierFrequency : number = 104.9e6
  const carrierDeviation = 75e3

  if (process.argv.length >= 3)

          carrierFrequency = (+process.argv[2])*1.0e6;

There is still a bug (in usb?) where fm_tone doesn't exit on a ^C interrupt. Have to ^Z and kill it.

I'm just speculating, but that happened to me too, and it seems to be a loop starvation issue somewhere in my code or usb, which prevents the ^C event from being dispatched. if it happens on fm_tone, your cpu is probably not fast enough to run the code (keep in mind examples aren't optimized in any way)

I'd be very surprised if my CPU isn't fast enough. 2yo i7 MacBook Pro...
BTW, I've developed a new version of HackRF, updating to still-available components. and adding robust protection to the antenna port. It's about to go to batch manufacturing and will be available for purchase on aliexpress (no cash to me, just development sample units)

that looks nice :blue_heart: let me know when it's available :)

by the way, I don't know enough TypeScript to understand why speaker works for me, but not for you :thinking:
in any case, according to the documentation, import Speaker = require('speaker') syntax should be used, so I'll do that

I've added npm run build-examples, instructions, and proposed proper fixes to speaker

I've fetched your latest. npm run build-examples fails for me. The Speaker one is not a concern, but failing to import from .. is:

><EMAIL_ADDRESS>build-examples /Users/cjh/work/electronics/SDR/node/hackrf.js-upstream
> cd examples && tsc

fm_receiver.ts:9:22 - error TS2307: Cannot find module '..' or its corresponding type declarations.

9 import { open } from '..'
                       ~~~~

fm_receiver.ts:26:22 - error TS2351: This expression is not constructable.
  Type 'typeof import("/Users/cjh/work/electronics/SDR/node/hackrf.js-upstream/node_modules/speaker/index")' has no construct signatures.

26  const speaker = new Speaker({ sampleRate: 48000, channels: 1, bitDepth: 16 })
                        ~~~~~~~

fm_receiver.ts:53:23 - error TS7006: Parameter 'array' implicitly has an 'any' type.

53  await device.receive(array => {
                         ~~~~~

fm_tone.ts:5:22 - error TS2307: Cannot find module '..' or its corresponding type declarations.

5 import { open } from '..'
                       ~~~~

fm_tone.ts:27:24 - error TS7006: Parameter 'array' implicitly has an 'any' type.

27  await device.transmit(array => {
                          ~~~~~

Found 5 errors.

have you run npm install again? do you have compiled files in dist?

Ahh, apologies, that fixed it, or would have, if `speaker`` had been fixed already

perfect! now I just have to fix the loop starvation bug


Support getProdiverData()

FirebaseUser exposes a getProviderData method that returns a list of objects that represent the linked identities of the user. This method is not yet supported by Firestack.
See firebase documentation.

Not yet. Wanna try a PR? Should be pretty straight-forward to implement.

This will sorted on v3 branch and can be accessed vua firestack.auth().currentUser.providerData as per the web api. The js code is done, just needs native side implementing


rename module from www.github.com/ZinoKader/portal to github.com/Zino…

…Kader/portal

Fixes #19

We have moved the repository to an organization and during that name change we kept this in mind, so consider it done. Thank you!


Fix replicate random by printing statistics

This PR gates off multipart logic in the case replicate random is used

@sarahwooders Multipart transfer logic was interfering with replicate random. Please review and see if this would interfere with multipart logic.


Github Actions

I suggest adding a GitHub Action to run the tests on commits to make sure that the tests are passed before merging anything to the main branch.

👍


lib: simplify supercomputer calculation logic

Types of changes

[x] Enhancement (project structure, spelling, grammar, formatting)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

A description of the changes proposed in the Pull Request

Before these changes, processing of top-level and nested children was mixed in calculateOutputsForChild method, which led to a number of conditions with areChildrenNested.
Now top-level children-specific logic is moved to a compute method while nested children processing logic was extracted to computeChildren. It allowed to unify processing of all children inside of calculateOutputsForChild method and got rid of all areChildrenNested conditions.

@jmcook1186 @narekhovhannisyan all tests passed, but could you plz double-check that I didn't miss anything around business logic?

Hi @demakoff, thanks for your contribution to our project ✨ ! Currently based on Impact Framework's business goals, supercomputer implementation is going to change in the short period of time, and changes from your PR will conflict with it. Therefore it can't be merged. Thanks again for your contribution to our project.
cc: @jmcook1186

Hi @demakoff, thanks for your contribution to our project ✨ ! Currently based on Impact Framework's business goals, supercomputer implementation is going to change in the short period of time, and changes from your PR will conflict with it. Therefore it can't be merged. Thanks again for your contribution to our project.
cc: @jmcook1186

Sure, np.
Yeah, I see that you already applied my code here:
https://github.com/Green-Software-Foundation/if/pull/390/files
Pleased that it works properly.
Guys, @jmcook1186 @narekhovhannisyan is there something I can help with (which actually may be merged)?

Hi @demakoff
yes, there are tasks you can pick up for sure. We should make better use of labels to signal which tasks are best for community contributions. I'll add the help-wanted label to some tasks today.
There is also a hackathon coming up and we are putting together suggestions for things we want people to build. We're still refining the ideas to make them easier for people to pick up, but you can take a look at them on the discussion board here: https://github.com/Green-Software-Foundation/hack/discussions

closing as fixed in #390


ngt 1.13.0 build failure

👋 trying to build the latest release, but run into some build issue. The error log is as below:

build failure
/tmp/ngt-20210115-42869-please/NGT-1.13.0/lib/NGT/NGTQ/QuantizedGraph.h:301:23: error: use of undeclared identifier '_MM_HINT_T0'
                _mm_prefetch(&o[0], _MM_HINT_T0);
                                    ^

Full build log is in here, https://github.com/Homebrew/homebrew-core/runs/1705868068
relates to https://github.com/Homebrew/homebrew-core/pull/69037

trying the ngt 1.13.1 in Homebrew/homebrew-core#69037

trying the ngt 1.13.1 in Homebrew/homebrew-core#69037

I found that the same issue occured when avx is unavailable. This issue I found was fixed in the 1.13.1. Did the 1.13.1 resolve your issue?

I found that the same issue occured when avx is unavailable. This issue I found was fixed in the 1.13.1. Did the 1.13.1 resolve your issue?

yeah, the build is green after 1.13.1. thanks @masajiro for checking in.
closing the issue.

yeah, the build is green after 1.13.1. thanks @masajiro for checking in.
closing the issue.


Possible to delay notification permission request?

Passing  Push to MSAppCenter.start() has the System "... would like to send you notifications" dialog pop up immediately on first launch. These days a pretty significant fraction of users (like 60%, some stats claim) reflexively disallow notifications that pop up immediately like that, so I'd like to only have the System alert show after an appropriate pre-permission opt-in of my own during onboarding (or later, if they decline during onboarding but decide to attempt a permission-requiring action later). Since apparently you can't call MSAppCenter.start() twice, I can't see any way to accomplish that. Is it possible currently? If not, some way to add a pre-permission flow, or at least only trigger initial APNS registration on command, that would be a nice feature to put on your roadmap somewhere.

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

ID: cc364b7b-1462-5c0a-ca8b-e25f2847f41f
Version Independent ID: 3829a377-4190-4644-a6c1-7e90e19483a5
Content: App Center Push for iOS - Visual Studio App Center
Content Source: docs/sdk/push/ios.md
Service: vs-appcenter
GitHub Login: @elamalani
Microsoft Alias: emalani

@alexcurylo The comments feature of our documentation is intended to enable customers to suggest changes to the docs or ask clarifying questions about the docs.
App Center support is provided directly from within the App Center portal. Any time you need help, just click the blue chat button in the lower-right corner of any page and our dedicated support team will respond. For additional information, see the [App Center Help Center] (https://intercom.help/appcenter/getting-started/welcome-to-app-center-support).

I know this is closed however I found a solution (lead here from the Microsoft Documentation site).  This is also a VERY popular Google search result topic so I figured I might offer some sort of solution.
Inside my PushNotificationPrimingViewController.swift
import UIKit
import UserNotifications
import AppCenterPush
import AppCenter
class PushNotificationPrimingViewController: UIViewController {
    private let center: UNUserNotificationCenter = UNUserNotificationCenter.current()

    override func viewDidLoad() {
        super.viewDidLoad()
        setupUI()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    private func setupUI() {
        // removed for brevity
    }

    @objc private func optInPressed() {
        // tells AppCenter to start the service
        MSAppCenter.startService(MSPush.self)
        // set the service enabled
        MSPush.setEnabled(true)
        center.requestAuthorization(options: [.alert, .badge, .carPlay, .sound]) { (granted, err) in
            if granted {
                // yay push enabled
            } else {
               // the user didn't like us :(
            }
        }
    }

    @objc private func skipPressed() {

    }
}

Inside my AppDelegate.swift file
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        MSPush.didRegisterForRemoteNotifications(withDeviceToken: deviceToken)
    }

    func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
        MSPush.didFailToRegisterForRemoteNotificationsWithError(error)
    }

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        let result: Bool = MSPush.didReceiveRemoteNotification(userInfo)
        if result {
            completionHandler(.newData)
        }
        else {
            completionHandler(.noData)
        }
    }

Hi @alexcurylo @liltimtim,
It is possible to delay push notification permission on iOS using App Center.
Please see our documentation at https://docs.microsoft.com/en-us/appcenter/push/faq. Basically you can do this by delaying the AppCenter.Start(typeof(Push)) method call until you want the permission pop-up to show up.

@dhei although that link is useful, I don't believe that this documentation reference should be just in the FAQs.  When setting up push notifications, it would probably be in the interest of everyone if this was readily apparent instead of a developer having to dig through things.  I never reached that FAQ by googling for similar answers, however I did arrive at this Github issue.
However, I accomplish what the original poster was wanting to achieve with the code mentioned above and it was placed there for the sole purpose of providing those whom arrive here via Google with a quick and easy to implement answer / example since the documentation fails to explain delayed pushes properly (IMO).

@liltimtim Really appreciate the feedback, I agree it doesn't make sense to be in the FAQ section. We will make move it to the setup documentation and improve our docs.

@dhei Yes, the documentation to start appears to imply that's the only place you can start services. A reference to delaying service starts to later would definitely reduce confusion!


GH-99: README Polishing

I will hold off polishing (S)FTP until this is approved/merged because they have much in common.
Related to spring-cloud-stream-app-starters/app-starters-release#99

LGTM as well.

Polished the build instructions. Merged.


Enforce HTTP timeouts on a per-read (rather than per-request) basis

Summary
This leverages the new read_timeout property, which ensures that (like pip) our timeout is not applied to the entire request, but rather, to each individual read operation.
See: #1921.
See: #1912.

I'd say this closes #1921

Probably fixes https://github.com/astral-sh/uv/issues/2833 also


Update AsyncHttpClient from com.ning to org.asynchttpclient

The com.ning client has a bug in the SSL context in some use cases.
Resolves #44

Hi i have tried this PR but i have some issues with redirections:
Request DefaultHttpRequest(chunked: false)
GET /rest/api/1.0/users/user HTTP/1.1
Content-Type: application/json
Connection: keep-alive
Host: domain.name
Authorization: Basic
Accept: */*
User-Agent: AHC/1.0

Response DefaultHttpResponse(chunked: false)
HTTP/1.1 302 Found
Cache-Control: no-cache
Content-length: 0
Location: https://domain.name/rest/api/1.0/users/user
Connection: close

does it support redirections ? Our Stash instance is behind nginx

@widgetpl it seems that by default the library did not follow redirects indeed, I updated the PR, can you retest please? Thanks

+1, Got the same problem

I changed version to 2.0.11 (this is the newest - in my fork), but problems seams to be resolved. Thanks for your contribution.  Great job !!!

@bdhoine @widgetpl @royteeuwen @mzielinski
Sorry for the long delay, I am looking into it now.
Unfortunately we still support SonarQube versions which are compatible to Java 7 and as async-http-client > 2.0 is not, so I'd like to delay the migration to 2.0.
There are however newer versions for 1.X.X available than we are using.
So: Could you test again using version 1.9.39 of async-http-client? (Old groupId, ArtifactId, no code changes)
If the problem is fixed in this version we will use it as long as we still support Java 7.
Thanks!

@bdhoine Could you give me a link to the reported issue if you have one?

@t-8ch I tried that in the past to just update the artifact without changing the group id, but this still does not work. The com.ning variant is just the same as the new group id, I tried with latest com.ning but this did not do the job.
I understand you may not want to drop Java7 yet because it's still supported.. But then I won't take a further look at this issue.

@bdhoine Good to now. Then we will have to drop java 7 compat as soon as possible. I'll ask around here when we can do this. I'll reopen the issue, as it is indeed an issue.

@bdhoine The plan is to cut a last release supporting SonarQube 4.5.7/Java 7 in the next two weeks, and then migrating to the new http client.

Could you tray again with the code from #67 ? This replaces the async-http-client with the one from stdlib, as we don't need the features of the async client

will compile and test this tomorrow! great job, thanks!

Any update on this? I'm having the same issue.

This has been implemented

Hey @t-8ch ,
When will this be released?
Thanks!
Roy

Hi @royteeuwen this will be in 1.3.0, which is pending a few pull requests but should be soonish.


Community building package

This story card addresses the tooling needed to onboard a 3bot user to our community seamlessly.
Description
Through a chatbot in the community package, the 3bot user will be asked about their information and interests and will be automatically subscribed to relevant spaces on our freeflowpages.
If the user has an invitation code to a space, they immediately join the space.

Checklist:
In actor side:

[ ] check invitation code is correct

get what space he want to join  & the user he invited him

[ ] join space in FFP

get all information from him and then join him to space he is interested

[ ] unsubscribe from space

can leave any space in FFP using FFP client

chat flow :
make chat page to interact with user :

[ ] Question 1:

DO you have an invitation code (Invitation code = Yes)

ask invitation code

invitation code allows us to track who brought who

Invitation code = No

Request membership

[ ] Question 2:

Ask Email address

Ask reason for interest

Ask if you know someone in threefold or if someone referred you

We will manually check

[ ] Question 4:

Which topics interest you, mention we will put them as members in the right groups on FFP and they can always unsubscribe when they want

Model
@url = community.app.1
name** = "" (S)
topic** = "" (S)
code** = (S)

@url = user.app.1
email** = (S)
interest = (S)
code** = (S)
topics = (S)
county = (S)
invited_by = (S)
community = (LS) !community.app.1

@despiegk  can please review those specs
commit : https://github.com/threefoldtech/jumpscaleX_threebot/commit/193b827b6bf30666d46fd0470037198e1dbaf7fc

specs wrong, see the code.
Please link the gdoc to this ticket

@despiegk  i added gdoc on ticket , can please push your changes in code

our FLow works Good :
1- aouth get your email
2- chatflow if you have referral code or not
3- dynamic macros that got all spaces in FFP that's you are  member on it using your email
TODO :
1 - get latest news in spaces and add it in macros
2- check if referral code validate or not

got latest news in every spaces and add it in macros DONE
development_community_app branch
can check : https://community.app.3bot.testnet.grid.tf/chat

Updates :
1- 3bot login and get email and username
2- Get all spaces from FFP and add it in list of interests
3-  if  user have account in FFP will join all spaces interested in
4-  got latest news in every spaces and add it in macros
TODO :
1- create account in FFP using email and user only ( BUG in FFP client will fix it)
2- check if referral code valid or not and get all informtaion from it

I added support for markdown in dynamic_content macro
https://github.com/threefoldtech/jumpscaleX_libs/pull/36
https://github.com/threefoldtech/jumpscaleX_threebot/pull/219

First to join our FFP should invited by someone Like :
https://<IP_ADDRESS>/chat/session/community_join?referral=9f58d45c187d4570bf9d3d601159e22d

if you are admin join this to get your referral code and continue in process
https://<IP_ADDRESS>/chat/session/community_join_master


Map QueryResult to dart model object

Is your feature request related to a problem? Please describe.
Would be nice to be able to use models instead of just Map, because in big payload it become really messy ^^
Describe the solution you'd like
having some code generation "fromMap" would be nice, we can then use client.query<MyQueryResultMapped>(...) that will internally call fromMap
Describe alternatives you've considered
Don't see any other
It will make usage of this lib even move convenient :)

This is planned eventually and tracked in #26, but for now you can check out graphql-to-dart  and the TypedQuery usage in the example.
Still pretty janky though, and I don't have much time to work on it.


Updating new test under Compliance

Adding below test under compliance.go which is not covered here..

Add IPEntry which references to non Resolved NH IP.
Add IPEntry which references to NH which has down port

As discussed offline, moving this test to featuresprofile under gribigo_complinace_test.


Add images support

This PR adds image support to slides (thanks to iTerm).
# Images

![ron](ron.png)

Ron Swanson and his ice cream

![pizza](pizza.png)

There's anything a pizza can't solve

Notes

Will parse markdown images (does not support HTML image tags)
Will do nothing if terminal does not support images (currently a simple check to TERM_PROGRAM to figure it out)
Add images option which is true by default (let me know if it should be false by default)
User can turn off images with --no-images

Let me know if PR looks good. I can make any adjustments if needed.

cool, my terminal (on linux doesn't support this) but it doesn't do anything weird, so I'll merge.
can you add an example image to the readme so that all tslide features are demonstrated via the readme?

@dominictarr Done. What do you think?

that image doesn't display, I think you need to use an relative link, and check it into the repo.

@dominictarr Done.

you are missing screenshot.png

@dominictarr That's not needed anymore. See: https://github.com/rafaelrinaldi/tslide/tree/feat/images

okay, just one more thing: this currently loads files relative to the cwd (i think, can't test) but pretty sure that is what happens when you do fs.readFileSync(filename)
Of course, the filenames should be relative to the md file, so it should be dir=path.dirname(input); fs.readFileSync(path.join(dir, filename))
otherwise, you can't do tslide ../README.md

@dominictarr Good catch. Fixed too.


UI: it's not clear how to edit the analog time if one is already set

If no time is set, hovering over the analog time panel is active, letting you click to the select the hour, then minute, then AM/PM.
But after a time is set (or if one is initially set), you have to click the hour or minute or AM/PM text to get back to a mode where you can edit the time.  It was not clear to me how to do this initially.
My proposal is that the analog time picker should immediately go into "edit hour" mode after a time is selected, to make it more obvious how to change the time once it's been entered.

This was actually how I originally implemented the time picker, and I decided to change it since users can very easily change the hour by accident if they move the mouse over the clock area.
I'm thinking of making the time picker to auto close after users done selecting a time. That way, when they click on the input again, it will immediately go to "edit" mode.

or maybe clicking on the clock face will also turn it into "edit" mode?


Fix issue where generated negative assertion interferes with existing original methods

Hi,
If a class has i.e. a boolean named working and accessor methods named isWorking() and isNotWorking() the BaseAssertionGenerator generated the negative a assertion method. So there were two isWorking() and isNotWorking() methods. I try to fix that issue by adding 2 new templates (without the negative part) and let the Generator check that if the negative part interferes with an existing originial method the new templates will be used.
Regards
Christian

Integrated, many thanks.


Fixing require to be ignored by Webpack

Some bundlers (such as Webpack) will process require even if it's inside of a conditional branch. Since we only want the require to run in Node, we want Webpack to completely ignore it. Using module.require seems to be the best way to do that.
I would really rather just remove the require completely, but NodeJS 10 is supported until 2021-04-01, so we can't remove it until then.
Fixes https://github.com/rustwasm/wasm-bindgen/issues/2116

If this PR is included in was-bindgen v0.2.61. The webpack compilation error is still there.

@BenoitDel It is not included in 0.2.61


Add link from plugin page to this repo

There should be a links to this repo on the JetBrains plugin page
Like on this plugin page, labels <> Source Code and Issue Tracker
It will help to find the issue tracker, increases chances that someone would make a PR and add stars :)

Done!


Hot take: we set the tab title for cmd and powershell by default

I'm submitting this PR to start a discussion about this. If we reach consensus against it, I'm happy to close it. I'm also liking Plan B the more I think on it.

Summary of the Pull Request
We don't set it for WSL, Azure, or Powershell core
Plan B: Add an "initialTabTitle" setting. With that set, we'll ignore the first title conpty sets for us. If conpty sets another title, we'll blow the initial title away and continue using the title from VT. This would be more similar to how cmd and powershell use the title from a shortcut currently.

References
literally every issue that mentions the length of the tab title, but #2327 was the one that broke the camel's back.

PR Checklist

[x] Closes #the-endless-stream-of-complaints-about-tab-titles
[x] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] Requires documentation to be updated - Probably does
[ ] I have not discussed this with core contributors already.

Maybe instead of initialTabTitle being string make overridableTabTitle boolean, that when set true would make the existing tabTitle behave as described in plan B. And true'd be actually the reasonable default.

Closed in favor of #2373


Add a disclaimer to the README

So as to not confuse users with information regarding Minima 3.0

um @DirtyF the newline between the paragraphs broke the intended italics. Can you push a fix please? Thank you.


Wallet sync can get stuck when ignoring empty lines

Hi,
after running a fork of this project (older version, due to older BDK) with one of the changes changes backported (https://github.com/bitcoindevkit/rust-electrum-client/commit/0e3e6325e65749c0446fbede99d763b98321362d), we have noticed some issues with the wallet sync hanging:
https://github.com/itchysats/itchysats/issues/2287
Unfortunately, we couldn't reproduce the error locally to provide more info or contribute a fix :(
We ended reverting the fix locally, and the error is not happening in anymore.
Our fork diff with the recent master:
https://github.com/da-kami/rust-electrum-client/compare/fix/ignore-empty-lines...bitcoindevkit:master
We aim to bump bdk stack soon, we'll see whether the issue will happen again with 0.10.1.

this happens when we're using ssl://blockstream.info:993 (on testnet).
also, can confirm that we have experienced the same behaviour when upgrading bdk to 0.19.


Make JLedSequence objects assignable

make sure a JLedSequence object can be re-assigned, to change sequences at runtime
See https://github.com/jandelgado/jled-example-switch-sequence for an example

Coverage remained the same at 96.97% when pulling b2d83239de8541f6aac269e381a76848d288f0c4 on make_sequence_assignable into<PHONE_NUMBER>309a57da8941901f73bf5559da27a3 on master.


Updating request defaults in place

I'm trying to figure out how to I could fit in this pattern using the request library.
Currently I have a request.jswrapper module that is imported by all my other modules that need to make http calls.
request.js
var options = {
  baseUrl: window.location.protocol + baseUrl,
  json: true,
  simple: false,
  resolveWithFullResponse: true
};

module.exports = require('request-promise').defaults(options);

While the user is using the app, they can also "log in", and at that point I'd like for all their requests to be authorized with a new header.
I want to do something like this:
var request = require("./lib/request");
//...
onLoginCompleted: function(user, rememberme){
      this.user = Immutable.Map(user);
      request.defaults({"Authorization": "Bearer "+this.user.get("token")});
      this.trigger(this.user, this.active);
    },

At which point, I'd like for  require("./lib/request"); to have new defaults, so that all other modules importing my request wrapper not make authorized calls. Is this possible?

It depends on how your wrapper is built.

Is it possibly to change how the wrapper is built to achieve the functionality I'm describing?

This would make a good stackoverflow question.


[SPARK-33428][SQL] Match the behavior of conv function to MySQL's

What changes were proposed in this pull request?
Spark conv function is from MySQL and it's better to follow the MySQL behavior. MySQL returns the max unsigned long if the input string is too big, and Spark should follow it.
However, seems Spark has different behavior in two cases:
MySQL allows leading spaces but Spark does not.
If the input string is way too long, Spark fails with ArrayIndexOutOfBoundException
This patch now help conv follow behavior in those two cases
conv allows leading spaces
conv will return the max unsigned long when the input string is way too long
Why are the changes needed?
fixing it to match the behavior of conv function to the (almost) only one reference of another DBMS, MySQL
Does this PR introduce any user-facing change?
Yes, as pointed out above
How was this patch tested?
Add test

Can one of the admins verify this patch?

ok to test

Test build #139006 has started for PR 32684 at commit 98d9d3c.

Correctness

Can you fix the Pr description as well? I don't think it's fair to call it a correctness issue. I think we're fixing it to match the beahviour of conv function to the (almost) only one reference of another DBMS, MySQL.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43524/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43524/

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

Test build #139009 has started for PR 32684 at commit c206413.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43527/

Test build #139010 has started for PR 32684 at commit 83b2fc9.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43527/

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

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43528/

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

Test build #139006 has finished for PR 32684 at commit 98d9d3c.

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

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

Can one of the admins verify this patch?

Test build #139009 has finished for PR 32684 at commit c206413.

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

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

Test build #139010 has finished for PR 32684 at commit 83b2fc9.

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

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

thanks, merging to master!


feat(Icons): Streamline Icon Set Full

Overview
Full IconSet for streamline.
PR Checklist

[ ] Related to Abstract designs:
[ ] Related to JIRA ticket: ABC-123
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

Description

Merging your changes
When you are ready to merge to master and publish your changes, use the "squash and merge" button in GitHub, and follow the PR Title Guide to format your PR title and write your PR merge description.
IMPORTANT: If your PR contains breaking changes, please remember to follow the instructions for breaking changes!

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.70803a.0@codecademy/gamut-labs@1.7.24-alpha.70803a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ee9064700e2e80206c7e4d7--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.553015.0@codecademy/gamut-labs@1.7.24-alpha.553015.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5eeb7af7167a9becce38fd6c--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.a8022e.0@codecademy/gamut-labs@1.7.24-alpha.a8022e.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef09dfb05ba267fdeeb3b34--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.0dcafb.0@codecademy/gamut-labs@1.7.24-alpha.0dcafb.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef0a13d1b1f3218f274d54d--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.bdc517.0@codecademy/gamut-labs@1.7.24-alpha.bdc517.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef0c0b305ba26e7afeb3044--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.ffe1c5.0@codecademy/gamut-labs@1.7.24-alpha.ffe1c5.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef0e0befaa85a5eae53ffb5--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.06a44c.0@codecademy/gamut-labs@1.7.24-alpha.06a44c.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.fb67b3.0@codecademy/gamut-labs@1.7.24-alpha.fb67b3.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef0e7e84800ac01c495527d--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.03929e.0@codecademy/gamut-labs@1.7.29-alpha.03929e.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef11205e5a1b402a00510a5--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.1928b4.0@codecademy/gamut-labs@1.7.29-alpha.1928b4.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef1552d39364e11bee4443a--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.1-alpha.2ca365.0@codecademy/gamut-labs@1.7.29-alpha.2ca365.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef25401a3ef6801e030954b--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@2.4.2-alpha.362a47.0@codecademy/gamut-labs@1.7.30-alpha.362a47.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef34e1ba80f876b26d258c6--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.3340e8.0@codecademy/gamut-icons@2.4.2-alpha.3340e8.0@codecademy/gamut-labs@1.7.30-alpha.3340e8.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.bb9b40.0@codecademy/gamut-icons@2.4.2-alpha.bb9b40.0@codecademy/gamut-labs@1.7.30-alpha.bb9b40.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef37715405975024590eb4d--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.aff0ad.0@codecademy/gamut-icons@2.4.2-alpha.aff0ad.0@codecademy/gamut-labs@1.7.30-alpha.aff0ad.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef37cd6ef66f6cf7b881429--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.b1d68a.0@codecademy/gamut-icons@2.4.2-alpha.b1d68a.0@codecademy/gamut-labs@1.7.30-alpha.b1d68a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef3810d994fee0149b9b02d--codecademy-styleguide.netlify.appDeploy Logs

I like the strategy in this PR a lot @codecaaron. Really nicely done! Especially removing the automatic icon label generation, now that we have aXe tests running on the majority of monolith site pages -> and will be forced to do these more intentionally. Perpetual +1 from me on ESLint rules 😄 .

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.179394.0@codecademy/gamut-icons@2.4.2-alpha.179394.0@codecademy/gamut-labs@1.7.31-alpha.179394.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef3d51063caac8e153612d6--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.0c743e.0@codecademy/gamut-icons@2.4.2-alpha.0c743e.0@codecademy/gamut-labs@1.7.31-alpha.0c743e.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef3dfb262a7f78674a7482a--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.62664d.0@codecademy/gamut-icons@2.4.2-alpha.62664d.0@codecademy/gamut-labs@1.7.31-alpha.62664d.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef4bb035ac5bc889b7b5253--codecademy-styleguide.netlify.appDeploy Logs

Can't comment on the file directly but can we keep/update the rocket icon instead of deleting? I believe it comes from this new set, Sarah sent me the asset in the last couple weeks. We're using 2 actual Gamut icons in Author (also UserManagementIcon, but I can swap that one out for the new one here). I'd love to be able to swap out Author's icons for these new ones.

Added back the Rocket.  If you like I can make the PR for the Icon switch.  A full switch will be a bit wonky since its almost all from LocalGamut

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.6b7bda.0@codecademy/gamut-icons@2.4.2-alpha.6b7bda.0@codecademy/gamut-labs@1.7.31-alpha.6b7bda.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ef4cf418a5bc8e1f5beb052--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.4f65a5.0@codecademy/gamut-icons@2.4.2-alpha.4f65a5.0@codecademy/gamut-labs@1.7.31-alpha.4f65a5.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f04b10eb2922a02594a43a3--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.6cde78.0@codecademy/gamut-icons@2.4.2-alpha.6cde78.0@codecademy/gamut-labs@1.7.36-alpha.6cde78.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f060d60062816375ec03261--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.d4779c.0@codecademy/gamut-icons@2.4.2-alpha.d4779c.0@codecademy/gamut-labs@1.7.36-alpha.d4779c.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f0619412d3ff6e8be1f1491--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.cb9cd9.0@codecademy/gamut-icons@2.4.2-alpha.cb9cd9.0@codecademy/gamut-labs@1.7.42-alpha.cb9cd9.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f10b45a3977d26b711229d4--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.55894f.0@codecademy/gamut-icons@2.4.2-alpha.55894f.0@codecademy/gamut-labs@1.7.42-alpha.55894f.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f10cceb108a39a5b3bff8ff--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.757bf7.0@codecademy/gamut-icons@2.4.2-alpha.757bf7.0@codecademy/gamut-labs@1.7.42-alpha.757bf7.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f10cef433fc6594afa7f49d--codecademy-styleguide.netlify.appDeploy Logs

🚀 Styleguide deploy preview ready!https://5f10d0f53de256025cfed158--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.c794d8.0@codecademy/gamut-icons@2.4.2-alpha.c794d8.0@codecademy/gamut-labs@1.7.42-alpha.c794d8.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.3f4582.0@codecademy/gamut-icons@2.4.2-alpha.3f4582.0@codecademy/gamut-labs@1.7.42-alpha.3f4582.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f10d5bf31789c022966397b--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.4d5375.0@codecademy/gamut-icons@2.4.2-alpha.4d5375.0@codecademy/gamut-labs@1.7.42-alpha.4d5375.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f10d830e5bff102096067ad--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.c6ad6f.0@codecademy/gamut-icons@2.4.2-alpha.c6ad6f.0@codecademy/gamut-labs@1.7.42-alpha.c6ad6f.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f11b9264efb9ecebf44c061--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.a4d7b7.0@codecademy/gamut-icons@2.4.2-alpha.a4d7b7.0@codecademy/gamut-labs@1.7.44-alpha.a4d7b7.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f11d10c6765e1019ace4a86--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.a67b7a.0@codecademy/gamut-icons@2.4.2-alpha.a67b7a.0@codecademy/gamut-labs@1.7.44-alpha.a67b7a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f11d28634ceb507ed600e93--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@0.3.4-alpha.ee8bb8.0@codecademy/gamut-icons@2.4.2-alpha.ee8bb8.0@codecademy/gamut-labs@1.7.44-alpha.ee8bb8.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f171b941a564e61b530de67--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/eslint-config@1.0.1-alpha.98018e.0@codecademy/gamut-icons@2.4.3-alpha.98018e.0@codecademy/gamut-labs@1.7.49-alpha.98018e.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f1861ed2690d301f50612aa--codecademy-styleguide.netlify.appDeploy Logs


Is it possible to use RNN before CNN

If I want to use RNN before CNN, what can I do?
For example, I have some sequence of different length :[x11,x12,x13,...x1N],[x21,x22,x23,.....x2M]....
so I want to use RNN to get the output of each sequence y = [y1,y2,....], and then use CNN to label y. 、

Use the parameter return_sequences=False in your last RNN layer (docs). The RNN will then yield one output for the complete sequence, which you can feed into your CNN.

Yes it's possible. I think you need
TimeDistributedMerge

from http://keras.io/layers/core/
Input shape
3D tensor with shape: (samples, steps, features).
Output shape
2D tensor with shape: (samples, features).
It becomes easy to stack CNN layers on top of that.

I think TImeDistributeDense is used to deal with every step output of RNN. It's different from my case.
In my case, I have a sequence [x11,x12,x13]. After processed by RNN, it will output a vector y1. Another sequence [x21, x22, x23, x24] will get a vector y2 after processed by RNN. Then y1 and y2 will be used as input of a CNN to get a label L1. So I don't know how to do it.

Why don't you use return_sequences=True inside your RNN layers? It will return a sequence that you can input to your CNN.

It will get every step of RNN， but I don't need to do that. In fact I want to use R(recursive)NN, but I don't know how to realize it, so I decide to try RNN.

You can have a look at this long conversation on how to use TimeDistributedDense:
https://github.com/fchollet/keras/issues/1029


Python: random modernisations

That's fine by me. We're probably better off just closing the other PR and opening a new one, considering how many changes have happened in the mean time. (It looks to have gone quite stale...)

Nice. I just need you to hit that green approve button then :heavy_check_mark:  :wink: :wink:


Crash when Launching on Server

MC: 1.10.2
OpenFM: latest build (at time of posting)
Seems to be trying to loading the GUI class on the server:
http://pastebin.com/dTx4tQfk

I can't reproduce this: http://michi.pc-logix.com/javaw_2016-07-28_07-12-39.png

 at java.lang.Class.getDeclaredFields(Class.java:1916)     at org.spongepowered.common.registry.provider.BlockPropertyIdProvider.getIdAndTryRegistration(BlockPropertyIdProvider.java:92)     at org.spongepowered.common.registry.type.BlockTypeRegistryModule.registerBlockTrait(BlockTypeRegistryModule.java:128
This is sponges doing... I have no idea how it's getting to my GUI class from my block but hey.

Please test this as soon as curse approves it: http://minecraft.curseforge.com/projects/openfm/files/2319281

Awesome, this newest build works just fine with Sponge. Thanks for the quick response. This is my first time using your mod, so I can't wait to play around with it. :)


Row, Column and Positioned widgets always have small gap when width/height is not integer

Issue happens both on Android and IOS.

Column:

// ...
        child: Column(
          children: <Widget>[
            Container(
              width: 100.5,
              height: 100.5,
              color: Colors.lightGreen,
            ),
            Container(
              width: 100.5,
              height: 100.5,
              color: Colors.lightGreen,
            )
          ],
        ),

Will result with (notice tiny gap between elements):

Row:

// ...
        child: Row(
          children: <Widget>[
            Container(
              width: 100.5,
              height: 100.5,
              color: Colors.lightGreen,
            ),
            Container(
              width: 100.5,
              height: 100.5,
              color: Colors.lightGreen,
            )
          ],
        ),

Positioned:

// ...
        child: Stack(
          children: <Widget>[
            Positioned(
              top: 100,
              left: 0,
              width: 100.5,
              height: 100,
              child: Container(
                color: Colors.lightGreen,
              ),
            ),
            Positioned(
              top: 100,
              left: 100.5,
              width: 100.5,
              height: 100,
              child: Container(
                color: Colors.lightGreen,
              ),
            )
          ],
        ),

This looks like a known problem with antialiasing and mapping from logical pixels to device pixels. There's an open issue for a documentation fix: #14288
More info about the problem can be found here:
https://github.com/flutter/flutter/issues/14288#issuecomment-361375791
https://github.com/flutter/flutter/issues/17084#issuecomment-385718108
https://github.com/flutter/flutter/issues/15035#issuecomment-370028740

@HansMuller thanks, closing this as duplicate.


Title font weight

Is there any way I can set the font weight of the title text?

Hi @mayforth if you want to use the system font with different weights you can achieve that by using the different styles of the HelveticaNeue font in the Title Font Name property. So you should write HelveticaNeue-Bold, HelveticaNeue-Medium, HelveticaNeue-Italic, and so on.
Let me know if this solve your issue. Thanks

Sorry, I was just not aware of this approach :) Yes, it works.

I'm glad to hear that :-). I'm closing the issue then.

@loregr Quick related question on this. Since iOS 9, the system font has been San Francisco. Just like the poster, I'm trying to change the font weight. Apparently, the string .SFUIText-Medium can be used to reference the medium weight of the system font. However, Apple specifically says that this is unsafe, since the system font could change at any time. Is there any way to break out a separate weight configuration field or to accept a font name like System-Medium?

@emarthinsen right now there's no way to change the default system font weight. But this can be easily implemented by adding to LGButton a new property FontWeight that will be considered only if the the FontName property is empty. I'll try to push it as soon as I'll have some spare time. Thanks :-)


Adding GitHub Action workflow

Hi folks!
As mentioned, we're moving out of Azure Pipelines for GitHub Actions. This PR is adding the new workflow: I will remove the old one when we're all happy with the results.
You can see the action running in my fork here: https://github.com/patjouk/wasabi/actions/runs/4017049398.
Since we don't need a limit on concurrent runners, tests are faster:

Run time on Azure: 9min.
Run time on GHA: 4min.

@ryndaniels for visibility.

🎉 this is great to see as well!

For a fair comparison, you'd have to take out maxParallel: 4 from the azure config, though. (I don't know what the org's github actions limits are.)

Interesting, it only seems to be running 3-4 in parallel.

This looks like a reasonable start. Let's merge this and test it a bit...

Ping me on Slack when you're happy, and I will remove the Azure Pipeline integration :)


com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero).

We have been facing below exception in our production app with Tink library version 1.4.0.
Caused by:
com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero).
at com.google.crypto.tink.shaded.protobuf.y.C(SourceFile:10)
at com.google.crypto.tink.shaded.protobuf.y.z(SourceFile:2)
Device And OS: Google Pixel 4a, OS Level 30
Note: We are unable to reproduce this issue from our end. It is reproducible for one of the user.
Please let us know if this issue has been fixed in the latest 1.6.0 library version.

Can you show me how you're calling into Tink?

com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite.parsePartialFrom (GeneratedMessageLite.java:1566)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build (AndroidKeysetManager.java:230)
com.efe.user.dataSecurity.KeyStoreTinkManager.getOrGenerateNewKeysetHandle (KeyStoreTinkManager.java:43)
com.efe.user.dataSecurity.KeyStoreTinkManager. (KeyStoreTinkManager.java:35)
com.efe.user.di.modules.SecurityModuleKt$securityModule$1$1.invoke (SecurityModuleKt.java:18)
com.efe.user.di.modules.SecurityModuleKt$securityModule$1$1.invoke (SecurityModuleKt.java:4)
Sending the above further stack trace.
Issue is reproducible only in Pixel 4a, Pixel 4 XL  Pixel 4a (5G)

@thaidn  any update on this issue?

@thaidn  @chuckx
Can you please let us know the root cause of the issue.

@thaidn @chuckx
Since we have planned for production release. Could you update us on this issue?

@snehas13
The root cause is in Android Keystore which has been found to be buggy. A workaround is to disable Android Keystore integration, by not specifying a master key URI:
private fun getOrGenerateNewKeysetHandle(): KeysetHandle {
return AndroidKeysetManager.Builder()
.withSharedPref(app, tinkKeySetName, PrefFile)
.withKeyTemplate(AesGcmKeyManager.aes256GcmTemplate())
.build()
.keysetHandle
}

This means Tink keys are stored in Shared Preferences unencrypted. See this comment for why this is secure enough for most users and devices.

@thaidn
The workaround is not feasible since we do not know which device is how much secure.
If we do not use master key, then our sensitive information might be leaked and also app cannot decrypt the sensitive information which is already stored with master key in previous versions.
Is it possible to add some retry mechanism for this exception in tink library? or clear the existing encrypted information if this error occurs?
Is tink working on resolving below errors?
https://issuetracker.google.com/issues/158234058#comment48
https://github.com/google/tink/issues/413

@thaidn @chuckx
As per below doc,
Since Android Keystore is unreliable on certain devices. Tink runs a self-test to detect such problems and disables Android Keystore accordingly, even if a master key URI is set.
https://google.github.io/tink/javadoc/tink-android/HEAD-SNAPSHOT/com/google/crypto/tink/integration/android/AndroidKeysetManager.html
Let me know if latest library handles such scenarios.
Since we have next production release planned in a week. Please respond ASAP

Was there any update on this issue? I'm having the same issue.

This exception can be thrown when your app get's restored from a backup. The keystore doesn't have the keys to decrypt the EncryptedSharedPreferences. Our app has set android:allowBackup="false" but this get's ignored when user uses a device to device migration. After the migration EncryptedSharedPreferences.create will throw this error.

@lpappalettera  is new update for security from jetpack solve current issue or not?
https://developer.android.com/jetpack/androidx/releases/security#version_100_3

@MahmoudMabrok no, we're seeing this issue while we are on androidx.security:security-crypto:1.1.0-alpha03. Maybe this issue can be avoided when configuring android:dataExtractionRules? Haven't looked into the extraction rules, maybe it is possible to exclude encrypted files from being migrated during a d2d migration (or migrate the keys as well).

I have deleted the app cleared everything nothing worked, until I changed the filename:
EncryptedSharedPreferences.create(
ctx,
"secret_shared_prefs_1",  //Changed this one
getMasterKey(ctx),
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
This might help somebody so I am posting it.

Nothing new on this issue? Production crashes because of this issue are piling up ...

I did do some changes to the AndroidKeysetManager lately that should help with this error:
https://github.com/google/tink/commits/master/java_src/src/main/java/com/google/crypto/tink/integration/android

I fixed some race-conditions. So hopefully in many cases there will not be an error anymore.
I made the error messages better. So if this still fails, you will probably not get this protobuf error anymore, but a different, more meaningful error.

One cause of this error (as mentioned above) is when a backup is restored. Then, you have some encrypted data from your backup but the master-key that was stored in android keystore is not present anymore. There is no way for us to recover from this. You need to be prepared to handle this yourself. For example, by telling the user and deleting the data that can't be read anymore.
We will soon make a new release of Tink, and I think also the androidx security will also soon afterwards get a new release.

I understand you cannot recover from a backup. But someone also mentioned that even with android:allowBackup="false", we still have this error but we shouldn't right? Or am I missing something?

There is now a new version 1.8.0 of Tink that fixes some race conditions that might have caused this.
For android security, there is the version 1.1.0-alpha05 that also fixes a similar race condition. Please upgrade to these vesions. I hope it works then. There is the possibility that this still fails because of a buggy keystore implementation on some phones. I don't have a solution for these cases.
See https://github.com/tink-crypto/tink-java/releases/tag/v1.8.0 and https://developer.android.com/jetpack/androidx/releases/security.

There is now androidx security version 1.1.0-alpha06 that uses Tink 1.8.0 by default.

I'm closing this now. If there are any other problems, please open a new issue.


Chore: fix esm build process and dts errors

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

338 of 338 (100.0%)  changed or added relevant lines in 132 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1825

Relevant Lines:
1825

💛  - Coveralls


Add more documentation in ListViewDataSource

ListViewDataSource's default data extractor can actually expect another data form:
{ sectionID_1: [ <rowData1>, <rowData2>, ... ], ... }

@facebook-github-bot import

Thanks for the fix!
In the future, please make sure to clean up trailing spaces and any other lint.

Sorry, I just add something in the comment. Why do we need to clean up trailing spaces and any other lint in this context?

code is code and lint is lint, whether it's a comment or not.

OK. I just noticed that there are trailing spaces. I didn't mean it and it's hard to find. Sorry.

Some editors can be configured to automatically remove trailing whitespace which is nice. Does running lint pick up these issues for you?

On May 15, 2015, at 5:11 PM, Zhao Han<EMAIL_ADDRESS>wrote:
OK. I just noticed that there are trailing spaces. I didn't mean it and it's hard to find. Sorry.
—
Reply to this email directly or view it on GitHub.

Oh, I edited the file using GitHub's edit button because I think the change is minor... (My IDE, WebStorm, for my react native project has the automatic trailing space removal feature.)
I'm new to node.js and lint is also new to me. I just figured out myself: the ESLint project (http://eslint.org/). But how do you run it? I tried several commands and they don't work.

Thank you @sahrens! Just saw the update of CONTRIBUTING.md


Multiple functions in a module compiles to empty function bodies

I have a simple ElixirScript file that looks like this:
defmodule App do
  @html ~s"""
    <input id="test-input">
  """

  def render, do: :document.getElementById("main") |> JS.update(%{"innerHTML" => @html})

  def bind_events do
    input = :document.getElementById("test-input")
    input.addEventListener("input", fn -> :console.log("input changed") end)
  end
end

When I try to compile this, I get the error:
** (EXIT from #PID<0.73.0>) an exception was raised:
    ** (CompileError) /Users/bryanjos/projects/basstype/elixirscript/lib/elixir_script.ex:6: you must require JS before invoking the macro JS.update/2
        (elixir) lib/macro.ex:1132: Macro.do_expand_once/2
        (elixir) lib/macro.ex:1159: Macro.expand_until/2
        (elixir_script) lib/elixir_script/translator.ex:572: ElixirScript.Translator.do_translate/2
        (elixir) lib/enum.ex:1325: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
        (elixir_script) lib/elixir_script/translator/kernel/special_forms/fn.ex:161: ElixirScript.Translator.Function.prepare_function_body/2
        (elixir_script) lib/elixir_script/translator/kernel/special_forms/fn.ex:99: ElixirScript.Translator.Function.make_function_body/2
        (elixir_script) lib/elixir_script/translator/kernel/special_forms/fn.ex:78: ElixirScript.Translator.Function.process_function_body/5
2017-02-21 23:15:53.447 [error] Process #PID<0.111.0> raised an exception
** (CompileError) /Users/bryanjos/projects/basstype/elixirscript/lib/elixir_script.ex:6: you must require JS before invoking the macro JS.update/2
    (elixir) lib/macro.ex:1132: Macro.do_expand_once/2
    (elixir) lib/macro.ex:1159: Macro.expand_until/2
    (elixir_script) lib/elixir_script/translator.ex:572: ElixirScript.Translator.do_translate/2
    (elixir) lib/enum.ex:1325: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
    (elixir_script) lib/elixir_script/translator/kernel/special_forms/fn.ex:161: ElixirScript.Translator.Function.prepare_function_body/2
    (elixir_script) lib/elixir_script/translator/kernel/special_forms/fn.ex:99: ElixirScript.Translator.Function.make_function_body/2
    (elixir_script) lib/elixir_script/translator/kernel/special_forms/fn.ex:78: ElixirScript.Translator.Function.process_function_body/5

So I added require JS to the top of the module. This makes the file compile, but the compiled JavaScript looks like this:
import Elixir from '../elixir/Elixir.Bootstrap';

import Elixir$ElixirScript$Kernel from '../elixir/Elixir.ElixirScript.Kernel';

import Elixir$JS from '../elixir/Elixir.JS';

const bind_events = Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.clause([], function() {
    let [input] = Elixir.Core.Patterns.match(Elixir.Core.Patterns.variable(), document.getElementById('test-input'));

    return input.addEventListener('input', Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.clause([], function() {
        return console.log('input changed');
    })));
}));

const render = Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.clause([], function() {
    return null;
}));

const html = '  <input id="test-input">\n';

export default {
    bind_events,
    render
};

Notice how the render function simply returns null. When I remove the bind_events function, the render function compiles properly.
So my questions are:

How can I get this module to compile properly?
Why does the error message point to Users/bryanjos/projects/basstype/elixirscript?

I'm using ElixirScript v0.25.0.

This does not seem to be an issue with v0.24.0.

Looks like the  :document.getElementById("main") |> JS.update(%{"innerHTML" => @html}) part is broken somewhere. Testing it with JS.update(:document.getElementById("main"), %{"innerHTML" => @html}) seems to have produced the correct output. Definitely a bug.
As for why it's showing the that path, no idea, but I'll look into it

I think #244 will fix the path issue in the error. Have not come up with a solution for the first issue yet

@mrdziuban I fixed the piping issue with macros in the JS module. As far as the path in the error, As far as I can tell it's the path from where the files were when the escript was compiled. I'm going to look into ways to avoid having it there, but going to close this issue


Decide on a cluster upgrade policy

Background
We already have 6 clusters across 3 cloud providers, and this number is only going to increase. Currently they are on different k8s versions based on the cloud provider, even though they are mostly deployed the same way. This will eventually bite us.
I propose we adopt the following rules:

We try to keep all our clusters to the same version that's the default on new GKE clusters. GKE is often the last to adopt a kubernetes master version, so this gives us time to adapt.
Do upgrades on a 2 month cycle. So every two months, we find the current GKE default version, and upgrade all our clusters to it.
Upgrades take place over the course of a week
We find some way to communicate this 'upgrade window' to our users. It should be as unobtrusive to them as possible. For centrally managed hubs (pilot-hubs and cloudbank right now), we need to just provide notice.
Do both master and node upgrades as part of the same window.

Expected timeline
This issue is only about discussing and agreeing on a timeline, and not actually doing anything. So it's complete once we document it.

I agree with the proposal.
Maybe one upgrade per quarter instead of every 2 month?
Once we have agreed in all the points, I think it would be useful to have some status page showing this upgrade event (and maintenance window) in addition to some email notice...

Quarter makes sense, since kubernetes itself is on a 3 month upgrade cycle.

Once we have agreed in all the points, I think it would be useful to have some status page showing this upgrade event (and maintenance window) in addition to some email notice...

What do you think of using statuspage.io for this?

Should we set up calendar entries? How do we execute this?

Quarter makes sense, since kubernetes itself is on a 3 month upgrade cycle.

Super!

What do you think of using statuspage.io for this?

+1

Should we set up calendar entries? How do we execute this?

Calendar entries seem a reasonable way... and we create a ticket for each of these operations to keep track of the process.

I opened up https://github.com/2i2c-org/pilot-hubs/issues/608 to track the status page, but I think that we can tackle this issue (having a policy for upgrading clusters) without blocking on that one. It seems more important that we have a policy and follow it, to make sure that we standardize our infrastructure and don't have large update jumps.

For reference, this issue provides an overview of k8s versions in clusters currently: https://github.com/2i2c-org/infrastructure/issues/2057


get v2 release into prebuilt packages

As the README documents, there are packages available for various platforms for the version 1.x of the module that is already folded into the Apache 2.4.x release line.
How can we get the Version 2 (and its mod_ssl patch) out to people? What is currently known is:

@nono303 has Windows builds at this github.
@oerdnj did help a lot with v1 and also mod_http2. Does he have the spare cycles to make something for mod_md v2?
@Sp1l as debian/freebsd Apache master: what do you think would work best?

Putting this out here so people might get a polite notice. Also, anyone who can contribute is of course welcome!

crickets


Snippets aren't trigged without space before

VSCode Version: Version 1.4.0 (1.4.0)
OS Version: MacOS

I am not sure if it's intentional, but very annoying nonetheless.
I have a snippet "then" that creates this code:
 then(result => {

 })
```
It works fine when i type " then", however this does not work:
`fn().then`

I get no suggestions!

Javascript/Typescript.

Thanks

@nchanged Can you paste the snippet you are using (esp the prefix) and how do you trigger snippet completions, via TabCompletion, the 'Insert Snippet' command, or via IntelliSense?

@jrieken If press ctrl+space it shows it, but not when i just press "tab"
Of course, there is another issue (with typescript) if a function return a Promise, it has it's own "then" suggestion. Don't know how to override it

@nchanged Did you enable tab completions? By default is off and you must have something like "editor.tabCompletion": true

Yes, same thing...

Thanks - I can repo. Seems to be related to the other content on the line... A simple then does it, a().then not

In the latest insiders (dated 8/31), I can still repro this issue

@ramya-rao-a Can you provide some detail? For me this works following these steps

have a snippet for typescript as outlined here
type then, dismiss suggest widget if showing, hit tab -> snippets expands
type a().then or foo foo then, hit tab -> snippets expands

@jrieken I followed the exact same steps
a().then doesn't show the snippet and neither does anything expand on tab
I tried both javascript and typescript
After tabbing, if I hit backspace to reach the then, then I see the option to use the snippet in the intellisense.
Maybe someone else can try?

@ramya-rao-a Since this is an issue with many comments can you please spell out your exact steps

@jrieken I am out on vacation at the moment, no access to a computer, so cannot provide screenshots etc.
Steps:

Added the same snippet
Defined a function a() that does nothing
Hit tab after typing  a().then
No snippet is expanded, cursor moves ahead
5 Hit backspace until you reach the end of 'then', intellisense shows the option to expand snippet

I wont be in until Tuesday noon PST, so if anyone else is able to verify your fix, feel free to close the issue

@ramya-rao-a Did you enable tab completion?

@jrieken My bad, I missed that. Closing as verified


[1.17.1] entity.mtr.seat is following every player

Expected Behaviour
no invisible seat under me.
Actual Behaviour

a seat is spawned under every player. why?!?
Reproduction Steps

create a new world
enable hitboxes or use WTHIT

Crash Report
Attach a crash report to the issue.

Minecraft Version: 1.17.1
Installed Mods: 3.0.0
Loader: FABRIC

Ah this, yeah its just a dummy block used for rendering. It has no other function.

okay, but why do I see this entity since the newest version?
normally it is invisible, WAILA / WTHIT shows the entity, not the block which I am looking at.

Well again its a dummy block, we cant really remove it, its made to exist there.

Maybe a good solution would be to somehow hide it from the WAILA or WTHIT labels.

The hitbox also shows up with F3 + B.

Duplicate of #341

解决方法：使用mohist服务端，在Mohist-config文件夹下有一个配置文件，里面有BAN 实体，你把mtr:seat填进去就行了（仅限于forge，因为这个模组的fabric版本的mtr:seat实体是车体本身，封禁mtr:seat实体会导致车体不显示）


docs: includes example import statements on all docs pages

What is the problem?
Improve docs UX by adding import statements on all docs pages
What changes does this PR make to fix the problem?

Includes example import statements on all docs pages
Clarify's useCookieValue's imports
Fixes some typos

Checklist

closes #319

Great job!

Hi Guys, I'm not seeing the import statements here https://react-hookz.github.io/web/?path=/docs/side-effect-usecookievalue--example ( does it need a re-publish? )

Hi Guys, I'm not seeing the import statements here https://react-hookz.github.io/web/?path=/docs/side-effect-usecookievalue--example ( does it need a re-publish? )

Good catch, took me a couple tries, but I got it published!


upgrade debian packages on "cmdeploy run"

fixes #397
we could also install "unattended-upgrades" but this might disrupt services at unexpected times so i left that out for now.
ugprading only happens at "cmdeploy run" time.

CI timed out the last time, I restarted it.


Possible to support #[rustc::minimum(1.27)] or the like?

Using attributes which are always-true or always-false under this would then warn/error about being a tautology. This would help make sure that as the minimum version is bumped, old code/checks go away.
It would also act as documentation for the minimum version allowed. (AFAIK, still waiting on that field in Cargo.toml).

Seems reasonable. I would accept a PR implementing this.

Looks like there's a merged RFC for this now, so I'll close this in preference for that.


Friendly reminder to update Azure VS2017RC VM to current version

I'm not sure where to drop this note so maybe someoe on the team can "forward" it.
When RC2 was already out, I created a new VS2017 RC VM on the Azure portal, I did not realize I was getting RC1 until I discovered that it was not behaving correctly. Then I had to do an update which was annoying. So perhaps when RC3 is out, someone on this team can reach out to whomever is responsibe for the VMs and not only get it updated but have the description reflect the version. Here's a screenshot of the VM I'm referring to:

Hi Julie.  Thanks for the feedback.  I own the system images we publish to Azure that VS installed - including VS 2017 RC.  I'm surprised that you got an "RC1" image after "RC2" was published since we're updating the system images within a day or two of public availability.  Can you confirm the VS version (through Help -> About)?  The branding (description, picture, heading) of the images won't change though the version of VS will...
thanks.
Phil

Hi Phil. Sadly, I had created a VERY temporary search service on my azure account (I already had the free one, so this was S1) and forgot to delete it so it ate up my credits and I'm just waiting out the billing cycle. So I can't look at that VM. What I recall is that some features I had been reading about weren't working as expected. So I found John M's blog post about the update (https://blogs.msdn.microsoft.com/visualstudio/2016/12/12/updating-visual-studio-2017-release-candidate/) and updated via the link he provided and then the behavior was correct.
Good to know that you're on it. Thanks! I'm happy to have this issue closed. :)


Skip topology calculations if domains are already balanced

This just adds a shortcut to skip doing all the sorting/balancing calculations if all domains in a topology for a constraint are already within the MaxSkew of each other
/kind cleanup

/close
going to reopene, master-1-17 test was deleted

/reopen


criteria name marking

This mightn't be important in the first iteration of the badges (basic / bronze).  We've now agreed upon using superscripted text in square brackets, and anchors to identify the criteria name.  But how do we want to handle the criteria when we have different badge types?
If a criterion is a SHOULD in bronze, and then MUST in silver, will we use the same name across the badge criteria?  And will app have the logic in it to determine whether criteria are mandatory or not for each badge?
Also semi-related is whether we'll eventually have all criteria on the same page or not.  I'm raising this now as if we have them all on the same page we want to have anchors for each of the criteria name (and we use the same name between badges) then if someone provides the anchor link then it'll get confusing if the names aren't unique across the different badges.
Couple of rough options are:

We always have the different badge criteria on different pages.
We rename the criteria name marking and anchor to be prefixed by the badge colour (e.g., bronze-crypto-pfs, silver-crypto-pfs)

We're intentionally not working on different badge types for now. That said, I think that if the criteria are the same, then they should have the same name.  It'd be confusing for them to have different names, and we want to reuse answers where we can anyway.
I think we should close this for now.  Once we decide how to go further on "higher level" badges I suspect the options will become clearer.


TypeError: expected np.ndarray (got numpy.ndarray)

Thank you for you effort.However, when I first run the train_fcn32s.py, some problems happen.
D:\project\fcn\pytorch-fcn-master\pytorch-fcn-master\examples\voc>python train_fcn32s.py -g 0
Traceback (most recent call last):
File "train_fcn32s.py", line 152, in
main()
File "train_fcn32s.py", line 108, in main
model = torchfcn.models.FCN32s(n_class=21)
File "D:\anaconda\lib\site-packages\torchfcn\models\fcn32s.py", line 96, in init
self._initialize_weights()
File "D:\anaconda\lib\site-packages\torchfcn\models\fcn32s.py", line 107, in _initialize_weights
m.in_channels, m.out_channels, m.kernel_size[0])
File "D:\anaconda\lib\site-packages\torchfcn\models\fcn32s.py", line 23, in get_upsampling_weight
return torch.from_numpy(weight).float()
TypeError: expected np.ndarray (got numpy.ndarray)
I have no idea to slove, thanks a lot for your help

@Iamyourbaba Hi, I run into the same error, and didn't find any solution, you should have solved it now, can you help me ? thanks

It's also happening to me on numpy 1.17.4, my own solution is to downgrade to 1.16.4

thanks a lot
---Original---
From: "Rizky<EMAIL_ADDRESS>Date: Mon, Nov 25, 2019 07:58 AM
To<EMAIL_ADDRESS>Cc: "Iamyourbaba"<1220098768<EMAIL_ADDRESS>Subject: Re: [wkentaro/pytorch-fcn] TypeError: expected np.ndarray (got numpy.ndarray) (#124)
It's also happening to me on numpy 1.17.4, my own solution is to downgrade to 1.16.4
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


sync: add backpressure to syncer

Closes #617.
The remaining work on the syncer is alluded to in a new comment:

Correctly constructing a block locator object
Detecting when we've stopped making progress syncing and restarting obtain_tips.

Oops, this was supposed to be based on the current main but I forgot to update my local refs before merging. .... rebasing...