user table not recognized?

I cranked up the container with Ansible like this:
- name: create mail container
  docker_container:
    name: mail
    image: tvial/docker-mailserver:latest
    restart_policy: unless-stopped
    domainname: mydomain.com
    ports:
      - "110:110"
      - "143:143"
      - "25:25"
      - "587:587"
      - "993:993"
      - "995:995"
      - '465:465'
    volumes:
      - "{{data_dir}}/mail:/var/mail"
      - "{{data_dir}}/mail-state:/var/mail-state"
      - "{{data_dir}}/maillogs:/var/log/mail"
      - "{{data_dir}}/config:/tmp/docker-mailserver"
    networks:
      - name: monitoring
      - name: web
    env:
      # password ignored after first run
      OVERRIDE_HOSTNAME: "{{mail_domainname}}"
      DMS_DEBUG: "1"
      ENABLE_SPAMASSASSIN: "1"
      ENABLE_CLAMAV: "1"
      ENABLE_FAIL2BAN: "1"
      ENABLE_POSTGREY: "1"
      ONE_DIR: "1"
      DMS_DEBUG: "0"
      ENABLE_LDAP: "0"
      POSTMASTER_ADDRESS<EMAIL_ADDRESS>      ENABLE_POSTFIX_VIRTUAL_TRANSPORT: "1"
      POSTFIX_DAGENT: "lmtp:unix:private/dovecot-lmtp"
      POSTFIX_MESSAGE_SIZE_LIMIT: "100000000"

and added a user with ./setup. I see that the user is in config/postfix-accounts.cf
<EMAIL_ADDRESS>
## Context
<!--- Provide a more detailed introduction to the issue itself -->
<!--- How has this issue affected you? What were you trying to accomplish? -->

Mail to that user bounces with

Oct  3 19:19:33 7efd65b2728b postfix/smtpd[6226]: NOQUEUE: reject: RCPT from mail-wr1-f54.google.com[<IP_ADDRESS>]: 550 5.1.1<EMAIL_ADDRESS>Recipient address rejected: User unknown in local recipient table<EMAIL_ADDRESS><EMAIL_ADDRESS>proto=ESMTP helo=<mail-wr1-f54.google.com>

## Expected Behavior
<!--- Tell us what should happen -->

Mail could get delivered

## Your Environment
<!--- Include as many relevant details about the environment you experienced the issue in -->
* Amount of RAM available: 16GB
* Mailserver version used: latest
* Docker version used: 19.03.2
* Environment settings relevant to the config:
* Any relevant stack traces ("Full trace" preferred):

<!--- Please remember to format code using triple backticks (`)
	  so that it is neatly formatted when the issue is posted. -->

<!---
## Possible answers to you issue
* ClamAV keeps restarting:
  https://github.com/tomav/docker-mailserver#requirements

* Email seen as spam:
  https://github.com/tomav/docker-mailserver/wiki/Configure-SPF
  https://github.com/tomav/docker-mailserver/wiki/Configure-DKIM

* Creating new domains and accounts
  https://github.com/tomav/docker-mailserver/wiki/Configure-Accounts

* Use a relay mail server
  https://github.com/tomav/docker-mailserver/wiki/Configure-AWS-SES
  The variable name can be used for other email servers.

* FAQ and tips
  https://github.com/tomav/docker-mailserver/wiki/FAQ-and-Tips

* And the WIKI
  https://github.com/tomav/docker-mailserver/wiki

* Open issues
  https://github.com/tomav/docker-mailserver/issues
-->

This is just a guess, but please check postfix-main.cf and ensure that your mydestination settings is correctly defined. In my case I was trying to define mail.domain.tld, but that caused the error above. I had to change it to the format: mydestination = localhost.$mydomain, localhost

The user you have in the account file is<EMAIL_ADDRESS>but you are sending to<EMAIL_ADDRESS>so it bounces?

@pfaffman? Was my observation correct so that this can be closed? If not please post details about your configuration and logs so that we can proceed.

Sorry! No, I did use the right account. I tried it a bunch of times and did
a copy paste from the list of accounts (I can't remember now the command to
get that list). I'm going to try the other suggestion soon.
Sorry not to reply sooner. I've been slammed with another project. I hope
to get back to this next week.
On Fri, Oct 11, 2019, 12:28 AM Erik Wramner<EMAIL_ADDRESS>wrote:

@pfaffman https://github.com/pfaffman? Was my observation correct so
that this can be closed? If not please post details about your
configuration and logs so that we can proceed.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tomav/docker-mailserver/issues/1282?email_source=notifications&email_token=AAWZ4ZG5CROVFUEKQMS4IBDQOATJZA5CNFSM4I5HK4K2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA7DWDQ#issuecomment-540949262,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWZ4ZGZQ7TS75WHMAJ2YCTQOATJZANCNFSM4I5HK4KQ
.

Please check all environment variables, in particular the ones dealing with domain name and host name (should be in your .env file) as well as your logs. You could also check if the user account you are trying to send to exists in the file system in /var/mail.

Sorry folks. I'd tried to crank up this container with Ansible and when I did, I clearly did something wrong. When I started it with docker-compose as instructed, it works fine. (Still figuring out credentials with let's encrypt, but that's another problem.)
Thanks for the suggestions and sorry for the red herring.


Fixed taking the correct interval and placing them into the correct position

The problem was with taking the max of the intervals, which were tuples of (x, y) values. We have to take the biggest starting interval, therefore biggest x, and then the smallest ending interval, meaning y. An example which did not work before and which put all comments in the beginning of the code after unparse is performed is:
if 1 == 1:    #Test1    print('a') else:    #Test2    print('b') print('b')

I reworked all your requested changes

i have changed those few things and formatted the file with intellijs pycharm, sadly i have not make tools currently and i cannot execute the script
if it is still necessary after the formatting i have done i would do that on the next weekend

Merged it. In the next commit I made a few minor formatting changes. Thank you for making this PR. I'll ship it to PyPi with version==1.1.1 this weekend


RF: For plotting, sometimes you don't want to group by any other variable

But group_by is currently required input. My hack was to pass an array of all ones, indicating that everyone is just one group. May as well make that part of the API?

LGTM, I'll take the coverage hit.


Allow custom draw, hide, show, onAdd, and onRemove methods for ClusterIcon

As I mentioned in #41, I am customizing the look of clusters beyond what can be accomplished with CSS. I'm using SVGs to create a pie/donut chart that shows the proportions of various types of markers in a cluster.
These modifications to the MarkerClusterer allow me to specify my own functions to be used for essential ClusterIcon methods, so I can create/update/destroy the SVGs as necessary.

@rognstad sorry, when I tested this the first time I was on the wrong branch, Monday morning I guess. This PR breaks even the simple example. Check this:

@Remo, I'm really sorry about missing that and wasting your time. I didn't have my console open when I looked at the examples and thought everything was fine since I saw markers and clusters, could click to zoom to them, etc. I should have looked more closely.
At any rate, this is fixed on rognstad:feature/support-custom-clustericon-methods now. It looks like my change isn't showing up here now since this PR is closed. What would be the best path forward?

@rognstad no worries, I also looked at the wrong branch 🤕 Can't you create another pull request for the same branch? Not sure, never done that before, if not I'll cherry pick it.


ARROW-2307: [Python] Allow reading record batch streams with zero record batches

This is a pretty rough edge case -- it would be good to get this fix into 0.9.0.

+1. Appveyor build looking good: https://ci.appveyor.com/project/wesm/arrow/build/1.0.1776


Working integration with Federation

/sig multicluster
The API should be stable enough at this point to support replacing the Federation cluster API with the cluster registry. The details of this integration will need some design: it's not clear whether the Federation API server will aggregate the cluster registry, or include the API types directly, or something else entirely.
From https://github.com/kubernetes/community/blob/master/contributors/design-proposals/multicluster/cluster-registry/project-design-and-plan.md#beta

Has anyone yet investigated whether FCP works as an aggregated API?

I would imagine that it does not work, personally.

Since https://github.com/kubernetes-sigs/federation-v2 is using the cluster registry and Federation v1 is deprecated, I'm going to close this issue.
/close


OData V2 Model - createEntry example - suggest doc improvement

OpenUI5 version: 1.44.9
Browser/version (+device/version): Chrome
URL (minimal example if possible):
https://openui5.hana.ondemand.com/#docs/guide/6c47b2b39db9404582994070ec3d57a2.html#loio6c47b2b39db9404582994070ec3d57a2
I was implementing a database insert with createEntry method of OData V2 Model.
If I call "createEntry" like in following Documentation example, the POST request is triggered automatically and doesn't wait at submitChanges or deleteCreatedEntry.
I think this is an unexpected behavior.
// create an entry of the Products collection with the specified properties and values
var oContext = oModel.createEntry("/Products", { properties: { ID:99, Name:"Product", Description:"new Product", ReleaseDate:new Date(), Price:"10.1", Rating:1} });
// binding against this entity
oForm.setBindingContext(oContext);
// submit the changes (creates entity at the backend)
oModel.submitChanges({success: mySuccessHandler, error: myErrorHandler});
// delete the created entity
oModel.deleteCreatedEntry(oContext);

To make it work properly I added groupId property to the parameters and it was working as expected.
I think the documentation should be improved at least on these lines by adding groupId:
var oContext = oModel.createEntry("/Products", { "groupId":"createGroup", properties: { ID:99, Name:"Product", Description:"new Product", ReleaseDate:new Date(), Price:"10.1", Rating:1} });

oModel.submitChanges({groupId: "createGroup", success: mySuccessHandler, error: myErrorHandler});

It will save a lot of nerves :)
Bests, Dusan

For me it was the other way round...
groupId was set: Immediate POST-Request
groupId was not set: POST-Request only when submitChanges was called

Hello @DusanSacha,
Thank you for sharing this finding. I've created a internal incident<PHONE_NUMBER>.
Regards,
Marin

Hey,
please check this documentation about $batch and groupIds:
https://sapui5.hana.ondemand.com/#docs/guide/6c47b2b39db9404582994070ec3d57a2.html#loio6c47b2b39db9404582994070ec3d57a2
Per default a deferred group with id 'changes' is defined and all 'TwoWay' and createEntry operations use that group. Operations in a deferred group are never submitted automatically. YOu have to call submitChanges. Please check the groups defined in your model. If "groupId":"createGroup" is working I think you've overwritten the default group 'changes'.
BR,
Jan


Update to stm32-rs #1fb3e56

This change includes a fix for stm32wle5x MCUs to place all timers in the TIM group, similar to other STM32 chips so that the common timer logic can be used to provide ticks.

Thank you for the update!


[ACS] The Kubernetes get-credentials command overwrites local kubeconfig file

The az acs kubernetes get-credentials command is really useful, however, I noticed that it seems to overwrite the local kube config file (e.g. ~/.kube/config), and I can't seem to find a way to have it simply add the new cluster/context/user info to my existing kube config file (unless I choose to do it myself and not use this command). It would be cool if there was a way for me to do something along the lines of any of the following:

Have the get-credentials command add to the default config file. This behavior is similar to how minikube seems to work when you initialize a development cluster. It auto-adds the cluster details to your config in a non-invasive way.

Provide a mode that simply outputs the necessary shell commands (e.g. kubectl config set-cluster) in order to augment the default config file, which allows you to eval it yourself, similarly to how docker-machine env works. #1 would presumably be an automated version of this.

Write the ACS-specific config file to a specified location on disk, so I could update my KUBECONFIG env var and merge together the multiple config files, or explicitly use the --kubeconfig flag when using the k8s CLI. Maybe the existing behavior could default to the global config path, but you could override it with a flag.

Maybe the existing behavior is fine in practice, so I'm just throwing this out there for conversation, but it would be cool to have the same simple experience of creating an ACS cluster and connecting to it, without affecting a user's existing config settings.

No, we should definitely merge into the existing config.  I'll take that on...


League creation and league specific landing page

On the league page, we should have:

Name
Acronym ("SIGLA")
Site
Contact of the Responsible
contact e-mail:
Contact phone number (WhastApp):
links: Youtube, Twitch, Instagram, Fecabook
Platform: CrossPlay, Playsation or XBox (Can have 1 platform or all)

@luishenriquegj (tagging you since you worked on the form before)
For low impact form creation, first creation will need:

Name
Platform
Game
-> firebase reference admin is user currently logged in that created it

For League edit we add the remaining items:

Acronym
site
streaming links


Bundle thrust dependencies in binary

Hi!
Is there a way to create an application that bundles thrust within the binary?
Currently when I build a binary and start them on a different pc it downloads Downloading https://github.com/breach/thrust/releases/download/v0.7.6/thrust-v0.7.6-darwin-x64.zip

Great question. I have not found the answer yet either. Would be great to get some information into the README.

You need to use your own ThrustProvisioner class.I'll provide more details
as soon as I can.
On Jul 17, 2015 2:06 PM, "GWoo"<EMAIL_ADDRESS>wrote:

Great question. I have not found the answer yet either. Would be great to
get some information into the README.
—
Reply to this email directly or view it on GitHub
https://github.com/miketheprogrammer/go-thrust/issues/57#issuecomment-122360742
.

Awesome! Thank you, I'll be looking forward to it =)

Ah, so you question was about, within the binary. Unfortunately that is not possible. Not unless you create your own linking process and somehow start two processes from the same binary.
Anyway, the best way to handle distribution is an installer of some sort, and to create a custom provisioner with the code that you distribute.
For example, in pretty much any of the tutorials i use a custom tutorial provisioner.
Which sets the base directory as the home directory.
thrust.SetProvisioner(tutorial.NewTutorialProvisioner())

Inside the implementation of the provisioner is
spawn.SetBaseDirectory("") // Means use the users home directory
return spawn.Bootstrap()

So now the steps are

Create your OS specific bundles
a. Cross Compile GoThrust Application.
b. Download Thrust Binaries from Thrust releases on GitHub
c. tar.gz together with an install.md or something, or create an installer. i.e. bash, or windows installer, or  mac pkg
Distribute to your friends for testing, and then the world.

ok thank you. That's a shame, love the whole single binary distribution ;)


Re-exports are not documented.

I am wanting to document an NPM package that is made up from multiple files, but re-exports the public interface at a top-level index.ts file, e.g:
index.ts
export { Foo } from './foo';
export { Bar } from './bar';

foo.ts
export class Foo {}
export class Baz {}

bar.ts
export class Bar {}

In this example, Baz is exported from foo.ts so that it can be used in other parts of the library, but is not part of the public interface of the library.
I am using typedoc to output json, then passing that to a custom renderer. However, the json contains no documentation entries for index.ts, instead only including documentation entries under the files where the class/function was originally exported.
However, I want to only render documentation for the things that are exported from the top-level index.ts file, and there seems to be no way to determine this from what typedoc outputs. Is there a workaround for this?

Hello @cameron-martin, Take a look at #259 which talks about some issues with re-exporting.
I also would love to see the ability to document only a public API (like is described in #639). This would help handle libraries much better.

I use façades that make heavy usage of export { .... } from "..." all over the place so this issue has become irritating enough for me to take a stab at solving it. The problem here is closely related to the one in #259 so I'm tackling both issues at the same time. The following case is easy enough to tackle:
const foo = 1;
export { foo }

because it is functionally the same as
export const foo = 1;

However both export { foo as somethingElse } and export { foo }  from "./other-module" present issues that go beyond just generating declarations. One problem is that typedoc currently does not clearly distinguish symbols that are exported from a module from those that aren't. The flag --excludeNotExported is only fit only for some usages of typedoc. If I'm interested in producing documentation for consumers of a library, then I can use --excludeNotExported and everything is fine because I only want to show what is exported. But if I'm interested in producing documentation that covers everything I've ever documented for my project, then there's no distinction in the produced documentation between what is exported and what is not exported. Users have to go outside the documentation to figure it out.
Then there are the complications that export declarations introduce. (Terminological note: export { something } is an "export declaration" in TypeScript parlance.) Without export declarations, a symbol can either be available only internally, or available internally and externally under the same name (export default introduces a minor wrinkle in this but we can ignore it for now). With export declarations, a symbol can be:

Available only internally.

Available internally and externally, under the same name.

Available internally and externally, but the external name is different from the internal one. (Note that the external name is only valid externally: export { foo as bar } does not make bar available internally.)

Available only externally. (The export declaration export { foo } from "./someModule" does not make foo available internally.)

Available only externally and renamed. eg. `export { foo as bar } from "./someModule".

Cases 1 and 2 are currently handled ambiguously. Producing output for cases 3, 4, 5 right now would result in ambiguities worse than 1 and 2.
typedoc should systematically indicate in the generated documentation which symbols are available internally and which are available externally, this would resolve the ambiguity of cases 1 and 2 and would help tremendously with the other cases. Here's what I think should happen in each of the cases above:

Available only internally.

no change from 0.11.0

Available internally and externally, under the same name.

no flag: put an [exported] label in the output.

--excludeNotExported: same as when using no flag, but omit [exported].

Available internally and externally, but the external name is different from the internal one. (Note that the external name is only valid externally: export { foo as bar } does not make bar available internally.)

no flag: create a new declaration for bar that has the [exported] label and make that declaration refer to foo.

--excludeNotExported: create a new declaration for bar which is the same as foo, except for the name.

Available only externally.

no flag: create a new declaration for foo that has the [exported] label and make that declaration refer to foo in "./someModule".

--excludeNotExported: same as when using no flag, but omit [exported].

Available only externally and renamed. eg. `export { foo as bar } from "./someModule".

no flag: create a new declaration for bar that has the [exported] label and make that declaration refer to foo in "./someModule".

--excludeNotExported: same as when using no flag, but omit [exported].

In the description above, I've set things up so that [exported] is omitted whenever --excludeNotExported is used. I'm on the fence about this. One the one hand, --excludeNotExported makes it redundant to mark symbols as exported or not, because everything in the documentation is necessarily exported. On the other hand, it is not immediately clear to readers that this is the case. They'd have to go outside the documentation to discover this fact: ask the developers, look at the build code that invokes typedoc, etc. Maybe part of the produced output could be changed to indicate that only exported symbols are visible. Like "Index of Exported Symbols" instead of "Index".

It looks like Microsoft's API Extractor can help with this - particularly if you want to do the rendering yourself.

Closing in favor of #596 / #639.

/**
 * @packageDocumentation
 * @module @tomato-node/process
 */
import * as execa from 'execa';
/**
 * 子进程管理，套传调用execa
 *
 * 新增于v0.0.7
 *
 * 脚本举例
 * ```
 *   import { cp } from '@tomato-node/process'
 *   (async()=>{
 *     const { stdout } = await process.cp('ls',['-la']);
 *     console.log(stdout)//total 1928 drwxr-xr-x...
 *   })()
 * ```
 */
export { execa as cp };

The re-exports is still not work.

So it is there any way to solve this problem ?


analysis of a remote postgres database over putty session

I have a Postgres database in server, I am connecting it with putty, and putty is binding the port of the server and my system in the terminal, then from the terminal, i am able to log in the database and then make process on it.
since it is a binding port, i don't need to give the url of the database and it will directly take over control over there
is there a way to do this in this tool?

I'm not sure what is your SSH Putty configuration. If you are using REMOTE FORWARDING you can simply put localhost in the Postgresql URL as *localhost and the binded port :
postgresql://localhost:<binded_port>/
We can use it with any SSL tunnelling tool .

i am using the same way, but unable to get the data, is there any way/method that checks the connection if the connection to the database is set up or not?

If there is a connection issue, you will see an error message when exploring the data source. What kind of error did you see?

@bhou  let me tell you this on tuesday, i can't remember the error, but i was not able to see the result in tool(i wa first time using the tool, iwthout reading mannual), i like to say if there is feature which check if connection establish with db then it would be really great. :D


twistd syslog support

Unable to use twistd option syslog when starting carbon cache from /usr/bin/carbon-cache.

Thanks!


Fix tests on Travis CI

Attempting to get the Travis CI tests passing again.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@b09e316). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #177   +/-   ##
=========================================
  Coverage          ?   55.29%
=========================================
  Files             ?        6
  Lines             ?      472
  Branches          ?        0
=========================================
  Hits              ?      261
  Misses            ?      211
  Partials          ?        0

Continue to review full report at Codecov.

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

Tests are now working on Julia 0.6. Details so far:
Supported using an environmental variable ("ODBC_DSN") to use in the tests. This allows us to bypass the test parts that are hardcode for Jacob's system.
Enable local-infile for the ODBC client. Due to security restrictions in MySQL the LOAD DATA LOCAL statement will only work if it is enabled on both the server and the client. The setting was enabled on the server but not on the client. To enable the setting on the client for ODBC we need to have the ODBC DSN use the "my.cnf" files via the "Option" parameter being set to 65536 ("USE_MYCNF").

I'm allowing failures on the Julia nightly for Travis as it shouldn't be required and currently it is failing due to a build issue with SpecialFunctions.jl:
LoadError: LoadError: MethodError: Cannot `convert` an object of type Char to an object of type Symbol
This may have arisen from a call to the constructor Symbol(...),
since type constructors fall back to convert methods.
in expression starting at /home/travis/.julia/v0.7/SpecialFunctions/deps/binaries.jl:37
in expression starting at /home/travis/.julia/v0.7/SpecialFunctions/deps/build.jl:6

Behold! The glorious green checkmarks have returned!

This is marvelous. Thanks so much for your help here.


Fix message attribute of a couple logs

For consistency, use lowercase message attribute for all logs.

Coverage: 75.075%. Remained the same when pulling d408d75d4bc1474346f9b7ce9e860519652c884d on jtschladen:fix-message into 416a00339f118852c2b80a1fe47ee5a17601be1a on Netflix:master.


Cannot install<EMAIL_ADDRESS>with Node 8

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Command (mark with an x)
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions

Node v8.11.0, Yarn 1.9.4
Repro steps
$ yarn add<EMAIL_ADDRESS>yarn add v1.9.4
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=10.3.0 <11.0.0".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

The log given by the failure
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=10.3.0 <11.0.0".
error Found incompatible module

Desired functionality
Angular CLI works with Node 8
Mention any other details that might be useful

@filipesilva this should be fixed in today's release right?


Update load-balancer-standard.md to include missing annotations

Add service.beta.kubernetes.io/azure-load-balancer-ipv4 and service.beta.kubernetes.io/azure-load-balancer-ipv6 annotations to the table of supported annotations.

#sign-off

@asudbring
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


A disposed StreamProvider delivers old data when listened again

Describe the bug
I use this stream provider in a view model against a Firebase database collection, where i'm interested in docChanges:
final contractorAccountsStreamProvider = StreamProvider.family
    .autoDispose<List<Account>, String>((ref, contractorId) {
  final database = ref.watch(databaseProvider)!;
  return database.contractorAccountsStream(contractorId);
});

When i'm leaving the view, this provider is disposed. Now i change an attribute in one of the previously loaded accounts in Firebase database. Next i open the same view again, where the stream provider starts listening again. And here comes the problem: I am notified twice about changes: First i get the "old" data (list of Account objects) before my manual changes and next i get the changed single Account object in another notification.
But since the provider was disposed i would expect only one notification which includes the list of Account objects including my manual changes.
I have the same phenomenon when logging out and in with a different user, where i use this documentStream provider:
final accountStreamProvider = StreamProvider.autoDispose((ref) {
  final database = ref.watch(databaseProvider)!;
  return database.accountStream();
});
ref.listen<AsyncValue<Account>>(accountStreamProvider, (previous, next) {
      // checking for id solves the problem of letting the old account once
      // through after log in with another user account
      if (next.hasValue && Globals().authId == next.value!.id) {
        account = next.value;
        determinePageState(ChangeType.account);
      }
})
Stream<Account> accountStream() => _service.documentStream(
  path: FirestorePath.userAccount(uid),
  builder: Account.fromSingleMap,
);
Stream<T> documentStream<T>({
    required String path,
    required T Function(Map<String, dynamic>? data, String documentID) builder,
  }) {
    final DocumentReference<Map<String, dynamic>> reference =
      FirebaseFirestore.instance.doc(path);
    final Stream<DocumentSnapshot<Map<String, dynamic>>> snapshots =
      reference.snapshots();
    return snapshots.map((snapshot) => builder(snapshot.data(), snapshot.id));
}

Here it's even worse: After successful login the listener again gets 2 notifications, where the first one contains the account data of the logged out user, and only the second notification then contains the data of the new logged in user.
That behaviour is quite problematic if a view relies on this data in its initState method, i.e. where it only has access to the data which was received in the first notification, which is then either wrong or not the current one anymore.
I use flutter_riverpod version 2.0.0-dev.9 and Flutter version 3.0.1.
Expected behavior
Not to retrieve too old or wrong data.
If that's the expected behaviour could you please tell me how i need to change my code in order not having to bother about notifications which don't represent the most recent data. Thanks a lot.

It's not a bug. This is part of the 2.0 changes: while new data is fetching, you retain access to the previous data
I assume you simply want to handle the loading state. Cf AsyncValue.isLoading/isRefreshing

Yes, but when i'm interested in previous data (which i'm not here) i would check the previous object.
But here the wrong or too old data is received in the next object.

You're listening to an AsyncValue here
The event that was triggered is the transition from data to loading state.
If you check "next.isLoading", it is true
"next.hasValue" isn't enough anymore, you need to check "next.isLoading" too.

I just added the check for next.isLoading to the listener handler of the first example and it's false for both events when relistening to the provider:
_ref.listen<AsyncValue<List<Account>>>(
  contractorAccountsStreamProvider(contractorId), (previous, next) {
      print('has value: ${next.hasValue}   isLoading: ${next.isLoading}   isRefreshing: ${next.isRefreshing}' );
      _handleContractorAccountsUpdate(next.value!);
   }
);

Regarding the second example (logout and login again) you're right: The first event has next.isLoading==true which i skip now and only consider the second event with the new user account data.
In comparison to the first example the accountStreamProvider isn't disposed and relistened.

Here is an example which i extracted from my project and which shows the problem of receiving 2 notifications when relistening to the contractorAccountsStreamProvider (after performing some manual changes in Account collection data).
It actually doesn't matter if i'm listening to docChanges or docs.
Please let me know if you need additional information.
main.dart.txt

Interesting: When calling .refresh on the stream provider when it is disposed then i get exactly (the expected) one notification event on relistening to it (containing ALL changes performed in the database meanwhile):
_ref.onDispose(() {
   print('disposing...');
   _ref.refresh(contractorAccountsStreamProvider('accountId'));
});

Does that somehow make sense to you? I'm not sure if this would be a good approach.

I read this sentence on the StreamProvider page:

it caches the latest value emitted by the stream, ensuring that if a listener is added after an event is emitted, the listener will still have immediate access to the most up-to-date event.

Could it be that this cache is not cleared on disposing the provider and therefore be the reason why i'm getting the last value again on relistening the provider?

Ok it seems that this effect is a feature and not an issue.
I've tested it with Creator and got the same behaviour.
When disabling Firebase persistence (as a test) the issue is also gone, therefore the old data delivered on relistening comes from Firebase caching.

Right, but I don't understand your feature request either. So I'm a bit at loss

@rivella50 Have you raised an issue on the flutterfire repo about the problematic behavior? Maybe this needs a Firebase fix.

@rrousselGit Yes i did: https://github.com/firebase/flutterfire/issues/8961
They look at it as an enhancement.


[#2286] Distribution.java correct equals method.

What changes were proposed in this pull request?
This pull request addresses the issue with the equals method in Distribution.java. The equals method is updated to correctly override Object.equals(Object), ensuring it adheres to Java's best practices.
Why are the changes needed?
This pull request addresses the issue with the equals method in Distribution.java. The equals method is updated to correctly override Object.equals(Object), ensuring it adheres to Java's best practices.
Fix: #2286
Does this PR introduce any user-facing change?
NO
How was this patch tested?
This patch was tested using unit tests that verify the behavior of the equals.

@diqiu50 I have raised this new pull request this doesn't change the original behavior, kindly review.

@diqiu50 Can you compile the code successfully,

This equals method is primarily used to solve compare different instances of DistributionDTO and DistributionImpl. The equals are the best name. If everyone feels that this name is ambiguous, we can also change it.
You need to add some testers for it

It may be that this needs to be fixed?
/home/runner/work/gravitino/gravitino/api/src/main/java/org/apache/gravitino/rel/expressions/distributions/Distribution.java:60: warning: [cast] redundant cast to Distribution
    Distribution that = (Distribution) obj;

@justinmclean  can I make a separate class for distribution??
public class DistributionImpl implements Distribution {
@Override
public boolean equals(Object obj) {
    if (this == obj) {
        return true;
    }
    if (obj == null || getClass() != obj.getClass()) {
        return false;
    }

    Distribution that = (Distribution) obj;
    return number() == that.number()
        && strategy().equals(that.strategy())
        && Arrays.equals(expressions(), that.expressions());
}

}

@lokendra005 Can you update you code for review. You need add some tester for this changed.  I expect you have some testers that compare difference object for Distribution


invoke: Ensure all references to the host are released before try_finish()

The VM was holding a reference to the host. Using a dedicated scope for the VM (invoke_function()) releases it and the internal host reference.

@2opremio I merged https://github.com/stellar/soroban-cli/pull/131 instead because it was a smaler change that didn't refactor the code, and it was more explicit about what is going on. We should remove the Vm too at some point.

Thanks for figuring out what was going on with this bug.

I'm reviewing #131 in #132, then I'll merge this PR.


java/nio/MappedByteBuffer/Truncate.java.Truncate  got VM crashes with hotspot jdk8 (Zero Interpreter)

java/nio/MappedByteBuffer/Truncate.java consistently got VM crashed with s390x hotspot jdk8.
Stacktrace

Unexpected exit from test [exit code: 134]

Standard Output

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (os_linux_zero.cpp:202), pid=61427, tid=0x000003ff63fff910
#  Error: ShouldNotCall()
#
# JRE version: OpenJDK Runtime Environment (8.0_202-b08) (build 1.8.0_202-201903300430-b08)
# Java VM: OpenJDK 64-Bit Zero VM (25.202-b08 interpreted mode linux-s390x )
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /data/jenkins/workspace/openjdk8_hs_openjdktest_s390x_linux/jvmtest/openjdk_regression/work/scratch/2/hs_err_pid61427.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

https://ci.adoptopenjdk.net/view/Test_openjdk/job/openjdk8_hs_openjdktest_s390x_linux/18/consoleFull

This isn't an s390x specific issue. It's Zero VM related. I can reproduce on x86_64, Zero. The issue is that Zero doesn't support unsafe accesses as they are platform specific. The idea about Zero is to make it as little platform specific as possible. The code which catches this reads:
      if (thread->thread_state() == _thread_in_vm &&
               sig == SIGBUS && thread->doing_unsafe_access()) {
      ShouldNotCallThis();
    }

The method on TOS is sun.misc.Unsafe.getByte(J)B called by java.nio.MappedByteBuffer.load()Ljava/nio/MappedByteBuffer;. Unless somebody steps up implementing this upstream I don't think this issue will change.

Just as an extra note, this also occurs on arm32 with a similar outcome https://github.com/AdoptOpenJDK/openjdk-tests/issues/1548
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (os_linux_zero.cpp:202), pid=30758, tid=0x90b7e460
#  Error: ShouldNotCall()
#
# JRE version: OpenJDK Runtime Environment (8.0_232-b09) (build 1.8.0_232-b09)
# Java VM: OpenJDK Zero VM (25.232-b09 interpreted mode linux-arm )
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/jenkins/workspace/Grinder/openjdk-tests/TKG/test_output_15790525703979/jdk_nio_0/work/scratch/hs_err_pid30758.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

https://github.com/adoptium/aqa-tests/issues/1052#issuecomment-490821987

@smlambert should we tag as won't fix or report upstream? As @jerboaa mentioned Unless somebody steps up implementing this upstream I don't think this issue will change.

Is it is at least reported upstream (even if no one will take on a fix)?  Since it is unlikely that anyone wants to implement this upstream, we can permanently exclude this testcase.  Exclude it with a reference to the upstream issue if it exists, otherwise use the "permanent excludes" issue in this repo (to which we should add a comment.

I'll look at opening something in JBS upstream and updating this issue and the exclusion appropriately.

JBS opened: https://bugs.openjdk.org/browse/JDK-8345842


Update csv.md

Fix --errors-file flag typo
Simple typo fix

[ - ] Signed the InfluxData CLA
(if necessary)
[ - ] Tests pass (no build errors)
[ - ] Rebased/mergeable

Thanks, @lanceybp!


how can i load pickle file?

thanks for sharing the code .. i'm trying to load pickle file to read it using these commands
import pickle  infile = open('data.pkl','rb') new_dict = pickle.load(infile) infile.close() print(type(new_dict))
but error is
_pickle.UnpicklingError: A load persistent id instruction was encountered, but no persistent_load function was specified.
i searched for the solution but got that  pickle file appears to be using advanced features that suggest it was never supposed to be directly loaded this way. can you help, please ?

What is the error code? It seems that there is no 'data.pkl' in this repository.

thanks for replying , the error is _pickle.UnpicklingError: A load persistent id instruction was encountered, but no persistent_load function was specified. i tried to open epoch1 after it finished

Could you provide the complete source code and point out the error line?
For example, in XXX line of XXX.py.

this code what i did
import pickle infile = open('data.pkl','rb') new_dict = pickle.load(infile) infile.close() print(type(new_dict))
and the error in this line new_dict = pickle.load(infile) in load function .. i tried to read it by these lines
with open('data.pkl', 'rb') as infile:     content = infile.read() print(content)
but got like that `b'\x80\x02}q\x00(X\x04\x00\x00\x00metaq\x01}q\x02(X\r\x00\x00\x00mmdet_versionq\x03X\x06\x00\x00\x002.10.0q\x04X\x07\x00\x00\x00CLASSESq\x05(X\x06\x00\x00\x00personq\x06X\x07\x00\x00\x00bicycleq\x07X\x03\x00\x00\x00carq\x08X\n\x00\x00\x00motorcycleq\tX\x08\x00\x00\x00airplaneq\nX\x03\x00\x00\x00busq\x0bX\x05\x00\x00\x00trainq\x0cX\x05\x00\x00\x00truckq\rX\x04\x00\x00\x00boatq\x0eX\r\x00\x00\x00traffic lightq\x0fX\x0c\x00\x00\x00fire hydrantq\x10X\t\x00\x00\x00stop signq\x11X\r\x00\x00\x00parking meterq\x12X\x05\x00\x00\x00benchq\x13X\x04\x00\x00\x00birdq\x14X\x03\x00\x00\x00catq\x15X\x03\x00\x00\x00dogq\x16X\x05\x00\x00\x00horseq\x17X\x05\x00\x00\x00sheepq\x18X\x03\x00\x00\x00cowq\x19X\x08\x00\x00\x00elephantq\x1aX\x04\x00\x00\x00bearq\x1bX\x05\x00\x00\x00zebraq\x1cX\x07\x00\x00\x00giraffe'

There might be a format problem with your data.pkl.
As I know, the pickle of py2 and py3 are not compatible.
You could check the document of pickle. I have no idea about this.

Thanks but what is the expected content in the pickle file if I want to
make detection for image .. the objects and their boundaries only
On Sun, Mar 28, 2021, 7:21 AM whai362 @.***> wrote:

Closed #22 https://github.com/whai362/PVT/issues/22.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/whai362/PVT/issues/22#event-4517814747, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ATNSWO5MLAJTKAFT3H7AK53TF24GTANCNFSM4Z44LICQ
.

Thanks but what is the expected content in the pickle file if I want to
make detection for image .. the objects and their boundaries only or where can i find the class of pickle you used as i searched but couldn't find it .. thanks for your time


[HOLD for payment 2023-08-28] Transaction objects for expense data are created with wrong amount

Problem
The optimistically created transaction objects should have saved amounts as negative numbers in case of the linked report being an expense report.  Thats to mirror how the backend stores the data and what the server returns. Once we switch to using the transaction data here https://github.com/Expensify/App/pull/24345 this will cause problems https://github.com/Expensify/App/pull/24345
Additionally when paying money request we are incorrectly creating a new transaction and the original message is incorrect as well not matching to what the backend returns, not sure how this got through for so long 😄
Solution
Remove the redundant code and make sure transactions are created with negative amounts if they are linked to expense reports.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01b5302916f1fc46d7
Upwork Job ID:<PHONE_NUMBER>405168128
Last Price Increase: 2023-08-15

I'll take this as part of wave3

PR with fix is in a review

@situchan has reviewed the PR so they should be eligible to $1000 reward (done before the pricing change)

This is fixed, no need for checklist @JmillsExpensify could you please pay out @situchan $1000 for their work here, thanks!

@mountiny to help @JmillsExpensify, can I use additional 1k from #23280 to pay this issue, instead of refund?
cc: @maddylewis

@maddylewis Can you please comment here, you have paid @situchan twice on the linked issue and that covers this issue too and then close it? just for auditing purposes

great idea! confirmed that i paid @situchan twice for this issue. we can use that extra payment for this issue!
https://github.com/Expensify/App/issues/23280#issuecomment-1743488471


Set volatile baboon's colour to change when it is triggered to explode

Hi @LlemonDuck and @rdutta,
I am unable to replicate the behavior in this gif from the following PR that allows for the Volatile Baboon's colour to change when it's fuze has been triggered so it explodes:
https://github.com/LlemonDuck/tombs-of-amascut/pull/84
I use the following settings:

I have the baboon outline off since I was using better NPC highlight before you made this update and can't be bothered to migrate those settings to the TOA plugin atm.
Volatile Baboon is set to be yellow with the tile radius of it's trigger and explosive range showing.

The outcome of these settings is that the baboon is always yellow, even when exploding. I would like it to turn red when triggered, just like in the gif.
Thanks :)

I just looked and saw it was removed in one of the commits. Would it be possible to add it back with the option to set it for those who want to use the feature?
It would be great to know when it's time to run away.

Reason for its removal is in a collapsed comment:

Remove this feature. Jagex has been lenient on not counting some stuff in the other puzzle rooms since they aren't combat, but I feel this oversteps.

Fair enough, thank you!


UnicodeDecodeError while fetching items

It seems like I randomly get errors like this:
 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xde in position 174: invalid continuation byte

        at msgpack._cmsgpack.Unpacker._unpack (_unpacker.pyx:443)
        at msgpack._cmsgpack.Unpacker.__next__ (_unpacker.pyx:518)
        at mpdecode (/usr/local/lib/python3.7/site-packages/scrapinghub/hubstorage/serialization.py:33)
        at iter (/usr/local/lib/python3.7/site-packages/scrapinghub/client/proxy.py:115)

This happens while iterating the items through last_job.items.iter()
It seems to happen about 50% of the time from what I see. I scrape the same website every day and run that function and sometimes it works fine, sometimes raise that error. I am not sure if this is an issue with this library or with the ScrapingHub API though but it is very problematic.
This happens on the latest (2.3.1) version

May https://github.com/scrapinghub/python-scrapinghub/issues/151 be the answer to this?

I am using msgpack v1.0.2 so I don't think this is the issue

https://github.com/scrapinghub/python-scrapinghub/issues/121 also seems related. I would try uninstalling msgpack, see if that makes any difference.

After checking my logs it seems like when the error occurs I have received such strings from the ScrapingHub API with well formatted UTF-8 appart from \xde\x00\x18 , \xde\x00\x16 or \xde\x00\x19. Those sequences seem to be inserted between some properties (for instance in my case I have a description field that I get correctly, and then that sequence gets inserted before the next property starts. The weird thing is that I cannot seem to be able to trigger the error manually because everytime I fetch the items through the command line it seems to work, and the source data seems correct.

After looking even deeper in the logs it seems that those sequences are not randomly inserted. Instead it looks like the description field is in those cases "cut" at some point and then the weird sequence is inserted and then it moves to another field.
After seeing that I suspect this might not be a problem with this library but maybe more with ScrapingHub API?

I think this is https://github.com/scrapinghub/python-scrapinghub/issues/121 . Using iter for long can be an issue. In #121 it’s better explained, including how to work around that issue.

Thank you I will try that solution and close this issue if it fixes it. It might take a few days though as the error doesn't happen every day as I mentioned.

It does seem like it fixed the issue, thank you for the help.
This might be worth mentioning in the documentation somewhere though because the error doesn't make it easy to understand the problem.


operator k10-kasten-operator-rhmp (7.0.8)

New operator bundle
Name: k10-kasten-operator-rhmp
Version: 7.0.8
Certification project: 618d6e75997a4c5a1ba64786
Test result URL: https://catalog.redhat.com/api/containers/v1/projects/certification/test-results/id/66e08658b7a4108acb94986b
Test logs URL: https://catalog.redhat.com/api/containers/v1/projects/certification/artifacts/id/66e08656b7a4108acb949866

/pipeline restart operator-release-pipeline


Feat: Enable Chat Streaming

Watsonx.ai chat streaming
Issue #12
Go Channels

Create a go data channel.
Make the request to the streaming endpoint that will return a text/event-stream.
Read each package using the scanner.
Marshal each chunk/package of the response.
Send the chunk to the channel.
Once the streaming is done, close the channel.

(When reading with the scanner the first two reads are the id and the type of message, and then is the data (JSON to marshall)) Maybe an improvement can be made here.
Error Handling:
Early Error Detection: If the prompt is empty, an error is returned right away, and the data channel is closed to avoid further processing.
Logging Errors: Errors during the HTTP request or data processing are logged, so any issues can be easily tracked and the channel closed.
Future updates (Suggestion)
I believe is a good idea to use the Result Pattern so we could create a StreamingResponse that contains three attributes (Data, Err, success)
type StreamingResponse struct {
	Data		GenerateTextResult	`json:"data"`
	Err			error				`json:"error"`
	Success 		bool					`json:"success"`
}

With this we can return a message without needing to distinguish from a data message or an error message. The option of an error channel is not too good as will introduce a massive complexity.

I had to delete all commits and merge them to a single commit as I forgot to sign them with the -s flag, apologies for that.


Fixed correct original props callback on cloneElement

@iwiznia
Details
Quick Fix: Just found out that the original callbacks are not being called correctly.
Fixed Issues

$ https://github.com/Expensify/App/issues/16084
Tests

Login to App
Go to any chat
[Web Only] Verify that you can hover messages (background changes)
[Web Only] Verify that tooltips on the mini context menu works correctly (tooltip should show on hover)
Go to Settings -> Payments then click "Add payment method" button and select "Debit card"
Verify that the form function normally (and if you keep a field empty an error message should be shown)

[ ] Verify that no errors appear in the JS console

Offline tests
n/a
QA Steps

Login to App
Go to any chat
[Web Only] Verify that you can hover messages (background changes)
[Web Only] Verify that tooltips on the mini context menu works correctly (tooltip should show on hover)
Go to Settings -> Payments then click "Add payment method" button and select "Debit card"
Verify that the form function normally (and if you keep a field empty an error message should be shown)

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/16493223/226589375-55e3fd7c-0e44-454a-be82-e3cc352b4481.mp4

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

cc @iwiznia

@iwiznia They are not equivalent, it's not about the context, this plays no role here. The difference is:

Before: Calling child.METHOD
After: Calling child.props.METHOD

The methods are inside props. Check the return value documented here https://beta.reactjs.org/reference/react/cloneElement#returns

Ohhh 🤦 I missed that 😄

@iwiznia Thanks for the quick review

I have pushed a commit that fixes the same issue for Form.js.
The bug is the following piece of code will never work as you'd expect
<Form>
    <TextInput ref={r => this.texInput = r} onBlur={this.callThePolice} />
</Form>

this.texInput will never be set and this.callThePolice will never be called.
This PR should fix that as well.

@s77rt can you add tests to make sure that each piece of the code you touched is working correctly?

Hey! I see that you made changes to our Form component. Make sure to update the docs in FORMS.md accordingly. Cheers!

@cead22 The changes will mostly prevent future bugs and save debug time more than solve a current bug. I have added a video for Web confirming Hoverable, Tooltip and Form are working correctly. I think that would be enough for this case, LMK if something else is needed.
@MelvinBot I'm not modifying anything major on Forms, nothing to be updated here.

Oh my bad, somehow I read it "tests" but my mind read it "screenshots/videos" :sweat_smile:
Adding tests...

Added tests.

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@s77rt I found a new error in the console when clicking on an IOU badge on the left hand navigation, and then clicking the cancel button. I tried a couple of times in main and I couldn't reproduce that same issue. Can you check if you get the same result?

Warning: Failed prop type: Invalid prop `pendingAction` of value `[object Object]` supplied to `OfflineWithFeedback`, expected one of ["add","update","delete"].

Warning: Failed prop type: Invalid prop `pendingAction` of value `[object Object]` supplied to `OfflineWithFeedback`, expected one of ["add","update","delete"].
    at OfflineWithFeedback (webpack-internal:///./src/components/OfflineWithFeedback.js:101:85)
    at withNetwork(OfflineWithFeedback)
    at withLocalize(withNetwork(OfflineWithFeedback))
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at TouchableWithoutFeedback (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/TouchableWithoutFeedback/index.js:46:28)
    at IOUPreview (webpack-internal:///./src/components/ReportActionItem/IOUPreview.js:144:13)
    at withOnyx (webpack-internal:///./node_modules/react-native-onyx/dist/web.development.js:2135:73)
    at withLocalize(Component)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/ScrollView/ScrollViewBase.js:68:24)
    at eval (webpack-internal:///./node_modules/create-react-class/factory.js:897:37)
    at ScrollView
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at FullPageNotFoundView (webpack-internal:///./src/components/BlockingViews/FullPageNotFoundView.js:65:13)
    at withLocalize(FullPageNotFoundView)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at KeyboardAvoidingView
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at SafeAreaConsumer
    at ScreenWrapper (webpack-internal:///./src/components/ScreenWrapper/index.js:69:86)
    at withNetwork(ScreenWrapper)
    at withOnyx (webpack-internal:///./node_modules/react-native-onyx/dist/web.development.js:2135:73)
    at withKeyboardState(Component)
    at withWindowDimensions(withKeyboardState(Component))
    at WithNavigation (webpack-internal:///./src/components/withNavigation.js:23:93)
    at IOUDetailsModal (webpack-internal:///./src/pages/iou/IOUDetailsModal.js:128:86)
    at withOnyx (webpack-internal:///./node_modules/react-native-onyx/dist/web.development.js:2135:73)
    at withNetwork(Component)
    at withLocalize(withNetwork(Component))
    at StaticContainer (webpack-internal:///./node_modules/@react-navigation/core/lib/module/StaticContainer.js:13:16)
    at EnsureSingleNavigator (webpack-internal:///./node_modules/@react-navigation/core/lib/module/EnsureSingleNavigator.js:17:5)
    at SceneView (webpack-internal:///./node_modules/@react-navigation/core/lib/module/SceneView.js:23:5)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at CardSheet (webpack-internal:///./node_modules/@react-navigation/stack/lib/module/views/Stack/CardSheet.js:19:5)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at AnimatedComponent (webpack-internal:///./node_modules/@expensify/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js:59:88)
    at AnimatedComponentWrapper
    at Dummy (webpack-internal:///./node_modules/@react-navigation/stack/lib/module/views/GestureHandler.js:15:5)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at AnimatedComponent (webpack-internal:///./node_modules/@expensify/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js:59:88)
    at AnimatedComponentWrapper
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at Card (webpack-internal:///./node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js:60:5)
    at CardContainer (webpack-internal:///./node_modules/@react-navigation/stack/lib/module/views/Stack/CardContainer.js:28:5)
    at div
    at eval (webpack-internal:///./node_modules/@expensify/react-native-web/dist/exports/View/index.js:52:25)
    at NativeScreen (webpack-internal:///./node_modules/react-native-screens/lib/module/index.js:58:1)
    at AnimatedComponent (webpack-internal:///./node_modules/@expensify/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js:59:88)
    at AnimatedComponentWrapper

I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).

Am I correct that onBlur, onMouseLeave, etc are standard function names that we can't/shouldn't change?

@cead22 Thanks for the review!

I found a new error in the console

I can't reproduce that. Can you repeatedly reproduce it? I don't think it's related to the change here and was mostly a coincidence due to some other factors.

Am I correct that onBlur, onMouseLeave, etc are standard function names that we can't/shouldn't change?

No, the checklist you quoted is referring to the callback of those functions should have a clear naming of what they do. e.g.:

onMouseLeave={this.onMouseLeave} => :x: Bad
onMouseLeave={this.onButtonMouseLeave} => :x: Bad
onMouseLeave={this.hideTooltip} => :heavy_check_mark: Good

@iwiznia all yours

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/iwiznia in version: 1.2.91-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.2.91-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


How to properly stop and cleanup EventBroadcaster

Our service interacts with many different Kuberentes clusters and creates event broadcasters against each of the API Servers when it's performing actions and then once done expects to cleanup the broadcaster entirely to make sure there are no leaks.
import (
	"k8s.io/client-go/kubernetes"
	"k8s.io/client-go/tools/record"

	"k8s.io/api/core/v1"
	"k8s.io/client-go/kubernetes/scheme"
	v1core "k8s.io/client-go/kubernetes/typed/core/v1"
)

// NewEventRecorder returns a new Event recorder
func NewEventRecorder(clientset *kubernetes.Clientset, namespace string, publisherID string) (record.EventRecorder, func(), error) {
	broadcaster := record.NewBroadcaster()
	shutdownInterface := broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(clientset.CoreV1().RESTClient()).Events(namespace)})
	return broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: publisherID}), func() { shutdownInterface.Stop() }, nil
}

What we are seeing that despite calling Stop() below the loop goroutine hangs around indefinitetly
goroutine 89892 [chan receive, 810 minutes]:
github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc015ad8440)
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:207 +0x66
created by github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.NewBroadcaster
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:75 +0xcc

goroutine 182245 [chan receive, 324 minutes]:
github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc07dbaa380)
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:207 +0x66
created by github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.NewBroadcaster
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:75 +0xcc

goroutine 88795 [chan receive, 816 minutes]:
github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc00d85f040)
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:207 +0x66
created by github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.NewBroadcaster
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:75 +0xcc

goroutine 96642 [chan receive, 774 minutes]:
github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc00e89bf00)
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:207 +0x66
created by github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch.NewBroadcaster
	/go/src/github.ibm.com/alchemy-containers/armada-bootstrap/vendor/k8s.io/apimachinery/pkg/watch/mux.go:75 +0xcc

It appears it might be waiting to force the events through but I believe there ultimately needs to be a way to do a complete shutdown and not wait for the events to go through or that it at least shuts down after some period of time so resource leaks don't occur

Almost effectively looking for a ForceShutdown in the case where events aren't critical to be delivered and instead are just best effort.
func (m *Broadcaster) Shutdown() {

func (m *Broadcaster) ForceShutdown() {

@relyt0925 I'm curious if you got an answer to this?  I was just battling something along these lines myself.


Homebrew: "Python location" not pointing to a virtual environment

Description
"Python location" was added to the output of --version for the VSCode extension to pick up and use as the entry point for loading the command tree, documentation and completion proposals (#2986). That depends on "Python location" pointing to a virtual environment with all the CLI's modules in it. When installing on Mac through Homebrew that is not the case and the VSCode extension does not work.

Environment summary
Install Method: How did you install the CLI? (e.g. pip, interactive script, apt-get, Docker, MSI, nightly)
Answer here: Homebrew on Mac
CLI Version: What version of the CLI and modules are installed? (Use az --version)
Answer here: 2.0.18
OS Version: What OS and version are you using?
Answer here: Mac OS Sierra
Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows)
Answer here: zsh
/cc @derekbekoe @chrisdias

The output:
az --version
azure-cli (2.0.18)

acr (2.0.12)
acs (2.0.16)
appservice (0.1.17)
backup (1.0.1)
batch (3.1.4)
billing (0.1.5)
cdn (0.0.9)
cloud (2.0.8)
cognitiveservices (0.1.8)
command-modules-nspkg (2.0.1)
component (2.0.7)
configure (2.0.11)
consumption (0.1.5)
container (0.1.11)
core (2.0.17)
cosmosdb (0.1.13)
dla (0.0.12)
dls (0.0.14)
eventgrid (0.1.4)
extension (0.0.3)
feedback (2.0.6)
find (0.2.7)
interactive (0.3.10)
iot (0.1.12)
keyvault (2.0.11)
lab (0.0.11)
monitor (0.0.10)
network (2.0.15)
nspkg (3.0.1)
profile (2.0.13)
rdbms (0.0.7)
redis (0.2.9)
resource (2.0.15)
role (2.0.12)
servicefabric (0.0.4)
sql (2.0.12)
storage (2.0.16)
vm (2.0.15)

Python location '/usr/local/bin/python3'
Extensions directory '/Users/chrmarti/.azure/cliextensions'

Python (Darwin) 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]

Legal docs and information: aka.ms/AzureCliLegal

Based on feedback in my Homebrew PR, the Homebrew install does not use a virtual environment.
https://github.com/Homebrew/homebrew-core/pull/17344#issuecomment-326828536
Instead, the PYTHONPATH is set to the correct site-packages directory manually (which is what the virtual env would have done).
$ cat $(which az)
#!/usr/bin/env bash
export PYTHONPATH="/usr/local/Cellar/azure-cli/2.0.17/libexec/lib/python3.6/site-packages"
python3.6 -m azure.cli "$@"

Not sure how to work around this from our side. Maybe you could add "Python path: '/usr/local/Cellar/.../site-packages'" to the output of --version?

That would return a list of values rather than a single one.
e.g.:
Python path '['', '/usr/local/Cellar/azure-cli/2.0.17/libexec/lib/python3.6/site-packages', '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']'

If you add the correct path to your PYTHONPATH, does the VSCode extension work as normal?

It complains ImportError: No module named '_cffi_backend':
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/chrmarti/Development/repos/vscode-azurecli/service/azservice/__main__.py", line 338, in <module>
    main()
  File "/Users/chrmarti/Development/repos/vscode-azurecli/service/azservice/__main__.py", line 304, in main
    command_table = load_command_table()
  File "/Users/chrmarti/Development/repos/vscode-azurecli/service/azservice/tooling.py", line 67, in load_command_table
    _install_modules(command_table)
  File "/Users/chrmarti/Development/repos/vscode-azurecli/service/azservice/tooling.py", line 73, in _install_modules
    command_table[cmd].load_arguments()
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 335, in load_arguments
    self.arguments.update(self.arguments_loader())
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 653, in arguments_loader
    return extract_args_from_signature(get_op_handler(operation), no_wait_param=no_wait_param)
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 537, in get_op_handler
    op = import_module(mod_to_import)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/azure/cli/command_modules/acs/custom.py", line 35, in <module>
    from azure.cli.command_modules.acs import acs_client, proxy
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/azure/cli/command_modules/acs/acs_client.py", line 11, in <module>
    import paramiko
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/paramiko/__init__.py", line 31, in <module>
    from paramiko.transport import SecurityOptions, Transport
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/paramiko/transport.py", line 57, in <module>
    from paramiko.ed25519key import Ed25519Key
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/paramiko/ed25519key.py", line 17, in <module>
    import bcrypt
  File "/usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/bcrypt/__init__.py", line 25, in <module>
    from bcrypt import _bcrypt
ImportError: No module named '_cffi_backend'

Still trying to figure out how to get around it.

@derekbekoe I see /usr/local/Cellar/azure-cli/2.0.18/libexec/lib/python3.6/site-packages/_cffi_backend.cpython-36m-darwin.so and PYTHONPATH has that folder listed. Should that be enough to load this module or can I check anything else?

@chrmarti Did the VS Code extension load and run properly after adding the Python path.

@derekbekoe No, it shows the above error about not finding _cffi_backend  (https://github.com/Azure/azure-cli/issues/4573#issuecomment-332983784).

What version of Python are you using? I see 3.5/lib/python3.5 in the error message.
Can you try Python 3.6?
Really just running this should work as that's what az does:
export PYTHONPATH="/usr/local/Cellar/azure-cli/2.0.17/libexec/lib/python3.6/site-packages"
python3.6 -m azure.cli "$@"

You're right, the 'Python location' points to Python 3.5. It works with Python 3.6. python -m azure.cli works with both Python 3.5. and 3.6 when run with no parameters.

@derekbekoe Anything else I should try? Is the homebrew package installing 3.6 packages when using the installed python 3.5 at fault?

Is the homebrew package installing 3.6 packages when using the installed python 3.5 at fault?

Yes it does.
It attempts to run python3.6 and if that doesn't exist on PATH, falls back to python3.

That is causing the problem then? I'm trying to understand what I can do.

Had a similar problem with homebrew installed az. Python 3.6 was installed but not linked correctly by homebrew. The problem was fixed by doing brew link --overwrite python3

I will submit a PR to https://github.com/Microsoft/vscode-azurecli with a fix shortly.


Rustdoc gave me some warnings that only the first code block of each doc string was actually being tested, so I put everything in one code block by shadowing the value binding. This is rust-lang/rust#41401, but it only affects recent nightlies.
¹ I.e., copypasta from

What a legend. Thanks for all your help!


Get the description product

You can get the description product in tags like
.content_tab p itemprop=description
And take this description in first request product, if the product has been requested you just compare them, if has changed you save the new on database.

Fixed.


Read an index in Java/Scala

I would like to read an index (pre-indexed in python) via Scala, to be used for retrieval in Play app. I went through the query_server but I'm still not sure how this can be integrated in a web app like Play.
Any input is appreciated. Thanks.

What is Play?

It's a web application framework for java/scala, I may ask this differently please.
When I start a cpp server via thrift, I assume it starts indexing. Is there a way I can start a server that reads an index that was created earlier? In case this doesn't exist, I would like to build an app in java/scala that reads an already created index and queries it. is it possible? any guidelines would be great.
Thank you

@Saftophobia if you do
./query_server ... -c <index parameters> -t <query parameter> -S <index name>

then it will create and save the index.
Next time, you can do simply:
./query_server ... -c <index parameters> -t <query parameter> -L <index name>

Please, use the query server (but not the other code) from this branch:
https://github.com/nmslib/nmslib/tree/nmslib4a_postdoc
Can't use the older code with the recent versions of Apache Thrift.


Implement MetricSparklines

It should take two metrics, one for the bar chart (raw data series) and one for the line chart (normally a rolling average). We should also pass a number of days (or a date range) to filter the timeseries by, that way we can make multiple series consistent with each other.
// width: 100% height: 100%,
<MetricSparklines
  region={region}
  metricLineChart={metricCasesRollingAvg}
  metricBarChart={metricCases}
  numDays={30}
/>

https://github.com/covid-projections/act-now-packages/pull/175


Add information to the "About Signal Suppression" article

Purpose of this pull request
This pull request (PR) adds information to this article:
https://help.sumologic.com/docs/cse/records-signals-entities-insights/about-signal-suppression/
Issue number: GitHub issue #2666

Select the type of change:

[ ] Minor Changes - Typos, formatting, slight revisions
[x] Update Content - Revisions and updating sections
[ ] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - Updates, maintenance, and new packages for the site, Gatsby, React, etc

Thanks, @kimsauce.


Improvements to the 'download receipts' tool on profile page

If I go to my profile and click 'transactions' I see a tool to download my receipts. There are a couple issues with it.

It's called "download receipts" but when you click on it, it says "download invoices". An invoice is what I submit to be paid for my time. A receipt is the proof that I have paid money. It should be consistent and say "receipts".
If there are no receipts to show for the current month, it looks very odd. It should just say "none" instead of putting nothing there.

Hi @alanna I’d like to have a go at this if it’s okay


Update PHP version to keep up with the world. :)

Depends on #3

Thank you @nootanghimire You are awesome :+1:


Can I have access to private Pro repository after buying a license ?

My company has bought Pro license and we received link to zip archive. But updating via unpacking zip archives isn't convenient, it'll be better to connect Pro repository to project. Can I have access to Pro repo?

This option is available if you have active membership plan. We have to pay github $9 per month for any additional user, so we can't offer this with standard and extended license.


Add ability to manually override License issues

Some repos, like the one below, use licenses that we could accept but GitHub doesn't recognize. We could add a boolean field to our config that overrides the license check.
https://api.github.com/repos/SamuelMarks/ml-params

See also:
https://github.com/google/devlibrary/discussions/221


Add support for std::filesystem in pugi::xml_document::load_file()

This is kinda minor, but it would be awesome if I could pass in a std::filesystem::path instead of having to convert it to const char*:
std::filesystem::path path = FindPathToBuildXml(filename);
if (path.empty())
return 1;
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file(path.c_str()); // <-- with native support, we wouldn't need to call .c_str(), and internally, you might choose to get the unicode path instead
if (!result)
	return -2;

@DanForever Note that path::c_str() returns path::value_type const *, so wchar_t on Windows and char on Unixoids. The resulting string is hence already a "Unicode path". (similar for path::native() etc., but not for path::string(), path::wstring() etc.)
Also this would pick the correct overload of xml_document::load_file() on each platform.

Yeah, .c_str() is already the correct way to handle this. My understanding is that it's not really legal to forward-declare std::filesystem::path (and, in practical terms, pugixml used to try to forward declare a set of STL objects and this was a significant compatibility hazard, so since then I've resigned to include the necessary STL headers) - thus implementing this would require including <filesystem> header when available, which can negatively impact compilation times. Finally, some platforms implement C++17 but don't provide fully functional <filesystem> headers either. Overall I feel like the extra maintenance burden here doesn't justify the minor convenience of not having to type .c_str().


Structuring Large Applications with Blueprint and Application Factory…

… in Flask
Article checklist
ATTENTION: In your PR - add the ISSUE (topic form) # that this PR corresponds to. You can do this by also adding a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
If you have not already please go over our Resources Page for more tips and tricks on how to improve our overall technical writing.
Preliminary Checks - Formatting and Structure

[x] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[x] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[x] Please place your article through a 3rd party plagiarism checker? We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution guidelines
For first-time contributors and for more details, see Contributing Guidelines

This pull request fixes issue https://github.com/section-engineering-education/engineering-education/issues/2365

👋

@corpsgeek
Good afternoon and thank you for submitting your article for publishing. It has been entered into our queue and should be reviewed (and published pending any changes) as soon as a peer reviewer is finished with the ones in the queue before it.  🚀

Alright @hectorkambow

plagiarism check done

Done. @srishilesh

Hi, @corpsgeek.
You should use a separate branch on your forked repo for article submissions, not the master branch. Please create a new branch from master so we can conduct a final review of your article.
cc @srishilesh

@srishilesh how do I go about fixing the above issue?

@louisefindlay23 here is the PR in a new branch and all changes https://github.com/section-engineering-education/engineering-education/pull/2905


Test set for Pangram Grep is flawed

Sorry don't have time to investigate now, but I think that there are only a few letters that you have to check in order to get the right output. Feel free to disqualify my 29 character submission (and replace it with 30 character one).

Well, to demonstrate how bad it is, here's a snippet that tests for m u d:
/m/&/u/&/d/&&.say for @*ARGS

Another improper solution that has to be covered by the test set:
.comb.unique>㉗≠.say for @*ARGS

Another problem is that you can only check for two of the false cases, while ignoring the first given test case. Run this code repeatedly and you have 1/14 chance to get a correct solution. If you just do something like a Python solution *map(print,sys.argv[3:]),, you can cheese a 1/2183 chance to get a valid solution.

Are you also going to retest everyone's solution for this after it's fixed? My Python solution really shouldn't be at the top of the Python leaderboard, since it only works 1/28th of the time

With the PR from @edre merged in a grand total of 32 solutions now fail, so I shall get to work marking them as failed.


cni-plugins - fix: don't clobber on cp

In more recent versions of k3s, some of the cni plugins pre-exist as symlinks to a shared cni binary (e.g. portmap -> cni).
lrwxrwxrwx 1 root root    3 Feb  9 13:04 bandwidth -> cni
lrwxrwxrwx 1 root root    3 Feb  9 13:04 bridge -> cni
-rwxr-xr-x 1 root root 4.0M Feb  6 02:58 cni
lrwxrwxrwx 1 root root    3 Feb  9 13:04 firewall -> cni
lrwxrwxrwx 1 root root    3 Feb  9 13:04 flannel -> cni
lrwxrwxrwx 1 root root    3 Feb  9 13:04 host-local -> cni
lrwxrwxrwx 1 root root    3 Feb  9 13:04 loopback -> cni
lrwxrwxrwx 1 root root    3 Feb  9 13:04 portmap -> cni

A plain cp follows the symlink and clobbers the cni binary, breaking the k3s installation.
This PR adds the -n flag to cp to avoid clobbering all together, and effectively fixes the issue.
Testing has shown that for multus to work, only macvlan and static need to be added. All the other pre-existing tooling suffices and does not need to be overwritten.

@wilfrieddaniels - please see https://github.com/angelnu/containers/pull/85


Can I just build client-side only? No SSR.

I'm using vitesse and one of the 3-rd party library (element-ui 3) use document variable, it will build fail with a not defined error. Since it's just an admin page, I don't need SSR, a client-side only render would be fine. How to config it to render client  side only?
ps. I've turned on the mock option but not working, still ReferenceError: document is not defined.
ssgOptions: {
    script: 'async',
    formatting: 'minify',
    mock: true,
  },

Thanks

vite-ssg will always use ssr on build, and so you cannot use deps that are not ssr/ssg aware with import.
If you use ClientOnly the import is still there and so your build will fail. You need to import those deps with dynamic import.

Not sure if I got your point. If you don’t need SSR, you don’t actually need this plugin 👀

Not sure if I got your point. If you don’t need SSR, you don’t actually need this plugin 👀

Actually i want a config option like 'ssr:false' in ViteSSG too. So that to skip build for server

@antfu

Remove this package and you can build the client only.

we want the functionality like how nuxt3 component.client.vue works,
so it will not render the component on ssg but still runs on client side


Validator Docstring improvements

Changes

Improved the docstrings in the validator sub package
Improved imports where relative paths were still being used in the validator sub package
Added __all__ to all __init__.py files in the yamlator package
Adjusted messages to be passed in as a variable instead of a string literal
Adjusted instance variables in certain validators to be protected instead of public

Codecov Report

Merging #36 (efc9e87) into main (9205d07) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #36   +/-   ##
=======================================
  Coverage   99.67%   99.67%
=======================================
  Files          19       19
  Lines         616      620    +4
=======================================
+ Hits          614      618    +4
  Misses          2        2

Impacted Files
Coverage Δ

yamlator/validators/any_type_validator.py
100.00% <ø> (ø)

yamlator/validators/base_validator.py
100.00% <ø> (ø)

yamlator/validators/builtin_type_validator.py
100.00% <ø> (ø)

yamlator/validators/required_validator.py
100.00% <ø> (ø)

yamlator/__init__.py
100.00% <100.00%> (ø)

yamlator/validators/__init__.py
100.00% <100.00%> (ø)

yamlator/validators/core.py
100.00% <100.00%> (ø)

yamlator/validators/enum_type_validator.py
100.00% <100.00%> (ø)

yamlator/validators/list_validator.py
100.00% <100.00%> (ø)

yamlator/validators/map_validator.py
100.00% <100.00%> (ø)

... and 3 more

Continue to review full report at Codecov.

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


User Directory documentation is confusing and misleading.

https://github.com/matrix-org/matrix-doc/commit/73118b6b294f63f63220d49762be6d145ad2efe6#diff-a9b4f5ce35bb739be9f3fe515413e401R34

This API performs a server-side search over all users registered on the server.

Implies that the search will cover the whole server, including the users I have not met.

It searches user ID and displayname case-insensitively for users that you share a room with or that are in public rooms.

Implies that the search will cover only users I have met, including those from other servers.
From what I can see, the synapse implementation does the latter of the two things but maybe it's a combination of both. Either way, the two sentences seem contradictory to me and I think it warrants further explaining.
As a person reading the spec, I'd assume it would be searching only my local server for users I have met.

And technically, only synapse perform the search that way, it doesn't have to be done that way.
It can be any algorithm or any policy in effect to decide what will be returned exactly, surely?

if anyone can suggest better wording, that would be appreciated.
Certainly what synapse does is not necessarily definitive here and details may be up to implementation or policy - so some aspects may be better phrased as recommendations or suggestions in the description.

(I seem to be forever finding GH issues that I have missed)
@maxidor I would very much like for this to define the behavior we should expect. If I write a client that says "this is a list of all known users" I would like for that to be the case. If you want to deviate from a behavior, use a parameter.

@Half-Shot then I think you should be very specific about list of known users - known to whom? the user? the sysadmin? the hosting system?
And do you include bridged networks? if not, why? etc.

That's made more difficult by even synapse having a config toggle for what that means.