[Toolkits] Tweaks to toolkit content

Notes from my review to be fixed in the CMS or split out into own issues:

logic > if/elif

code pop-up overlaps button (split out)
same for "nested if"

[x] almost all drop-down text needs review (raise with Giles)

discussed, we're going to review once we've reconsidered design here

[x] use of bold is visually distracting (raise with Giles)
[x] accelerometer about-2000 space after period
[x] new bug: must preserve position for back! hide rather than re-render or use mini carousel (split out)

#334

[x] is this weird?

Started internal discussion, will track there and feed into design if required.

[x] image + dropdown -> poor redraw

will be addressed by #329

[x] Pins write digital spacing before (no electricity
[x] pi and e has issue with inconsistent bold.
[x] bitwise has inconsistent capitalisation
[x] Testing strings > uppercase has stray empty para
[x] Line break needed in searching strings > last occurrence
[x] Print character from ASCII value > Here the letter'b'

Closing as all done or tracked elsewhere (see notes inline above).


NoiseTexture2D/3D: Don't use a thread to regenerate when the build doesn't support threads

Fixes #96098.
Tested locally with v4.3.stable.official [77dcf97d8], the texture resizes slowly but correctly.

The same changes are needed for NoiseTexture3D, I'll amend the PR.

Cherry-picked for 4.3.1.


Add custom input generator for lead, lag, nth_value, and ntile in WindowFuzzerTest

Summary:
Add custom input generator for the argument n in lead, lag, nth_value, and ntile functions. The input generator generates 1, 2, 3, or a large number 9'000'000'000 for n.
This is part of https://github.com/facebookincubator/velox/issues/7754.
Differential Revision: D52720432

Comment to avoid auto-close.


Relativize paths in output file to SimpleCov.root as in other formatters

Paths should be outputed in relative form, not absolute. This make sense if you like to process lcov file in other machine then your own for ex.: on coveralls.io or Sonar instance.

:+1:


Verilog hieararchical names with $readmemh

I'm trying to initialize a memory block using $readmemh, and I don't want to do the initialization in the module defining the ram, but in my top module. Here's a complete but cut down example:
module ram_unit(input clk, input rst,
		input cyc, input stb,
		input we, output ack,
		input [SIZE-1:0]  adr,
		input [63:0] 	  dat_write,
		output reg [63:0] dat_read);
   parameter  SIZE = 3; // Address size
   reg [63:0] mem [0:(1 << SIZE)-1];
   integer    i;

   // Always completes in a single cycle.
   assign ack = 1;

   // Written this way due to
   // https://github.com/cliffordwolf/yosys/issues/335
   always @(posedge clk)
     if (cyc & stb & ~we) begin
	dat_read <= mem[adr];
     end
   always @(posedge clk)
     if (cyc & stb & we) begin
	mem[adr] <= dat_write;
     end
endmodule

module main(input clk);
   parameter SIZE = 3;

   reg rst;
   reg [SIZE-1:0] adr;
   reg cyc;
   reg stb;
   reg we;
   wire ack;
   reg [63:0] dat_write;
   wire [63:0] dat_read;

   ram_unit #(SIZE)
   ram(clk, rst, cyc, stb, we, ack,
       adr, dat_write, dat_read);

   initial begin
      $readmemh("/dev/null", ram.mem);
   end
endmodule

This is accepted by iverilog -Wall, but not by yosys:
$ yosys -q -f verilog -p synth_ice40 readmemh-1.vl
ERROR: Failed to evaluate system function `\$readmemh' with non-memory 2nd argument at readmemh-1.vl:43.

As a work-around, I tried changing the initial block to read into a locally defined memory, and then copying it to the target memory, like this:
module ram_unit(input clk, input rst,
		input cyc, input stb,
		input we, output ack,
		input [SIZE-1:0]  adr,
		input [63:0] 	  dat_write,
		output reg [63:0] dat_read);
   parameter  SIZE = 3; // Address size
   reg [63:0] mem [0:(1 << SIZE)-1];
   integer    i;

   // Always completes in a single cycle.
   assign ack = 1;

   // Written this way due to
   // https://github.com/cliffordwolf/yosys/issues/335
   always @(posedge clk)
     if (cyc & stb & ~we) begin
	dat_read <= mem[adr];
     end
   always @(posedge clk)
     if (cyc & stb & we) begin
	mem[adr] <= dat_write;
     end
endmodule

module main(input clk);
   parameter SIZE = 3;

   reg rst;
   reg [SIZE-1:0] adr;
   reg cyc;
   reg stb;
   reg we;
   wire ack;
   reg [63:0] dat_write;
   wire [63:0] dat_read;

   reg [63:0]  init_mem [0:(1 << SIZE)-1];
   integer     i;

   ram_unit #(SIZE)
   ram(clk, rst, cyc, stb, we, ack,
       adr, dat_write, dat_read);

   initial begin
      $readmemh("/dev/null", init_mem);
      for (i = 0; i < (1<<SIZE); i = i + 1)
	ram.mem[i] = init_mem[i];
   end
endmodule

This is also accepted by iverilog -Wall, with yosys I get warnings making me think it doesn't quite work:
$ yosys -q -f verilog -p synth_ice40 readmemh-2.vl
Warning: Identifier `\ram.mem' is implicitly declared at readmemh-2.vl:48.
Warning: Range select out of bounds on signal `\ram.mem' at readmemh-2.vl:48: Setting result bit to undef.
Warning: Range select out of bounds on signal `\ram.mem' at readmemh-2.vl:48: Setting result bit to undef.
Warning: Range select out of bounds on signal `\ram.mem' at readmemh-2.vl:48: Setting result bit to undef.
Warning: Range select out of bounds on signal `\ram.mem' at readmemh-2.vl:48: Setting result bit to undef.

Suggestions for better workarounds appreciated.
Best regards,
/Niels Möller
(I tried the "insert code" button this time, but indentation still looks very bad in the preview. Sorry about that).

I'm trying to initialize a memory block using $readmemh, and I don't want to do the initialization in the module defining the ram, but in my top module.

This only works in simulation. In synthesizable verilog hierarchical references are forbidden. No synthesis tool would (or should) accept this code.

(I tried the "insert code" button this time, but indentation still looks very bad in the preview. Sorry about that).

See https://help.github.com/articles/basic-writing-and-formatting-syntax/ for Github Markdown syntax. Put tripple backquotes before and after a code block.

Thanks for the quick response. What's the recommended way to separate initial contents of the memory from the module implementing it, then?
I could try passing the file name (string) as a module parameter (but that's not good enough for simulation, where I want to use a command line argument (iverilog $value$plusargs) to specify the file to read), or I could use the preprocessor.
I'm aware of the icebram tool, but at the moment I'm looking for something simpler, and ideally, some way which works for both synthesis and simulation.

Filenames in module parameter or using a preprocessor define are usual methods to do that.
For simulation you can also "overwrite" the default contents by running initial $readmemh(...); in the module itself for the default memory contents, and then run another $readmemh() in your test bench slightly delayed so it will overwrite the contents set by the initial block in the module.


Default values and values from env variables

The only way to set default values in the Options struct currently, is to create a custom Default implementation. This might be a bit cumbersome and does not support environment variables.
The semantics should be as follows:

If any value is mapped to a field during parsing, that value is used,
Else if an env argument is set, then a value is parsed from that environment variable,
Else if a default is passed, that expression is used as the default,
Else Default::default() is used.

We might need an env_parser option as well to allow different parsing from the variable than the command line.
Option 1
#[derive(Default, Options)]
struct Settings {
    #[map(Arg::Foo => true)]
    foo: bool,

    #[map(Arg::Bar => false)]
    #[field(default = true, env = "SOME_ENV_VAR")]
    bar: bool,
}

Option 2
#[derive(Default, Options)]
struct Settings {
    #[map(Arg::Foo => true)]
    foo: bool,

    #[map(Arg::Bar => false)]
    #[default(true)]
    #[env("SOME_ENV_VAR")]
    bar: bool,
}

Option 3
#[derive(Default, Options)]
struct Settings {
    #[map(Arg::Foo => true)]
    foo: bool,

    #[map(
        Arg::Bar => false,
        default => true,
        Env("SOME_ENV_VAR", x) => x,
    )]
    bar: bool,
}

Option 4
#[derive(Default, Options)]
struct Settings {
    #[field(map(Arg::Foo => true))]
    foo: bool,

    #[field(
        map(Arg::Bar => false),
        default = true,
        env = "SOME_ENV_VAR",
    )]
    bar: bool,
}

Fixed by https://github.com/tertsdiepraam/uutils-args/commit/8167c9670fb3a3340da40d8a7b45e262ab228076
(I chose option 1)


Cannot transfer tezos

Hi,
Wish I had known about this project ages ago. Great work and thank you for your contribution. I'm not sure if this is an issue related to the protocol change. I'm only just discovering this code base now and experimenting a bit. I'm getting an error on trying to do a transfer at the forge operations step. I get the message;
Failed to parse the request body: No case matched:
At /kind, unexpected string instead of endorsement
At /kind, unexpected string instead of seed_nonce_revelation
At /kind, unexpected string instead of double_endorsement_evidence
At /kind, unexpected string instead of double_baking_evidence
At /kind, unexpected string instead of activate_account
At /kind, unexpected string instead of proposals
At /kind, unexpected string instead of ballot
At /kind, unexpected string instead of reveal
Unhandled error (Invalid_argument "Z.of_substring_base: invalid digit")
At /kind, unexpected string instead of origination

Connection #0 to host mainnet-node.tzscan.io left intact
At /kind, unexpected string instead of delegation

This is reproducible with the equiv in curl that the code seems to be producing.
curl -v -X POST http://mainnet-node.tzscan.io:8732/chains/main/blocks/head/helpers/forge/operations -H "Content-type: application/json" --data '{
"branch": "BMXd4A5UYMiyDgz9AUrmrntv3Ms7Po9cxcbP4UcVKAUKQqrsTdF",
"contents": [
{
"destination": "KT1Tq3ZpWUzN4b3LxeqEpve7hSx6UzvFtkAC",
"amount": "1351426",
"storage_limit": "300",
"gas_limit": "10300",
"counter": "894825",
"fee": "0.142",
"source": "tz1WGpyzJ1WdZQyKgFN1MY1d7KExGzipFmPJ",
"kind": "transaction",
"parameters": {
"prim": "Unit",
"args": []
}
}
]
}'
I can't work out from the documentation what is wrong with this content. It sure looks right to me... Any guess what I'm doing wrong?
Thanks again for this class lib!
Brian

Whoops. The fee should be in mutez. My bad!


BPLAT-8904 | Fix dragbar handle collapsed

fix: Fix drag issues with seekbar and volumebar in Android
fix: Correct seekbar circle horizontal margin to match position to the center of the circle
https://jira.aminocom.com/browse/BPLAT-8904

Notes:
Forked the library we are using for the Android video player in White Label mobile app.
Issues fixed:

Seekbar circle icon and volume control icon are very hard to drag. This is caused by the touchable container collapsing, so it shrinks to the size of the circle/icon, making it hard to catch it with the finger.
This is easily solved by specifying the prop collapsable={false} for View, as described here: facebook/react-native#21749
The seekbar circle icon is not positioned so that the current position matches the center of the circle. This is corrected now by a margin change.


All bacteria - graphic runs into right text

This is due to the fact that AMR bar chart does not resize when the browser does. will work on it.

fixed and will be available on alpha soon.


Game processes stay active

Sometimes after a game runs the game process doesn't get killed. I'm not sure what causes this but it's very important to fix.

Resolved in #44


Need to set up data base to hold tweet information

With PostGreSQL

Have it set up on local host, finding permanent server for deployment will be a issue for later


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/74702

TagBot fix

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/74857

TagBot fix


chore: include a diff of the OpenAPI file changes in the PR description

The idea here is that the generated pull request will contain a diff of the OpenAPI changes. This will make it easier for the reviewer to review and will hopefully give better release notes.
There is no way to test if this will 100% work on GitHub Actions - it may not work.
This uses https://github.com/Tufin/oasdiff to generate a diff.

Not sure I get this. Do we get diff when we open file tab for the PR?

Not sure I understand how this will work so I need more info. Do we get diff when we open file tab for the PR itself? So this will be diff on second PR that generates code?

Here's the flow:

Workflow fetches the new OpenAPI spec file.
It does a comparison between the new file and the old file.
It generates a Markdown diff between the files.
Create a pull request with the new OpenAPI specification file, and includes the diff Markdown as part of the description.

See below for an example of a generated diff.
Changes
New Endpoints: None

Deleted Endpoints: None

Modified Endpoints: 3

GET /api/kafkas_mgmt/v1/kafkas

Responses changed

Modified response: 200

Content changed

Schema changed

Property 'AllOf' changed

POST /api/kafkas_mgmt/v1/kafkas

Responses changed

Modified response: 202

Content changed

Schema changed

Property 'AllOf' changed

Modified response: 403

Content changed

GET /api/kafkas_mgmt/v1/kafkas/{id}

Responses changed

Modified response: 200

Content changed

Schema changed

Property 'AllOf' changed

So this will be diff on second PR that generates code?

No this will only be a diff on the PR with the OpenAPI file changes.

Like the format! Thank you for detailed explanation

I hope it works on first go (unlikely)!


Change log.error to log.exception so traceback is shown

The difference between log.error and log.exception is that traceback
is not shown so it's harder to debug:
2021-09-07 09:47:32,976 [ERROR] [app.modules.asset_groups.models] create_from_tus() had problems with import_tus_files(); deleting from db and fs <AssetGroup(guid=c2ddfc7f-9738-4624-837c-fa111eb37ba0, )>
2021-09-07 09:47:32,990 [AUDIT] [app.extensions.logging] 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. executed by user :1fe85998-1a3e-492c-bf0c-10a62e6e4e52<EMAIL_ADDRESS>
vs
2021-09-07 10:05:50,285 [ERROR] [app.modules.asset_groups.models] create_from_tus() had problems with import_tus_files(); deleting from db and fs <AssetGroup(guid=ecb3450e-80cc-44e3-9205-f5c352004d7f, )>
Traceback (most recent call last):
  File "/code/app/modules/asset_groups/models.py", line 887, in create_from_metadata
    added = asset_group.import_tus_files(
  File "/code/app/modules/asset_groups/models.py", line 957, in import_tus_files
    os.rename(path, os.path.join(asset_group_path, name))
PermissionError: [Errno 13] Permission denied: '/data/var/uploads/trans-9a2185f9-5bf5-487e-a19c-0a4baed43b1e/zebra.jpg' -> '/data/var/asset_group/ecb3450e-80cc-44e3-9205-f5c352004d7f/_asset_group/zebra.jpg'
2021-09-07 10:05:50,483 [AUDIT] [app.extensions.logging] 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. executed by user :1fe85998-1a3e-492c-bf0c-10a62e6e4e52<EMAIL_ADDRESS>

/rebase

/rebase


npm run start error

Getting this error: Failed at the<EMAIL_ADDRESS>start script 'react-scripts start'.

Try running npm install first

Yeah I did that. I found a fix where rewrite the read script. Sorry I'm
away from my comp..
On Fri, 4 Mar 2022, 8:02 pm Ali Solanki, @.***> wrote:

Try running npm install first
—
Reply to this email directly, view it on GitHub
https://github.com/The-Stripes-NFT/nft-minting-app/issues/14#issuecomment-1059016815,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXT43A6ZHIF7QM27OPSKL53U6HNTNANCNFSM5PJHE2LA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

@RippedFish i have the same problem, how did you do it?


Prefix some errors with rule identifiers

What was changed
Add a couple of https://github.com/temporalio/rules references as error prefixes

This is now ready for review


after-14-essentials-4-bridge br0 does not show even rebooting twice

Hello
In this chapter after-14-essentials-4-bridge], I rebooted twice, once from the web interface and once from within vps and
ip a does not show br0.
The ansible-playbook setup.yml finished without error

TASK [essentials : include_tasks] *********************************************************
included: /home/me/ansible/essentials/tasks/br0.yml for mydomain.org
TASK [essentials : netdev] ****************************************************************
ok: [mydomain.org]
TASK [essentials : network] ***************************************************************
ok: [mydomain.org]
PLAY RECAP ********************************************************************************
mydomain.org               : ok=18   changed=0    unreachable=0    failed=0    skipped=0
rescued=0    ignored=0
Thank you

Hello, please reach me via email or via Udemy messages for support. To save time, include additional information - did you use Arch Linux like in the course or you made some modifications and if yes, which ones. Thank you!


workflow

Now that we have some basic bricks built, lets think about the workflow:

User enters credentials and initializes composr-core

composr checks if the user is allowed to get phrases.
if yes : notifies a succesfull login and continues
if not : notifies invalid credentials

User fetches phrases

composr checks if the user is allowed to access multiple domains,

if yes: loads all the phrases for multiple domains, stablishes multidomain = true
if not : loads the phrases for that current domain, stablishes multidomain = false and the default domain.

User publishes phrases

composr checks if the user is allowed to publish

if yes : publishes phrases and notifies the number of phrases published by domain
-if not : notifies that the permissions for publishing are wrong

User deletes a phrase:

composr checks if the user is allowed to delete

if yes : deletes phrases and notifies the number of phrases deleted by domain
-if not : notifies that the permissions for delleting are wrong

User request in memory phrases:

User is multipledomain === true

yes : user can access phrases from all the domains
no : there is only one domain loaded, it can only request the phrases for that domain

Let's notify mr anthanh about this and wait for his opinion.
@anthanh

Looks great! @rafinskipg, but I don't really understand the meaning of "multiple-domains", maybe it could be achieved with the right credentials (client+secret+scopes)? one scope with full access, and other one with domain specific...
Maybe we should identify different user-roles where composr-core works, to understand use cases better. (composr-server, composr-phrases-test, app-that-execute-phrases, ...).
Rest of the issue looks fine, we will continue working on it.

Yeah, multiple domains means that the credentials are allowed to access to all the domains, and the other is domain specific.
Setting this flag is just for having a default domain to work with in the case you dont have permissions to perform operations on multiple domains.
Cases:

Composr-server :

multiple domains actions

composr-cli  (and therefore ,grunt-composr... etc)

depending on your credentials, but mostly single domain actions.

As talked

Domain is always mandatory

composr-cli can handle currying the methods with the default domain

Changed method run for:
runById
runByPath


Updates footer link

Currently Gatsby its converting that link into an internal link which leards to a 404 rather than an external one. 😄

Thanks so much.


Sept 11 API updates

Coverage remained the same at 88.957% when pulling d91cf4fade9e6fc60846b5ee132446eb080fda39 on jmfortunatojr:master into 2fcd60c30368255dab658b534b4229909ace5d43 on thelinmichael:master.

Superseded by https://github.com/thelinmichael/spotify-web-api-node/pull/243


Roadmap for docker deploy and Bundles

Bundles
Bundles are a multi-image redistributable format that describe multi-container distributed applications (or stacks) running on Docker.  A bundle is akin to a “multi-image image,” and deploying it gives rise to a “stack” consisting of several communicating microservices.  Conceptually, this is analogous to Docker images today:

Human-editable Description
Binary Artifact
Running Instantiation

Bundle
docker-compose.yml
Bundle
Stack

Image
Dockerfile
Image
Container

In June 2016, Docker announced Distributed Application Bundle (DAB) files, a predecessor to bundles, as part of Docker 1.12.  DAB is the file format used internally to represent bundles.
This issue outlines the roadmap for bundles, the file formats involved, how they relate to one another, how bundles relate to existing multi-container tools like Docker Compose and how the CLI/API will be affected.
Docker 1.12 Concepts:  Swarm Mode, Bundles and docker deploy
Engine swarm mode orchestration (Docker services).  Since Docker 1.12, Engine has supported built-in container orchestration through the addition of Docker Services (docker service and related subcommands).  A Service in Docker is a replicated set of 1 or more identical containers.  Loosely speaking, a Service in Docker models the concept of a “microservice” within a larger application.
Bundles.  A bundle can be generated from a Compose v2 file.  The bundle itself is a redistributable binary format, and in the future docker-compose will be just one possible build tool.  When a bundle is deployed to a cluster, its running instantiation is called a stack.
docker deploy.  This subcommand is used in 1.12 to deploy a Distributed Application Bundle (DAB, or simply bundle) file.
Roadmap:  Compose files, Bundle files, Daemon-side Bundles and docker stacks
As of Docker 1.12, docker-compose is currently the tool used to create bundle files.  A bundle file is generated from a Compose v2 file using docker-compose bundle [-f docker-compose.yml].  It is then deployed using the docker deploy subcommand:  docker deploy --file mystack.dab.  A more complete description of this 1.12 functionality is available here.
In Docker 1.13/1.14, our intention is to shift away from using docker-compose to generate bundles.  Instead, the docker CLI itself will generate bundles from Compose v2 input files using a new docker bundle subcommand.  Example:
docker bundle build [-f COMPOSE_FILE] -t BUNDLE
In addition, Docker will move toward a system in which bundles are stored and managed internally by the Engine rather than as user-managed .dab files.  For instance, the user will be able to push and pull bundles:
docker bundle push BUNDLE                   (see below)
docker bundle pull BUNDLE                   (see below)

Other docker bundle commands like bundle ls, bundle tag and bundle rm will allow the user to manage these daemon-side bundles.
Deployment and management of running stacks will be done using the top level docker stack subcommand (which already existed in 1.12 and will be extended in 1.13/1.14).  Deployment of a bundle to instantiate a stack will be done using docker stack deploy; docker deploy will be aliased to this command for backward compatibility.  For management, existing commands such as docker stack ps, docker stack inspect and docker stack rm will be available to view and manipulate running stacks.
Example Workflows
Running a stack from a Compose file
docker bundle build [-f COMPOSE_FILE] -t BUNDLE
docker stack deploy [-c STACK_CONFIG] BUNDLE STACK

Running a stack from a registry
docker stack deploy [-c STACK_CONFIG] BUNDLE STACK

Thanks @mgoelzer. Perhaps we should add this to the ROADMAP.md (I think that was mentioned elsewhere); https://github.com/docker/docker/blob/master/ROADMAP.md. wdyt?

@thaJeztah Yes, I want to update ROADMAP.md more broadly.  I think I should aim to move this issue's content into an updated ROADMAP.md and then close out this issue in favor of ROADMAP.md

Thanks Mike for the detailed summary.  Got a couple questions:

So I understand that one of the goals of DAB is to prevent environment-specific configuration from leaking into descriptions of "stacks", but inevitably you will have to set this somehow -- how?

DAB is attempting to solve portability problems but it is relying on a remote registry to do so.  Relying on a remote registry is itself something which cannot be safely done portably.  Each network has its own configuration and idiosyncrasies.  Corporate firewall / proxy / VPN and more is common and will break DAB.  Is "it's portable if your network is configured wide open" really portable?

Have you considered that mixing in Compose V2 to all of this might end up causing more trouble than it solves?  I know it's tempting ("there are so many existing Compose files"), but how many of those existing applications can actually be translated into bundle files without a ton of work?  (And if you have to re-work your Compose YAML significantly to shoehorn it into DAB, what are we gaining here vs. creating a new spec altogether?)

Consider a beginning user's journey with Compose.  It almost always starts and ends with environment-specific config and, in my experience, this extremely rapidly becomes habit for users writing Compose files.  If you want to take this very simple Compose file and turn it into a DAB you run into problems almost immediately.
1. build key doesn't work, only image.  OK, I guess these 32,000 Docker Compose files cannot be translated to DAB without modification?  So, at least roughly 50% of existing Docker Compose files on GitHub will not translate to DAB without modification.
2. volumes are ignored (and ~39,000 / 60000 total Compose files on GitHub seem to reference volumes!).  So what do we win by using Compose for this?  Huge swaths of Compose files will not work out of the box.
3.  Looks like in the generated DAB a network is added in?  How exactly is that portable?  It's not safe to assume that docker network setup looks the same everywhere... There might not be a bridge, there might be overlays configured a particular way by an administrator, there might be specific plugins the user wants, and so on.
4.  Why not just have a Compose V3 file which maps directly to docker service flags and related mounts, etc.?  That'd be very easy to reason about (almost direct translation) and it's the simplest possible thing, so why not?  Personally I'm chomping at the bit to just get a YAML file which maps almost directly to docker service create/update.  The current proposal, instead of focusing on simplicity, adds at least 2 or 3 more steps into the process.  (Either this, or a new "schema file" defining the types and arguments for a stack create and a file per-environment to define those arguments).
5. As for the content addressability aspect, shouldn't operators who want that run images with Docker content trust enabled?  Why force content addressability in the deployment spec layer?  Without actual cryptographic identity verification, what does having these image content hashes in a JSON file win us?  Wouldn't mucking with a plaintext JSON file be comparatively pretty easy for a motivated attacker?
The current DAB method does have some interesting properties, however I have a hard time imagining myself selling this to a potential user: "DAB is great!  To use it, just write a Compose file, and then immediately translate that Compose file to a new format, since the Compose file format is not supported.  Oh, you have one already? Nice, it'll still need to be modified heavily to be translatable to DAB ...  Oh, and make sure your images are pushed first.  That's important, gotta have the images pushed, can't experiment with this technology locally at all.  And also you are going to have to define volumes and networks somehow after the fact anyway."

Ping @dnephin

So I understand that one of the goals of DAB is to prevent environment-specific configuration from leaking into descriptions of "stacks", but inevitably you will have to set this somehow -- how?

Currently by doing docker service update, which I don't think is a good way of doing it. I personally think we need a second format for including all the non-portable stuff. This second "settings" file wouldn't be distributed from a registry, but would be managed by the local operator. We could have tooling to create a default "settings" file based on hints provided from a bundle. #26748 is an issue for this.

Is "it's portable if your network is configured wide open" really portable?

This is fixed by our work to move bundles to be an "internally managed" object of the engine. The image layers referenced from a bundle must be on the same registry as the bundle manifest, so if you can fetch the bundle, you can fetch all the layers required to run the services in the bundle.

Have you considered that mixing in Compose V2 to all of this might end up causing more trouble than it solves?

Yes. I agree with many of your points. I personally think that eventually we need a more appropriate "source" format, but right now that format is Compose v2, and creating 3 formats all at once seems like a bad idea.  For now we're focusing on the bundle format. Once that's stabilised we can look at improving the source format , and making it more appropriate for translation into a bundle.

what are we gaining here vs. creating a new spec altogether?

Time to get the source format right. If we build it all at once there are too many things in motion for anyone to make use of it.

Looks like in the generated DAB a network is added in? How exactly is that portable?

It just uses the default network driver configured by the engine. I believe all networks should provide the same things to containers.

Why not just have a Compose V3 file which maps directly to docker service flags and related mounts, etc.?

I wouldn't be surprised if that's what we end up with. Right now Compose does not work with swarm mode, so it wouldn't make sense to create a format that doesn't work with the tool that reads it.

As for the content addressability aspect,

You lost me with this one, but I think the idea is that the bundle itself will be signed, you don't have to worry about  signing the individual images within it.

The current DAB method does have some interesting properties, however I have a hard time imagining myself selling this to a potential user

Yes, that's why they are experimental. They still need work to be more useful. Some of that work will be done for 1.13. Most of that work needs to be completed before it can leave experimental.

I wouldn't be surprised if that's what we end up with. Right now Compose does not work with swarm mode, so it wouldn't make sense to create a format that doesn't work with the tool that reads it.

To be clear, I wasn't suggesting that we have Compose read in the "V3" files, but rather a new YAML format similar to the existing stuff that docker CLI itself reads in and translates directly to service create and/or update.

You lost me with this one, but I think the idea is that the bundle itself will be signed, you don't have to worry about signing the individual images within it.

Why would DAB would take this responsibility though?  Why would a tool for orchestrating containers/tasks concern itself with image provenance?  And what exactly is a bundle in this context?  The images themselves ? The DAB file?

It just uses the default network driver configured by the engine. I believe all networks should provide the same things to containers.

What about things like network IPAM config (https://docs.docker.com/compose/compose-file/#/ipam)?  And plugins?  If networks are bundled that (plugin) will be yet another dependency that the bundle will need present in order to be executable right?

@nathanleclaire
1, 3 and 4.  I agree with you.  I too think we need a Compose-like YAML format for docker services.  However, bundles are trying to solve a somewhat different problem, which is how do you define a multi-tier application in an abstract enough way that it is consistently portable across environments?

But don't you think the concept of "portability" implies that you've successfully obtained the bundle already?  It will always be the case that if you cannot obtain some artifact (dab, jar, whatever) then you cannot run it in that environment.

Good point.  The hash here should never be used for cryptographic verification because it's not a signature.  The hash ensures reproducibility of the bundle -- e.g., redis:latest may be different in different environments but redis:latest@sha256:1234567890abcdef is unambiguous in all environments.

But for DCT, you'd want signatures on both the bundle manifest and the images so that you can revoke them independently.  For example, if an image signature gets revoked, the bundle as a whole should not run, even though the sha256 hash will still be correct.

(iii) I agree the abstraction sometimes gets leaky around networks, especially for enterprise configurations.  Ideally, a container network is just some software-defined abstraction that can be realized on top of any properly configured environment.  In practice, this is not the case because some network drivers want to do things like make container IP allocation decisions based on what physical node they are running on.  This is a challenge for portability in general.

1, 3 and 4) I agree with you. I too think we need a Compose-like YAML format for docker services. However, bundles are trying to solve a somewhat different problem, which is how do you define a multi-tier application in an abstract enough way that it is consistently portable across environments?

I think that maybe where it needs to head is that the "bundle" file defines a "schema" which the running end needs to "invoke" with the correct parameters.  Dan I think kind of hints at this in one of his comments, and it would fit in with the Glyph article I linked's line of thinking ("A Container is a Function Call").
I just haven't seen anything in the current bundle spec indicating things like "this container must have a volume mounted in at /foo".  Not saying it's not planned, just don't see any of that kind of detail today so far.  And sketching out blueprints how these kinds of things might work or look like always unearths nasty little corner cases that weren't considered in the original vision.

But don't you think the concept of "portability" implies that you've successfully obtained the bundle already? It will always be the case that if you cannot obtain some artifact (dab, jar, whatever) then you cannot run it in that environment.

So will users be able to obtain just a bundle artifact and execute it independent of distributing the bundles and/or their images via registry?  i.e., will there be a registry-free workflow possible like there is for Docker images (docker save/docker load).  Because the bundle idea seems inherent coupled to Engine internals and to the registry today.

The hash ensures reproducibility of the bundle -- e.g., redis:latest may be different in different environments but redis@sha256:1234567890abcdef is unambiguous in all environments

Maybe a little nitpicky, but wouldn't this be better solved by immutable image tags? Sure, redis@sha256:1234567890abcdef might tell me as an operator that I'm unable to obtain the exact image I'm intended to run.  But how does that help me?  Think about git tags, for instance.

In practice, this is not the case because some network drivers want to do things like make container IP allocation decisions based on what physical node they are running on. This is a challenge for portability in general.

Right, so how will bundle solve it?
Thanks for your commentary and willingness to answer questions @dnephin @mgoelzer !!

Any progress?

@techninja1008 deploy from compose files is in 1.13-experimental.

@cpuguy83 Sorry, where can I find this?

@techninja1008 I believe docs are still pending for this, but you can get the 1.13 RC from test.docker.com.

I think the ideas and design decisions put forward by @nathanleclaire are worth exploring:

a "schema"for "invoking" or setting up the whole stack in a environment. Is this like "rancher-compose" territory?
volume mounts, other edge cases
registry-free / independent artifact. I would wish this to be easily versioned and managed in git, or something like what redspread.com are doing.
tags instead of hashes

We need volumes in application bundle format and we are now in the strange situation where we can not deploy applications to swarm clusters (swarm mode) using docker-compose (multihost needed) and neither application bundle (volumes needed). What can we use to deploy applications now?

@frjaraur you may be interested in the stack deploy docker-compose support, which will be in docker 1.13 (release candidates are currently available for testing); see this PR; https://github.com/docker/docker/pull/27998, and documentation https://github.com/docker/docker.github.io/pull/716

@thaJeztah Many Thanks I will take a look because volumes are a MUST in our environment.

Am I missing something? I have tried this compose file..
version: "3"
services:
load balancer
lb:
image: hopla/mentorsday-lab:simplestlb
environment:
- APPLICATION_ALIAS=simplestapp
- APPLICATION_PORT=3000
networks:
simplestdemo:
aliases:
- simplestlb
ports:
- 8080:80
db:
image: hopla/mentorsday-lab:simplestdb
environment:
- "POSTGRES_PASSWORD=changeme"
networks:
simplestdemo:
aliases:
- simplestdb
volumes:
- PGDATA:/var/lib/postgresql/data"
app:
image: hopla/mentorsday-lab:simplestapp
environment:
- dbhost=simplestdb
- dbname=demo
- dbuser=demo
- dbpasswd=d3m0
networks:
simplestdemo:
aliases:
- simplestapp
depends_on:
- lb
- db
networks:
simplestdemo:
volumes:
PGDATA:
driver: local
Doesn't have any problem during deploying..
ubuntu@swarmnode1:/tmp$ docker stack deploy -c test.yml test
Creating network test_simplestdemo
Creating network test_default
Creating service test_lb
Creating service test_db
Creating service test_app
I watch for DB service and its volume...
ubuntu@swarmnode1:/tmp$ docker stack ps test
NAME                     IMAGE                             NODE        DESIRED STATE  CURRENT STATE               ERROR  PORTS
test_app.1.et0c3v5i2d09  hopla/mentorsday-lab:simplestapp  swarmnode1  Running        Running about a minute ago
test_db.1.3s524fw4d2rn   hopla/mentorsday-lab:simplestdb   swarmnode2  Running        Running 10 seconds ago
test_lb.1.qpp80aaygehd   hopla/mentorsday-lab:simplestlb   swarmnode3  Running        Running about a minute ago
As task is deployed on node2, I went there but there isn't anything on volume assigned directory??
ubuntu@swarmnode2:~$ docker volume ls
DRIVER              VOLUME NAME
local               test_PGDATA
ubuntu@swarmnode2:~$ docker volume inspect test_PGDATA
[
{
"Driver": "local",
"Labels": {
"com.docker.stack.namespace": "test"
},
"Mountpoint": "/var/lib/docker/volumes/test_PGDATA/_data",
"Name": "test_PGDATA",
"Options": {},
"Scope": "local"
}
]
root@swarmnode2:~# ls -lart /var/lib/docker/volumes/test_PGDATA/_data/
total 8
drwxr-xr-x 3 root root 4096 Dec 13 12:48 ..
drwxr-xr-x 2 root root 4096 Dec 13 12:48 .
Am I doing something wrong here or volumes aren't working as expected?
Many Thanks,

@frjaraur I think there's a typo in your docker-compose file, as I see a missing quote before PGDATA;
``
volumes:
- PGDATA:/var/lib/postgresql/data"

I tried to reproduce your issue with a minimum version of your example;

```yaml
version: "3"

services:
  db:
    image: postgres
    environment:
        - "POSTGRES_PASSWORD=changeme"
    volumes:
      - "PGDATA:/var/lib/postgresql/data"

volumes:
  PGDATA:
    driver: local

docker stack deploy -c docker-compose.yml test

docker run --rm -v test_PGDATA:/foo alpine ls -la /foo
total 128
drwx------   19 999      root          4096 Dec 13 12:47 .
drwxr-xr-x   25 root     root          4096 Dec 13 12:50 ..
-rw-------    1 999      ping             4 Dec 13 12:47 PG_VERSION
drwx------    5 999      ping          4096 Dec 13 12:47 base
drwx------    2 999      ping          4096 Dec 13 12:48 global
drwx------    2 999      ping          4096 Dec 13 12:47 pg_clog
drwx------    2 999      ping          4096 Dec 13 12:47 pg_commit_ts
drwx------    2 999      ping          4096 Dec 13 12:47 pg_dynshmem
-rw-------    1 999      ping          4490 Dec 13 12:47 pg_hba.conf
-rw-------    1 999      ping          1636 Dec 13 12:47 pg_ident.conf
drwx------    4 999      ping          4096 Dec 13 12:47 pg_logical
drwx------    4 999      ping          4096 Dec 13 12:47 pg_multixact
drwx------    2 999      ping          4096 Dec 13 12:47 pg_notify
drwx------    2 999      ping          4096 Dec 13 12:47 pg_replslot
drwx------    2 999      ping          4096 Dec 13 12:47 pg_serial
drwx------    2 999      ping          4096 Dec 13 12:47 pg_snapshots
drwx------    2 999      ping          4096 Dec 13 12:47 pg_stat
drwx------    2 999      ping          4096 Dec 13 12:49 pg_stat_tmp
drwx------    2 999      ping          4096 Dec 13 12:47 pg_subtrans
drwx------    2 999      ping          4096 Dec 13 12:47 pg_tblspc
drwx------    2 999      ping          4096 Dec 13 12:47 pg_twophase
drwx------    3 999      ping          4096 Dec 13 12:47 pg_xlog
-rw-------    1 999      ping            88 Dec 13 12:47 postgresql.auto.conf
-rw-------    1 999      ping         22233 Dec 13 12:47 postgresql.conf
-rw-------    1 999      ping            37 Dec 13 12:47 postmaster.opts
-rw-------    1 999      ping            85 Dec 13 12:47 postmaster.pid

Having said that, it's strange that no error was produced that the YAML was invalid. Doing a quick check on http://www.yamllint.com, showed that it may be interpreted as this;

@thaJeztah You are right, Thanks!!. No errors found but there was an error on YAML (missing "). It's working fine.

The lack of support for build is a little bit confusing. What am I supposed to do if I need to build the image?
I guess right now I need 2 docker-compose.yaml v3 files and do that in 3 steps:

Build images from build.yaml.
Push them to a registry.
Deploy from deploy.yaml, where I use the images from that registry.

I understand images should be pinned, but this duplicity is not much friendly. At least with DAB it was Docker compose who generated the 2nd file...
Isn't it easier that Swarm nodes get ability to share images?
I mean, if I deploy a compose file with built services, it could:

Build the image as you normally would do.
Tag it as internal somehow.
Deploy the stack in any node.
If the node doesn't have the image locally available and knows it's a internal one, instead of asking a registry for it, it asks to a manager node.
The manager node searches for the image across the Swarm managers and tells the worker which manager has the image it wants.
The worker asks for the image to the manager that has it.
The manager gives the image to the worker.
Worker deploys.

This would be really easy from the developer perspective and would allow moving to Swarm without the hassle of setting up a registry, build and push automations, etc.

It can be achieved from the same docker-compose.yml (or docker-stack.yml; naming...). You can specify both build and image keys for your services. docker stack deploy just ignores the build key so there's no harm there.
Steps:

docker-compose build
docker-compose push or docker push
docker stack deploy

Of course, if you want to pin to specific hashes, just make a copy of the docker-compose.yml and update the image keys?

Oh interesting solution, I did not know about it.
It helps, but I still think https://github.com/docker/docker/issues/26876#issuecomment-290896964 would be better, with less manual steps and more straightforward.

Docker stack deploy is working like a charm in 17+ and I love it.  But this roadmap is not only old, but doesn't address a path to deployment of stacks through the API. Even if dockerd needs to shell out as a solution, there should be an API hook somewhere in there so the deployment of stacks doesn't have to be performed by some outside service or user having to SSH into the box to run CLI to perform this same function. Let's get real here or at least propose or suggest another way to perform this. Else the feature is not very useful as a production solution.

To make what @composer22 concrete, to deploy a docker stack from Travis CI, you have to SSH into your manager node, like this: https://github.com/vfarcic/docker-flow-cron/blob/1988f134fcc863b0832561121c1428f76f35db83/.travis.yml#L31-L32

@saulshanabrook Why? Why would having it on the API make it so you don't have to SSH?

@cpuguy83 Yeah I wouldn't have to SSH and store SSH keys in the CI.  Also, I wouldn't have to copy over the docker-compose.yml file to the swarm master and store it somewhere temporarily.

@saulshanabrook But why would this be the case? All you need is a docker client.

What I'm getting at is, why do you have to SSH to deploy a stack but not to docker service create, or docker run?

I see what you mean. I hadn't considered it in the context of those other commands. I am not using them in my current workflow, so I don't have an opinion on whether it makes sense to put them on the API. I just got this working the other day, so maybe it is premature for me to make suggestions on what could improve the workflow. I will keep playing with my setup and see what comes up.

@saulshanabrook My main point is, everything that is done by the docker client is on the API. stack deploy is a client-side feature that calls out to the network, services, and volume APIs for you.

@cpuguy83 So are you saying that if I want to run stack deploy in Travis CI, without SSH, I could connect to the docker host remotely with docker -H ...?

@saulshanabrook Yes, that's exactly how it works. There's no reason to ever SSH into a Docker node, manager or not. I typically set the DOCKER_HOST environment variable in my CI jobs along with tls keys as appropriate to deploy to remote Docker hosts.

Any update about docker bundle pull?

Hi,
Due to the stack management being on the client side is the recommended approach for stack deployment to replicate the multiple calls to service, network, volume creation and group them all via a namespace label when creating a management service to perform this type of 'micro-service' deployment using the SDK's / Docker API's?
Does Docker manage the state of services under a stack without having the YAML file on disk i.e. can a YAML file be pulled down, a stack deployed, and then the file removed?

See the docker stack deploy help for info on streaming file input into the command, that way you can deploy a stack through a ssh one-liner: https://docs.docker.com/engine/reference/commandline/stack_deploy/

@cpuguy83 I believe the main benefit of supporting docker stack commands through the API is to simplify deploying application stacks from API clients. I'd like to use the Docker.DotNet package to do a stack deploy on a swarm manager from a remote C# application. The alternative is to either do all the volume, network, container creation manually using the API (huge step backwards,) require Docker to be installed on the machine running the C# application and then spawn a shell for running the appropriate commands, or to SSH into the swarm manager and run the commands (but then you have to get the compose file over as well...) IMO this really limits the usefulness of the API.
When working with a swam running in-house (air-gapped,) what is the best way to deploy an application stack via a user application running on a machine without Docker installed?

@KylePreuss Why is making the API requests a step backwards? This is what the docker CLI does.
I'm not really arguing against this, but right now it's just not possible to do this in a consistent way, which to me is a pre-requisite for adding it as an API endpoint.
Swarmkit (the underlying orchestrator that swarm mode is built upon) does not really offer a way to do this right now. We would either need a first class object in swarmkit for stacks (not likely to happen) or some support for custom objects/controllers (equivalent to Kubernetes CRD).

@cpuguy83 I meant to imply that one of the reasons compose and swarm mode came about (I think,) was to simplify the deployment of multi-service apps (as well as a bunch of other stuff like improved scalability). Once you reach a handful of containers, volumes, networks, etc. in your app the deployment is complex enough that creating a bunch of scripts or executing a dozen commands or so to spin it up is unwieldy.
A step backwards is not the best metaphor; It's more like continuing on a path when a clearer, easier path can be seen but you are unable to take it. Simplicity is gained through use of the stack commands but they aren't available through the API. I understand there isn't a clear-cut, consistent way of making this possible (thank you for your explanation!)
For some additional background, my envisioned use case (until I saw the stack commands weren't supported,) included an end-user application dynamically generating a compose file and then deploying it to a swarm on the network. Since this compose file could be logged and viewed later and the number of API calls would be drastically reduced, my thinking was that it would be easy to debug/re-deploy the generated application stack and a lot simpler to deploy it programatically.

Hi @KylePreuss,
We achieved to implement the use case you describe by using portainer which offers an api to deploy stacks.
But after reading those comments, I'm starting to think it's a bit artificial (but useful) . In fact, I realize I'd love implementations of docker stack deploy in multiple languages/clients
Julien

Hi guys, based on @cpuguy83 comment above and on this ticket's age, is it safe to assume this functionality will not be there anytime soon? or maybe it won't be there at all?

IIUC this proposal is now succeeded by CNAB and docker-app, and we can safely close this issue?
https://cnab.io/
https://github.com/docker/app


memory usage

hello guys
i am using telegram-bot-api for download and upload video in telegram and for now I am the only user of this bot but after sending the video the amount of occupied RAM remains at its maximum in proportion to the size of the video and does not return to the previous state.

Do you run Bot API server in a Docker container?

If memory was occupied at some point, it can't be returned back to OS in most cases. It will be shown as used by all external tools, but it is free and can be used internally by the process for other allocations.
But uploading or downloading files has neglible effect on the amount of used RAM. An uploaded file can never occupy more than 8 MB of RAM. All downloaded files can occupy at most 2 MB RAM. You can also use local path to the file to upload it with the local Bot API server to reduce the total amount of RAM used for all uploaded files to 2 MB.


DELIA-65378 : Decouple notification

Reason for change: Decouple to avoid lock issues.
Test Procedure: None
Risks: None
Signed-off-by: Nikita Poltorapavlo<EMAIL_ADDRESS>

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 2 files pending identification.

Protex Server Path: /home/blackduck/github/rdkservices/5387/rdkcentral/rdkservices

Commit: 520161a2b47625e87abf141c5ed6b28aebaa2849

Report detail: gist

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 2 files pending identification.

Protex Server Path: /home/blackduck/github/rdkservices/5387/rdkcentral/rdkservices

Commit: 520161a2b47625e87abf141c5ed6b28aebaa2849

Report detail: gist

WARNING: A Blackduck scan failure has been waived
A prior failure has been upvoted

Upvote reason: Not a problem

Commit: 520161a2b47625e87abf141c5ed6b28aebaa2849


Rundb front-end fails when working with superruns stored in any other storage frontend.

Describe the bug
Rundb front-end fails when working with superruns stored in any other storage frontend.

Can you provide some more details?

Sorry, I do not have the trace back at hand currently, The issue was that somewhere in the code we convert the run_id into an integer which does not work for strings. So just raising DataNotStored in that case would be already the solution in that case. Maybe you know already the line of code I am talking about. Otherwise let me try to find back the traceback.

No I actually do not since all three places where this could be is below an if run_id.startswith('_'): bla so I'm curious how it happened

Closing this issue because of reproducibility please reopen when the issue persists


Any way to crop the image into a circle, instead of a square?

I am looking to crop an image into a circle, hopefully using this library, or a combination of this (to detect a person's face), and then cropping that image into a circle (limitation of another library that doesn't allow css intervention on an image).

Hi Jordan,
For optimal results the second answer applies. You could also just look for a square crop (diameter x diameter) using the existing library and then apply your circle effect, that will likely yield acceptable results too.
Cheers,
Jonas

Closed for lack of a reply.


READ BEFORE USING BOOTSTRAP_FOR_PUB

I no longer have time to maintain this package. Please contact me if any of you are interested.

At this time I will only accept PR

I think someone from the Dart, AngularDart or Bootstrap team could do this.
As far as I understand it, this package merely provides the CSS and JS files for all bootstrap versions.

Hi @stevenroose, thanks for being interested in this project. I landed a new job so I'll have time to work on this project. I plan to do a complete rewrite so I can provide a better support and ease maintainability. As far as I know things began to broke with Bootstrap 4. Older release will work.

You can follow and participate to the project here

I have it working with Bootstrap 4 now. Only thing that was missing was the jQuery import. So I guess when you document that, it would work.

Feel free to do a PR with the updated documentation :)

Hi!, I'm interested in working on this package. @richerlariviere. If providing easier access to bootstrap css/js and ability to switch between the versions is the only intended purpose of this package, then I might be able to help. I'm slowly moving all of my work to use dart and bootstrap is a big part of it.

@devkabiir Wow that's really nice to hear! To be honest it's been a while since I touched Dart. Feel free to contact me any time on Gitter. You can clone the repo and send a PR and I'll review it.


About $1200 worth of bitcoin disappeared

I made a transfer of about $500, it went through, then I saw something like transfer no broadcasted and I saw options to cancel or broadcast which I cancelled and about $1200 automatically got deducted from my wallet. I’ve restarted the app more than 10 times and restarted my phone more than 5 times but funds hasn’t come back to it was sitting.
Could you guys look into this?
Thanks.

Hello 2
Kind regards.

@rollyrules01
I think I might be able to solve your issue
if your is still missing from your wallet pm me and I will try to return your fund you can reach me for help gmail<EMAIL_ADDRESS>


support android

Adds support for Android.
Background: https://github.com/projectdiscovery/subfinder/issues/961

@vadmeste,
Thanks for the review! Can we merge it if everything looks good and there are no outstanding issues? Also, once this PR is merged, it would be fantastic if we have a new release.


Tree component

Summary
It will be great if we have a tree component like mantine library that has
Examples
https://mantine.dev/core/tree/
Motivation
To show detailed folder structure or an tree relation between anything
Search keywords: tree component

Can you take a look at https://mui.com/x/react-tree-view/? If you want to request more features, feel free to do it here.


Bar-gmail is notifying gmail spam mails

Hello,
I'm using your plugin. However, it notifies every new spam mail. Seems a bug.
Thanks.

That's not a bug, but having a flag like --no-spam would be a good feature though.

In my opinion, spam mails should be a secondary option, not by default. I receive more spam mails than normal ones. Moreover, they only appear as notifications.

I agree.

@druidamix
The issue should be fixed now, please check and let me know if it works (because I don't have spam messages at the moment).

Seems to be working. No spam mails notifications.
Thank you!


fix incorrect parameter to call ChangeStringLinguisticCase

2nd call to ChangeStringLinguisticCase() was incorrectly passing buffer
size as source length.
Fix #3531

Thanks @akroshg


Add a scope lock to ensure a rollback semantic when builder fails at certain step

Describe your problem
We are currently faced with a problem that the builder may fail at certain step, e.g., when building a graph in vineyard, the fragment builder may encounter an OOM error when putting certain part of the CSR into vineyard.
When such error happens, the already allocated memory are expected to be released, otherwise we will leave much dirty untrackable data in vineyard.
Additional context
Add any other context about the problem here.

I'm consider an API like

client.EnterScope() -> BuilderScope{}
scope.commit(): no need to release the recorded allocation and creation operations
otherwise, or scope.abort(): all recorded allocation and creation after enter the scope should be safely deleted.

@sighingnow Could you assign this issue to me? I am a beginner and this issue seems a good first issue to resolve.

Hi @Sush-Dew,
Getting start with this issue requires you first familiar with the design and implementation of vineyard's Object abstraction. You could find some detailed information in https://v6d.io/notes/objects.html

@sighingnow, is this issue resolved? if it isn't then could you please assign this issue to me?

@sighingnow, is this issue resolved? if it isn't then could you please assign this issue to me?

Hi @Nageshbansal,
Thanks for being interested. However this issue is not quite suitable for getting started. I have retagged and I think #753 or #761 would be a better start point.
Thanks!

i looked into the #753 , and someone else  is working on that , and also I have tagged you in the issue #761 , so can you please assign that to me. Thanks


docs: please indicate which templates apply to public/internal

When trying to apply service level templates via labels in the marathon descriptor, I realized deploying to public vs. internal changes which templates/labels are valid for the given environment.
Unfortunately the template docs do not specify which templates are valid for which environment so there's a lot of trial/error and dumping of the haproxy config to figure out exactly which templates to use.
Please add a lozenge or something to each template in the docs specifying if it's public, internal, or both.

I don't fully understand your question. Are you referring to the case where you're running multiple LBs, one of which is internal, the other of which is public?
If that's the case, all labels apply to all LBs where the HAPROXY_GROUP label matches the LB's group.


[BUG/ISSUE] DUST_DEAD/v2018-04 moved to AFCID/; breaks pre-12.5.0 model

In HEMCO_data_directories I notice that

In GEOS-Chem 12.5.0 AFCID was separated from the DEAD dust emissions extension to allow for use with offline dust emissions as well.

Now DUST_DEAD/v2018-04 no longer exist in S3 bucket:
$ aws s3 ls --request-payer=requester s3://gcgrid/HEMCO/DUST_DEAD/
                           PRE v2014-07/
                           PRE v2019-06/

This is fine for 12.5.0+ that does not read from DUST_DEAD/v2018-04, but older version still reads it
On Odyssey, it is linked to ../AFCID/v2018-04
$ cd /n/holylfs/EXTERNAL_REPOS/GEOS-CHEM/gcgrid/gcdata/ExtData/HEMCO/DUST_DEAD
$ ls -l v2018-04
lrwxrwxrwx 1 msulprizio jacob_gcst 17 2019-08-12 10:36 v2018-04 -> ../AFCID/v2018-04/

However S3 doesn't support symlinks. We can fix it just like fixing GMI files
DATA_ROOT=$HOME/ExtData
aws s3 cp  --request-payer=requester --recursive s3://gcgrid/HEMCO/AFCID/v2018-04/ $DATA_ROOT/HEMCO/AFCID/v2018-04/

cd $DATA_ROOT/HEMCO/DUST_DEAD
rmdir v2018-04
ln -s ../AFCID/v2018-04 ./

Note that this issue breaks the HEMCO parser script suggested at https://github.com/geoschem/geos-chem-cloud/issues/25#issuecomment-541446027. The generated script will not download from AFCID/v2018-04/as it is not shown in the log file.

We recommend people update to a more recent version than 12.9.0.  I will close out this issue now.


Fix session undefiened bug

After the Azure Login, from the investigation I found that it takes time to update the subscription list. So I have added timeout for the same.
The bug is reproducible by:

Do Azure signout
Remove Deploy to Azure and Azure Account extension.
Install Deploy to Azure extension.
Try to setup pipeline, for the first time you will hit "session" is undefined. Though from second time onwards things work fine.

https://github.com/microsoft/vscode-deploy-azure/issues/137

Raised issue
https://github.com/microsoft/vscode-azure-account/issues/210


Entering amazon id

So, in order to make rclone work with amazon drive, you need to enter an amazon client id and a client secret. I had never heard of those terms before, so i googled it, and the only thing that came up was something you can see by registering your account with something called amazon seller central. So i did that. But entering the client id and secret i get from there doesn't work, and i get this error when trying to authorize:
We're sorry!
An error occurred when we tried to process your request. Rest assured, we're already working on the problem and expect to resolve it shortly.
Error Summary
400 Bad Request
An unknown scope was requested
So, what should i do? I don't know if this is an error on amazon's part of if i haven't gotten the correct client_id and secret.

Are you sure you need one?
I didn't supply one when I setup ACD, and when I just made a test one now I got the follwing:
Amazon Application Client Id - leave blank normally.
client_id>
Amazon Application Client Secret - leave blank normally.
client_secret>

So have you tried just leaving them blank?

Okay, that works.

Yes the application_id and user_id are optional.  It is possible to get your own but quite a difficult process, so just use rclone's by leaving them blank.


Consider moving sauce labs integration to another library

This project looks awesome! When looking at the code base I was surprised to see saucelabs so closely coupled. For companies that don't use sauce labs this adds conceptual weight to the yiewd dependency for a seemingly needless reason.
Perhaps extract and call out the extension In the readme?

That's a good idea; I might be able to get around to it soon. FWIW I've stopped using yiewd personally and instead am using wd's promiseChainRemote in conjunction with async/await. Since I use a transpiler anyway, this eliminates the need for both yiewd and monocle-js, and (I think) makes the code cleaner.

Ooo, I thought it was to early for that. What transpiler are you using? If you have a chance can you give me a sentence or two on the pipeline? I'd love to move that way if possible as well (I can even help build the workflow out :))

I use babel. I have another project (https://github.com/jlipps/runsauce) that uses babel, es6, and wd.js (wd code is in tests.js, have a look)

Should we edit the README to say "deprecated, use wd + async/await"?

Yes, will do.


Decoding QUIC v1 packets in Wireshark doesn't work

Hi,
is it possible to decode QUIC v1 in Wireshark?
I can do this with ID-29 (quiche 0.7.0) but after switching to v1 (quiche 0.9.0) decoding packets in Wireshark is no longer possible.
I suppose that this is rather Wireshark problem but maybe you know something?

Actually it's not so important. I forgot about qlog and qvis.
The real question I wanted to ask is why STREAM_DATA_BLOCKED frame is sent so early.
Here are my qlog files (I had to rename them to .txt as github doesn't accept .qlog)
server.txt
client.txt
Server sets flow control to 7000B while client tries to send more than that.
What I can't understand is that client sends STREAM_DATA_BLOCKED frame so early, before reaching flow control limit.
It looks like this

In the first packet after establishing connection (1 RTT: 0) there are different frames. One of them is STREAM_DATA_BLOCKED. I can't get why server receives it so early. Shouldn't he receive it in 1 RTT: 6 packet?

To answer your original question, Wireshark should definitely be able to decode QUIC v1 packets, though you might need a recent version (according to https://github.com/quicwg/base-drafts/wiki/Tools#wireshark you need at least v3.4.x).

As for the STREAM_DATA_BLOCKED thing, it does indeed look weird, Are you using a custom client/server or the apps we provide (https://github.com/cloudflare/quiche/tree/master/tools/apps)? If the latter, it would be useful if you could provide the trace logs (just need to run the programs with the RUST_LOG=trace environment variable set).

To answer your original question, Wireshark should definitely be able to decode QUIC v1 packets, though you might need a recent version (according to https://github.com/quicwg/base-drafts/wiki/Tools#wireshark you need at least v3.4.x).

Thanks, good point with Wireshark's version. Acctually I have 3.4.0rc1 but I will try with a newer one.

As for the STREAM_DATA_BLOCKED thing, it does indeed look weird, Are you using a custom client/server or the apps we provide (https://github.com/cloudflare/quiche/tree/master/tools/apps)? If the latter, it would be useful if you could provide the trace logs (just need to run the programs with the RUST_LOG=trace environment variable set).

I am using client and server from https://github.com/cloudflare/quiche/tree/master/examples but IIRC apps from tools use them too?
I have modified them a little to exceed flow control limit but these modifications were quite simple. I will put trace logs as soon as possible

client_trace.log
server_trace.log
server.qlog.txt
client.qlog.txt


Revisit failed pull requests payouts

I'm n/a on really remote location with limited internet and I would be checking based on tomorrow wind conditions, it was windy and I went snow kitting.
It's good opportunity to check what's amount of effort would be to start using native usdt from Statemine for payouts for contributions.
Good opportunity to introduce tag
queued-for-pay when there will be no balance like in this situation and we can meanwhile merge it for example, so payment processing and merging are not blocking each other for example with promise to pay.

https://kusama.subscan.io/transfer?address=G29NScLSew5zqwmJAPupvJWDCDkpxKUhDnMeVdD2BBcnHar

There should be 13 failed payouts

https://github.com/kodadot/nft-gallery/pull/5105
https://github.com/kodadot/nft-gallery/pull/5088
https://github.com/kodadot/nft-gallery/pull/5100
https://github.com/kodadot/nft-gallery/pull/5092
https://github.com/kodadot/nft-gallery/pull/5033
https://github.com/kodadot/nft-gallery/pull/5102
https://github.com/kodadot/nft-gallery/pull/5059
https://github.com/kodadot/nft-gallery/pull/5064
https://github.com/kodadot/nft-gallery/pull/5114
https://github.com/kodadot/nft-gallery/pull/5113
https://github.com/kodadot/nft-gallery/pull/5065
https://github.com/kodadot/nft-gallery/pull/5118
https://github.com/kodadot/nft-gallery/pull/5052

Mark some failed payouts here. #5363 #5382 #5383

Mark some failed payouts here

done, seems github webhooks are not delivering always 🤔

Some more failed ones for me: #5381 #5236
@yangwao

Mark some failed payouts here https://github.com/kodadot/nft-gallery/pull/5363 https://github.com/kodadot/nft-gallery/pull/5382 https://github.com/kodadot/nft-gallery/pull/5383

done, seems github webhooks are not delivering always 🤔

Seems one of them still fails #5382. The other two work.

Another failed one:
#5300

@yangwao @vikiival  any idea when this will be sorted out? so many failed ones, its getting a bit hard to keep track of it all now

@yangwao @vikiival  any idea when this will be sorted out? so many failed ones, its getting a bit hard to keep track of it all now

Hello,
we were thinking to either move bot to Cloudflare or make some github action that will listen to the command like /pay 30 usd.
If you feel adventorous we encourage to hack something 🤗.

@yangwao just FYI, ⬆ these failed ones were never cleared  🙏

@yangwao just FYI, ⬆ these failed ones were never cleared 🙏

Hey just found it now.
Yes, I can process it with DOT.
@maderi21 @prachi00 @daiagi  can you update your payout link in your pull requests, please?
I will process it shortly when will have all of you green light on this, 3 out of 3.
Thank you! :)

@yangwao just FYI, ⬆ these failed ones were never cleared 🙏

Hey just found it now. Yes, I can process it with DOT. @maderi21 @prachi00 @daiagi can you update your payout link in your pull requests, please? I will process it shortly when will have all of you green light on this, 3 out of 3.
Thank you! :)

updated mine

@yangwao Update the paymnet link on mine
ready to go

Task
Price (USD)

Redesign Breadcrumbs
50

Total
50

@yangwao I also have some PRs with failed payouts. I have updated the payment link on mine. Thank you!
https://github.com/kodadot/nft-gallery/pull/6035
https://github.com/kodadot/nft-gallery/pull/6076
https://github.com/kodadot/nft-gallery/pull/5100
https://github.com/kodadot/nft-gallery/pull/5033
https://github.com/kodadot/nft-gallery/pull/5059
https://github.com/kodadot/nft-gallery/pull/5114
https://github.com/kodadot/nft-gallery/pull/5113
https://github.com/kodadot/nft-gallery/pull/5382

Done @prachi00 @Jarsen136 @daiagi
@maderi21 when you will update yours payout links with DOT address, feel free open a new issue with links to those PRs, happy to process it.

It's good opportunity to check what's amount of effort would be to start using native usdt from Statemine for payouts for contributions.

Actually DOT is stablecoin now

Good opportunity to introduce tag queued-for-pay when there will be no balance like in this situation and we can meanwhile merge it for example, so payment processing and merging are not blocking each other for example with promise to pay.

referred in research

https://github.com/kodadot/research/issues/42

Hi @yangwao
Bot didn't activate once again
https://github.com/kodadot/nft-gallery/pull/5105

Bot didn't activate once again

There was a wrong payout address. Fixed it for ya

https://canary.kodadot.xyz/dot/transfer/?target=1cAsKZYNRb8dkSCpn4eVkEn6ycNZTGoDo5dGDgB8J1UUWK8

#5381 #5236 #5300 is left for me , thank you

✅


Support for generic models

Currently, the source generator does not support mapping for generic models, even though it will be able to generate the code but with not the expected behavior

Full support may not be possible due to limitations with the current mapping system

For now, this will be marked as no-fix


Material-UI AutoComplete Required attribute Issue

Subject of the issue
With Material UI Autocomplete I cant able to give the field as required to show error.

Steps to reproduce
Here is the  sandbox link. Try with and without adding the inputs field to TextField you can see the issue.
When Inputs passed to TextField

If you select a value and click outside the field. value disappears but the value is stored
If you touch and click outside error is occured

When Inputs are not passed to TextField

If you touch and click outside it should show error.
If you select a value and click outside the field. value is visible.

Expected behaviour
The field Value should be present when you click outside the field.
If the field is touched and clicked outside It should show error

Actual behaviour

Other information

The problem is that touched is always false. This is because touched is set when input.onFocus is triggered, in your case you ignore this event.

@iamandrewluca  adding OnBlur event to Textfield will remove the selected item when we click outside.

Don't know exactly, but I think you should pass onBlur to Autocomplete, not TextField
https://redux-form.com/8.3.0/docs/api/field.md/#-code-input-onblur-eventorvalue-function-code-

Autocomplete doesnt have onBlur function.

@iamandrewluca please reopen the issue.Adding the onblur to autocomplete also not working. Autocomplete indirectly uses textfield component.

Try tris on TextField onBlur={values => input.onBlur(values)}

@JitendraBhamidipati what the problem? As I said this is not a redux-form issue. You are not using redux-form the right way. If you pas input.onBlur to TextField everything works fine as you stated

The field Value should be present when you click outside the field.
If the field is touched and clicked outside It should show error

@iamandrewluca I have updated the sandboxlink. Added the onBlur to TextField. It is not working. I am able to get error when i touch it and drop off, but when i select a value and click outside the field the data is not visible on the field.

Change the onBlur this way.
onBlur={() => input.onBlur(input.value)}

@iamandrewluca  I have added blurOnSelect to autocomplete and then even after selecting the value I am seeing the error. After selecting not going into required validation. And also If possible a example on this field would be better as it is being commonly used these days.

Added these 2 lines for Autocomplete
 blurOnSelect         onClose={() => input.onBlur()}
and removed this line in TextField worked for me.
onBlur={() => input.onBlur(input.value)}.

Would be great if you could put an example using Autocomplete. We are few contributors and cannot handle all use cases. Thanks.

@iamandrewluca I want to work on this issue but when I forked the repository I see there is no example code. Even in redux-form webpage examples is missing. v8.3.0


R code for natural breaks

To divide into Jenks natural breaks, we can either use

classInt::classIntervals or
BAMMtools::getJenksBreaks.

The latter is a C implementation of the first one, according to https://stackoverflow.com/a/56072902. We do not need the speed, so the first one is suffice.

Har begynt. Gjort noen forsøksvise endringer i plot_variation.r som fungerer sånn noenlunde.


Public apis python

Unsubscribe
On Fri, Jul 30, 2021, 08:42 Matheus Felipe @.***> wrote:

Closed #1909 https://github.com/public-apis/public-apis/issues/1909.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/public-apis/public-apis/issues/1909#event-5089226912,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUZF5TIXJVML4HDWRRLRLFTT2IKAJANCNFSM5BHS6NOQ
.


[W5.11][W13-A2]Gan Wei Liang

Made two 2KLoC enhancements to make up for 1KLoC enhancement

Made find command case-insensitive when searching
Persons are listed automatically after successfully addition or deletion

@william6364
Some comments added. Please ack & close the PR after reading comments.


Add frontend for search

Problem solved
Short description of the bug fixed or feature added
Changes made

[ ] Public API changes: list the public API changes made if any
[ ] Internal API changes: explain the internal logic changes

How to test

[ ] Automated tests: link to unit test file
[ ] Manual tests: step by step instructions on how to test

Contributor NFT
Paste in your wallet address below and we will airdrop you a special NFT when your pull request is merged.
Address:

PR-Codex overview
The focus of this PR is to implement a Task Search component in React that fetches tasks based on a search query and displays them dynamically.
Detailed summary

Added TaskSearch component
Utilized useState and useEffect hooks
Implemented task search functionality with loading and error handling
Displayed search results dynamically in a list

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#3254  👈
#3253
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @gregfromstl and the rest of your teammates on  Graphite


⚠ AGEG website (prod) has degraded performance

In 4f46906, AGEG website (prod) (https://www.ageg.ca/) experienced degraded performance:

HTTP code: 200
Response time: 4585 ms

Resolved: AGEG website (prod) performance has improved in 8fa4dc5.


zabbix_agent_become_on_localhost = False

Change
for this issue
https://github.com/dj-wasabi/ansible-zabbix-agent/issues/225
https://github.com/dj-wasabi/ansible-zabbix-agent/issues/218
https://github.com/dj-wasabi/ansible-zabbix-agent/issues/216
With zabbix_agent_become_on_localhost: True i have error:
TASK [dj-wasabi.zabbix-agent : Install local python-netaddr package] ***********
FAILED - RETRYING: Install local python-netaddr package (3 retries left).
FAILED - RETRYING: Install local python-netaddr package (2 retries left).
FAILED - RETRYING: Install local python-netaddr package (1 retries left).
fatal: [zabbix -> localhost]: FAILED! => {"attempts": 3, "changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

With zabbix_agent_become_on_localhost: False i dont have error
TASK [dj-wasabi.zabbix-agent : Install local python-netaddr package] ***********
changed: [zabbix -> localhost]

You can override it by either setting it in your playbook or in the group_vars or host_vars. The default is set to True as this is general and in case for you and others, you'll have to override like how I mentioned before.
Therefor I close this PR.


Initialize evtnum in sinsp_evt::init methods

Some automated unit tests that use libs construct sinsp_evts directly using init() methods without using an inspector. One of the init() methods initializes the evtnum to 0, but the others did not.
When running those tests, valgrind reports errors about m_evtnum being uninitialized.
So initialize m_evtnum in all init() methods.
This doesn't affect uses of sinsp_evt via the inspector, as sinsp::next() sets m_evtnum.
Signed-off-by: Mark Stemm<EMAIL_ADDRESS>
What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area API-version

/area build

/area CI

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-savefile

/area libscap-engine-udig

/area libscap

/area libpman

/area libsinsp

/area tests

/area proposals

Does this PR require a change in the driver versions?

/version driver-API-version-major

/version driver-API-version-minor

/version driver-API-version-patch

/version driver-SCHEMA-version-major

/version driver-SCHEMA-version-minor

/version driver-SCHEMA-version-patch

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mstemm
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [mstemm]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, mstemm
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,mstemm]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: feeb60dd92819fcab32ec04dd39ce34e8bd30dc1

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, gnosek, mstemm
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,gnosek,mstemm]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Leak

I find leak in RKISO8601DateFormatter.
https://www.dropbox.com/sh/f5oo5ziu9y8g6q3/AABwRMXjlkPLdmURB1ayrDjqa?dl=0

Please submit a PR with a fix!


[HOLD for payment 2022-04-13] [$750] When clicking on Room Settings after workspace deleted, error displayed - reported by @Santhosh-Sellavel

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Delete workspace
Open #announce room or any room
Click the header to view the details page
Click on settings
Error page is shown on web/Desktop app.

Expected Result:
Open Settings Page for the room
Actual Result:
Error Page Appeared
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.40-1
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/157184784-9e5bedd9-107d-4c3d-a8b4-97c0ca2bb4e0.mov

Upwork job URL: https://www.upwork.com/jobs/~01c95cafe702e5684f
Issue reported by:  @Santhosh-Sellavel
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1645738088150939
View all open jobs on GitHub

Triggered auto assignment to @alex-mechler (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

This is certainly something that we should handle better. Sending external

Triggered auto assignment to @trjExpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Triggered auto assignment to @marcochavezf (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

when i delete the woarkspace the #announce room is deleted

Oh, hm.. @TomatoToaster has this been fixed then? CC: @Santhosh-Sellavel

The problem does not appear in the latest main branch. But the code that will make this happen again is still there.
Proposal
This happen because the object policy have posibility to return null. We need add some condition to check if policy null we return false.
https://github.com/Expensify/App/blob/34e2d3eacfb80356b1906869d87cb0f43b012287/src/pages/ReportSettingsPage.js#L156
-         const linkedWorkspace = _.find(this.props.policies, policy => policy.id === this.props.report.policyID);

+        const linkedWorkspace = _.find(this.props.policies, (policy) => {
+            if (policy === null) {
+                return false;
+            }
+
+            return policy.id === this.props.report.policyID;
 +       });

Before changes
https://user-images.githubusercontent.com/25520267/158045648-e07341e1-fbed-41f5-ad58-d9146ed2499f.mov
After changes
https://user-images.githubusercontent.com/25520267/158045671-854cd5d6-f747-479e-9019-d27a3be560e1.mov

We mostly try to fix the root cause of the problem before patching the code. I will wait to see more proposals that can identify why this line creates an issue and works sometimes.

@parasharrajat It's because there are some policy from onyx which ONYXKEYS.COLLECTION.POLICY has some key with a null value. The null value could be from deleting the policy.
https://github.com/Expensify/App/blob/9dbfbf17719a6d8ffb60dfc268c8ba3dfb0ce8bd/src/libs/actions/Policy.js#L142-L153

Ok, I see. Did you run some actions which resulted in this Onyx state or does it already has null values?
But that said, I have already faced this issue earlier and I know that https://github.com/Expensify/App/issues/8033#issuecomment-1066027512 fixes this crash as suggested earlier https://expensify.slack.com/archives/C01GTK53T8Q/p1643191135467000
I would be curious to know why are we storing null values in the Onyx. that seems like the real issue.

Also, I like to point out that I reported this issue a month back from this issue https://expensify.slack.com/archives/C01GTK53T8Q/p1643191135467000. And there was a +1 on that. I don't why it wasn't ported to GH. cc: @trjExpensify

Looking at that original convo @parasharrajat, Applause and Aldo weren't able to reproduce it with the steps provided?

Yeah, same as this one. It is also not reproducible.

The null value could be from deleting the policy.

So you don't think this is the cause of the issue? 😕

I need some time before I can jump on the code and validate that. But I was referring to it before the proposal was posted. Anyways, I am fine with it just wanted to point out that previous report.

In that browser, yes. but the account that I use above is a newly created.

Oh... Are you able to reproduce this after refresh? Do you see similar keys for policies in both accounts?
I will try that out. Thanks for the info.

Gotcha. It is more involved than I thought :cry:

Any luck here? 🤔

I will debug this today but I am waiting for a proposal that solves the root cause. I am sure that it will reveal some important bugs(they not necessarily needs to be solved in this issue)

Not debugged it yet. Just didn't have the time to do that. I will try to do that as soon as possible.

Bumped the price to $750 in the meantime. 👍

@trjExpensify @parasharrajat I do some research on this issue.

I am looking for some real research on trying to find the cause which sets the null values on storage before accepting solutions. So a proposal should show evidence of that.

To function to call that set the policy key value to null.

After deleting the policy
https://github.com/Expensify/App/blob/b347866b2af95bd2c51eb6bb65098bd1d756e7d0/src/libs/actions/Policy.js#L169-L189

After fetch all the policies then update the local policies. If the policy is not present from the server, set the local value of policy to null. allPolicies is from local storage.
https://github.com/Expensify/App/blob/b347866b2af95bd2c51eb6bb65098bd1d756e7d0/src/libs/actions/Policy.js#L95-L109

Is also mention from original PR comment

So there is no way to delete a key from Onyx atm. We usually just set it to empty string or null just as you have.
So your code looks good. The only thing i would say is that i don't think request returns a policyID so that code of yours should most likely be,
return Onyx.set(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, null);
Once you update that just make sure to test that setting it to null doesn't break anything else 🙂

What do you think? 🤔

I think what are you proposing to fix that with respect to research.

I mean the cause this issue is ‘null’ value when spread data from ‘policies’, the ‘null’ value is from Onyx key and the way to delete data from Onyx is to set the value with ‘null’.
The solution might handle the cause of error which can be done with my proposal or not using ‘policies’ locally cache data from Onyx.

The solution might handle the cause of error which can be done with my proposal or not using ‘policies’ locally cache data from Onyx.

Sorry, I didn't get this.

Either we handle the cause of error which here
https://github.com/Expensify/App/blob/34e2d3eacfb80356b1906869d87cb0f43b012287/src/pages/ReportSettingsPage.js#L156
Or find other way to handle ‘policies’ data in component other than using Onyx.

@parasharrajat I have another proposal
We can create a HOC to return policies without a null value from Onyx.
import React from 'react';
import PropTypes from 'prop-types';
import {withOnyx} from 'react-native-onyx';
import _ from 'underscore';
import getComponentDisplayName from '../libs/getComponentDisplayName';
import ONYXKEYS from '../ONYXKEYS';

const policiesPropTypes = {
    policies: PropTypes.shape({
        /** The policy name */
        name: PropTypes.string,

        /** ID of the policy */
        id: PropTypes.string,
    }),
};

const policiesDefaultProps = {
    policies: [],
};

export default function (WrappedComponent) {
    const propTypes = {
        forwardedRef: PropTypes.func,

        ...policiesPropTypes,
    };

    const defaultProps = {
        forwardedRef: () => {},

        ...policiesDefaultProps,
    };

    const WithPolicies = (props) => {
        const rest = _.omit(props, ['forwardedRef', 'policies']);
        const policies = {};

        _.each(props.policies, (policy, key) => {
            if (_.isEmpty(policy)) {
                return;
            }

            policies[key] = policy;
        });

        // eslint-disable-next-line react/jsx-props-no-spreading
        return <WrappedComponent {...rest} ref={props.forwardedRef} policies={policies} />;
    };

    WithPolicies.propTypes = propTypes;
    WithPolicies.defaultProps = defaultProps;
    WithPolicies.displayName = `withPolicies(${getComponentDisplayName(WrappedComponent)})`;
    const withPolicies = React.forwardRef((props, ref) => (
        // eslint-disable-next-line react/jsx-props-no-spreading
        <WithPolicies {...props} forwardedRef={ref} />
    ));

    return withOnyx({
        policies: {
            key: ONYXKEYS.COLLECTION.POLICY,
        },
    })(withPolicies);
}

After that we can replace the Onyx call to return policies data, using the HOC we created e.g in ReportSettingsPage. We also can replace another component that uses Onyx to return policies data.
https://github.com/Expensify/App/blob/b347866b2af95bd2c51eb6bb65098bd1d756e7d0/src/pages/ReportSettingsPage.js#L257-L266
+    withPolicies,

-        policies: {
-            key: ONYXKEYS.COLLECTION.POLICY,
-        },

Before

After

You can continue the discussion there. https://expensify.slack.com/archives/C01GTK53T8Q/p1648481170022179

@marcochavezf @TomatoToaster can you guys also jump in on the thread, please?

Ok, based on the Slack thread, I think we can go with @mollfpr's proposal https://github.com/Expensify/App/issues/8033#issuecomment-1066027512.
cc: @marcochavezf
:ribbon: :eyes: :ribbon:  C+ reviewed

📣 @mollfpr You have been assigned to this job by @marcochavezf!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Nice! @mollfpr can you apply on Upwork, please? https://www.upwork.com/jobs/~01c95cafe702e5684f

@trjExpensify applied thank you!

Sorry late here, but I submitted the same solution. A Month back here
The reason I didn’t bring it here early, was because it was more of a patch to crash, not had enough time to analyze more on this.
cc: @parasharrajat @marcochavezf

The reason I didn’t bring it here early, was because it was more of a patch to crash, not had enough time to analyze more on this.

Given that @mollfpr has invested quite some time digging into the solution and we didn't have your solution on GH to review. I am still in favor of assigning this job to @mollfpr.
Also, PR is already created and approved.

We didn't have your solution on GH to review.

@parasharrajat https://github.com/Expensify/App/issues/8033#issuecomment-1066150457 is the reason I didn’t bring it here.

Given that @mollfpr has invested quite some time digging into the solution

Ya, I respect that @mollfpr invested quite some time on this issue and had different approaches too.

I am still in favor of assigning this job to @mollfpr. Also, PR is already created and approved.

@parasharrajat, I too think the job should be assigned to @mollfpr because that's only. We will discuss this further internally in the upcoming days. How to address this kind of situation in the future, thanks!

👋 I'm OoO next week (so is @laurenreidexpensify, I believe), so reassigning for another CM to handle the payment after the regression period. Thanks, @dylanexpensify!
Upwork job is here: https://www.upwork.com/jobs/~01c95cafe702e5684f

You got it tom!

@parasharrajat sent offer to accept and pay you out as C+!
@Santhosh-Sellavel please apply to this job to be paid for reporting the issue!

@dylanexpensify done!

Offer sent @Santhosh-Sellavel!

Alrighty! Everyone has been paid, contracts ended, posts removed! 🎉


Added "Hello Martin" to server and handled response with js.

In the future, keep a pull request open until it is approved and ready to merge. I sent out the developer workflow doc earlier today, so read through that and then let me know if you have questions about this.

I apologize for the late reply, I just saw this on my personal email. At the time I didn't know how to ask for another request to review after suggested changes so my way of dealing with it was closing the pull request and making another similar pull request. I apologize for the inconvenience!
Now I know how to deal with it so I will follow the correct method in the future.

No need to apologize; the workflow doc hadn't been published yet so there was no way for you to know how to do it. :)


Blocking t.co breaks outgoing Twitter links

I don't know if you've encountered t.co anywhere else, but my assumption is that whoever is on Twitter, already expects that they know which Tweet one clicks on.

Pinging.

Hi
yeah this is a problem and specific to Twitter and Twitter does a fair amount of telemetry collection for all links posted and click upon. Blocking it, as you have seen, will make life ugly when it comes to links and i'm not sure how to get around this (for now, im working on that)


Button signal is emitted several frames after input action is registered

Tested versions

Reproducible in: 4.3-dev2, 4.2.1stable, 4.1.2stable and 3.5.3stable

System information
Godot v4.2.1.stable - Windows 10.0.22621 - GLES3 (Compatibility) - NVIDIA GeForce RTX 3070 (NVIDIA; <IP_ADDRESS>13) - Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz (16 Threads)
Issue description
When an input action is pressed with a Button focused, there seems to be a noticeable delay between the moment that input action is registered and a Button emits its pressed signal. The delays vary per test usually about 3-5 frames. Expected behavior would be for there to be no delay at all. This was tested with print calls printing frame count via get_tree().get_frame().
Steps to reproduce

Create a new Control scene
Add a Button child Node
Connect function to Button's pressed signal
Call function on input action pressed (tested with _process and _input)
Notice input's function gets called before Button's signal connection

Minimal reproduction project (MRP)
4.x_button_signal_test.zip

This is not a bug. This behavior is dependant by the action_mode property. By default, the signal is emitted when the button is released.

Oh! I spent so long trying to figure this out haha. Works as intended now, my apologies. Thanks for the quick and helpful response.


Clean up pathplanning package

Delete unnecessary files and restructure.

Closing this issue as everything surrounding path planning is very uncertain. If it is ever picked back up, more specific issues should be created.


Add Support for use CMD to start container

I use supervise like s6-overlay to handle PID 1 for container, jib plugin use entrypoint to start container and overwrite my baseimage entrypoint, so i want to use CMD to start jib generated container
like this:
<container>
            <jvmFlags>
                  <jvmFlag>-javaagent:/data0/java/deploy/pinpoint.agent/pinpoint-bootstrap.jar</jvmFlag>
                  <jvmFlag>-Dpinpoint.agentId=docker</jvmFlag>
                  <jvmFlag>-Dpinpoint.applicationName=docker-test</jvmFlag>
            </jvmFlags>
      <mainClass>com.fangdd.bwfs.server.container.Application</mainClass>
      <exec>CMD</exec>
</container>

Hi @swift1911,
Let me check if I understood you correctly: you don't want Jib to overwrite the entrypoint and CMD, and you just Jib to just inherit and use the entrypoint of CMD that whatever base image has, right?

@chanseokoh Yes, this is the meaning

Now the question is, where/how to indicate Jib to not overwrite the entrypoint and CMD, e.g., a new configuration parameter or a system property?

@chanseokoh i think that a a new configuration parameter is better

@coollog this is my Dockerile, i want to use s6-overlay to init and handle pid 1
FROM alpine
RUN apk add busybox-extras bash vim lsof strace pstree git curl tzdata
ADD https://github.com/just-containers/s6-overlay/releases/download/v<IP_ADDRESS>/s6-overlay-amd64.tar.gz /tmp/
RUN gunzip -c /tmp/s6-overlay-amd64.tar.gz | tar -xf - -C /
ENV TZ Asia/Shanghai
ENTRYPOINT ["/init"]

@swift1911 so you're expected execution is something like?
/init java -cp <some-classpath> <some-main-class> ...

@loosebazooka yes

Hi @swift1911, have you tried using the <entrypoint> configuration?
<container>
  <entrypoint>/init</entrypoint>
</container>

@coollog in some condition, /init command might be replace by other, hard code /init in jib may cause tech debt


Example is incorrect

The example is mentioning the cmdlet Repartition-SPEnterpriseSearchLinksDatabases, which should be Move-SPEnterpriseSearchLinksDatabases.

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

ID: a96bad38-081e-945d-3faf-de934d936c06
Version Independent ID: 0a74c992-ef80-b833-9160-5e6cf7a63fc5
Content: Move-SPEnterpriseSearchLinksDatabases (sharepoint-server)
Content Source: sharepoint/sharepoint-ps/sharepoint-server/Move-SPEnterpriseSearchLinksDatabases.md
Product: sharepoint-2016-powershell
GitHub Login: @techwriter40
Microsoft Alias: kirks

@ykuijs Thank you for this feedback
I looks like Trevor is updating this. We are just waiting on some verifications. I am going to close this until the merge is complete.
@tseward Can you please double check the verification on this merge request, there are a few errors that came up.