Make some MVC routing types public again

We've heard some demand to make these types public again after trying
them as internal.
API Versioning calls the action selector and handles
AmbiguousActionException to give more specific responses.
API Versioning (and others) look for HttpMethodActionConstraint to
determine the supported HTTP methods of an IRouter-based action method.
@commonsensesoftware

Thanks from the API Versioning community! ;)

Mr. Trump probably would have liked the title of this PR :)))


Optimize zookeeper client performance for loading amounts of topics.

Is your enhancement request related to a problem? Please describe.
Optimize zookeeper client performance for loading amounts of topics.
Our use case is described here  #12651 .
Describe the solution you'd like
Introduce zk multi ops to optimize the zk client performance.
Our team did a perf test on the zk multi ops, here is the result.

Op type
Single Op (ops/s)
Batch 8 with Multi (ops/s)

Create
25k
60k

Write(with pre-created 5M nodes)
25
90k

Read
25k
200k

Here is the settings:

Single node data size : 256 Bytes
ZK server version: 3.6.3
ZK cluster nodes: 3
ZK server disk: 8TB Nvme SSD
Cpu usage: 6/40 on core bare metal server.
OS : centos 7

It's clear that with multi, we can achieve much more performance with the same cpu usage, especially with read operations.
The basic idea of implementation will be add two queue (one for read ops and one for write ops) in PulsarZooKeeperClient, all zk ops will be added to the queue first, and  a background thread will batch theses requests and sends to zk server in one "multi op".
This implementation will introduce the follow parameter in broker configs:

enableAutoBatchZookeeperOps, this feature is optional, as it may increase metadata latency with small amount of topics.
autoBatchZookeeperOpsMaxNum and autoBatchZookeeperOpsMaxDelayMills  Just like auto batching parameters in pulsar producer. Limits the max number of ops in one batch and max delay time  to wait for a batch.

Describe alternatives you've considered
Add a ratelimiter for topic loading, see  #12651
Additional context
Here is the explanation why multi ops works much better with read ops.

All write ops needs to go through a single thread processor in master.  And we have reach the max qps in the previous perf test.
Read ops can be handled by slave nodes. We can get more qps with larger batch size in the previous perf test.

Here is the flame graph of the bottleneck thread in master.

We'd better do not expose any zookeeper-specific configurations, it's better to use metadata instead.
And, can we avoid exposing such configurations to users? We have more and move configurations, I think for this one we can just keep it as default 5ms batch delay? @merlimat WDYT

We'd better do not expose any zookeeper-specific configurations, it's better to use metadata instead. And, can we avoid exposing such configurations to users? We have more and move configurations, I think for this one we can just keep it as default 5ms batch delay? @merlimat WDYT

Totally +1  for stop adding more unnecessary configurations for users. There is too much already. And normal user don't care about most of these configuration at all. But there are always some corner cases user would have to config these. Maybe we can introduce some kind of implicit configurations? One form would be like setting these config through system properties : final long autoBatchZookeeperOpsMaxDelayMills = Long.parseLong(System.getProperty("pulsar.xxx", "5"));
IMHO, metadata store configuration is a common issue. Like #12776 , There are tons of configs in RocksDB, so I added a metadataStoreConfigPath to store the meta data config in a separated file.

👍 This is precisely what I wanted to do next on the ZKMetadataStore implementation.
Also, I believe this could be generalized across multiple backend implementations, so we could add a AbstractBatchedMetadataStore extends AbstractMetadataStore.
Regarding configuration, I think we should keep it generic for different implementations:

metadataStoreBatchingEnable=true
metadataStoreBatchingMaxDelayMillis=5
metadataStoreBatchingMaxOperations=100
metadataStoreBatchingMaxSizeKb=128

Few additional notes:

zk server version: 3.4.6

Newer ZK versions have better performance (eg: better txn pipelining in leader) and ways to configure group commit on the transaction log to improve throughput.

We should do a test with a 3/5 nodes ZK cluster, not just a single server

It would be good to simulate a mix write/read scenario, perhaps adding a YCSB driver (https://github.com/brianfrankcooper/YCSB) based on metadata store API.

Finally, we should consider what happens when batching reads, of which we don't know upfront the collective size. If we are exceeding the ZK max frame size, we should be able to automatically switch back to non-batched read.

Newer ZK versions have better performance (eg: better txn pipelining in leader) and ways to configure group commit on the transaction log to improve throughput.
We should do a test with a 3/5 nodes ZK cluster, not just a single server

My bad, we did this perf test on zk version 3.6.3, with 3 nodes cluster.
Zk 3.4.6 is the version we use in production.

It would be good to simulate a mix write/read scenario, perhaps adding a YCSB driver (https://github.com/brianfrankcooper/YCSB) based on metadata store API.

Totally agreed. But it's a bit tricky to simulate perfect mix write/read scenario. And we have a perf cluster ready for million topic scenario. So We plan to just test it with a quick implementation of BatchedMetadataStore.

Finally, we should consider what happens when batching reads, of which we don't know upfront the collective size. If we are exceeding the ZK max frame size, we should be able to automatically switch back to non-batched read.

Thanks for the reminding, automatic fallback mechanism will be added.

There is one tricky part around creating parent z-nodes automatically: during create or setData, if we're getting a NONODE exception, we need to recursively create the parent z-nodes. When this is part of a batch, it may impose additional complexity as we need to retry the whole batch.

Implemented with #13043

Congrats on this change - do we know what release we will see this in? 2.10?


[question] Original modbus serial protocol?

Does the OpenDPS support original serial protocol provided by original firmware?
Can you please add this option to support the legacy protocol?
So when i have multiple devices and some of them have OpenDPS and some of them don't (because they're not supported, eg. #197) i can use all of them with the same protocol without having to sacrifice the possibility to flash OpenDPS?

I could if someone raised a PR about it, I will most likely never get around to do it ;)

I would also like to see Modbus support, I have multiple units on one RS485 bus, would like to move over to OpenDPS but would need to change all my hardware and software layout.
Thanks


Question

Is there a pointer already to the game entity system if so, how would I use it and which name does it have?
second question: is there anything like it was in csgo the PlayerResource pointer or something maybe it gameplayerresource now?
I ask because I try to filter the entities ingame but as of now I can iterate them but sometimes they dont show because I may fail to differeciate between them

https://github.com/a2x/cs2-dumper/blob/256f9f5f1246ff51e5a873c414c33c9b73c54f3b/generated/offsets.hpp#L21


Make sure to log error in findObjectsForSrc()

It is hidden right now if there is an error in configured named fields and index. Lets log the error and return the current state of requests.
With this the findObjectsForSrc() will exit with an hidden error like:
"error": "Index with name field:.spec.ksmTls.caBundleSecretName does not exist"

/retest

/test glance-operator-build-deploy-kuttl


Parse error when dealing with

Im running pragma v0.3.2. I ran the entire tutorial including the data validation and transformation part. I ran into a parse error when performing the validation part.

The full code I ran is attached below (not including the js files)
import "./functions.js" as fns { runtime = "nodejs:14" }
import "./transformers.js" as transformers { runtime = "nodejs:14" }
import "./validators.js" as validators { runtime = "nodejs:14" }

config { projectName = "basic_todo_app" }

@user
@1 model User {
  @1 username: String @publicCredential @primary
  @2 password: String @secretCredential
  @3 todos: [Todo]
}

@2 model Todo {
  @1 id: String @uuid @primary
  @2 title: String
  @3 content: String
  @4 status: TodoStatus = "TODO"
}

enum TodoStatus {
  DONE
  INPROGRESS
  TODO
}

allow CREATE User

role User {
  allow MUTATE self.todos
  allow [READ, UPDATE, DELETE] self
  allow UPDATE Todo if fns.selfOwnsTodo

}

@onWrite(validators.validateBook)
@1 model Book {
  @1 id: String @uuid @primary
  @2 title: String
  @2 authors: [String]
}

@onRead(transformers.transformBook)
@1 model Book {
  @1 id: String @uuid @primary
  @2 title: String
  @2 authors: [String]
}

Thanks for opening the issue! This is a matter of outdated documentation. Directive syntax was changed so that arguments cannot be positional (they must be named).
I've just updated the docs to fix the parser errors, but the fix is:
@onWrite(function: validators.validateBook)

Same goes for @onRead.

Thanks for opening the issue! This is a matter of outdated documentation. Directive syntax was changed so that arguments cannot be positional (they must be named).
I've just updated the docs to fix the parser errors, but the fix is:
@onWrite(function: validators.validateBook)

Same goes for @onRead.

thanks. Would it be possible for the parser to identify an unnamed argument and point that out?

thanks. Would it be possible for the parser to identify an unnamed argument and point that out?

Ohh and as a quick note in the docs, you've used the @2 index twice for both title and authors for both validation and transformation.
import "./validators.js" as validators { runtime = "nodejs:14" }

@onWrite(function: validators.validateBook)
@1 model Book {
  @1 id: String @uuid @primary
  @2 title: String
  @2 authors: [String]
}

Ohh and as a quick note in the docs, you've used the @2 index twice for both title and authors for both validation and transformation.
import "./validators.js" as validators { runtime = "nodejs:14" }

@onWrite(function: validators.validateBook)
@1 model Book {
  @1 id: String @uuid @primary
  @2 title: String
  @2 authors: [String]
}

Oh wow. We need to automate the testing of examples.

Would it be possible for the parser to identify an unnamed argument and point that out?
Yes. In fact, there should be a rewrite of the entire parsing/validation layer down the line. It's a bit far down that line though.

I'll fix the index error immediately. Thank you so much for telling us about them!

Oh wow. We need to automate the testing of examples.

Would it be possible for the parser to identify an unnamed argument and point that out?
Yes. In fact, there should be a rewrite of the entire parsing/validation layer down the line. It's a bit far down that line though.

I'll fix the index error immediately. Thank you so much for telling us about them!


Handle badly formed 'Accept-Language' headers (#2097)

ViewMessageBodyWriter::detectLocale will now catch
HeaderValueExceptions thrown when retrieving the languages from the
headers and return a 400 - Bad Request to clients instead of a server
error.
The issue (#2097) talked about using the default locale in that case, but I don't agree. Not my decision in the end though, I can change this to use the default locale if you guys prefer this.

Coverage increased (+0.1%) to 85.062% when pulling eb47025928a9a624553d518e5e4ebf546f27ffc0 on FredDeschenes:issue-2097 into 00ec17f2695befd7e3d02cbee3ee71d394b29eeb on dropwizard:master.

Coverage increased (+0.2%) to 85.197% when pulling 8854b10e361fb38621f94473402e732e83e33686 on FredDeschenes:issue-2097 into 00ec17f2695befd7e3d02cbee3ee71d394b29eeb on dropwizard:master.

Applied to the 1.1 branch as 48b88252.


Safe to bump rspec-rails v6.

Summary
Just bump the spec-rails
Pull Request checklist

[~] Add/update test to cover these changes
[~] Update documentation
[~] Update CHANGELOG file

I can help to testing the v7 version if could release a rc version.

@Eric-Guo

I can help to testing the v7 version if could release a rc version.

It is great. We are waiting working on 2-3 more features to add and then make another rc. Meanwhile, it would be great if you can try Shakapacker 7 using the master branch.
If you have a project with Shakapacker 6, it would be great to check the smoothness of the upgrade process to version 7.

@justin808
Should we also include this in version 6?


Hearthbeat

Hello!
Can u explain what does it mean and for what it need?
if(is_callable($this->hearthbeat))
{
$this->hearthbeat($this->connects);
}

Hello!
Hearthbeat is a main function of websocket server and executes recursive. You can do any checks in this function and send information through it.
You must create hearthbeat function by yourself.


#20613

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2019.04.07. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[ x] I've verified and I assure that I'm running youtube-dl 2019.04.07

Before submitting an issue make sure you have:

[ x] At least skimmed through the README, most notably the FAQ and BUGS sections
[ x] Searched the bugtracker for similar issues including closed ones
[ x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ x] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2019.04.07
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
Regarding 20613 the dev closed the topic with the statement  https://github.com/ytdl-org/youtube-dl/issues/20613#issuecomment-480980673 but i read the faq and i find only
geo-verification-proxy URL Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or none, if the option is not present) is used for the actual downloading. --geo-bypass Bypass geographic restriction via faking X-Forwarded-For HTTP header --no-geo-bypass Do not bypass geographic restriction via faking X-Forwarded-For HTTP header --geo-bypass-country CODE Force bypass geographic restriction with explicitly provided two-letter ISO 3166-2 country code --geo-bypass-ip-block IP_BLOCK Force bypass geographic restriction with explicitly provided IP block in CIDR notation Video Selection:
That means that i dont find WHEN it is supposed to work. Does when means from a specific country or on some particular os...? I d be gratefull if someone may want to explain why my case is an exception since 1 month ago. Is it my error or a bug arised when orf changed their site...Thanks in advance.

As clearly stated it will only work if hoster webserver respects X-Forwarded-For HTTP header.


Cask ezeep.rb needs modification

The Cask for ezeep.rb currently fails as the url and app are no longer valid. The url is now https://www.ezeep.com/wp-content/uploads/packages/osx/stable/ezeepInstaller.dmg which downloads a .dmg containing an .app called ezeep Installer.app.
Running this .app calls a GUI requiring a user's password, which downloads something and then installs an .app called ezeep.app. There is an uninstall.sh included with the ezeep Installer.app which is a little weird, in particular it requires sudo and to be called with a parameter debug or production, with no explanation given as to what these parameters actually mean.
Even stranger, there is no similar uninstall script included with the ezeep.app that is actually installed.
I am at a loss as to what to do with this Cask, and need some advice please.

installer manual: 'ezeep Installer.app'

uninstall script:  { executable: 'ezeep Installer.app/uninstall.sh', args: ["production"],
                     sudo: true }

with no explanation given as to what these parameters actually mean.

If it's a simple shell script it should be easy to see where the parameter is used.

So with installer manual: a copy of the ezeep Installer.app is kept in the cache, and thus needs to be preceded by #{staged_path} in the uninstall script:?
Of course reading the .sh script tells where the parameters are used - what I meant was that debug means that keychain passwords are kept, while production means they are deleted, which is not at all obvious from their names.

Thanks for your help @reitermarkus.


Fix is_effect_valid check

I noticed yesterday that the automate host callbacks I was performing in Oidos had seemingly stopped working. I traced the fault back to this change which broke the is_effect_valid check and thus caused all callback calls guarded by this check to do nothing.
I am a bit unsure how to write a test for this function, as it involves the bridging code and depends on the shape of an actual, loaded plugin.

Good catch! Btw, I would use *const i32 instead, because we aren't mutating it afterwards:
unsafe { *(self.effect as *const i32) == VST_MAGIC }

Fun fact though lol https://github.com/rust-dsp/rust-vst/pull/47/files that is also fixed in this pr

#72 is a better solution to the same problem.


Create migration scripts to change from akka_ schema prefix to pekko_ prefix

This persistence plugin used to store data in databases with the akka_ prefix but it has been changed to pekko_. A migration script should be provided to change this prefix for people coming from akka_

The DDL is straightforward. I think most users who migrate from Akka can work it out themselves.

We could advise them in the migration doc that overriding the keys for backwards compatibility is an option to renaming:
    offset-table = "akka_projection_offset_store"
    timestamp-offset-table = "akka_projection_timestamp_offset_store"
    management-table = "akka_projection_management"

full qualified configs:
pekko.projection.r2dbc.offset-store {
    offset-table = "akka_projection_offset_store"
    timestamp-offset-table = "akka_projection_timestamp_offset_store"
    management-table = "akka_projection_management"
}


fixes a panic:bad-yaml when deno.jsonc doesn't have tea dependencies

When a deno configuration file didnt't have a tea section listed, tea would panic when sourcing the local environment.
Error: bad-yaml
    at usePackageYAML (file:///opt/tea.xyz/src-v0.24.3/src/hooks/usePackageYAML.ts:9:37)
    at refineFrontMatter (file:///opt/tea.xyz/src-v0.24.3/src/hooks/usePackageYAML.ts:30:16)
    at supp (file:///opt/tea.xyz/src-v0.24.3/src/hooks/useVirtualEnv.ts:109:20)
    at async default (file:///opt/tea.xyz/src-v0.24.3/src/hooks/useVirtualEnv.ts:24:13)
    at async file:///opt/tea.xyz/src-v0.24.3/src/app.ts:24:21

Fixes https://github.com/teaxyz/cli/issues/384, specifically: https://github.com/teaxyz/cli/issues/384#issuecomment-1434593366

Thanks, can't believe I screwed this up lol

This will be in 0.24.4: https://github.com/teaxyz/cli/pull/389


Release 0.1.1

Description
Preparing a release for Seahorse to pin to.  This just updates the cargo.toml to match what I plan to tag as the release.
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests - N/A
[ ] Updated relevant documentation in the code - N/A
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md - N/A
[x] Re-reviewed Files changed in the GitHub PR explorer

any pending items in CHANGELOG that the downstream wants to use @bfish713 ? (probably the derivedSnafu,Debug traits on some structs?)

any pending items in CHANGELOG that the downstream wants to use @bfish713 ? (probably the derivedSnafu,Debug traits on some structs?)

Nothing in particular, we just need some version to pin Seahorse to

a minor mishap for this PR, now I realize, is that we forgot to update our CHNAGELOG.
Should we move everything in our "Pending" sections to a new "v0.x.x Change Summary" section?
(cc @zhenfeizhang )

lol may be we can update for major versions and ignore minors ;-)


Enabling different keys for debug and release (Suggestion)

In my project we use out source teams and i do not want to share our live API Keys with them so i create 2 different project on Google Console and generate 2 different sets of keys. To enable this with Tracklytics i did this :

Created 2 sets of files

for debug which is located under app/src/debug folder
for release one level up the git base in a folder named AndroidKeyStore

Generated config files using Google API config file generators and put the files accordingly in these folders

"google-services.json"
"tracklytics.properties"

In app build.gradle used some tasks and chained them to existing tasks to copy files according to build type to the proper locations.

at the end of app build.gradle added

task switchToDebug(type: Copy) {
    description = 'Switches to DEBUG google-services.json'
    from "src/debug"
    include "google-services.json"
    into "."
}

task switchToRelease(type: Copy) {
    description = 'Switches to RELEASE google-services.json'
    from "../.."
    include "google-services.json"
    into "."
}

task prepareTracklyticsDebug(type: Copy) {
    description = 'Copies Tracklytics keys for Debug'
    from "src/debug"
    include "tracklytics.properties"
    into "../"
}

task prepareTracklyticsRelease(type: Copy) {
    description = 'Copies Tracklytics keys for Release'
    from "../../AndroidKeyStore"
    include "tracklytics.properties"
    into "../"
}
afterEvaluate {
    processDebugGoogleServices.dependsOn switchToDebug
    processReleaseGoogleServices.dependsOn switchToRelease

    if (build.properties.debuggable) {
        prepareComOrhanobutTracklyticsTracklyticsRuntime013Library.dependsOn prepareTracklyticsDebug
    } else {
        prepareComOrhanobutTracklyticsTracklyticsRuntime013Library.dependsOn prepareTracklyticsRelease
    }
}

Result :
I used build.properties.debuggable and set it false for release buildType and true for debug buildType  because i could not see different tasks for release and debug in build log. It may be good if there are seperate tasks as " processDebugGoogleServices & processReleaseGoogleServices " in addition to / instead of prepareComOrhanobutTracklyticsTracklyticsRuntime013Library . Or they exists and i could not see :(
I am not a master so i am very open to change the way i did it if this is not the way to do these kind of stuff.

@ergunkocak very very late reply but I just found some time to spare. I actually designed this library to use for different build types but somehow, gradle didn't work as I expected. I'll definitely make changes for this. Currently I removed tracklytics.properties files and as a practice, public api keys can be actually used through gradle. Build types are quite good for that purpose. Thanks for the detailed feedback

@ergunkocak I changed the tracklytics implementation. All tool implementations will be up to the developer from now on. I think that's the best and flexible way. As I suggested above, the best way to differentiate API Keys is using gradle build type or flavor.

Closing this issue for now due to pivoted project. @ergunkocak thanks for the suggestions though


Profile picture and sign out missing on 1.23 beta

@phuongdm - I think this is probably just the deployment changes with media.  I thought these were reversed, could you check to make sure?

@sblack-usu
Just checked on the console log:
https://new-hs-ci.hydroshare.org/view/02 - Deployment/job/Beta deployment/job/beta-deploy-by-branch/67/console

This was a deployment problem due to a previous attempt to change the way we deploy static media files.  It has been worked out on beta, and I'm adding notes to the release checklist for 1.23 to make sure the static media files deploy correctly on the production deploy.


Fixed CARBON14488ForceFullyStopTestCase

Closing the PR because no need to start and stop new server using TestServerManager to get carbon home. Can do it directly using CarbonTestServerManager.

Closing the PR because no need to start and stop new server using TestServerManager to get carbon home. Can do it directly using CarbonTestServerManager.


Setup script should install Leiningen if absent

This should also ensure the correct version, i.e. 2.6.1 at this point in time. If an old version is present, it should be moved to the original_dotfiles folder (which should be renamed, because it will no longer contain just dotfiles). We will also have to ensure that /usr/local/bin is on the $PATH, which means this will have to wait until after #55 is resolved.

Actually, we can just use brew install leiningen. No need to mess with the $PATH or old versions.

Resolved in fd4972159068cd494856b70574f16a9f070ba7ac. This takes into account whether an older version is installed, and if so, if that older version was installed using Homebrew.


[CT-55] [Bug] var not injected in dbt run snapshot from dbt run invocation in 1.0.0+

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
In 1.0.0+ it appears that we are no longer able to inject var values into a dbt snapshot like so:
dbt snapshot --select dummy_snapshot --vars 'run_date: "2021-11-11"'

where the snapshot is defined as follows:
{% snapshot dummy_snapshot %}

{{
    config(

        target_schema = 'potato',
        unique_key = 'uniqueid',
        strategy = 'check',
        check_cols = 'all',
        updated_at = "cast ('{}' as timestamp)".format(var('run_date')),
        file_format = 'delta',
        invalidate_hard_deletes = true
    )
}}

select 1 as uniqueid, current_timestamp() as ts

{% endsnapshot %}

the logs confirm that a 'none' is being injected rather than the value passed ("2021-11-11").
However, creating the same snapshot and running it the same way in an environment on 0.21.0 works (the date is injected)
snapshot_logs_100.txt
snapshot_logs_0210.txt
Expected Behavior
specified var is injected to the snapshot the same in 0.21.0 as in 1.0.0
Steps To Reproduce

go to dbt environment on 1.0.0+
create a snapshot as follows:

{% snapshot dummy_snapshot %}

{{
    config(
        target_schema = 'potato',
        unique_key = 'uniqueid',
        strategy = 'check',
        check_cols = 'all',
        updated_at = "cast ('{}' as timestamp)".format(var('run_date')),
        file_format = 'delta',
        invalidate_hard_deletes = true
    )
}}

select 1 as uniqueid, current_timestamp() as ts

{% endsnapshot %}

invoke the snapshot using this command:

dbt snapshot --select dummy_snapshot --vars 'run_date: "2021-11-11"'

observe 'none' being injected in the logs rather than the run_date passed in the dbt run call

Relevant log output
2022-01-18T17:40:30.685676Z: 17:40:30  On snapshot.my_new_project.dummy_snapshot: /* {"app": "dbt", "dbt_version": "1.0.1", "profile_name": "user", "target_name": "default", "node_id": "snapshot.my_new_project.dummy_snapshot"} */

      create or replace transient table DEMO_DB.potato.dummy_snapshot  as
      (

    select *,
        md5(coalesce(cast(uniqueid as varchar ), '')
         || '|' || coalesce(cast(cast ('None' as timestamp) as varchar ), '')
        ) as dbt_scd_id,
        cast ('None' as timestamp) as dbt_updated_at,
        cast ('None' as timestamp) as dbt_valid_from,
        nullif(cast ('None' as timestamp), cast ('None' as timestamp)) as dbt_valid_to
    from (

select 1 as uniqueid, current_timestamp() as ts

    ) sbq

      );

Versus:
2022-01-18T17:51:04.596006Z: On snapshot.jaffle_shop.dummy_snapshot: /* {"app": "dbt", "dbt_version": "0.21.0", "profile_name": "user", "target_name": "default", "node_id": "snapshot.jaffle_shop.dummy_snapshot"} */

      create or replace transient table DEMO_DB.potato.dummy_snapshot  as
      (

    select *,
        md5(coalesce(cast(uniqueid as varchar ), '')
         || '|' || coalesce(cast(cast ('2021-11-11' as timestamp) as varchar ), '')
        ) as dbt_scd_id,
        cast ('2021-11-11' as timestamp) as dbt_updated_at,
        cast ('2021-11-11' as timestamp) as dbt_valid_from,
        nullif(cast ('2021-11-11' as timestamp), cast ('2021-11-11' as timestamp)) as dbt_valid_to
    from (

select 1 as uniqueid, current_timestamp() as ts

    ) sbq

      );

### Environment

```markdown
- OS:
- Python:
- dbt: 1.0.0 vs 0.21.0
dbt cloud

What database are you using dbt with?
snowflake
Additional Context
No response

Here's what I know about this issue:

This is an issue with the RPC server + partial parsing
@jeremyyeo detailed the same issue over in https://github.com/dbt-labs/dbt-rpc/issues/48#issuecomment-997537912
This represents a regression in v1.0 for folks who use the dbt Cloud IDE, which relies on the RPC server
The RPC server should be fully re-parsing all project files whenever --vars are passed into a cli_args method, and storing the new values of config(). That's what happens on the CLI, and why we're returning the correct results there—but it clearly isn't happening here.
We're not planning to support dbt-rpc for the indefinite future. I believe that this won't be an issue for the new Server, given how it will work with parsing in particular. But it would not feel good to document this as a known limitation, given that it's a regression from functionality that worked in previous versions.

Here's what I don't know:

What's causing the mismatch between dbt-core and dbt-rpc, as far as triggering that full re-parse?
How big of a lift would it be to fix?
How big is that lift, compared to the lift of improving the behavior of --vars + partial parsing in ways we know we want to? Namely, only files that call a changed var() should actually need to be re-parsed, rather than triggering a full re-parse any time any --vars are passed — i.e. exactly the same as the improvement we made for env_var() + partial parsing

@leahwicz @gshank Given the unknowns here, I think we need a time-boxed investigation, to try to answer the question of what would be required to fix this.

Putting all that aside, and returning to the specifics of this bug report
@saraleon1 Could you say a bit more about the actual use case here? Based on the dummy example, it looks like the user wants to run the snapshot multiple times in sequence, once for each day of (historical?) data. Is the mismatch between ts and updated_at intentional? Would it be possible to refactor the snapshot code to simply be:
{% snapshot dummy_snapshsot %}

{{
    config(
        target_schema = 'potato',
        unique_key = 'uniqueid',
        strategy = 'check',
        check_cols = 'all',
        updated_at = 'updated_at',
        file_format = 'delta',
        invalidate_hard_deletes = true
    )
}}

select 1 as uniqueid, cast({{ var('run_date', 'current_timestamp') }} as timestamp) as updated_at

{% endsnapshot %}

If that accomplishes the use case, I believe that should work. Only config() values are resolved at parse time, and will be affected by this partial parsing + RPC bug. Compiled SQL for nodes (including snaphots) is always re-rendered when the node is actually executed.

When vars are passed to dbt-rpc, they ought to be updated in dbt_rpc/task/cli.py, 'handle_request', where they are copied into config.vars, and then used in ManifestStateCheck to determine whether a full-reparse is necessary. I don't yet see where this process has changed, so I'll have to do some more investigation.

So it seems that in ManifestStateCheck we're looking at config.args.vars, not config.cli_vars, and in the rpc_server we're only updating config.cli_vars. Still not sure what changed between 0.21 and 1.0.0.

I suspect that what probably changed was copying the args that are being passed in in a different place because of another bug that we add. Probably originally the args were the same args structure in the config and now they're not. To fix this we need to either change ManifestStateCheck to use cli_vars, or change task.cli.handle_request to also update the config.args.vars. Either of these is pretty simple. Eventually we want to handle the vars like we do env_vars as far as re-parsing, but that's a substantially bigger effort.

Thanks for the speedy investigation! I'd be in favor of one of the simpler fixes, and defer to you on which one — whichever is clearer to understand / adds less tech debt for the future

Sorry this is late but an update from the user on the workaround:

When strategy = 'check' and check_cols = 'all', the ‘updated_at’ column would flag every new row as changed from the previous. So it would only work when excluding ‘updated_at’ from check_cols. But that requires explicitly listing all columns by name in check_cols, which is not ideal. However, we are already using a similar workaround.

Thanks for all your help on this!

This one will be resolved by https://github.com/dbt-labs/dbt-rpc/pull/70

@gshank let's hand this change off to @stu-k to shepherd in. Let's sync the 3 of us on where this is and next steps. I think we need testing and then actual release to GitHub, Pypi, and then to Cloud.
CC: @kwigley who could be a resource when it comes to the RPC release

Closing since https://github.com/dbt-labs/dbt-rpc/pull/70 was merged! Let's open a new issue to track dbt-rpc==0.1.2 release


Assignment Link on Submission Search goes to blank page.

Let's unlink the assignment detail page  and remove the page entirely.

Good point. Should've occurred to me.


Use OmniSharp Razor grammar as default in VS Code

Hello 👋
I work on VS Code and maintain our syntax highlighting grammars there. We pull almost all of our grammars from other OSS repos. The grammar we've been using for Razor is no longer maintained. It looks like you have a maintained grammar: https://github.com/OmniSharp/omnisharp-vscode/blob/master/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json
I'd like to switch over to use the OmniSharp Razor grammar as the default, built-in, Razor grammar in VS Code. I've switched over to use this grammar for the next VS Code Insiders build: https://github.com/microsoft/vscode/pull/163212. If you have any concerns about this please let me know! It should be a much better experience for Razor users in VS Code.

@ArmantG this grammar should still be an improvement over the old one even though it still doesn't work for the example you gave (quick testing showed it did better on the snipped we use for testing). And, once we've moved over to a grammar that's actually being maintained we can file issues that may be addressed.

@davidwengier Should this Razor grammar be moved in box?

I agree with David - if possible, I think it would be best if VS Code pulled the grammar in the razor-tooling repo since it's kept the most up-to-date.

Great, thank you for the pointer. I've updated VS Code pull from https://github.com/dotnet/razor-tooling.

Looks like this got done: https://github.com/microsoft/vscode/pull/163898
@JoeRobich can you close this :)


log will be discarded before logging_thread scheduled once

Is your enhancement proposal related to a problem? Please describe.
if enable LOG subsystem with  CONFIG_LOG_PROCESS_THREAD=y,
based on current design, log will be discard before logging_thread scheduled once,
since logging thread is assigned lowest priority, there need to explicit sleep in main thread before using log APIs.
Describe the solution you'd like
please check if this can be improve to avoid this scenarios.
one suggestion is, put log thread as high priority thread when define and set back to lowest priority after init

@morganzha can you please try this PR on your platform? Thanks

log will be discard before logging_thread scheduled

This is actually not true. Logs are queued from the start of the system (https://github.com/zephyrproject-rtos/zephyr/blob/c9e96b3c1976a0d938cc69d860789434a5ae3299/kernel/init.c#L504)
Logs cannot be processed until log thread is started and some may be dropped if buffer is too small and it overflows. Is that what you see or something else?

I think we should close this.


Support Concurrent read/write access

This branch contains updates in memfy and dcache to support concurrent read/write access if no address collision can occur. The updates are the following:

memfy: AXI_ORDERING parameter set to 1 generate another circuit to detect the r/w collisions. Look-up tables (LUT) for read and write channels are instantiated to track ongoing requests. AXI_ORDERING=0 follows the previous behaviour, read and write requests can't be issued in parallel. Outstanding read blocks write requests, and vice & versa.
dcache pusher: cache write is slightly different, all write needing to update the blocks are packed into a FIFO, emptied once no new write request are issued by memfy. Before this update, read and write were fully parallel.
cache blocks: architecture evolved, no having two fully independent port, once for read data path (fetcher), once for write data path (pusher). A port makes write passing before read. Before this update, port 1 was read-only, port 2 write-only.

The branch is not yet merged because two problems encountered during debug, that can't be identified clearly neither understood for the moment:

wba-testsuite / core configuration: at some point, memfy generates a log indicating too many write completions have been issued by the dcache. True for both icarus and verilator
apps/repl: the benchmark command issued a load_misaligned exception.

merge_memfy_opt is a temp branch, merging all but new cache blocks, to debug the current problems, without success for the moment.

Maybe linked to the AXI-Crossbar bug:
https://github.com/dpretet/axi-crossbar/issues/9


gamepad wishlist

throttle allow mapping full range [-1, 1] (cars, etc)
ideally VTOL transition should toggle from one state to the other
arm/disarm require at least 1 second

More advanced configuration

allow mapping throttle to other buttons as a +-% change, which frees up the stick for gimbal use

@RomanBapst @MaEtUgR This obviously doesn't cover everything, but it's a few relatively easy short term fixes. Feel free to extend the list.

show thumbsticks in the Joystick tab

this is minor, but would give the user a better idea about what's going on and provide some necessary configuration (how the throttle is handled)

This was intended to be a QGC issue, although there will also be a PX4 issue later for different pieces.
https://github.com/mavlink/qgroundcontrol/issues/6367

That went fast. It all sounds useful to me, I can probably work on the [-1,1] problem with the throttle (https://github.com/PX4/Firmware/issues/9331)


No support for IMX219?

Is there any support for Sony IMX219 image sensors?

Support for Sony IMX219 sensor will be added soon. @talhaiqbal-10xe @taimur-10xe please link the branch to this issue.

Support for IMX219 has been added.
You can use v1.3 relevant binary file with IMX219 image sensor module or Raspberry Pi Camera Module v2 (which also has IMX219 sensor in it).

@sohaibimran-10xe @taimur-10xe Thank you very much, I ran it successfully, it's really impressive. Can I integrate my own image processing algorithms like edge detection with your ISP?

@sohaibimran-10xe @taimur-10xe Thank you very much, I ran it successfully, it's really impressive. Can I integrate my own image processing algorithms like edge detection with your ISP?

Hi @dangtuan-ng , thanks a lot. We are building a community for contributes like you. Can you email at<EMAIL_ADDRESS>to get connected. Or get in touch using the link.


bpf, perf: refine barriers and tail update

wip

This change is

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

00:26:37     runtime: diff -u ./pkg/bpf/perf.go.orig ./pkg/bpf/perf.go
00:26:37     runtime: --- ./pkg/bpf/perf.go.orig	2018-10-10 00:26:35.509203468 +0000
00:26:37     runtime: +++ ./pkg/bpf/perf.go	2018-10-10 00:26:35.509203468 +0000
00:26:37     runtime: @@ -408,7 +408,7 @@
00:26:37     runtime:  			msg    *PerfEventHeader
00:26:37     runtime:  			sample *PerfEventSample
00:26:37     runtime:  			lost   *PerfEventLost
00:26:37     runtime: -			ok	C.int
00:26:37     runtime: +			ok     C.int
00:26:37     runtime:  		)
00:26:37     runtime:
00:26:37     runtime:  		if ok = C.perf_event_read(C.int(e.pagesize),

test-me-please

test-me-please

test-me-please

Hmm, seems regression on current master, https://github.com/cilium/cilium/issues/5588#issuecomment-428565887 .
https://jenkins.cilium.io/job/cilium-ginkgo/job/cilium/job/master/1747/testReport/(root)/runtime/RuntimePolicies_Tests_Egress_To_World/

test-me-please

test-me-please

Hit #5741 and #5813. Trying rebase on top of older commit.

test-me-please


When generating uniform noise in random start, floating point number will cause invalid pixel value.

In here,replace
x = x_nat + np.random.uniform(-self.epsilon, self.epsilon, x_nat.shape)
with
x = x_nat + np.random.random_integers(int(-self.epsilon), int(self.epsilon), x_nat.shape)
Actually, x_nat is discrete and converted from UINT8, but uniform noise got from np.random.uniform() is continuous if we ignore machine word-length.
When doing PGD adversarial training, I think FLOAT type maybe ok. However, when generating adversarial examples, I think we should restrict adversarial space in a meaningful space, says UINT8.
What's more, in run_attack.py, we should make sure all pixel values in an adversarial image can map to UINT8.

I see your point. Yes, if you wanted to only evaluate on valid pixel values with random start you would need to do this modification. Note that this is not an issue when using integer PGD step size and no random start.
Conceptually, we are evaluating against a more powerful adversary which is allowed to use floats. So we are only underestimating the true robustness. Given that we don't expect rounding to have a huge impact (it is less than 0.5 in Linf norm) using float random start is fine.


[staging & production] File Version List scroll bar does not persist

Reported by @nicipfeiffer on the 0.35 Trello board:
Steps

Log in to staging
Go to a project you have admin privileges on
Upload >10 versions of a file to a project's osf storage
Click on a file to go to the file detail page
Scroll the version table

Expected
The fact that the version table scrolls should be obvious like the file tree, files grid and project dashboard.  All have a scroll bar that persists, meaning it stays darkened on the page even when not in use to make it apparent to the user that it's available for use.  I would expect consistent scroll bars throughout the site.
Actual
The scroll bar is not obvious, only if you have the mouse in that section and scroll with it do you realize that it is there.  Also, the last file version in the list is cut off.

This was fixed in https://github.com/CenterForOpenScience/osf.io/pull/2657

@nicipfeiffer and I are still seeing the problem, even though @GaryKriebel cannot reproduce it.

can't reproduce
3 different browsers:

This looks to be an OS-specific--not browser-specific problem. Some versions/configurations of Mac have persistent scroll bars; others do not.

You can set it in your system preferences.

Ah, thanks for the insight @sloria and @brianjgeiger!

Ah ha!  Now it looks good.


pull request for e2e test at 12/17/2016 22:56:22

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add documentation and tutorial for quantum feature maps

Basically all modifications are doc strings. There are also some improvements in the feature maps options.

How close do we want to stick to sklearn docstrings? If close, then we might need to change the order in some of the sections (i.e. bringing args up to after the long description and moving examples to the bottom) aswell as adding a separate reference section instead of having it in the first line description.

Don't know if that is really necessary.
At the moment, I'm happy to reach a level that is usefull but not a massive amount of work.
If the package goes high, we can rethink the documentation in a more structured way.


Memory issue when numpy arrays are passed to dask arrays

I have a 68gb ram cluster running which runs into memory issues (which kills the worker) only when Numpy arrays are passed to Dask arrays.

Dask array reproducible example:
import dask.array as da
import numpy as np
from dask.distributed import Client

client = Client()

x = da.random.uniform(low=0, high=10, size=(112_266_893, 15))
x.std(axis=0).compute()  # works just fine

However, I am trying to pass a numpy array (representing my feature matrix with the same size as the simulated dask array. I ran into memory issues when I pass the numpy array to dask array.
Numpy array reproducible example:
test_np = np.random.uniform(low=0, high=10, size=(112_266_893, 15))
test_da = da.from_array(test_np)

test_da.mean(axis=0).compute()  # fails after worker gets killed

My question is why does dask array compute work in the former but fail in the latter?
Here's the console output where dask seems to be reporting a potential memory leak from this example:

Am I doing something wrong, or do I just need more ram?

Maybe your numpy array is to large to safely put on a single worker?  When
you use Dask arrays they are broken up into many small pieces so that you
can solve larger problems than you have ram.  When you use numpy, numpy
allocates a single array which has to fit in ram.
See https://docs.dask.org/en/latest/best-practices.html#load-data-with-dask
On Tue, Nov 19, 2019 at 3:15 AM Bernard Brenyah<EMAIL_ADDRESS>wrote:

I have a 68gb ram cluster running which runs into memory issues (which
kills the worker) only when Numpy arrays are passed to Dask arrays.
[image: image]
https://user-images.githubusercontent.com/29863388/69137246-a6652f80-0abc-11ea-80ab-ef3f15789f6f.png
Dask array reproducible example:
import dask.array as daimport numpy as npfrom dask.distributed import Client
client = Client()
x = da.random.uniform(low=0, high=10, size=(112_266_893, 15))
x.std(axis=0).compute()  # works just fine
However, I am trying to pass a numpy array (representing my feature matrix
with the same size as the simulated dask array. I ran into memory issues
when I pass the numpy array to dask array.
Numpy array reproducible example:
test_np = np.random.uniform(low=0, high=10, size=(112_266_893, 15))
test_da = da.from_array(test_np)
test_da.mean(axis=0).compute()  # fails after worker gets killed
[image: image]
https://user-images.githubusercontent.com/29863388/69137877-e5e04b80-0abd-11ea-9227-26726fbf1bb3.png
My question is why does dask array compute work in the former but fail in
the latter?
Here's the console output where dask seems to be reporting a potential
memory leak from this example:
[image: image]
https://user-images.githubusercontent.com/29863388/69137775-b3365300-0abd-11ea-8537-a1ec299e2c74.png
Am I doing something wrong, or do I just need more ram?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/5601?email_source=notifications&email_token=AACKZTGT3E3WHOF7HPAYTZDQUO4FLA5CNFSM4JPA76RKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H2JPJEA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTHFN2LPSG4B3BF3EADQUO4FLANCNFSM4JPA76RA
.

 Does that mean Matt's comment and the docs explain things adequately?

This looks like it is the same problem I reported over in distributed: https://github.com/dask/distributed/issues/3032.
If you call da.from_array(numpy_array), regardless of the chunking of the dask array, any computation of any chunk will require the full array (as opposed to only requiring a chunk). For big arrays, this easily blows up a single worker.
So, If you actually want the numpy array to be divided into chunks, you should slice your array into sub-arrays and concatenate / stack them together using something like da.stack([da.from_array(sub_array) for sub_array in sliced_numpy_array])

@TomAugspurger I will try the suggestion from @d-v-b and report as well.
@d-v-b how can I make  sliced_numpy_array chunk generator.

@PyDataBlog something like this:
test_np = np.random.uniform(size=(112_266_893,15))
# window size
ws = 10000
# divide test_np into sub-arrays via simple slicing along the first dimension
sliced = [da.from_array(test_np[slice(ind * ws, (ind * ws) + ws )]) for ind in range(1 + test_np.shape[0]//ws)]
x = da.concatenate(sliced)

If you construct x like this, then the memory footprint of a single chunk should be (ws, 15) times the datatype. Whereas if you construct x just using da.from_array(test_np), the memory footprint of a single chunk is the entire array.

@PyDataBlog did my suggestion work for you?

@PyDataBlog did my suggestion work for you?

The client is now able to process that same test_np array object that it was failing earlier so that should solve the main task since they have the same shape and size. Feel free to close the issue.

It's worth noting da.from_array(...) accepts a chunks argument as well


build project error

can't build project after pnpm install, I am trying install Developer Tools
env:

node: v18.7.0
repo commit: 59e5ef812e3b44418de88f773cf3fbc1e50c3fa8
pkg manager: yarn
error:

Hi, please try to install Node.js version 16.x.x and then try to run pnpm install && pnpm build again.


[#103193094] Prevent text being obscured on assurance validation error

Fixes this bug: https://www.pivotaltracker.com/story/show/103193094
Before (Firefox):

After (Firefox):

Checked out locally and tested in a few versions of IE, :+1:


Add current page location to page title

E.g., "Robert Yin | Blog" or "Robert Yin | Project Post Name*

Accidentally forgot to document that it already was fixed in #17


New Machine requirement: Add docker in perf machines

I need to request a new machine that support ci.role.perf and sw.tool.docker, currently only have these
Please explain what this machine is needed for:
as in this test, we need to cover a wider range of platforms.

Which Linux architectures are you looking for specifically?

Added to the following, which will give ppc64le and armv7l (arm32) coverage. Please re-open if you require more.

https://ci.adoptopenjdk.net/computer/test-osuosl-centos74-ppc64le-1
https://ci.adoptopenjdk.net/computer/test-osuosl-centos74-ppc64le-2
https://ci.adoptopenjdk.net/computer/test-sxa-armv7l-ubuntu2004-odroid-1
https://ci.adoptopenjdk.net/computer/test-sxa-armv7l-ubuntu2004-odroid-2


Bug: Custom log formatter code not being reached

Expected Behaviour
We have hundreds of lambda functions deployed with SAM. We globally set POWERTOOLS_LOGGER_LOG_EVENT to True in order for the event of each invocation to be logged. In order to not log sensitve information, such as authoriztion headers from an APIGW event, I'm redacting certain fields due to security and in efforts to also reduce the overall size of the log in order to keep CloudWatch costs down.
The custom logger should delete these certain fields from the event payload before being logged.
Current Behaviour
The serialize() method never gets reached and none of my logger logic is performed. When I import the logger in a python shell, it works as expected and the custom code is ran. However, my logger doesn't appear to call the def serializer(self) method unless I add these two lines below. Problem with this method is that the lambda event also gets modified. So when I try to redact the Authorization key in the headers, my lambda authorizer throws a key error because it's missing from the event payload now.:
handler = logger.handlers[0]
handler.setFormatter(CustomFormatter())

Code snippet
Lambda handler:
logger = Logger(logger_formatter=CustomFormatter())

@tracer.capture_lambda_handler(
    capture_response=False
)
@logger.inject_lambda_context()
def lambda_authorizer_handler(event: dict, context: LambdaContext) -> dict:
    return authorizer.handler(event, context, logger)

Custom Logger
class CustomFormatter(LambdaPowertoolsFormatter):
    """
    A custom logging formatter that redacts specific fields from log data before serialization.
    This is in order to remove sensitive informtion and reduce CloudWatch log costs as it greatly
    reduces the size of the log

    Attributes:
        HEADERS_TO_REDACT (Set[str]): Headers to be redacted from the log's 'headers' field.
        REQUEST_CONTEXT_TO_REDACT (Set[str]): Request context fields to redact from the log's 'requestContext'.
        MESSAGE_FIELDS_TO_REDACT (Set[str]): Message-level fields to redact from the log's 'message' field.
        LAMBDA_EVENT_FIELDS_TO_REDACT (Set[str]): Top-level Fields specific to Lambda events to redact from the main log body.
    """

    HEADERS_TO_REDACT: Set[str] = {
        "Authorization",
        "baggage",
    }

    REQUEST_CONTEXT_TO_REDACT: Set[str] = {
        "resourcePath",
        "extendedRequestId",
        "protocol",
        "stage",
        "domainPrefix",
        "identity",
        "domainName",
        "deploymentId",
        "apiId",
    }

    MESSAGE_FIELDS_TO_REDACT: Set[str] = {
        "multiValueHeaders",
        "multiValueQueryStringParameters",
        "pathParameters",
        "stageVariables",
        "isBase64Encoded",
    }

    LAMBDA_EVENT_FIELDS_TO_REDACT: Set[str] = {
        "function_memory_size",
        "function_arn",
        "cold_start",
    }

    def __init__(self, *args, **kwargs):
        print("Inside INIT of custom logger")
        super().__init__(*args, **kwargs)

    def serialize(self, log: LogRecord) -> str:
        print(f"In Serialize method: {log}")
        try:
            self._redact_fields(log)
        except Exception:
            print("FAILURE")
            pass

        return self.json_serializer(log)

    def _pop_fields(self, log: Dict[str, Any], keys_to_redact: Set[str]) -> None:
        for key in keys_to_redact:
            log.pop(key, None)

    def _redact_fields(self, log: LogRecord) -> None:
        message = log.get("message", {})
        if isinstance(message, dict):
            headers = message.get("headers")
            if isinstance(headers, dict):
                self._pop_fields(headers, self.HEADERS_TO_REDACT)

            request_context = message.get("requestContext")
            if isinstance(request_context, dict):
                self._pop_fields(request_context, self.REQUEST_CONTEXT_TO_REDACT)

            self._pop_fields(message, self.MESSAGE_FIELDS_TO_REDACT)

        self._pop_fields(log, self.LAMBDA_EVENT_FIELDS_TO_REDACT)  # type: ignore
        log["message"] = message

Possible Solution
No response
Steps to Reproduce
Setup lambda function to use the CustomLogger as the logger_formatter and invoke the function locally or in the cloud
Powertools for AWS Lambda (Python) version
3.2.0
AWS Lambda function runtime
3.9
Packaging format used
Lambda Layers
Debugging logs
No response

Hi @austin-ironside! Reading this now and trying to replicate the scenario in my environment. I'll get back to you with some updates as soon as possible.

Thanks for the response! I was able to instantiate the CustomFormatter without having to alter the handlers directly. Not sure exactly where/when it started working. Might have been a SAM local build situation.
The other issue of the lambda event being mutated from my changes, I worked around by using a deepcopy on the log record and made my changes there before returning it. My custom formatter is really aimed at API Gateway events and trimming those log records down. Not sure if there are any side effects of this yet, but for now, this seems to perform the way I was expecting.
from aws_lambda_powertools.logging.formatter import (
    LambdaPowertoolsFormatter,
)
from aws_lambda_powertools.logging import Logger
from aws_lambda_powertools.logging.types import LogRecord

from copy import deepcopy
from typing import Any, Dict, Set

class CustomFormatter(LambdaPowertoolsFormatter):
    """
    A custom logging formatter that redacts specific fields from log data before serialization.
    This is in order to remove sensitive informtion and reduce CloudWatch log costs as it greatly
    reduces the size of the log
    Attributes:
        HEADERS_TO_REDACT (Set[str]): Headers to be redacted from the APIGW log's 'headers' field.
        REQUEST_CONTEXT_TO_REDACT (Set[str]): Request context fields to redact from the APIGW log's 'requestContext'.
        MESSAGE_FIELDS_TO_REDACT (Set[str]): Message-level fields to redact from the log's 'message' field.
        LAMBDA_EVENT_FIELDS_TO_REDACT (Set[str]): Top-level Fields specific to Lambda events to redact from the main log body.
    """

    FIELDS_TO_REDACT_HEADERS: Set[str] = {
        "Authorization",
        "baggage",
    }

    FIELDS_TO_REDACT_REQUEST_CONTEXT: Set[str] = {
        "resourcePath",
        "extendedRequestId",
        "protocol",
        "stage",
        "domainPrefix",
        "identity",
        "domainName",
        "deploymentId",
        "apiId",
    }

    FIELDS_TO_REDACT_MESSAGE: Set[str] = {
        "multiValueHeaders",
        "multiValueQueryStringParameters",
        "pathParameters",
        "stageVariables",
        "isBase64Encoded",
    }

    FIELDS_TO_REDACT_LAMBDA_EVENT: Set[str] = {
        "function_memory_size",
        "function_arn",
        "cold_start",
    }

    def serialize(self, log: LogRecord) -> str:
        """
        Update the log record ito redact sensitive  or non-essential fields.
        If any failures occur in the process, fall back to the original log
        statement in order to prevent throwing errors to users.

        Args:
            log: The log record to serialize
        """
        try:
            self._pop_fields(log, self.FIELDS_TO_REDACT_LAMBDA_EVENT)

            if self._needs_redaction(log):
                # deepcopy ensures lambda event payload remains unaltered.
                log_copy = deepcopy(log)
                self._redact_fields(log_copy)  # type: ignore
                return self.json_serializer(log_copy)
            return self.json_serializer(log)
        except Exception as e:
            self.append_keys(redaction_failed=True, redaction_error=str(e))
            return self.json_serializer(log)

    def _redact_fields(self, log: Dict[str, Any]) -> None:
        """
        Remove sensitive or unnecessary fields from the log record.
        """
        message = log.get("message")
        if isinstance(message, Dict):
            headers = message.get("headers")
            if isinstance(headers, Dict):
                self._pop_fields(headers, self.FIELDS_TO_REDACT_HEADERS)

            request_context = message.get("requestContext")
            if isinstance(request_context, Dict):
                self._pop_fields(request_context, self.FIELDS_TO_REDACT_REQUEST_CONTEXT)

            self._pop_fields(message, self.FIELDS_TO_REDACT_MESSAGE)

        log["message"] = message

    def _needs_redaction(self, log: LogRecord) -> bool:
        """
        Check if the log record contains any fields that need to be redacted.
        A log needs redactions if it is an API Gateway event.

        Args:
            log: The log record to check

        Returns:
            bool: True if the log record needs redaction, False otherwise
        """
        message = log.get("message")
        if not isinstance(message, dict):
            return False

        return (
            "headers" in message
            or "requestContext" in message
            or any(field in message for field in self.FIELDS_TO_REDACT_MESSAGE)
        )

    def _pop_fields(self, log: LogRecord, keys_to_redact: Set[str]) -> None:
        """
        Remove the specified keys from the log record.

        Args:
            log: The log record to remove keys from
            keys_to_redact: The keys to remove from the log record
        """
        if isinstance(log, dict):
            for key in keys_to_redact:
                log.pop(key, None)  # type: ignore

Might have been a SAM local build situation.

I don't think this was created by SAM or anything related to local build, but I'm glad you were able to make it work.

I worked around by using a deepcopy on the log record and made my changes there before returning it

The payload doesn't change much, but yes, it's better to do a deep copy than a shallow copy, that way you'll be sure you're copying the entire structure.

Not sure if there are any side effects of this yet, but for now, this seems to perform the way I was expecting.

I don't see any problem here. You're wrapping your main logic in a try/except block, so you can see when things go wrong and not raise exceptions.
Thanks for reporting that it's working @austin-ironside! I'm closing this issue, feel free to reopen.


C++ version and efficiency for Edge Raspberry 4

Hi,
Is there c++ version of the norfair ? what would be the ARM raspberry 4 performance?

Hi @MyraBaba
There is no C++ version of Norfair, and currently no plans for that.


feat: Add a setup Makefile target to install all dependencies

What ❔
Running make deps now installs all the dependencies required to run the stack. For now supports both macOS and ubuntu/debian.
Why ❔
Checklist

[ ] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[ ] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.
[ ] Code has been formatted via zk fmt and zk lint.

Closing as stale


Update to enable the deletion of registered contacts

Added feature to allow for the removal of registered contacts from the tree view.
Raised to address #15

Thanks! You help is very much appreciated :)


Accessibility of the cluster

Hi,
Eager to know that, if cluster is accessible/expose outside of the system like in the LAN,WAN and the internet.
Regards,Vikas

The cluster is only accessible from the host that is running the virtual machines. If you portforward port 80 and 443 from the load balancer VM to the main host, you can access it from outside. But it's not a recommended way of running any form of production workload.
The idea behind this repo is to develop. The scripts used can be used to set up a production environment in eg. VMware or bare metal if you want.


added login page with github authentication option

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[X] All tests are passing yarn test
[X] Screenshots attached (for UI changes)
[X] Relevant documentation updated
[X] Prettier run on changed files
[ ] Tests added for new functionality
[ ] CODEOWNERS updated (for new stuff)
[ ] Regression tests added for bug fixes

The status of the logged in user should ideally be accessible in the left-hand global navigation bar. Mockup:

With an expanded view:

Would appreciate if you addressed my comments in an upcoming PR! 💟

Absolutely!

Would appreciate if you addressed my comments in an upcoming PR! 💟

Absolutely 🙏

Awesome:  Nice, quick implementation :tada:
For the CODEOWNERS (@stefanalund): Can you please make sure that stuff like this is implemented as a plugin instead of within the core? Please see #374 for the motivation.

@toonsevrin We're currently drafting the surfaces of the various APIs. The goal is to make everything modular to a sufficient and practical degree, but while things are still in motion you may see things land in intermediate places such as core or even inside the app package (which in the end should contain nothing but styling, wiring, config and a shell). Thanks for that issue, it's very clear and a good basis for discussion.


Please check ioBroker.fhem with js-controller 2.0

Hi,
the new js-controller 2.0 will come into latest repository in the next days and we want to make sure that all adapters are working well. We already did a 2 weeks Beta test and so some adapter were aleady checked and some needed slight adjustments.
You can find more information in https://github.com/ioBroker/ioBroker.js-controller/issues/482 and in the ioBroker Forum. If you have more technical questions please write in the referenced issue or in the Developer thread please. General questions are best in the genral thread.
Please update your systems to js-controller 2.0 and check your adapter.
Please close this issue once you have checked your adapter or received successfull reports from users.
Thank you very much for your support. Please contact us in the other Threads or Forum on any question.

checked with 1.3.0 and 1.4.0 OK


Feature: Angular CLI Integration

I'm new to Electron and I wanted to get up and going quickly with Electron by leveraging the Angular CLI, for the boilerplate and tooling available.  Is it possible to have an integration for electron-forge that hooks/uses the Angular CLI to have a quick way to deploy Angular applications in Electron.  I noticed already that in init you include a template for Angular.

Last time this was brought up Angular CLI didn't support plugins properly in a way though would allow us to do this.  Has this changed since then?

For reference, we've worked with the ember-electron developers to integrate Electron Forge into their Ember CLI plugin.

Does it need to be a plugin, or could it be a wrapper to the Angular CLI commands where required in package.json scripts?
So far this seems to work to get Angular installed using their CLI, and then pulling in Electron using yarn, creating an electron directory in /src, and then following the vanilla ES6 version of the quick start for ./src/electron/package.json and ./src/electron/main.js:
ng new projectName && cd projectName
yarn add --dev electron --exact
mkdir src/electron
touch src/electron/package.json
touch src/electron/main.js

Then introducing to the root package.json a few new scripts: build-electron and electron, which look something like:
{
  "name": "angular",
  "version": "0.1.0",
  "description": "A minimal Electron Angular application.",
  "license": "UNLICENSED",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "build-electron": "ng build --base-href . && copy src\\electron\\* dist",
    "electron": "npm run build-electron && electron dist"
  },
  "author": "Source Reactor",
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.0.0",
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "core-js": "^2.4.1",
    "dotenv": "^4.0.0",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "1.2.0",
    "@angular/compiler-cli": "^4.0.0",
    "@angular/language-service": "^4.0.0",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.0.1",
    "electron": "1.6.11",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "sass-lint": "^1.10.2",
    "ts-node": "~3.0.4",
    "tslint": "~5.3.2",
    "typescript": "~2.3.3"
  }
}

This will show the default Angular application in the Electron renderer process when you run yarn electron, but in build-electron you can't add --watch or use ng serve, which means stop and restarting all the time, and has become a bit of a bottleneck regarding starting an actual app and instead just trying to get the tooling to work, and doing a couple examples in vanilla ES6 that I'll try and transfer over later in development.
It seems like there are electron tools that do refresh on file change that could be used like electron-connect, or maybe a custom gulp watch command that just kicks of a ng build and handles the electron reload?  I'm not sure if that would work, but it seems to be a commonly asked question with no definite solution available.

It looks like angular CLI is heavily tied to webpack which isn't something forge is typically designed to work with.  Will need someone more familiar with angular CLI to confirm that though

@mtpultz I tried your solution and it works! My question is - Why? Does the bundle run the electron start command some how? I would love to help out with this in some way. I am not all that familiar with Angular CLI(how it works), but I have been exploring how to integrate Electron Forge and the ngCLI in the past few days. If I can help out and explore things, let me know.

It looks like we'll get what's needed in v6 - https://www.youtube.com/watch?v=LMhvNTgNM9o
A great walk through of adding templates, etc. to angular cli.

In v6 you can just use the webpack plugin and an ejected webpack config from angular-cli.  Closing this out 👍

Do we have to create our own angular.json then? As the template doesn't come with one unlike Angular CLI where it generates one. I only ask because that makes it impossible to run ng eject with no angular.json


Change all references of "SwiftUI Previews" to "Xcode Previews"

Related to https://github.com/MobileNativeFoundation/rules_xcodeproj/issues/2554

Thanks! I edited the PR to say it was related, since it doesn't quite close it out.

Thanks! I edited the PR to say it was related, since it doesn't quite close it out.

Curious to know what did I miss? I did a grep and it seems that there are no more references to SwiftUI Previews.

There is also the bazel configs. But those would require a migration, so I don't want you to address them as part of this PR.

To get CI to pass you need to update the fixtures as well.

To get CI to pass you need to update the fixtures as well.

Gonna deal with that tomorrow.


SingleBox: node manager not working properly

For example 8042 is not listening.

Please view NM's log and identify the details reason. For real time log we could found from the k8s this pods page. For history we could get from /var/log/pods

This has been fixed.


Installation on RPi model A

Sorry, minor question. Is it possible to install on a raspberry pi model A? I'm having difficulty installing on my shell with the python2.7.3 version.

I think you should build from source
https://developers.google.com/optimization/introduction/installing#installing-from-source
in
this case.
On Sat, Jan 28, 2017 at 1:53 AM, Akeem Spencer<EMAIL_ADDRESS>wrote:

Sorry, minor question. Is it possible to install on a raspberry pi model
A? I'm having difficulty installing on my shell with the python2.7.3
version.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/314, or mute the thread
https://github.com/notifications/unsubscribe-auth/ASwpfO5gcJpkmQqYdcweYptIgw2qEnETks5rWpGdgaJpZM4LwXXj
.

--
driss

the quick answer is no. We are loosely looking at supporting arm architecture.
Please follow #716.


Sending an attachment with a ReadStream twice fails

What version of the module is the issue happening on? Does the issue happen on latest version?
<EMAIL_ADDRESS>(latest atm)

What platform and Node.js version? (For example Node.js 0.12 on Mac OS X)
npm 5.0.0
node v6.10.3

Sample source code or steps to reproduce

const stream = fs.createReadStream("any file");
const fileStat = fs.statSync(filePath);

const attachment = {
  data: stream,
  filename: pdfName,
  knownLength: fileStat.size,
  contentType: 'application/pdf'
}

const mailOptions1 = {
  ...
  attachment: new Mailgun.Attachment(attachment)
};

const mailOptions2 = {
  ...
  attachment: new Mailgun.Attachment(attachment)
};

Mailgun.messages().send(mailOptions1, (error, body) => {
  if (error) console.log(error);

  Mailgun.messages().send(mailOptions2, (error, body) => {
      if (error) console.log(error); // Second time it fails
      console.log('done');
  });
});

(Write description of your issue here, stack traces from errors and code that reproduces the issue are helpful)
It seems as if I cannot reuse the stream if I am using it in an attachment.
{ Error: GATEWAY_TIMEOUT
    at IncomingMessage.<anonymous> (/Users/philipp/node/dev/algas-email-bot/node_modules/mailgun-js/lib/request.js:301:15)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9) statusCode: 504 }
{ Error: GATEWAY_TIMEOUT
    at IncomingMessage.<anonymous> (/Users/philipp/node/dev/algas-email-bot/node_modules/mailgun-js/lib/request.js:301:15)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9) statusCode: 504 }

Using fs.readFileSync() works fine, as well as using the path to the file. Maybe the stream does not get reseted?

Hello, I believe that's because it's already been read and it's finished, so there is nothing to read the 2nd try.
Simply piping content through a pass through stream should work:
var stream = require('stream');

const content = fs.createReadStream("any file");
const fileStat = fs.statSync(filePath);

var stream1 = content.pipe(new stream.PassThrough())
var stream2 = content.pipe(new stream.PassThrough())

const attachment = {
  filename: pdfName,
  knownLength: fileStat.size,
  contentType: 'application/pdf'
}

const mailOptions1 = {
  ...
  attachment: new Mailgun.Attachment(Object.assign({}, {data: stream1}, attachment))
};

const mailOptions2 = {
  ...
  attachment: new Mailgun.Attachment(Object.assign({}, {data: stream2}, attachment))
};

Mailgun.messages().send(mailOptions1, (error, body) => {
  if (error) console.log(error);

  Mailgun.messages().send(mailOptions2, (error, body) => {
      if (error) console.log(error); // Second time it fails
      console.log('done');
  });
});


Optimize Umbra Queries

Update Umbra version
Query 5: Aggregate eagerly to avoid growing joins
Queries 7, 18: Explicitly separate common subquery
Queries 15, 19, 20: Use distinct on and do less joins
Queries 19, 20: Precompute paths with weights

Thanks! Will benchmark this over the weekend.

As part of preparing for the benchmark, I cross-validated the results on SF10 with the previous output -- and they were correct.
numdiff \
    --separators='\|\n;,<>' \
    --absolute-tolerance 0.001 \
    umbra/output-new/results.csv \
    umbra/output-old/results.csv

+++  Files "umbra/output-new/results.csv" and "umbra/output-old/results.csv" are equal


Phaser.Boot namespace is missing

It seems to be required for Phaser.Boot.PluginManager.register.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

A static method would let a plugin class register itself automatically, even before any user code is run. That would be super convenient.

Fair enough, but I don't want to do this via Boot, it doesn't make any sense (grammatically I mean), so will look at moving it elsewhere.

That's fine, I'm not attached to Boot. :)

Can someone help me stop this threads from always mailing me, its flooding
my mail!!!and github unsubscribe button ain't working!!!
On Sun, Apr 22, 2018, 9:29 PM samme<EMAIL_ADDRESS>wrote:

It seems to be required for Phaser.Boot.PluginManager.register.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/photonstorm/phaser/issues/3609, or mute the thread
https://github.com/notifications/unsubscribe-auth/Aju-GKvn33laBJqijzd1VKWVO_t5zjZvks5trOgRgaJpZM4TfA7Q
.

@doubleprincez we have no control over it, contact GitHub support directly. Or disable ‘watch’ on this repo.

Closing this off as the new plugin system is coming in 3.8 and we've moved namespace to Phaser.Plugins and made sure it's exposed :)


Add stem plots

I'd like to create 2D and 3D stem plots similar to [1] or [2].
Are there any plans to provide a function for this?
[1] https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.stem.html
[2] https://www.mathworks.com/help/matlab/ref/stem.html

This is fairly easy to recreate in 2D:
xs = 1:0.1:10
ys = sin.(xs)

fig = Figure()
fig[1, 1] = Axis(fig)

_lines = [Point2f0(x, (0, y)[i]) for (x, y) in zip(xs, ys) for i in 1:2]
linesegments!(fig[1,1], _lines, color=:red)
scatter!(fig[1,1], xs, ys, color=:red)

This is fairly easy to recreate in 2D:
xs = 1:0.1:10
ys = sin.(xs)

fig = Figure()
fig[1, 1] = Axis(fig)

_lines = [Point2f0(x, (0, y)[i]) for (x, y) in zip(xs, ys) for i in 1:2]
linesegments!(fig[1,1], _lines, color=:red)
scatter!(fig[1,1], xs, ys, color=:red)

This can be closed now that it has been implemented in https://github.com/JuliaPlots/AbstractPlotting.jl/pull/643


remove code coverage related build option for GCC by default

Currently, the gcov related build option is added by default - such as --coverage, -ftest-coverage, -lgcov -fprofile-arcs, which causes problem in embedded system build with GCC, because the std might not have such support.
Need add gcov as an option and disable by default.

@jyao1 to provide a solution. We can add a new build type (Release, Debug, Test) or just add a new flag to enable / disable code coverage.


roadmap updates

Description of your changes

Update roadmap.md with San Diego milestone epics and futures

Checklist
I have:

[ ] Run make reviewable to ensure this PR is ready for review.
[ ] Ensured this PR contains a neat, self documenting set of commits.
[ ] Updated any relevant [documentation], [examples], or [release notes].
[ ] Updated the RBAC permissions in [clusterrole.yaml] to include any new types.

[skip ci]

@jbw976 added as WIP, scoping first sounds good

@jbw976 updated to reflect what's in v0.4.0, think it's ready to go.

@jbw976 updated, can you merge this if it looks good to you?

Thanks for making these updates to the roadmap @prasek! 🚀


Implements the navigator page api

Description
This is part2 of https://github.com/flutter/flutter/issues/45938
design doc https://docs.google.com/document/d/1Q0jx0l4-xymph9O6zLaOY4d_f7YFpNWX_eGbzYxr9wY/edit?pli=1#heading=h.8ekjskfa3zkl
This pr adds the page api, transition delegate and modifies route entry lifecycle
Related Issues
https://github.com/flutter/flutter/issues/45938
Tests
I added the following tests:
A lot tests is navigator_test.dart
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I signed the CLA.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

bump for review

Cirrus seems pretty unhappy.

ready for another review @goderbauer

@goderbauer I addressed all the comments. I also rename PageBuilder to CustomBuilderPage because PageBuilder implies a builder that returns a page which is a bit weird.

bump for attention

I addressed all comments except for this one https://github.com/flutter/flutter/pull/50362#discussion_r398223925. @goderbauer @Hixie


Do not store spec version as an attribute

Not necessary any more as we have stabilized validators in the following way:

No background threads
Don't wait for subtensor calls


Menu buttons don't work

The menu buttons open, save as, and import don't work. Clicking on them doesn't do anything. Also, on lower resolution monitor the window around the application cuts off part of the application which means the menu and some points are not accessable.
Also, this issue has occured on multiple different computers with JDK 1.8.

@jonathanmi6 can you please build from the dev branch and try again. Also you can run the app from the command line using "Java -jar filename.jar". Any exceptions thrown while clicking those buttons will appear in the console.
As for the low resolution displays, we know.

I don't usually do code so forgive my ignorance, but how do you build the project in VSCode? Or do I need to use some other IDE?
As for running the 3.0.0 .jar release from command line, when I click on the "Save As" button once it throws these errors:

open the command line to the root of the project and run ./gradle build. That error looks like it will be resolved in the dev branch

I have opened a commandline window in the dev branch folder but entering ./gradle build doesn't work and running the build.gradle file in command line doesn't work either.

https://drive.google.com/open?id=1KmTUuz9i3lGqMsJiuREWk-GuqCuVAmik
Here is the built file for now. Just try "gradle build" if that doesnt work you probably dont have gradle installed on your system

The file doesn't work, it does the same thing as before. I installed gradle and when I do gradle build it says that there are deprecated gradle features that are not compatible with gradle 5.0.

We use gradle 4.9. Can you post the error from the latest app?

can you open this file : C:\Users\name.motion-profile-generator\mpg.properties and see if the value for file.workingdir is a valid folder path.

I dont see a mpg.properties file

Does the .motion-profile-generator folder exist?

Oh my bad I was looking in the wrong place, I'm assuming the file.workingdir should be the folder where the .jar file is?

Go ahead and delete the .motion-profile-generator directory and then compile and run the latest code from the dev branch. This should fix your issue.
Build command:
./gradlew build
Run command:
java -jar build/libs/Motioni_Profile_Generator-v3.0.0.jar
Both commands executed from the root of the project, i.e. where the build,gradle script is located.

The file.workingdir property should contain the last folder where the Save As dialog was used.

Here is what it was set as:

I did the steps you said and it is working now! Thank you very much.

You're Welcome. Glad we could resolve this for you!


Error: export 'markerClusterGroup' (imported as 'L') was not found in 'leaflet'

global Angular CLI version (14.2.4)
local version (12.2.18).
"@types/leaflet": "^1.7.9",
"@types/leaflet-polylinedecorator": "^1.6.1",
"@types/leaflet-rotatedmarker": "^0.2.2",
<EMAIL_ADDRESS>"^1.4.6",

"leaflet": "^1.7.1",
"leaflet-arrowheads": "^1.2.3",
"leaflet-drift-marker": "^2.0.0",
"leaflet-polylinedecorator": "^1.6.0",
"leaflet-rotatedmarker": "^0.2.0",
"leaflet-routing-machine": "^3.2.12",
"leaflet.marker.slideto": "^0.3.0",
"leaflet.markercluster": "^1.5.3",

/node_modules/@asymmetrik/ngx-leaflet-markercluster/__ivy_ngcc__/dist/leaflet-markercluster/leaflet-markercluster.directive.js:18:34-54 - Error: export 'markerClusterGroup' (imported as 'L') was not found in 'leaflet' (possible exports: Bounds, Browser, CRS, Canvas, Circle, CircleMarker, Class, Control, DivIcon, DivOverlay, DomEvent, DomUtil, Draggable, Evented, FeatureGroup, GeoJSON, GridLayer, Handler, Icon, ImageOverlay, LatLng, LatLngBounds, Layer, LayerGroup, LineUtil, Map, Marker, Mixin, Path, Point, PolyUtil, Polygon, Polyline, Popup, PosAnimation, Projection, Rectangle, Renderer, SVG, SVGOverlay, TileLayer, Tooltip, Transformation, Util, VideoOverlay, bind, bounds, canvas, circle, circleMarker, control, default, divIcon, extend, featureGroup, geoJSON, geoJson, gridLayer, icon, imageOverlay, latLng, latLngBounds, layerGroup, map, marker, noConflict, point, polygon, polyline, popup, rectangle, setOptions, stamp, svg, svgOverlay, tileLayer, tooltip, transformation, version, videoOverlay)

Getting same error for me as well. my angular version is 13.3.0

I solved this problem by setting "allowSyntheticDefaultImports": true


Add identifier to blockquote

I would like to ask a question on how to add an identifier to a parent element like a blockquote.
My markdown looks like this:
>test
>
>{#add}

Which will be rendert to the following HTML:

test

My assumption was that, because it is placed at the blockquote, the id will be attached there. Unfortunately it is attached to the p-element. I also tried it between > and test which attaches the id to the first paragraph tag.
My desired result should look like:

test

Any advice on how to make it right would be great.

You need to add it just before (here) (and need a while line before the attribute)
{#add}
> test

Thank you very much. That was the only combination I had not tried.


Incorrect example of "Changes in deno.land/std" inside Deno 1.4 Release Notes

Inside the of the"Changes in deno.land/std" section from Deno 1.4 Release Notes page the second diff is incorrect.
- const accounting = writeJsonSync("accounting.json");
+ const accounting = JSON.parse(Deno.readTextFileSync("accounting.json"));

should be
- const accounting = readJsonSync("accounting.json"); # Note the writeJsonSync -> readJsonSync change
+ const accounting = JSON.parse(Deno.readTextFileSync("accounting.json"));

@lcspn You can submit PR to https://github.com/denoland/deno_website2/blob/master/public/posts/v1.4.md

FYI, you can edit with "Edit on GitHub" button

https://github.com/denoland/deno_website2/pull/1525


Linter not working

Hello, I´m new to Atom and I´m loving it so far but I can´t get linter working with C, it always says "No issues", I dont know if it´s this package linter-gcc or linter itself, I´ve googled everywhere but I can´t find the solution.
Any help is much appreciated
Thanks!

Hello. Could you please do the following: open the javascript console in atom, and look for the linter-gcc messages. It prints all its command-line parameters to the console, so the first thing to do is to copy those parameters and try to run them directly in the command-line.

I am so sorry but I don't know how to do that, I toggled developer tools but I don't know what to do from there, can you guide me through the process if it isn't much trouble?
Thanks again

Of course. With 'developer tools' on, you should see a sidebar, and at the bottom of this sidebar you'll see a button that says 'console'. Click it to view the console. Then go back to your C/C++ source file, and press Ctrl+S to save and trigger the linter. When you do this, you'll see something like this appear in the console:
/usr/bin/g++
["-Wall", "-std=c++0x", "-fmax-errors=0",
"-I/home/husam/.atom/packages/linter-gcc", "/tmp/sample.cpp"]

These are your command-line parameters. The first is the g++ binary, and the rest is the parameters given to g++. So, if we consider the example above, my full command would be:
/usr/bin/g++ -Wall -std=c++0x -fmax-errors=0 -I/home/husam/.atom/packages/linter-gcc /tmp/sample.cpp

You need to reconstruct your command in this way and run it in your terminal/command prompt to find out what g++/gcc is reporting.

Okay, I got this:
/usr/bin/g++
main.js:149 ["-Wall", "-fmax-errors=0", "C:\Users\Nacho-PC2\Documents\TP FINAL.cpp"]
Then I changed it to this:
/usr/bin/g++main.js:149 -Wall, -fmax-errors=0, C:\Users\Nacho-PC2\Documents\TP FINAL.cpp
I have Windows, so I assume you mean put that in the cmd, I did that from the .atom directory (don´t know if this is right) and it says "The system cannot find the path specified."
I surely must be doing something wrong.
Damn, I hate being new to stuff :P

Ok there are a few problems here:

You need to remove the main.js:149 from your command. You also need to remove all the commas.
It looks like you are trying to run /usr/bin/g++. Windows does not have a /usr/bin so this probably won't work on windows. You need to go into the linter-gcc configuration page and put the full location of the g++ binary in there. If you don't have one, I suggest you look at installing something something like mingw on windows.
Secondly, you have a space in your file path. This will cause problems because a file path with spaces will cause gcc/g++ to parse part of your file path as a parameter, which it will complain about. To get around this problem, either change your file path and replace ALL spaces with underscores, or enclose the path within double quotes.

Okay

Done:

/usr/bin/g++ -Wall -fmax-errors=0 C:\Users\Nacho-PC2\Documents\TPFINAL.cpp

I already have MinGW, so I guess the path that I´m looking for is:

C:\MinGW\bin\g++.exe
Right?
Also, by configuration page, you mean the linter-gcc/lib/main.js? Because I found this in there:
execPath: {
type: "string",
default: "/usr/bin/g++"
Maybe this is the problem?

Done, see 1.

No. That is not it. In the menu bar, click Packages > Settings view. Then click packages on the left and select linter-gcc. There you will find the linter-gcc settings. The first one is the executable path. Set that to your executable path, in your case C:\MinGW\g++.exe.

Okay, you left out the bin folder :P
But it´s working now, but the lint on the fly isn´t, I have to save the file for linter to show me the errors, any workaround this?

No, this is deliberate. The reason it works like this is because C/C++ linting can be quite computationally intensive, so linting on-the-fly can cause high CPU load, especially with large files/projects.

Ohhhhh, got it, well it's working perfectly now! Thanks a lot! :)
If it's no bother, I've got another question about Atom, but it's not related to linter-gcc, is there a private message button somewhere?

Yes, that's fine. You can send me a message on twitter. My handle is hebaishi_husam. I'm closing this issue.

Hi hebaishi,
I am trying to follow the instructions here to get linter-gcc working in windows and I am not having success. No output displays in the console when I save

Hello. I'm gonna upload a guide for Windows users today because it seems a large number of users have this problem.
What you need to do is:

Set the linter-gcc executable path to g++.exe or gcc.exe
Add your MinGW bin to the system path by following the instructions here. Note that you need to add the MinGW bin path to the end. So if your PATH variable reads C:\Windows\, and your MinGW bin path is C:\MinGW\bin, your new PATH variable should read C:\Windows\;C:\MinGW\bin. Note the use of the semicolon separator.

Once you have made this change, linter-gcc should work.

Thanks for the response. I did change the executable path to C:\MinGW\bin\g++.exe and also added C:\MinGW\bin to both the path system and user variables. I still don't see anything show up for linter-gcc in the console when I save.

Hello. Your linter-gcc executable path should be set to g++.exe, NOT C:\MinGW\bin\g++.exe. This is because windows needs to find g++.exe in your system path. Also, once you have changed your system PATH in the system properties, you might need to restart Atom for the change to take effect.

great thank you for your reply. It is working now

Hi hebaishi,
I'm sorry to bring this back up again but I've encountered a similar problem which appears persistent despite following instructions above. Linter is failing to find a number of standard c++ libraries including string and iostream, though using g++ to compile the same files in terminal works just fine. Do you have any suggestions on remedying this issue?  Would the "GCC include paths" setting be the place to look? If so, which path ought I include?

Same for me. I followed the instructions. I can compile without errors in Atom but I still get the linter error:
GCC  |  "iostream: No such file or directory"

how to know the path which linter has installed ?

I can confirm that the fix works but after various unsuccessful tries I found my solution for Windows 7.
Follow @hebaishi instructions about the installation of Cygwin and setting the PATH variable.
Test PATH by opening a new CMD and typing gcc –v
Close Atom and GitHub Desktop
Reopen and test if it works now.

Hi i'm sorry if this might annoy you
i just updated my plugin from atom before i updated my packages everything works fine
but after the update my linter stopped working nothing shows up anymore.
i'm using TDMGCC with the system variable Path set to
C:\Windows;C:\TDM-GCC-64\bin
and set my GCC Executable path  to gcc.exe
but there's nothing shows up still
here's my console screenshot

what should i do ??, thankyou ...