Show token profile

If the messages consumer is run with the --profile option, it would be a nice feature to see the token profile next to each consumed messages.

Sounds like a useful improvement. Would you be up for a PR?

Do you see a way to do it? The profile token is known at the very last time, once command completed (so once the messages are already handled).


No element found using a locator when extracting inner value from span

Hi Everyone,
I am very new to Protractor and building an automation script from scratch. I am currently testing a non Angular app, and this is the HTML:

Hi
","

 MyName

"|"
//there's more HTML here

My protractor code is:
var greet = element(by.id('user'));
expect(greet.getText()).toBe('MyName');
I have already done this code:
var greet = element(by.id('welcome')).element(by.id('user'));
expect(greet.getText()).toBe('Hi, MyName'); // or toEqual("Hi, MyName");
But I am still getting an error message saying Failed: No element found using locator: by.id("welcome")
or
Failed: No element found using locator: by.id("user")
Hoping to hear from all of the experienced protractor testers. Thanks in advance!

Please direct general support questions like this one to an appropriate support channel, see https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions
Thank you!


Pass clean image to Tesseract to avoid conversion warnings

Hi, first of all, thanks for a great module! :-) By spending a couple of hours creating templates for my documents, I will be saving hours each month! :+1:
However, some of my documents are scanned, so I am using tesseract to extract the text from it. This works fine and as expected, but it does generate some errors on stderr:
convert-im6.q16: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG `/tmp/magick-47439a8uUu8VvEXM' @ warning/png.c/MagickPNGWarningHandler/1654.
Warning. Invalid resolution 0 dpi. Using 70 instead.
Estimating resolution as 492

I'm running the invoice2data module from a custom python script which does everything I need it to in 1 go, so I'd like to see these error messages go away.
The first one seems to indicate that setting an RGB profile for grayscale images is not allowed; I haven't been able to figure out what causes the other messages yet (could be due to my lack of imagemagick skills).
My system:
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.1 LTS
Release:	18.04
Codename:	bionic
Python 2.7.15rc1
Invoice2data 0.2.101.dist

I could simply suppress the stderr messages (as mentioned, the module works as expected), but that seems wrong and there is no clean way to do this from within python without modifying the module directly.
Any idea what the issue could be? And can I fix this with settings or is it a bug in the module?
Any help is much appreciated!

Those messages come from Tesseract. If there is a switch to turn them off, we can add them to invoice2data.

Does this issue persist when using the tensorflow4 output plugin?

This issue is because how this module pre-processes the image.
The document is converted to the tiff format along with some other parameters.
However, imagemagick is not very good at passing the resolution data found in the exif of the input file to the output file in a different format.
(also some output formats don't allow exif data.)
The conversion code is in:
https://github.com/invoice-x/invoice2data/blob/36863386692a2393d561cdaa1e3a5e4938c34935/src/invoice2data/input/tesseract.py#L27-L38
From my testing, I got better ocr results by passing my png files directly to tesseract.
In my opinion, The flattening of the image in this code does more harm than good.
Tesseract uses leptonic to read/pre-process the image.
yet. the conversion code is required for other file formats as tesseract can't handle pdf files as an input directly.

Sorry, the fix fell out the previous commit.
Currently doing a rewrite on the tesseract modules.
Will include this in the new commit.


subkey: Support --version cli command

Fixes: https://github.com/paritytech/substrate/issues/10852

bot merge


Standard Webpage for the Website

This is a Level-5 issue
You have to create a Separate folder name HomePage and all your code inside it
It should be a full-fledged complete Website and should be responsive
The main designment Part lies with you

I would like to work on this project.

i would like to work on this project.Can you assign it to me?

@antaramunshi go-ahead
This is a Level-5 issue
You have to create a Separate folder name HomePage and all your code inside it
It should be a full-fledged complete Website and should be responsive
The main designment Part lies with you

You mean the frontend right?And should i first send you the wireframe how it should look like?

@antaramunshi go-ahead
This is a Level-5 issue
You have to create a Separate folder name HomePage and all your code inside it
It should be a full-fledged complete Website and should be responsive
The main designment Part lies with you

hii i am good in frontend can you assign me this task

i would suggest you to make a issue for UI design so that we can decide good front end

@antaramunshi yes first show wire frame so we can decide if some changes are required

@kenkirito currently one person is assigned the issue
If the issue is not solved you will be the next one
Till then you can give a wireframe on how the website look

@Tejas1510 i think we need a logo as well maybe

Do you want to create it or Should I create a separate issue

@antaramunshi are you working on the issue or will I assign someone?

@Tejas1510 yeah, i'm working on it.you'll get it by tonight

@antaramunshi Sure no worries
Take your time

Is there any change required? @Tejas1510

We have got one home page and we will be taking some features of your website
I will be guiding you about the same
Currently I am engaged in some work
Till then you can work on other issue or create your own

We have got one home page and we will be taking some features of your website
I will be guiding you about the same
Currently I am engaged in some work
Till then you can work on other issue or create your own

So I won't be graded for this or the layout that I created earlier for Level 4?

You will be
On Mon, 28 Dec 2020, 5:59 pm Kanishka Aggarwal<EMAIL_ADDRESS>wrote:

We have got one home page and we will be taking some features of your
website
I will be guiding you about the same
Currently I am engaged in some work
Till then you can work on other issue or create your own
So I won't be graded for this or the layout that I created earlier for
Level 4?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Tejas1510/Athavani/issues/18#issuecomment-751696789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMNZKNCSFMROMYFBEOFX5DSXB23HANCNFSM4VK3LA2Q
.

assign me this issue no one i working on that.. @Tejas1510 u should remove assignees if they cant respond in 7 days

assign me this issue no one i working on that.. @Tejas1510 u should remove assignees if they cant respond in 7 days

@chait04 Go ahead

@chait04 Go ahead

@Tejas1510 means i have to put the all logic which is in app component to the the Home page component.. is this what u want

@Tejas1510 means i have to put the all logic which is in app component to the the Home page component.. is this what u want

Just go through the description
You have to create a website for the project having components like navbar, fotter , features of the projects and other things which are present in a standard website

Just go through the description
You have to create a website for the project having components like navbar, fotter , features of the projects and other things which are present in a standard website

@Tejas1510 Hey, Can I work on this issue?

@Tejas1510 Hey, Can I work on this issue?

@vedikaag99 im already half way now.. im working on it

@vedikaag99 im already half way now.. im working on it

@Tejas1510 is the issue still open

@Tejas1510 is the issue still open

NO

NO


[REQ] Option to toggle quiet mode

Acknowledgement of preliminary instructions

[X] I have read and acknowledged the preliminary instructions.

What idea do you have?
-quiet is cool, I want to launch with it on the website
https://github.com/pizzaboxer/bloxstrap/assets/159259392/4e79af8b-2913-4ba2-a714-23965917e040

I want to launch with it on the website

I would want to, but I can only imagine the amount of confusion this would cause for most people if I added this as a feature. I'll offer a solution just for you though:
Open the Registry Editor, go to HKEY_CURRENT_USER\SOFTWARE\Classes\roblox\, go to shell\open\command\, change the (Default) value from [...]Bloxstrap.exe" %1 to [...]Bloxstrap.exe" -quiet %1. Do the same for HKEY_CURRENT_USER\SOFTWARE\Classes\roblox-player\. You can easily change this back if you want to.


scrcpy fixes my phone's refresh rate to 60

Environment

OS: macOS 12.6
scrcpy version: 2.0
installation method: brew
device model: samsung z fold4
Android version: 12

Describe the bug
When I launch scrcpy and then close it, my my phone's refresh rate is fixed to 60, and only reboot can bring it back to 120.

Weird.
It should not have any impact, but could you test with this change?
diff --git a/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java b/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java
index 528cd3279..6e4d1b32b 100644
--- a/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java
+++ b/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java
@@ -225,7 +225,7 @@ public class ScreenEncoder implements Device.RotationListener {
         format.setString(MediaFormat.KEY_MIME, videoMimeType);
         format.setInteger(MediaFormat.KEY_BIT_RATE, bitRate);
         // must be present to configure the encoder, but does not impact the actual frame rate, which is variable
-        format.setInteger(MediaFormat.KEY_FRAME_RATE, 60);
+        format.setInteger(MediaFormat.KEY_FRAME_RATE, 120);
         format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
         format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, DEFAULT_I_FRAME_INTERVAL);
         // display the very first frame, and recover from bad quality when no new frames

How do you observe that it is 60 or 120 in practice?

I open the "Show refresh rate" in "Developer options".

This doesn't seem to be an inevitable problem, I just can't reproduce it after rebooting the phone.

I've also noticed this recently and +1 that a reboot of the device "fixes it". Other things to note is that the refresh rate appears capped even after USB is disconnected.

Same issue here on the same device model (Galaxy Z Fold 4). I also have my phone refresh rate at adaptive normally


Add GraphQL APIs to request forwarder sessions

The PR implements:

A forwarderSession GraphQL query that can be used by clients to inspect the status of a device → Forwarder session, and know whether the session is ready to be accessed and it is closed.
A requestForwarderSession mutation to allow clients to request a device → Forwarder session for a specific deviceId.

To support the request of a forwarder session, the backend does the following:

It checks whether the device is online. If not, an error is returned.
It queries the existing forwarder sessions for the device.

If there is a session that is not :disconnected, i.e. it's either connected or re-connecting, then the backend returns the details about that session.
If there is no available session, it generates a new session token and sends a request to the device asking to establish that session. It then returns the details about that session.

With this approach, any existing forwarder sessions is reused whenever possible, and devices are not forced to establish a high number of simultaneous connections.
The backend assumes that there is a single instance of the cloud Forwarder, and it expects to be configured with the host, port and protocol relative to forwarder's instance. The configuration is supplied through environment variables.
Closes #445, #446

Should the :remote_terminal capability be removed from the device capabilities list when :edgehog_forwarder is disabled?
E.g. device has required interfaces for :remote_terminal capability in introspection, but backend has unconfigured EDGEHOG_FORWARDER_HOSTNAME.


unused that must be used

Silence the following warning in the wasm audio worklet example

unused Promise that must be used
#[warn(unused_must_use)] on by default

Can this perhaps use drop or something else more idiomatic than an attribute?

Thank you, I addressed the issue by alexcrichton and merged it.


Module 1.4 Assignment

Requested change:

👋 Hi @pixeline, in case you'd like to try it again, the goal for 1.4 is to go to http://git-school.github.io/visualizing-git/ and to re-create the image that Eric has created here: https://github.com/github-campus-advisors/Campus-Advisor-Training/blob/master/Module 1/Module 1.4 Assignment.md

Hi @arelia it's not at all what my version of the assignment asks, but i can do it, no problem. Will update the issue when it is done.

Hi @arelia it's done!


Terminal window doesn't have a scrollbar

VSCode Version:1.21
OS Version:Windows 10

Steps to Reproduce:

Open integrated terminal
Type enough to make it scroll

Duplicate of https://github.com/Microsoft/vscode/issues/6602


How to specify types for nested Maybes in generated query types?

(This is basically the same as https://github.com/dotansimha/graphql-code-generator/issues/713#issuecomment-474884827)
When accessing nested generated query types I'm not sure how to specify types wrapped behind Maybe. Per  the comment in ^, the suggested solution was nested type access a la MyType['fieldA']['fieldB'] but this doesn't seem to work for Maybe.
I know in Haskell / other typed functional langs they usually use lenses / optics (particularly prisms) to get around this problem. Is there an existing solution for this in graphql-code-generator or is it on the roadmap?
Thanks!

@jdwolk How does Maybe affect this? Could you explain it more with an example? Maybe a reproduction with codesandbox?

It works:

But this is not:

It is a generated types:
export type FieldsFormQuery = { __typename: 'Query' } & {
  fields: Types.Maybe<
    { __typename: 'FieldsConnection' } & {
      nodes: Array<
        { __typename: 'Field' } & Pick<
          Types.Field,
          'id' | 'handbookId' | 'scope' | 'name' | 'type' | 'required' | 'meta'
        >
      >
    }
  >
}

Thanks for coming up w/ the example @testarossaaaaa :pray:
So is the answer just "use NonNullable everywhere you need to specify types that might be hidden behind Maybe?
If so that seems sort disingenuous since, well...it's Maybe so it might actually be null (depending on how you define Maybe - looks like graphql-code-generator defines it in terms of null)

@jdwolk You can use fragments to have seperate types or avoidOptionals setting to get rid of Maybe.

Thanks for the suggestions @ardatan, I'll take a look at them and see if they work

Looking at avoidOptionals, it doesn't solve my problem because the underlying values are still Maybes. Even though TS doesn't treat the values as optionals you still have to "go through" the Maybe somehow to get to the actual type.
Looking into using more fine-grained fragments next.

OK so here's the example I'm working with. I also set preResolveTypes: true in codegen.yml.
Generated types:

And here's the code:
import React from "react";
import gql from "graphql-tag";
import {
  DogsList_DogFragment,
  DogsList_PersonFragment,
  usePetsIndex_PersonQuery,
} from "../types/graphql";
import { oc } from "ts-optchain";

// This gets pulled out _just_ to make DogsList_DogFragment
const DOGS_LIST__DOG = gql`
  fragment DogsList_Dog on Dog {
    id
    name
    breed {
      id
      name
    }
  }
`;

const DOGS_LIST__PERSON = gql`
  fragment DogsList_Person on Person {
    dogs {
      ...DogsList_Dog
    }
  }
`;

gql`
  query PetsIndex_Person($personId: ID!) {
    person(id: $personId) {
      id
      name
      ...DogsList_Person
    }
  }
`;

///////////////////////////
// interface IDogsListProps {
//   dogs: Array<DogsList_PersonFragment["dogs"][0]>;
// }
// This fails because Maybe doesn't have a [0] property, i.e. the
// structure of the generated type of the "dogs" key on DogsList_PersonFragment is
// Maybe<Array<{ __typename?: "Dog" } & DogsList_DogFragment>>
///////////////////////////

///////////////////////////
// interface IDogsListProps {
//   dogs: Array<NonNullable<DogsList_PersonFragment["dogs"]>[0]>;
// }
// This _works_ but it's not good because:
// 1. It's really ugly, i.e. you need to tell it how to drill down into the
//    thing you care about from the query-level type
// 2. It's even uglier in nested cases
// 3. If you use it everywhere then the type is lying
//   * We're basically telling the type system that we know more than it does,
//     i.e. “this value which might not exist will always be present” when, in fact,
//     it sometimes won't.
///////////////////////////

///////////////////////////
interface IDogsListProps {
  dogs: Array<DogsList_DogFragment>;
}
// This looks nice but it's a hack - we needed to pull out the DogsList_Dog
// fragment for no other reason than to make it "prettier" than ^
///////////////////////////

const DogsList: React.SFC<IDogsListProps> = ({ dogs }) => {
  return (
    <>

Dogs

      {dogs.map((dog, i) => (

            Name

{dog.name}

      ))}
    </>
  );
};

const PetsIndex: React.SFC = () => {
  const personQuery = usePetsIndex_PersonQuery({
    variables: { personId: "42" },
  });
  const person = oc(personQuery).data.person;

  return (

Pets

      <DogsList dogs={person.dogs([])} />

  );
};

export default PetsIndex;

This works (i.e. now we only have to deal with the Maybe at the value level, not really at the type level) but it's really non-ideal. I had to create a fragment just to get a type to directly reference dogs without having to "drill down" the types from DogsList_PersonFragment.
Is there anything in the works or some other config option to auto-generate these types without needing a fragment to hack around things?

Currently that's not possible to generate types for each nested field. We used to have this feature but it didn't work well because of the duplicate names etc.
I'm sorry for misleading about avoidOptionals. There is another option called maybeValue so you can configure the value of Maybe. In your case, you can just have;
maybeValue: T

instead of T | null which is default value.

Don't think that will work in my case unless I'm misunderstanding something. Encoding Maybe like that doesn't really match up w/ reality, ie it's saying you'll always get the underlying T

I'm also having this exact same issue, where it's outputting Array<Maybe<Post>>, which means it can be a null object within the array, even though the GraphQL Resolver will never return null in the array.
Any assistance in this would be greatly appreciated.

@ardatan what do you think?

I do think it makes sense to provide a way to export nested types – each Pick<T, 'field1' | 'field2'> variation of a schema type ideally. That way you don't have to do any tricky typescript magic to reach into nested Maybe types, or mess sacrifice having the most accurate types for your schema (I want null types for nullable parts of the schema!)
I think NonNullable is a workaround, but may lead to a lot of excessive boilerplate. What do you think?

@mshwery I agree, but from our point of view, it will be impossible to maintain, and have a stable output. You can use typescript-compatibility (with strict: true) to get those intermediate types automatically generated.

is there any other solution to this now?


<IP_ADDRESS> LAB: Prime numbers - how to find them

Objectives
familiarizing the student with classic notions and algorithms;
improving the student's skills in defining and using functions.

Scenario
A natural number is prime if it is greater than 1 and has no divisors other than 1 and itself.
Complicated? Not at all. For example, 8 isn't a prime number, as you can divide it by 2 and 4 (we can't use divisors equal to 1 and 8, as the definition prohibits this).
On the other hand, 7 is a prime number, as we can't find any legal divisors for it.
Your task is to write a function checking whether a number is prime or not.
The function:
is called is_prime;
takes one argument (the value to check)
returns True if the argument is a prime number, and False otherwise.

Hint: try to divide the argument by all subsequent values (starting from 2) and check the remainder - if it's zero, your number cannot be a prime; think carefully about when you should stop the process.
If you need to know the square root of any value, you can utilize the ** operator. Remember: the square root of x is the same as x0.5
Complete the code in the editor.
Run your code and check whether your output is the same as ours.
Expected output
2 3 5 7 11 13 17 19

def is_prime(num):
#
# Write your code here.
#

for i in range(1, 20):
	if is_prime(i + 1):
			print(i + 1, end=" ")
print()


Won't log in

Theme loads fine, comes up with my user (there's only my user on this system), password field appears fine. Password is entered correctly. Hitting 'Enter' on the keyboard results in the waiting/loading animation but then nothing else happens. Re-entering the password and/or pressing 'Enter' again results in another animation appearing above the first.
I have the same problem with this theme: https://github.com/omgmog/lightdm-webkit-google
The Material theme (https://github.com/artur9010/lightdm-webkit-material) works fine.
OS: Arch Linux
Kernel: x86_64 Linux 4.3.3-2-ARCH
Shell: bash 4.3.42
Resolution: 1920x1200
WM: OpenBox
DE: LXQt
WM Theme: Numix-ArchBlue
GTK Theme: Numix-ArchBlue [GTK2/3]
Icon Theme: Menda-Circle
Font: Noto Sans 10
CPU: Intel Core2 Quad CPU Q6600 @ 2.4GHz
GPU: GeForce GTX 650 Ti
RAM: 703MiB / 6979MiB

Ok, after some troubleshooting, I found that this behaviour was occurring on all themes except the Material one.
I was able to fix it by editing /etc/lightdm/lightdm.conf and changing "user-session" from "default" to "lxqt" so it reads user-session=lxqt
Obviously, for anyone else, they'll need to change "user-session" to whatever desktop (or window manager in the case of things like OpenBox) they use.


fix(mdbx): properly convert unknown error codes

Adds some docs for some error types
Switches the Error::Other(u32) with Error::Other(i32) since MDBX uses a signed integer for their error codes. Without this we get a hard-to-lookup error code (i.e. you have to convert it to a signed integer before looking it up)

Codecov Report

Merging #510 (d157cc5) into main (bffc829) will increase coverage by 0.09%.
The diff coverage is 55.55%.

@@            Coverage Diff             @@
##             main     #510      +/-   ##
==========================================
+ Coverage   73.32%   73.41%   +0.09%
==========================================
  Files         241      241
  Lines       24491    24496       +5
==========================================
+ Hits        17958    17984      +26
+ Misses       6533     6512      -21

Impacted Files
Coverage Δ

crates/storage/libmdbx-rs/src/error.rs
47.25% <55.55%> (+3.06%)
:arrow_up:

crates/net/network/src/session/config.rs
80.00% <0.00%> (-3.00%)
:arrow_down:

crates/stages/src/stages/bodies.rs
93.19% <0.00%> (+0.37%)
:arrow_up:

crates/transaction-pool/src/pool/txpool.rs
58.73% <0.00%> (+0.52%)
:arrow_up:

crates/transaction-pool/src/test_util/mock.rs
60.37% <0.00%> (+6.66%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Morris_Inorder_Traversal_of_a_Binary_tree.cpp

Problem Statement: Write a program for Morris Inorder Traversal of a Binary Tree.
Input:
1
2   3
4   5
6
Output: Inorder Traversal of this binary tree will be:- 4,2,5,6,1,3
Signed-off-by: Pranav<EMAIL_ADDRESS>

pls resolve the conflicts


v0.20.0 is released as stable instead of beta

Describe the bug
Im migrating to ormar and I was trying to run the examples from the docs but I was getting AttributeError: 'ModelMetaclass' object has no attribute 'ormar_config' as well as AttributeError: 'MyModel' object has no attribute 'ormar_config'. I was unable to figure out what is the problem so I tried lowering the version of ormar which fixed the issue.
I went to GH and I saw that v.0.20.0 was released as a stable version instead of beta.
To Reproduce
Steps to reproduce the behavior:
1. pip install ormar or pip install --upgrade ormar

Try to define you model like this
class Example(ormar.Model):
    ormar_config = base_ormar_config.copy(tablename="example")
    ...
    # other fields

Yeah this should definitely be in the beta channel.

Hmm I thought it was released as beta, at least that's what I checked during creating of the release, will  try to check it out tomorrow

the 0.20.1 is now released as normal release


Fix/muting the output after issuing mapdl.mute=true

Since the goal of mapdl.mute is to suppress any kind of output, I believe there should be not empty string returned from a muted function. It should return None.
Closes #747
Fix #747

I agree with this. We should modify the docstring as well if we're going this route.


chore(master): release 1.1.184

:robot: I have created a release beep boop
1.1.184 (2023-09-16)
Miscellaneous

deps: update dependency @types/node to v18.17.17 (6c398e1)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/keywind/releases/tag/v1.1.184 :sunflower:


Runtime Error for 'pts = torch.rand((10,1000,3))' case

RuntimeError                              Traceback (most recent call last)
 in <cell line: 69>()
67 vkm = VecKM()
68 pts = torch.rand((10,1000,3))
---> 69 print(vkm(pts).shape) # it will be Complex(10,1000,256)
70 pts = torch.rand((1000,3))
71 print(vkm(pts).shape) # it will be Complex(1000, 256)
2 frames
 in forward(self, pts)
57             eB.transpose(-1,-2) @ eA                                            # Real(..., 2p, 2d)
58         )                                                                       # Real(..., n, 2d)
---> 59         G = torch.complex(
60             G[:,:self.d], G[:,self.d:]
61         ) / torch.complex(
RuntimeError: The size of tensor a (256) must match the size of tensor b (1744) at non-singleton dimension 1

Thanks for letting me know about that. I made a mistake when I write the readme file.
Replacing G[:, :self.d], G[:, self.d:] with G[..., :self.d], G[..., self.d:] shall work.
The readme file has been updated.

Thanks for the quick fix. It is working now. Overall, outstanding work.


Ill-typed tactics running

Repro:
module PatternMatching

open FStar.Tactics

let example (p1 p2: Type0) =
  assert_by_tactic (p1 ==> (p1 ==> p2) ==> p2)
                   (_ <-- implies_intros;
                    match [1] with
                    | [] -> idtac)

Also causes "not an embedded string" errors when a string is built using an incomplete pattern-matching

Making a note.
To fix this:

don't use failwiths for unembedding, and allow them to return None (and get stuck).
check why we're not aborting due to tactic ill-typing, again.

OK, this will now not run due to ill-typing, and I'm more convinced that nothing will (unless of course we're in lax mode or admitting queries). And if it did run, you would get the following:
/home/guido/r/fstar/ulib/FStar.Tactics.Effect.fst(19,13-25,47): (Warning) Not an embedded tactic result: (match
    reify ((let Prims.Nil #uu___682578 = Prims.Cons 1 Prims.Nil in FStar.Tactics.Derived.idtac) ())
      "(alien:tactics.embed_proofstate)"
  with
  | FStar.Tactics.Result.Success #uu___572402 (#uu___572398, #uu___572399, #a, #q) ->
    (let () = FStar.Tactics.Types.tracepoint q in
      reify (FStar.Tactics.Effect.return a ()) (FStar.Tactics.Types.decr_depth q))
    <:
    FStar.Tactics.Result.__result Prims.unit
  | FStar.Tactics.Result.Failed #uu___573030 (#uu___573026, #uu___573027, #msg, #q) ->
    FStar.Tactics.Result.Failed (FStar.Pervasives.Native.Mktuple2 msg q))
<:
FStar.Tactics.Result.__result Prims.unit
./P.fst(5,0-10,34): (Error) Tactic got stuck! Please file a bug report with a minimal reproduction of this issue.
(match
    reify ((let Prims.Nil #uu___682578 = Prims.Cons 1 Prims.Nil in FStar.Tactics.Derived.idtac) ())
      "(alien:tactics.embed_proofstate)"
  with
  | FStar.Tactics.Result.Success #uu___572402 (#uu___572398, #uu___572399, #a, #q) ->
    (let () = FStar.Tactics.Types.tracepoint q in
      reify (FStar.Tactics.Effect.return a ()) (FStar.Tactics.Types.decr_depth q))
    <:
    FStar.Tactics.Result.__result Prims.unit
  | FStar.Tactics.Result.Failed #uu___573030 (#uu___573026, #uu___573027, #msg, #q) ->
    FStar.Tactics.Result.Failed (FStar.Pervasives.Native.Mktuple2 msg q))
<:
FStar.Tactics.Result.__result Prims.unit
1 error was reported (see above)

In this case the warning and the error exactly coincide, so it looks redundant, but it need not be so given that we may fail to unembed only subterms.
Going to master when CI allows.
(commits 77083db027c02d12ab9712acf43a9d172cccf239 and ab548e5f575fb8f16243e45b52e1feb4750abff6)

Thanks! So now the pattern match will be rejected, right?
I've been thinking about this a little, and I think we should distinguish between two kind of errors in tactics: hard errors, which stop the tactic execution, and tactic failures, which can be captured by trytac.  An incorrect pattern matching could raise a hard error, one that's not catch-able.
In Coq, error catching in tactics is a major source of confusion. Coq's tactic engine backtracks across all sort of errors, including references to undefined identifiers. It would be nice to not have the same shortcomings :)

There's two available contexts, the original one where the tactic started running, and the goal one. But the goal could possibly not exist, and it'd be nice to support normalizing outside of a goal. I'm thinking of having
norm_term_env : env -> term -> tactic unit // builtin

norm_term : term -> tactic unit = fun t ->
  e <-- cur_env;
  norm_term_env e t

Right, that makes sense. But how do you access the environment in which the tactic started running ?

It's in the proofstate, not accesible from userland currently, but easy enough to do.

Ugh, I mixed up the issues.. I meant to comment on #1299.

Maybe I should actually answer to your previous comment :).
In our case, a failed pattern match gets the tactic stuck, and that's not a recoverable failure. Recoverable failures are tactic computations that run just OK and end up with Failed(msg, ps), and can thus only be introduced by fail and some builtins.
So failed matches are a hard error, but a user cannot introduce a hard error. Maybe we want an extra constructor Aborted for result, so a user can signal a non-recoverable failure. (Unsure if any builtin should hard fail: one can always make a hard variant).
WDYT?

That sounds perfect. I don't think users should be able to introduce unrecoverable errors.
But it'd be nice to have a finer-grained system, somehow.  Like in C#/Java/... you can catch families of exceptions. Coq has a related notion of failing more than one level. We could have a notion of errors that backtrack and errors that don't backtrack (I'd like the tactic monad to raise proper exceptions rather than strings)

Right. What I meant to emphasize is that errors are nice for control flow sometimes, and in Coq's model they get swallowed by the backtracking.

I consider this fixed, so closing and moving to #1304 for the error handling.

Sadly, I need to disable tactic re-typechecking (to unblock like 5 other issues) which causes this to regress. Reopening, and I'll try to find a solution that doesn't involve re-typechecking as time permits.

I restored this after fixing some other bugs.


[SWN] 0.1.7 Roll template updates

Fix issue #2564 [SWN] Saving Throw Template UI Alignment Error
Revamped and made consistent all roll templates for Saves, Weapon Attacks, Basic Attacks, Skills
Initiative now using roll templates
Removed unused Morale roll template

The author field and roll20 account id field in the sheet.json should just be a string. I've already fixed this for you.

Thanks, @pjbehr87!


Update cipher suites for July 2022 (OkHttp 5)

We most recently updated the cipher suites in February 2019. We should update 'em again in February 2020.
When that's done, please open another tracking bug to update cipher suites in February 2021!
https://tinyurl.com/okhttp-cipher-suites

@swankjesse Any changes here in scope for next major version bump?

Worth surveying the field to see what‘s new in the JDK, Firefox, Chrome, etc.

New source format https://www.iana.org/assignments/tls-parameters/tls-parameters-4.csv

Bumped in https://github.com/square/okhttp/pull/7452


v7.0 concept: Return opinopnated rules, introduce basic.css and opinionate.css

This concept of 7.0 if @necolas insists on its and return initial vision of the project for backward compatibility.
P.S. If you could make a vote, then I would vote for strict version.
see #664

See https://github.com/necolas/normalize.css/pull/673#issuecomment-298708828


feat(consumer group): allow assigning plugins to consumer groups

What this PR does / why we need it:
It allows specifying plugins for consumer groups via annotation, a subset of plugins is supported this way by Gateway https://github.com/Kong/kong-ee/pull/5291. Adjust integration test - introduce proper testing scenario (it checks actual behavior now).

Which issue this PR fixes:
This is part of https://github.com/Kong/kubernetes-ingress-controller/issues/3728

Special notes for your reviewer:

it imports deck directly from main branch to include unreleased yet changes introduced in https://github.com/Kong/deck/pull/959
integration test TestConsumerGroup is always skipped for nonenterprise deployments and enterprise ones that use Kong Gateway < 3.4 (unreleased yet). Hence TestConsumerGroup for this PR is skipped because a used image is 3.3 see:
- integration-tests / enterprise-postgres
- integration-tests / enterprise-dbless
But you can check that integration test TestConsumerGroup passes (is not skipped) by inspecting the result of a run of on-demand run integration tests (triggered with the label ci/run-nightly). They uses latest Kong Gateway image - https://github.com/Kong/kubernetes-ingress-controller/pull/4452#issuecomment-1670809995:
- integration-tests-enterprise-postgres-nightly
- integration-tests-enterprise-dbless-nightly

PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[x] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

@programmer04 please re-run make lint to pass the linting check.


Fix SQLite Resource Leaks (Round 2)

Repeating and extending the changes from Pull 4, as they appear to have been lost in subsequent merges.
As stated in the earlier pull:

As described in the SQLite3 documentation for Prepared Statement Object and Destroy A Prepared Statement Object, to avoid resource leaks, each prepared statement object should be finalized once it is no longer needed. Without this, the database will not be able to be closed.
Here, I provide command line output as to the success or failure of the database closure in SMPC, and insert the necessary sqlite3_finalize() calls to prevent resource leaks and allow for successful database closure.

thanks!


New level UX for Vega

Feature
New UX for Ozaria! This swaps out the top left part of the screen with the new Vega view.
A lot of the restructuring work happened in https://github.com/codecombat/codecombat/pull/5437, so this branch is based on that branch until it is merged.
The main changes are:

Replacing LevelDialogueView with a cleaner, simpler Vega version
Styling and structure changes
Simplified event flow

Questions and remaining work
There are remaining open questions regarding the behaviour of the view when there is no content (now I just hide it), and how to adjust the play view as it is now underneath the Vega view. The diamond cut corners were tricky to figure out so I punted on them this time around. Other than that, this should be feature complete given the spec.
This branch is based on levelux-goals but will be rebased on master when that ships.

@AndrewJakubowicz interesting! I believe this is because those dialogues have very specific unlock terms, which the continue button would not be able to override. The dialogue for Ozaria should not have these requirements that block the progress of text, which would let text progress step by step like it does for dungeons-of-kithgard or crushing-it as examples.


flex-col and flex-col-reverse classes using wrap instead of nowrap value in flex-flow property

The flex-col and flex-col-reverse classes were intended to supplement the flex-size-* classes when building layouts. These 2 classes are currently using the wrap value instead of nowrap. The intended behaviour is to cause the content to be constrained to the flex-size-* class when applied.

Fixed.


Only a portion of styles from _front.scss are compiling.

How can this bug be reproduced?

See the _front.scss code
Only a portion of it is being compiled
Result? Full styles aren't being compiled and ultimately loaded

What did you expect to happen?
For all the styles to be loaded and my website to display properly
What happened instead?
Not all the styles were loaded
Please List the Following:

OS & version: Mac - OS X Yosemite
Node version (node -v) [Node v4+ is required] : v4.4.1
Foundation version (bower list) : Not sure

Include Test Case (if applicable):
Give us a link to a CodePen or JSFiddle that recreates the issue.
http://codepen.io/jdfillmore/pen/wWgyBM
Summary
I'm using the _front.scss file to style my site. Only some of the styles from _front.scss are being compiled out. Gulp is giving no errors when compiling.
Image of exactly what's going on:

Hmm. I would expect gulp to throw an error if there was something wrong in your _front.scss file. Does the Chrome Devtools display any of the styles you're missing if you inspect the element?

@olefredrik I know right?
Doesn't look like it, see the screenshot below:

If you lint your CSS, are any errors present, what about your HTML?

@LukePettway @olefredrik I ended up splitting up the scss files, and it worked. No idea why but it's working now!


Offer Letter sent as spam

Offer letter sent by SMTP shouldn't go into receiver's spam but into the inbox.

Unable to reproduce this issue. Will reopen when this issue is faced again

Unable to reproduce this issue. Will reopen when this issue is faced again


Un-ignore .tfstate and lock.json files for Terraform

State file(s) (.tfstate) and plugin lock file(s) (lock.json) should be kept.
Links to documentation supporting these rule changes:

For state file(s), there are no mention in the official documentation which says that .tfstate files should be kept in source control. However, if the .tfstate file is lost, then it's a hassle to import them again. Essentially, the .tfstate file should not be lost, and thus it should be in source control:

Recovering Terraform State
Terraform state file missing

For the plugin lock file, there are also no mention of this in the official documentation, but the lock file is important to ensure everyone working on the project is using the exact same plugins.

Not being very familiar with Terraform, and given this seems to be a big change, I'd love some feedback from people who have contributed and reviewed this template in the past: @nguyendviet @alastairtree @mastertinner @jkodroff @apparentlymart

In the Terraform.gitignore file, there's no lock.json or *lock.json. In case you referred to the package-lock.json, from npm docs:

One key detail about package-lock.json is that it cannot be published, and it will be ignored if found in any place other than the toplevel package.

Thanks @nguyendviet for your explanation.

Regarding the state file, you are correct and *.tfstate files should be ignored. No sensitive data should ever risk being committed into source control. I think I got the impression that the *.tfstate file should be committed from Learn Terraform / Gettings Started - AWS / Build Infrastructure:

Terraform also wrote some data into the terraform.tfstate file. This state file is extremely important; it keeps track of the IDs of created resources so that Terraform knows what it is managing. This file must be saved and distributed to anyone who might run Terraform.

My assumption was that because it's important and 'should be saved and distributed', that committing it to Git was the natural option. Obviously, remote state is the solution, but perhaps the guide should be more clear that the *.tfstate files should not be committed to source version control.

Regarding the lock.json file. I am referring to the lock.json inside the .terraform working directory.
$ tree .terraform/
.terraform/
└── plugins
    └── linux_amd64
        └── lock.json

2 directories, 1 file

Should that be committed into source control to ensure everyone working on the same project uses the exact same version of the plugin?

Regarding the lock.json file. I am referring to the lock.json inside the .terraform working directory.
$ tree .terraform/
.terraform/
└── plugins
    └── linux_amd64
        └── lock.json

2 directories, 1 file

Should that be committed into source control to ensure everyone working on the same project uses the exact same version of the plugin?

The folder .terraform is the result of the command:
$ terraform init

as described in HashiCorp's docs.
You're supposed to run it first before running other terraform commands.

The terraform init command is used to initialize a working directory containing Terraform configuration files. This is the first command that should be run after writing a new Terraform configuration or cloning an existing one from version control.

Note that the lock.json is inside a folder starts with a . meaning it's not supposed to be public (like folder .git).
If you want the latest version of the plugins, pass -upgrade=true in.
For the issue if other team members need the same version, from HashiCorp's doc:

For teams that use Terraform as a key part of a change management and deployment pipeline, it can be desirable to orchestrate Terraform runs in some sort of automation in order to ensure consistency between runs, and provide other interesting features such as integration with version control hooks.

You can read more here.

@nguyendviet Yes, I agree that running Terraform using automation is ideal, but for teams who do not follow that workflow, having the lock file provides an alternative way to keep plugin versions in sync with each other.
I do not agree with the point you make about files inside directories that starts with a .. They are hidden directories, yes, but it does not mean they should always be excluded from version control. .vscode, for instance, could be added to version control, although not required (same for lock.json)

@d4nyll

it's not supposed to be public

It doesn't mean it always has to be. Obviously you can push hidden folders up. For your team's specific use case, I can't comment on that. Maybe revealing the lock.json file will solve the problem and probably won't cause any issue.
However, making a template that matches most use cases (it's the purpose of all the .gitignore templates here) with exposed .terraform/.../lock.json, I personally don't think a good idea.
@shiftkey It's up to you.

Hi all! Sorry for the slow response here. I'm on the Terraform Core team at HashiCorp.
Thanks for raising these questions, @d4nyll! I just wanted to confirm that indeed neither of these files are intended to go into version control:

terraform.tfstate is intended for early experimentation and local development/testing of a reusable module. As others have noted, any long-lived infrastructure where the state must be shared between multiple people ought to be using Remote State. Git is not a suitable mechanism for sharing state because it does not have a locking mechanism Terraform can use to ensure that multiple Terraform actions cannot run concurrently, which is important to ensure that divergent state snapshots are not created.

The lock.json file is an implementation detail of how Terraform tracks metadata about the files in .terraform/plugins and is not intended to be kept under version control. The current mechanism for pinning plugin dependencies is to use provider version constraints to control what terraform init will install.
We are intending to revisit this in a future release and very likely will introduce a lock-like file intended to be placed under version control, but it won't be the lock.json file you see already because the design of that is not suitable for reuse across separate working directories. For now, using exact version constraints via the existing mechanism in your root module is the best way to ensure consistency of plugin selections.

With all of this said, I'd recommend keeping the current ignore defaults in place. For those with unusual workflows, they can presumably customize .gitignore to their needs, but what is tracked in this repository already is a good set of defaults as far as I'm concerned.

@apparentlymart Fantastic response! Thank you for taking your time to explain! A lock-like file would be great, but using exact versions in the configuration should suffice for now.
I will close this now. Also thank you @nguyendviet for the prior discussion, very much appreciated :+1:


PhotoSphere Support

Skyboxes should have three modes,

shader,
photosphere,
skybox

will add (cube based) skybox support later


Fail conversion to AnnData if SCE object doesn't have enough cells

Since we recently discovered you need at least 2 cells to create an AnnData object using zellkonverter, I thought it would be a good idea to have a check for the number of cells in sce_to_anndata. Here, if an object has < 2 cells, then an error is produced.

(Also, the saddest error. I almost want it to say: "I know we said single cell experiment, but not like that!")

I got a good laugh out of this, thank you 😂


Please add Mi Smart Natural Gas Detector

Please add Mi Smart Natural Gas Detector
What do I need to offer？

I will add it in the next release. I don't ask anything, but if you want to donate you are more than welcome. You can find my Paypal link in the readme

I will add it in the next release. I don't ask anything, but if you want to donate you are more than welcome. You can find my Paypal link in the readme

@Hi-hass I can't find this sensor in the supported devices list here https://www.zigbee2mqtt.io/information/supported_devices.html
Could you point me to the exact model?

@Hi-hass I can't find this sensor in the supported devices list here https://www.zigbee2mqtt.io/information/supported_devices.html
Could you point me to the exact model?

I think I found it https://www.zigbee2mqtt.io/devices/JTQJ-BF-01LM_BW.html

I think I found it https://www.zigbee2mqtt.io/devices/JTQJ-BF-01LM_BW.html

Solved in v2.0.0

Solved in v2.0.0


Added banner_example to samples

Description
Added banner_example project to the samples folder.
banner_example provides an "adaptive" sample that demonstrates loading an ad based on the container width, and reloads when the width changes such as during orientation changes.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

This could be done in a future PR, but I think it'd be good to add a github workflow that checks whether banner_example builds for ios and android.


slight refactoring for performance reasons

@CodiumAI-Agent /describe

Title
slight refactoring for performance reasons

User description
@CodiumAI-Agent /describe

PR Type
enhancement, bug_fix

Description

Enhanced benchmarking in Benchmarks.cs by adding new methods ArrayViaNew and SharedArrayPool and modifying Params attribute values.
Refactored QuickCompare method in StringBuilderExtensions.cs to improve efficiency and correctness in character comparison.
Optimized WithoutText method in SyntaxNodeExtensions.cs by adding an early return for empty texts arrays.

Changes walkthrough 📝
Relevant filesEnhancement

Benchmarks.csEnhance benchmarking with new methods and parameters

BenchmarkConsole/Benchmarks.cs
Added System.Buffers import.  Modified Params attribute values for benchmarking.  Introduced new benchmark methods ArrayViaNew and SharedArrayPool.

+15/-1

SyntaxNodeExtensions.csOptimize WithoutText method with early return

MiKo.Analyzer.Shared/Extensions/SyntaxNodeExtensions.cs
Added early return for empty texts array.  Simplified logic in WithoutText method.

+7/-1

Bug fix

StringBuilderExtensions.csRefactor QuickCompare logic for efficiency

MiKo.Analyzer.Shared/Extensions/StringBuilderExtensions.cs
Refactored QuickCompare method logic.  Improved handling of character comparison.  Adjusted logic for rented arrays.

+25/-22

💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information


Plugins are not working

Problem
I try to connect plugins for proxy and router layers.
When I put extra_config in a top of config, works only one my plugin - RouterLayer.
But my ProxyLayer plugin does not work.
And when I try to put extra_config into endpoints block, to get only selected requests, it does not work.
Configuration file
{
  "version": 2,
  "plugin": {
    "pattern": ".so",
    "folder": "plugins/"
  },
  "extra_config": {
    "github_com/devopsfaith/krakend-cors": {
      "allow_origins": [
        "*"
      ],
      "expose_headers": [
        "Content-Length"
      ],
      "max_age": "12h",
      "allow_methods": [
        "GET",
        "HEAD",
        "POST"
      ]
    },
    "github_com/devopsfaith/krakend-metrics": {
      "collection_time": "60s",
      "proxy_disabled": false,
      "router_disabled": false,
      "backend_disabled": false,
      "endpoint_disabled": false,
      "listen_address": ":8090"
    },
    "extra_config": {
      "github_com/devopsfaith/krakend-gologging": {
        "level":  "DEBUG",
        "prefix": "[KRAKEND]",
        "syslog": false,
        "stdout": true
      }
    }
  },
  "timeout": "3000ms",
  "cache_ttl": "300s",
  "output_encoding": "json",
  "name": "test service",
  "port": 8080,
  "endpoints": [
    {
      "endpoint": "/token",
      "method": "GET",
      "output_encoding": "json",
      "concurrent_calls": 1,
      "headers_to_pass": [
        "X-Friend-User"
      ],
      "extra_config": {
        "github_com/devopsfaith/krakend/transport/http/server/handler": {
          "name": "serverPlugin"
        }
      },
      "backend": [
        {
          "url_pattern": "/posts",
          "encoding": "json",
          "sd": "static",
          "method": "GET",
          "disable_host_sanitize": false,
          "is_collection": true,
          "target": "",
          "host": [
            "https://jsonplaceholder.typicode.com"
          ]
        }
      ]
    },
    {
      "endpoint": "/token/{post_id}",
      "method": "GET",
      "output_encoding": "json",
      "concurrent_calls": 1,
      "headers_to_pass": [
        "X-Friend-User"
      ],
      "extra_config": {
        "github_com/devopsfaith/krakend/transport/http/client/handler": {
          "name": "clientPlugin"
        }
      },
      "backend": [
        {
          "url_pattern": "/posts/{post_id}",
          "encoding": "json",
          "sd": "static",
          "method": "GET",
          "disable_host_sanitize": false,
          "is_collection": false,
          "target": "",
          "host": [
            "https://jsonplaceholder.typicode.com"
          ]
        },
        {
          "url_pattern": "/posts/{post_id}/comments",
          "encoding": "json",
          "sd": "static",
          "method": "GET",
          "extra_config": {},
          "disable_host_sanitize": false,
          "is_collection": true,
          "target": "",
          "host": [
            "https://jsonplaceholder.typicode.com"
          ],
          "group": "last_posts"
        }
      ]
    }
  ]
}

ServerPlugin
package main

import (
	"context"
	"errors"
	"fmt"
	"net/http"
)

var HandlerRegisterer = registerer("serverPlugin")

type Message struct {
	Phone          int64   `json:"phone"`
	OrderId        string  `json:"order_id"`
	Amount         float32 `json:"amount"`
	Description    string  `json:"description"`
	MobileOperator string  `json:"mobile_operator"`
	Language       string  `json:"language"`
	TestMode       int8    `json:"testmode"`
}

type registerer string

func (r registerer) RegisterHandlers(f func(
	name string,
	handler func(context.Context, map[string]interface{}, http.Handler) (http.Handler, error),
)) {
	f(string(r), r.registerHandlers)
}

func (r registerer) registerHandlers(ctx context.Context, extra map[string]interface{}, handler http.Handler) (http.Handler, error) {
	name, ok := extra["name"].(string)
	if !ok {
		return nil, errors.New("wrong config")
	}
	if name != string(r) {
		return nil, fmt.Errorf("unknown register %s", name)
	}

	return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
		fmt.Fprintln(w, "serverPlugin")

		handler.ServeHTTP(w, req)
	}), nil
}

func init() {
	fmt.Println("serverPlugin handler plugin loaded!!!")
}

func main() {}

ClientPlugin
package main

import (
	"context"
	"errors"
	"fmt"
	"html"
	"net/http"
)

var ClientRegisterer = registerer("clientPlugin")

type registerer string

func (r registerer) RegisterClients(f func(
	name string,
	handler func(context.Context, map[string]interface{}) (http.Handler, error),
)) {
	f(string(r), r.registerClients)
}

func (r registerer) registerClients(ctx context.Context, extra map[string]interface{}) (http.Handler, error) {
	name, ok := extra["name"].(string)
	if !ok {
		return nil, errors.New("wrong config")
	}
	if name != string(r) {
		return nil, fmt.Errorf("unknown register %s", name)
	}

	return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {

		fmt.Fprintln(w, "clientPlugin")

		fmt.Fprintf(w, "Hello, %q", html.EscapeString(req.URL.Path))
	}), nil
}

func init() {
	fmt.Println("clientPlugin client plugin loaded!!!")
}

func main() {}

Commands used
I compiled plugins with commands:
go build  -buildmode=plugin -o serverPlugin.so serverPlugin.go
go build  -buildmode=plugin -o clientPlugin.so clientPlugin.go

And after start KrakenD with command
./krakend run -d -c<PHONE_NUMBER>009-krakend.json

Logs
Some logs
Parsing configuration file:<PHONE_NUMBER>009-krakend.json
2021/03/19 15:09:35  ERROR: [unable to create the gologging logger: getting the extra config for the krakend-gologging module]
2021/03/19 15:09:35  ERROR: [unable to create the GELF writer: getting the extra config for the krakend-gelf module]
2021/03/19 15:09:35  INFO: [Listening on port: 8080]
2021/03/19 15:09:35  DEBUG: [creating a new influxdb client]
2021/03/19 15:09:35  DEBUG: [no config for the influxdb client. Aborting]
2021/03/19 15:09:35  WARNING: [influxdb: unable to load custom config]
2021/03/19 15:09:35  WARNING: [opencensus: no extra config defined for the opencensus module]
2021/03/19 15:09:35  DEBUG: [no config for the bloomfilter]
2021/03/19 15:09:35  INFO: [registering usage stats for cluster ID '3G2gtFL/Et68NFvcZISfYok5SzRoNQtLgL4R2yoypv4=']
2021/03/19 15:09:35  WARNING: [bloomFilter: no config for the bloomfilter]
2021/03/19 15:09:35  WARNING: [no config present for the httpsecure module]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  DEBUG: [botdetector middleware:  no config defined for the module]
2021/03/19 15:09:35  DEBUG: [Debug enabled]
2021/03/19 15:09:35  DEBUG: [AMQP: https://jsonplaceholder.typicode.com: no amqp consumer defined]
2021/03/19 15:09:35  DEBUG: [AMQP: https://jsonplaceholder.typicode.com: no amqp producer defined]
2021/03/19 15:09:35  DEBUG: [pubsub: subscriber (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/subscriber not found in the extra config]
2021/03/19 15:09:35  DEBUG: [pubsub: publisher (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/publisher not found in the extra config]
2021/03/19 15:09:35  DEBUG: [http-request-executor: no extra config for backend /posts]
2021/03/19 15:09:35  DEBUG: [CEL: no extra config detected for backend /posts]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  DEBUG: [CEL: no extra config detected for pipe /token]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  INFO: [JOSE: signer disabled for the endpoint /token]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  INFO: [JOSE: validator disabled for the endpoint /token]
2021/03/19 15:09:35  DEBUG: [botdetector:  no config defined for the module]
2021/03/19 15:09:35  DEBUG: [AMQP: https://jsonplaceholder.typicode.com: no amqp consumer defined]
2021/03/19 15:09:35  DEBUG: [AMQP: https://jsonplaceholder.typicode.com: no amqp producer defined]
2021/03/19 15:09:35  DEBUG: [pubsub: subscriber (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/subscriber not found in the extra config]
2021/03/19 15:09:35  DEBUG: [pubsub: publisher (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/publisher not found in the extra config]
2021/03/19 15:09:35  DEBUG: [http-request-executor: no extra config for backend /posts/{{.Post_id}}]
2021/03/19 15:09:35  DEBUG: [CEL: no extra config detected for backend /posts/{{.Post_id}}]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  DEBUG: [AMQP: https://jsonplaceholder.typicode.com: no amqp consumer defined]
2021/03/19 15:09:35  DEBUG: [AMQP: https://jsonplaceholder.typicode.com: no amqp producer defined]
2021/03/19 15:09:35  DEBUG: [pubsub: subscriber (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/subscriber not found in the extra config]
2021/03/19 15:09:35  DEBUG: [pubsub: publisher (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/publisher not found in the extra config]
2021/03/19 15:09:35  DEBUG: [http-request-executor: no extra config for backend /posts/{{.Post_id}}/comments]
2021/03/19 15:09:35  DEBUG: [CEL: no extra config detected for backend /posts/{{.Post_id}}/comments]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  DEBUG: [CEL: no extra config detected for pipe /token/:post_id]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  INFO: [JOSE: signer disabled for the endpoint /token/:post_id]
2021/03/19 15:09:35  DEBUG: [lua: no extra config]
2021/03/19 15:09:35  INFO: [JOSE: validator disabled for the endpoint /token/:post_id]
2021/03/19 15:09:35  DEBUG: [botdetector:  no config defined for the module]
2021/03/19 15:09:35  DEBUG: [http-server-handler: no extra config]
[GIN] 2021/03/19 - 15:09:49 | 200 |  818.173914ms |             ::1 | GET      "/token"

Hi @dmitriy-dev,
For the handler plugins, you need to configure them in the extra_config of the root configuration with the right namespace.
Example:
{
    "version": 2,
    "port": 8080,
    "plugin": {
        "pattern": ".so",
        "folder": "./plugins/"
    },
    "extra_config": {
        "github_com/devopsfaith/krakend/transport/http/server/handler": {
            "name": [ "my-handler-plugin" ],
            "my-handler-plugin": {
                "my-config": {
                   ...
                }
            }
        }
    },

For client/executor plugins you need to set the extra_config in the backend section of an endpoint configuration with the right namespace.
Example:
...
    "endpoints": [
       {
            "endpoint": "/_foo",
            "backend": [
            {
                "host": [ "http://localhost:8080" ],
                "url_pattern": "/__debug/foo",
                "extra_config": {
                    "github.com/devopsfaith/krakend/transport/http/client/executor": {
                        "name": "my-client-plugin"
                    }
                }
            }
            ]
        },
...

handler

But handler plugins will handle all endpoints? Can I set handler only for one endpoint?
I tried to move my client handler and changed namespace
...
    {
      "endpoint": "/token/{post_id}",
      "method": "GET",
      "output_encoding": "json",
      "concurrent_calls": 1,
      "headers_to_pass": [
        "X-Friend-User"
      ],
      "extra_config": {
      },
      "backend": [
        {
          "url_pattern": "/posts/{post_id}",
          "encoding": "json",
          "sd": "static",
          "method": "GET",
          "disable_host_sanitize": false,
          "is_collection": false,
          "target": "",
          "host": [
            "https://jsonplaceholder.typicode.com"
          ]
        },
        {
          "url_pattern": "/posts/{post_id}/comments",
          "encoding": "json",
          "sd": "static",
          "method": "GET",
          "extra_config": {
            "github.com/devopsfaith/krakend/transport/http/client/executor": {
              "name": "clientPlugin"
            }
          },
          "disable_host_sanitize": false,
          "is_collection": true,
          "target": "",
          "host": [
            "https://jsonplaceholder.typicode.com"
          ],
          "group": "last_posts"
        }
      ]
    }
...

But still I don't know if it's work, because I can't handle anything. I tried to add logs and change body, but see no changes...
func (r registerer) registerClients(ctx context.Context, extra map[string]interface{}) (http.Handler, error) {
	name, ok := extra["name"].(string)
	if !ok {
		return nil, errors.New("wrong config")
	}
	if name != string(r) {
		return nil, fmt.Errorf("unknown register %s", name)
	}

	return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
		log, _ := logging.NewLogger("DEBUG", w, "server_plugin")

		log.Debug("serverPlugin handled request")
		req.Body = ioutil.NopCloser(strings.NewReader("new body"))
		req.ContentLength = int64(len(""))
	}), nil
}

You should not use the responseWriter as a logger, try with a simple fmt.Println .
The handler plugins will be processing of ALL the requests.
When KrakenD starts it will notify if the plugins is loaded or not, and how many:
Parsing configuration file: krakend.json
2021/03/19 11:40:41  ERROR: [unable to create the gologging logger: getting the extra config for the krakend-gologging module]
2021/03/19 11:40:41  ERROR: [unable to create the GELF writer: getting the extra config for the krakend-gelf module]
2021/03/19 11:40:41  INFO: [Listening on port: 8080]
krakend-client-plugin-example client plugin loaded!!!
krakend-handler-plugin-example server plugin loaded!!!
2021/03/19 11:40:41  INFO: [total http executor plugins loaded: 1]
2021/03/19 11:40:41  INFO: [total http handler plugins loaded: 1]
2021/03/19 11:40:41  DEBUG: [http-request-executor: injecting plugin krakend-client-plugin-example at /__debug/foo]
krakend-handler-plugin-example: plugin enabled!
2021/03/19 11:40:41  DEBUG: [http-server-handler: injecting plugin krakend-handler-plugin-example]

You should not use the responseWriter as a logger, try with a simple fmt.Println .
The handler plugins will be processing of ALL the requests.
When KrakenD starts it will notify if the plugins is loaded or not, and how many:
Parsing configuration file: krakend.json
2021/03/19 11:40:41  ERROR: [unable to create the gologging logger: getting the extra config for the krakend-gologging module]
2021/03/19 11:40:41  ERROR: [unable to create the GELF writer: getting the extra config for the krakend-gelf module]
2021/03/19 11:40:41  INFO: [Listening on port: 8080]
krakend-client-plugin-example client plugin loaded!!!
krakend-handler-plugin-example server plugin loaded!!!
2021/03/19 11:40:41  INFO: [total http executor plugins loaded: 1]
2021/03/19 11:40:41  INFO: [total http handler plugins loaded: 1]
2021/03/19 11:40:41  DEBUG: [http-request-executor: injecting plugin krakend-client-plugin-example at /__debug/foo]
krakend-handler-plugin-example: plugin enabled!
2021/03/19 11:40:41  DEBUG: [http-server-handler: injecting plugin krakend-handler-plugin-example]

Thank you so much!
My last question is:
How I can read and modify response in my client handler?
When I connected plugin, I get error. Here is log:
Parsing configuration file: krakend.json
[KRAKEND] 2021/03/19 - 18:47:13.877 ▶ ERROR unable to create the GELF writer: getting the extra config for the krakend-gelf module
[KRAKEND] 2021/03/19 - 18:47:13.877 ▶ INFO Listening on port: 8080
[KRAKEND] 2021/03/19 - 18:47:13.877 ▶ INFO registering usage stats for cluster ID 'yL7Tr/KRKeIC+GPU15uKpqOftHvCnMabWBFSrDWSBGE='
clientPlugin client plugin loaded!!!
serverPlugin handler plugin loaded!!!
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ WARNIN loading plugins: plugin loader found 1 error(s):
opening plugin 1 (plugins/serverPlugin.so): plugin: symbol ClientRegisterer not found in plugin plugin/unnamed-00ec48a7bd127d7881b59e386501c7f2ef678c9c
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ INFO total http executor plugins loaded: 1
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ WARNIN loading plugins: plugin loader found 1 error(s):
opening plugin 0 (plugins/clientPlugin.so): plugin: symbol HandlerRegisterer not found in plugin plugin/unnamed-05751e250ad5fb8001ea27a30fabe1d78919ab62
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ INFO total http handler plugins loaded: 1
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ DEBUG creating a new influxdb client
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ DEBUG no config for the influxdb client. Aborting
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ WARNIN influxdb: unable to load custom config
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ WARNIN opencensus: no extra config defined for the opencensus module
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ DEBUG no config for the bloomfilter
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ WARNIN bloomFilter: no config for the bloomfilter
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ WARNIN no config present for the httpsecure module
[KRAKEND] 2021/03/19 - 18:47:13.887 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG botdetector middleware:  no config defined for the module
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG Debug enabled
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG AMQP: https://jsonplaceholder.typicode.com: no amqp consumer defined
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG AMQP: https://jsonplaceholder.typicode.com: no amqp producer defined
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG pubsub: subscriber (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/subscriber not found in the extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG pubsub: publisher (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/publisher not found in the extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG http-request-executor: no extra config for backend /posts
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG CEL: no extra config detected for backend /posts
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG CEL: no extra config detected for pipe /token
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ INFO JOSE: signer disabled for the endpoint /token
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ INFO JOSE: validator disabled for the endpoint /token
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG botdetector:  no config defined for the module
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG AMQP: https://jsonplaceholder.typicode.com: no amqp consumer defined
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG AMQP: https://jsonplaceholder.typicode.com: no amqp producer defined
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG pubsub: subscriber (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/subscriber not found in the extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG pubsub: publisher (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/publisher not found in the extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG http-request-executor: no extra config for backend /posts/{{.Post_id}}
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG CEL: no extra config detected for backend /posts/{{.Post_id}}
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG AMQP: https://jsonplaceholder.typicode.com: no amqp consumer defined
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG AMQP: https://jsonplaceholder.typicode.com: no amqp producer defined
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG pubsub: subscriber (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/subscriber not found in the extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG pubsub: publisher (https://jsonplaceholder.typicode.com): github.com/devopsfaith/krakend-pubsub/publisher not found in the extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG http-request-executor: injecting plugin clientPlugin at /posts/{{.Post_id}}/comments
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG CEL: no extra config detected for backend /posts/{{.Post_id}}/comments
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG CEL: no extra config detected for pipe /token/:post_id
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ INFO JOSE: signer disabled for the endpoint /token/:post_id
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG lua: no extra config
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ INFO JOSE: validator disabled for the endpoint /token/:post_id
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG botdetector:  no config defined for the module
[KRAKEND] 2021/03/19 - 18:47:13.888 ▶ DEBUG http-server-handler: no extra config
asdasd
[GIN] 2021/03/19 - 18:47:16 | 200 |  352.860611ms |             ::1 | GET      "/token/1"
Error #01: EOF

And I get one more error when golang tries to parse parse plugins:
opening plugin 1 (plugins/serverPlugin.so): plugin: symbol ClientRegisterer not found in plugin plugin/unnamed-00ec48a7bd127d7881b59e386501c7f2ef678c9c
But in plugin code there is symbol ClientRegisterer:
package main

import (
	"context"
	"errors"
	"fmt"
	"net/http"
)

var ClientRegisterer = registerer("clientPlugin")

type registerer string

func (r registerer) RegisterClients(f func(
	name string,
	handler func(context.Context, map[string]interface{}) (http.Handler, error),
)) {
	f(string(r), r.registerClients)
}

func (r registerer) registerClients(ctx context.Context, extra map[string]interface{}) (http.Handler, error) {
	name, ok := extra["name"].(string)
	if !ok {
		return nil, errors.New("wrong config")
	}
	if name != string(r) {
		return nil, fmt.Errorf("unknown register %s", name)
	}

	return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
		fmt.Println("clientPlugin message")
	}), nil
}

func init() {
	fmt.Println("clientPlugin client plugin loaded!!!")
}

func main() {}

How I can read and modify response in my client handler?

You need to create an http client, do the request, parse/manipulate the client response and write it back to your responseWriter.

And I get one more error when golang tries to parse parse plugins:

The plugin loader doesn't know which kind of plugin (handler or executor) is loading, so it tries to load both if your plugin is a client plugin you will see an error about not being able to load the handler plugin and the other way around, so it can be safely ignored.

opening plugin 1 (plugins/serverPlugin.so): plugin: symbol ClientRegisterer not found in plugin plugin/unnamed-00ec48a7bd127d7881b59e386501c7f2ef678c9c
opening plugin 0 (plugins/clientPlugin.so): plugin: symbol HandlerRegisterer not found in plugin plugin/unnamed-05751e250ad5fb8001ea27a30fabe1d78919ab62

@taik0 - using your code snippet for the client plugin I am getting the following error when initializing Kraken. I am not quite sure such problem is happening, but I do believe it's related to the version of my Go Runtime/Architecture. Could you please maybe give a bit more insight in your local development details? Or maybe you have a better idea why this would be happening...
PS: I am using the devopsfaith/krakend:config-watcher Docker image.
Log
... [00] 2021/03/21 17:11:55  WARNING: [loading plugins: plugin loader found 1 error(s):  [00] opening plugin 0 (plugin/clientPlugin.so): plugin.Open("plugin/clientPlugin"): plugin was built with a different version of package internal/cpu] [00] 2021/03/21 17:11:55  INFO: [total http executor plugins loaded: 0] [00] 2021/03/21 17:11:55  WARNING: [loading plugins: plugin loader found 1 error(s):  [00] opening plugin 0 (plugin/clientPlugin.so): plugin.Open("plugin/clientPlugin.so"): plugin was built with a different version of package internal/cpu (previous failure)] [00] 2021/03/21 17:11:55  INFO: [total http handler plugins loaded: 0] [00] 2021/03/21 17:11:55  DEBUG: [creating a new influxdb client] ...
krakend.json
`
...
{
"endpoint": "/merged/test",
"headers_to_pass": [
"Authorization",
"User-Agent"
],
"method": "GET",
"output_encoding": "json",
"whitelist":["data"],
"backend": [
{
"url_pattern": "/api/galleries",
"sd": "static",
"method": "GET",
"host": [
"http://galleries.local"
],
      "extra_config": {
        "github.com/devopsfaith/krakend/transport/http/client/handle": {
            "name": "clientPlugin"
        }
      }
    }
  ]
},

`

You need to create an http client, do the request, parse/manipulate the client response and write it back to your responseWriter.
But I need to modify the same request to server.
I tried to add request but I get errors Error #01: invalid character '&' looking for beginning of value

my registerClient func:
func (r registerer) registerClients(ctx context.Context, extra map[string]interface{}) (http.Handler, error) {
	name, ok := extra["name"].(string)
	if !ok {
		return nil, errors.New("wrong config")
	}
	if name != string(r) {
		return nil, fmt.Errorf("unknown register %s", name)
	}

	return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
		url := req.URL.Scheme + "://" + req.URL.Hostname() + req.URL.Path
		resp, _ := http.Get(url)
		resp.Write(w)
	}), nil
}

I did it!
I changed my response. This is example:
	return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
		url := req.URL.Scheme + "://" + req.URL.Hostname() + req.URL.Path

		resp, _ := http.Get(url)

		bodyBytes, _ := io.ReadAll(resp.Body)

		w.Write(bodyBytes)
	}), nil

Is it correct implementation for plugins? of course I will add code for changing response.

It's easier if you create an http.Client and pass the request directly instead of rebuilding the URL.
client := &http.Client{}
resp, err := client.Do(req)

client := &http.Client{}
resp, err := client.Do(req)

Thank you! I think we can close this issue


options.distDir is absolute path

Using this with parcel 2.0.0-beta.1, the plugin is attempting to copy the static files to an invalid path.
This seems to be because options.distDir is an absolute path which for a file foo results in:
/project/root//project/root/dist/foo

Hello @jam13,
could you share your config, npm/node version and OS?

Hello @jam13,
could you share your config, npm/node version and OS?

@jam13 Please check v1.1.0, available now on npmjs.

@jam13 Please check v1.1.0, available now on npmjs.

Hi :) On windows there are some further path issues where nothing gets copied - I think it's just due to the hardcoded forward slashes in the filepaths so should be easy to resolve with the path library. Let me know if you need any more info

Hi :) On windows there are some further path issues where nothing gets copied - I think it's just due to the hardcoded forward slashes in the filepaths so should be easy to resolve with the path library. Let me know if you need any more info

Hello @Matt-McConway! You're right ;-) v1.1.1 should be fixed - published to npmjs. If you could test it and tell if everything is OK - that would be great!

Hello @Matt-McConway! You're right ;-) v1.1.1 should be fixed - published to npmjs. If you could test it and tell if everything is OK - that would be great!

@elwin013 Thanks for the prompt fix! Seems to work for my usecase now (not overriding the static or dist path)

@elwin013 Thanks for the prompt fix! Seems to work for my usecase now (not overriding the static or dist path)

@jam13 Please check v1.1.0, available now on npmjs.

@elwin013 Thanks for the update. That looks like it will work for me, will test later today.
Is there a reason why you dropped using options.distDir entirely? Having to define the a non standard dist dir twice (in package.json and parcel CLI) seems awkward. I had a go at getting a working patch last week and was trying something along the same lines but with:
let distPath = options.distDir || path.join(options.projectRoot, "dist");

@jam13 Reason is very very simple - it was not working (distDir was always empty) in Parcel version I've downloaded from npmjs ;-) But I've checked and it is working with 2.0.0-beta.1, so I've bring it back with 1.2.0 version - just published to npmjs.

Looks like everything is working now as expected. Closing this issue ;-)


Service metadata

Add some metadata for services which is transferred with the INFO packet to all other nodes too. You can use it to store service specific information (like Docker labels).
Example:
module.exports = {
	name: "posts",
	settings: { ... },
	metadata: {
		...,
		scalable: true,
		...etc
	},
	actions: { ... },
	events: { ... }
}

You can access to this properties with $node.services action.
Ping @WoLfulus

Awesome!
This should be just a place to store any type of data and/or format, but we must guide people into some type of "best pratices", like namespacing the data in order to keep it usable by external/custom mixins and extensions later (avoid name clashing).

I started to implement it. @WoLfulus Do you have any idea for "best practices"?

I haven't thought about it yet, but should be as the user wishes, to avoid enforcing anything. It could be open for discussion and a "try doing it like this" in the documentation later.
I haven't covered my cases just yet :(


500 error code

I used the latest .img.xz file from GitHub and followed all the steps from https://aiyprojects.withgoogle.com/voice-v1 exactly as explained, however, for example, after running assistant_library_demo.py and opening the URL and logging in, I received an 500 error code. I have been unable to run any demos no matter what I have tried, help to fix this would be appreciated!

Can you please paste the complete error here ?
And in which country are you trying to run the voice kit?

I am trying to run the voice kit in Finland.
First, I run the assistant_library_demo.py file and open the given URL.

Afterward, I log in and press continue after being told that Google hasn't verified the app.

After pressing continue, I am told something went wrong.

Finally, I press next and there is a 500 error code displayed.

I also had this problem with the latest image and resolved it by running updates and using a more recent version of chromium to log in to google.


drivers: wifi: esp: Improvements to ESP driver

Fix passive mode protocol selection depending on AT versions
Use Kconfig value for reset timeout
Fix bug with parsing security from scan result
Re-order some AT commands during init due to some commands having
dependency on other commands

Signed-off-by: Tobias Svehagen<EMAIL_ADDRESS>

@tsvehagen Could you rebase on master so we can get new CI results?

@tsvehagen Could you rebase on master so we can get new CI results?

Done


RATIS-730. Fix checkstyle violations in ratis-examples

Proposed changes:
This PR aims to fix checkstyle violations in ratis-examples module
Link to JIRA
https://issues.apache.org/jira/browse/RATIS-730
How was this patch tested?
Build was successful using mvn clean package -DskipTests
Also executed all tests locally, few tests timed out as always in local.

@szetszwo Failures are unrelated to patch. Pls help to review.

@szetszwo Here the PR and the patch uploaded on the Jira are same.


Could not connect Embedded Database File

Uncommented the arm64 line in ./build.sh
Built the program with: go build -o geek-life ./app
Ran the program with: ./geek-life
Received an error message: FATAL ERROR: Exiting program! - Could not connect Embedded Database File

Hi @thoran,
Thanks a lot for asking!
Actually, if you're building with go build -o geek-life ./app, uncommenting in build.sh has no impact.
Please try building with the whole line appropriate for your OS from the build.sh.
Then please let us know the result.
The error says the program could not open a file at the target location. So, please also check if the user has write permission at the destination location.


fix default language issues

Thanks for contributing!
Please make sure all the tests pass, before creating a pull-request.

Coverage remained the same at 81.785% when pulling 29d1da23a57fe0b2ebdb021e126184be85b6369b on MikeOverkamp:fix-languages-per-site-default into 4e4e3c65c28e2a6142d63936a4ffd44a4b4cd1d9 on LUKKIEN:master.


ReplyToID missing for some responses in ConversationTranscript table

We are unable to link the responses from the bot in the PowerBI as the ReplyToID is missing for some of the interactions in ConversationTranscript table. We also observed that ReplyToID is mainly missing for the DirectLine responses while it is present for the PVAStudio responses. We were able to see the responses till last month in PowerBI but something changed after. Just fyi, the session logs in chatbot are also missing the bot responses.

Thanks for sharing, @Aditi3981. This repository is only providing a visual to render JSON, not the underlying data structure.
If these values are not present in your Dataverse environment, it would be good to create a support ticket to investigate. If these values are present, but are not mapped right in Power BI, it would be good to look at the PowerQuery transformations.


Addition of save/load and checkboxes

Hi,
Thanks for developing the MONAIViz extension. While using the extension I made some changes that helped my workflow and I'm interested in sharing them if they can be of benefit to the larger community. There are 2 functionality additions

Addition of a checkbox in the first column of the transform table. If the box is checked the transform will run and if not checked it is skipped. This still works with the staged approach but allows someone to run through the entire transform pipeline turning transforms on or off is so desired.
Addition of buttons that allow loading and saving transforms as a json file.

Can you paste some UI screenshots for these changes..? Will be helpful..

Here is a screenshot with the addition of load/save transform buttons on the side toolbar. Also, the screenshot shows the resize transform turned off in the table and hence this transform is skipped. Let me know if I can show any more specific images/examples.

I think there's some issue with the loading bundle transforms

could you please help fix this @dmolony3? otherwise I'll try to revert this PR commit...

Hi @wyli. I had not tried the bundle transforms. I'll take a look at it this morning.

many thanks! (to replicate the issue, start the MONAIViz module using the latest codebase, then click the blue downloading icon next to "spleen_ct-segmentation pre")

Everything should be ok now. I confirmed that the spleen segmentation transforms worked ok. Should I create a new pull request for these changes?


coordinator stopped while threads still running

Never seen this before. It happens in the xval subloop.

Traceback (most recent call last):
File "/data/donald/PYTHON/ANNA/current/THESIS_ANNA/ANNA_train.py", line 559, in
train_neural_network(parameters)
File "/data/donald/PYTHON/ANNA/current/THESIS_ANNA/ANNA_train.py", line 531, in train_neural_network
float(parameters['KEEP_PROB1']), bsize_train1, inherit_iter_count=0)
File "/data/donald/PYTHON/ANNA/current/THESIS_ANNA/ANNA_train.py", line 467, in train_loop
xvcost = xval_subloop(learn_rate, xv_size, i, inherit_iter_count)
File "/data/donald/PYTHON/ANNA/current/THESIS_ANNA/ANNA_train.py", line 405, in xval_subloop
xvcoordinator.join(xval_threads)
File "/home/donald/anaconda2/lib/python2.7/site-packages/tensorflow/python/training/coordinator.py", line 397, in join
" ".join(stragglers))
RuntimeError: Coordinator stopped with threads still running: Thread-32
the coordinator is requested to stop before the join command, so not sure what is up here. will try to replicate. using xval batch size of 3000.

trying to get a handle on this bug. it can only be reproduced for sufficiently large cross-validation sample sizes. so I think what is happening is the cross-validation coordinator is joining the threads before they are finished, causing a deadlock. Not sure how to fix, but this thread may be useful:
https://github.com/tensorflow/tensorflow/issues/2130
ANNA is humming along with 500 for the xval size.

Issue does occur with smaller batch sizes, just less frequently.

So it looks like it is a deadlock issue, where the xval enqueue operation tries to fill the xval queue, but it is already full. This causes the xval thread to hang and the tensorflow coordinator can't join the xval threads.
I have a workaround for now: I set a timeout on the session.run(xval queue op) and caught the error with an exception that just runs xval.queue(close pending enqueues=true). This forces the xval queue to close, which allows the xval thread to join and the training process to proceed. If this workaround seems stable I'll close this issue.

Solved the issue. Confirmed that what was happening was the xval enqueue thread would block when the xval queue was full. Using an exception to close the queue would close the queue permanently and the code would run until the xval queue was empty, and then throw an error.
Solution: I added a conditional before session.run xval enqueue call that only executed the enqueue op if the queue had enough space to enqueue an xval batch. Thus, when the xval queue is full, the code just skips the enqueue op and avoids the block.


Add user rank

2 issues i see:
1: There is not space between reputation and follow button anymore.
2: I'm seeing everyone as Minnow


Update installaton methods in README.md

The previous command did not work on a typical x86 Linux system. The link generated by the script - https://tea.xyz/Linux/x86_64 - was invalid. The updated command is taken directly from https://docs.tea.xyz/getting-started/install-tea

Reading the docs, I realized that you actually want to support both the script I removed in the PR, and the one I added. Then, the proper modification would be to:

make the script I deleted work
add the simple installation script that I added to readme

The previous command did not work on a typical x86 Linux system. The link generated by the script - https://tea.xyz/Linux/x86_64 - was invalid

@jhheider what we got and what do we need to fix this?

$ curl -OL https://tea.xyz/Linux/x86_64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   103  100   103    0     0    239      0 --:--:-- --:--:-- --:--:--   241
100 98.1M  100 98.1M    0     0  25.2M      0  0:00:03  0:00:03 --:--:-- 32.4M
$ file x86_64
x86_64: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, with debug_info, not stripped

That looks right to me. @marcinjahn did you use curl? It only returns anything for curl, and is 404 otherwise.

curl -OL https://tea.xyz/Linux/x86_64

It actually works today, unlike when I originally had tried it.
Anyway, it seems that the proposed changes are not actually needed, I'll close the PR.


rudder.go: replace deprecated log func

Signed-off-by: Guangming Wang<EMAIL_ADDRESS>What this PR does / why we need it:
as the grpclog package docs said, printf is deprecated, it recommends infof instead.
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

@ethan-daocloud Can you please sign your commit. Contributions here are under the DCO. If you go to the checks tab at the top it will provide instructions on how to sign the existing commit.

@mattfarina
got it, thank you.

Closed


I cannot reproduce vit-small@cocostuff27 using the default config

Hi, thanks for open-sourcing this elegant codebase.
As a starting point, I try to reproduce the results in your paper. However, using vit-small@cocostuff27, I can only achieve 18.13/30.59 mIoU (no CRF) using cluster/linear probe respectively, while the reported results in the paper are 24.0/38.4 mIoU (no CRF). I do not change anything in the code, and only change the 6 hyperparameters to the numbers reported in the paper.
How can I reproduce the performance mentioned in the paper?

If you load our pretrained model you should able to reproduce those numbers. The pre-trained model also has the specific values of the hyperparameters used so that you can verify. Also the CRF adds a few points of perf in there too


Defined quality goals.

The quality goals located in the Introduction and Goals file have been defined.

Maybe ye can add sub-goals, since the current goals are kind of too abstract.
For example, we can break the Usability goal down to Accessibility, Learnability, etc. Or the Securtity part to Authenticity, Integrity, and so on.

The problem is that the table has a maximum number of five quality goals, so I had to compact it.


More secure defaults.

Related to #950. More secure suggestion.
Without config, listen only on looback interface. In sample config
listen on any interface, but use an IP whitelist.

Maybe the comments should reflect what the default value is when no adds is given?

@MichMich, something like this? dfcbfad9a3c41df49d55f9a1907e5db6bfd82f05

I've been working on some test cases for these configuration options, but keep running into issues...
https://github.com/qistoph/MagicMirror/tree/issue950_2
It seems that starting the app from the global namespace of mocha, leaves traces that influence later test cases. So I've tried to run them in a sandbox, but that is starting to be quite some work...
https://github.com/qistoph/MagicMirror/tree/issue950_sandbox
Do you maybe have any suggestions @roramirez ?

@qistoph why not use as e2e tests?

I pushed the fix
It's need set a valid file for defaults if not app get a exception and the tests will be fail
https://github.com/qistoph/MagicMirror/pull/1
We need now fix the conflict with version tests.
:)


Proxy ownkeys trap needs marshal

Can you also double check other places in proxy code where marshalling might be needed?

yeah, I already spent some time to read the code to see if there's still missing marshalling, but can't find one. seems recent exprgen change is pretty good to find this kind of issue, let me checkin and see.


0.9.1 release

I'm going to make a release 0.9.1 for minor update before project transferring to Jazzband(#30).
Changes

Fix wrong LICENSE indication on trove classifier https://github.com/shimizukawa/django-redshift-backend/commit/e8d12375d6d2ae7c493ded43dd8625d62c5ba809
Minor update documentation
#33 Create our Code of Conduct

I will release them within one or two weeks.
Please comment if there are opinions or objections.

waiting PR#46

Now #46 has been merged, so we can ship 0.9.1.

Released! https://pypi.org/project/django-redshift-backend/0.9.1/


Embed "How to" videos on the resource landing page to ease access

Describe the feature you'd like and what it will do
This feature would create a minimal and unobtrusive but accessible link to the HydroShare how to videos
Why is this feature important?
This feature provides an accessible help option for those who either have trouble finding the help pages, or are visual learners and would prefer to watch short videos.
Is your feature request related to a problem? Please describe.
There is a problem with people being a=unaware of HydroShare's capabilities and unable to find help documentation. one way to combat this would be to add links to videos on the landing page
Additional context
youtube videos are here: https://www.youtube.com/playlist?list=PLPG5Ed5L1SY664Lj7dQFBnVMTOrjO0cqa

@ClaraCogswell we typically assign developers once it has been prioritized and is schedule to be worked on not when the issue is created so I removed assignments for now. It would also help if we can get a list of videos and the appropriate pages/UI elements to link to so we can keep track.

I'll compile a list of relevant videos and placements and we can discuss on Wednesday

Video Links:
Upload files: https://help.hydroshare.org/hydroshare-resources/content-types/time-series/
Change Sharing status: https://www.youtube.com/watch?v=_zfeUpyk0to&list=PLPG5Ed5L1SY664Lj7dQFBnVMTOrjO0cqa&index=7
Will make:
All about publication
Authors and owners
Open with
Let me know if any other aspects of the page need videos or could use a button

That icon is just a mockup that I took form powerpoint, we'll likely need to make our own little video icon or use the youtube logo.

agree to the icon change and I like the youtube icon idea this would be easily recognized. One think to consider is if we want to add a direct link to the appropriate page in the help documentation as we had mentioned through an icon we'd be adding more icons to the page.
In general we have an inconsistent way of providing information to users. we have

this Info button

this not collapsible banner

 in yellow this collapsible banner in yellow or blue

this banner in green:

this embedded text

maybe add another button for youtube videos

this is might not be the right time but there is a need to look at the notification/messaging approach to remove clutter. @Maurier are there options in vue to consolidate natifications?

All of the videos required for this have now been completed. They should be up on youtube in the next day or so.

All videos are now up on the youtube channel
All about publication: https://youtu.be/vlVnWN5aUOk
Authors and owners: https://youtu.be/5rYQjvnRXlI
Open with: https://youtu.be/DNHmDDRH9nY
How to upload files: https://youtu.be/wTPGJY9-k18
How to change sharing status: https://youtu.be/_zfeUpyk0to

what is still required for this is an icon for the videos, we have been discussing whether we want to create our own icon or use the youtube logo.
@horsburgh do you know what was entailed in using the youtube logo at the bottom of the page?

@ClaraCogswell here are some guidelines
https://www.youtube.com/howyoutubeworks/resources/brand-resources/#logos-icons-and-colors

@ClaraCogswell - I think @Maurier should be able to set us up with an icon to use for this.

Noted. I'll work on this some time this week.

I don't think so. The content they point to cannot be influenced by the user, they can only view the videos, so only one icon should be needed

Right, but the topics in these videos is about features for which one would need edit permissions on a resource in order to use.

That makes sense to me. They can appear in edit mode
Clara Cogswell (she/her)
Community Support Hydrologist, CUAHSI
www.cuahsi.orghttp://www.cuahsi.org/
Sign for CUAHSI news herehttps://docs.google.com/forms/d/e/1FAIpQLSfGq_mSXeoCZh0dViLKG6M2GMUBblNEwjg9xeoQA3O7Ny_C8A/viewform?c=0&w=1!

From: Jeff Horsburgh @.>
Sent: Monday, July 18, 2022 6:51 PM
To: hydroshare/hydroshare @.>
Cc: Clara Cogswell @.>; Mention @.>
Subject: Re: [hydroshare/hydroshare] Embed "How to" videos on the resource landing page to ease access (Issue #4604)
If the icons only pertain to creating and editing metadata, I suggest the following:

The icons should appear in Edit view, but not in the regular view of the resource landing page. Only users who can edit a resource need instructions for how to edit that resource.
Because users can still edit most of the metadata for published resources, I think the icons should appear in the edit view regardless of whether the resource is published or not.
The icons should appear for any user who has edit permissions on the resource (not just owners).

I may not be fully aware of where all of the icons are being used, so if some of them have meaning outside of the context of editing the resource, then those should be addressed individually.
—
Reply to this email directly, view it on GitHubhttps://github.com/hydroshare/hydroshare/issues/4604#issuecomment-1188406054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AVVWLPCRHLVIOSOHGPSFNODVUXNWFANCNFSM5U5BJLAQ.
You are receiving this because you were mentioned.Message ID: @.***>


use moment.local instead of moment.utc?

I saw your solution, thx, because i had a problem with moment.utc


Add next js template

Added next js project configuration as instructed!

Resolve Conflicts!
Also you have changed createMERNProject.js and included createNextJsTemplate.js keep both different.
Also update your branch with the upstream.

Review my PR to merge it


How to get 5 bytes UID ?

I want to get 5th byte output from MIFARE Classic Card instead of 4 bytes output.
Currently I am getting this UID from arduino code
8B 65 66 B9
but from the raspberry pi code of SimpleMFRC522.py I get this uid in hex
8B 65 66 B9 31
I can't update the raspberry pi code to change the output from 5 byte to 4 byte as it is already in production
Is there anyway I can get the 5th byte from this library?

Block 0 contains the raw data for uid.

How can I print the raw data for the uid?
I did run the dumpinfo and it only gives me 4 bytes as mentioned above
i tried increase uid->size to 5 and increase the bytesToCopy variable to 5 as well
then it outputted the 5th byte as 00