Bump faker to 4.0

See https://github.com/samselikoff/ember-cli-mirage/pull/1062

As a side point, could we look at making the faker an user configured add on.
That would mean that there is no hard dependency to a faker version and people would have better control over its configuration. E.g. requiring specific locales for example.

Yes, in retrospect perhaps it shouldn't be in dependencies, but should be added as a devDependency to the host app's package.json. One issue is as people share upstream, they're now also responsible for declaring that dependency...

As discussed at https://github.com/samselikoff/ember-cli-mirage/pull/1062, bumping the version on Faker gets a bit more complicated, as the source files we currently rely on are removed in the new version. Upgrading will require working through that now ...

Our options include:

getting faker 4 to distribute the built js file to npm like it used to thread
deal with using the source code from faker directly somehow. Something like: working out how to get our build tools to slurp in a commonjs module as if it's an es6 module? (idk if I'm saying things accurately - no idea what's going on with our build tools lol)

Separately: even if we want this dependency to move out of ember-cli-mirage and into something like ember-faker, it will have to deal with this same bump, too. (it's still on 3.0.0](https://github.com/johnotander/ember-faker/blob/5be619702d9fe8ea5aedd700f7d87f4414a3f1b8/package.json#L51))

I got faker to export the main file faker.js again 🎉 (my option 1 above)
https://github.com/Marak/faker.js/issues/575

https://github.com/Marak/faker.js/pull/584

@caseywatts it looks like faker 4.1.0 was published, does that mean we can update here?

It's been released since then - ready for us to do the change we need on this side :)

I don't think a new version has been published since @caseywatts's PR. Also looks like a new version isn't going to be published: https://github.com/Marak/faker.js/issues/621#issuecomment-376164148

suddenly getting a build error when using this Faker version: Build Error (Babel)
identity/bower_components/Faker/examples/node/minimal-usage.js: 'return' outside of function (9:0)

Going to get to this soon.
reference: https://discuss.emberjs.com/t/best-practices-for-including-3rd-party-libraries-in-an-addon/15200/2

Recommend publishing a @mirage/faker fork

I'd say just take it out entirely and update the docs to recommend that users install Faker (or an equivalent) separately.
It would be totally fine to also publish a fork in parallel as @Gaurav0 suggests, but I I'd love Mirage just the same even if it didn't install Faker for me.

Ya. Leaning towards taking it out since we have auto-import now, but it is nice having it in there.
What would @mirage/faker fork look like?

At least the current master, if not accepting some PRs that have been ignored.

Hm... that seems like a big maintenance burden.
At this point I think the options are

Relying on Faker as a peer dependency so folks can configure it independently of their Mirage version, but it still comes "out of the box" with Mirage, or

Dropping Faker from Mirage entirely and providing some instructions on how to easily install & use it alongside Mirage, via ember-auto-import & the source npm package

I would 😍 using faker at the app level rather than as a dependency of Mirage.
I think peerDependency for now makes sense with the instructions that @ef4 mentioned in the discuss link posted above.
Seems best with a few 👍 side-effects:

Auto Import Use for some dependency shaking
User land can use whatever version of faker they want (assuming maybe a min major version)
User's can import faker from 'faker' ❤
Possibly remove any use of faker internally from mirage down the road

I don't think that we need to go straight to "Dropping Faker from Mirage entirely" unless it's as small as one reference.
There's also a lot of import { faker } from 'ember-cli-mirage' out there and ideally there would be an upgrade path (and maybe even a small codemod) so that CLI doesn't just break on those import statements.

Yea a codemod would be great for that.
I'm thinking peerDependency doesn't actually make sense here, since Mirage doesn't depend on faker, it just shipped with it so it was easily available for client apps. But now with auto-import it's basically just as easy.
I think eaf's peerDependency workflow makes sense for ECLI-Tailwind & the tailwind npm package.

Amazing! I would love to button this up and include a reference to it as part of v1.0 (still a little bit away, but not too far).
What do you think?

I'd love to share this there, yes :)
It's not working yet lol - but I don't mind if you point at it even while it's a work-in-progress, no problem. It could be a starting point for someone else to finish it if they have time sooner than I do. I'm trying to document it enough that someone could pick it up at least.

This works now! :D
https://github.com/caseywatts/ember-cli-mirage-faker-codemod
It could use a couple more things, but they're optional:

code review
https://github.com/caseywatts/ember-cli-mirage-faker-codemod/issues/4 (kinda important - placement of where faker gets inserted)
https://github.com/caseywatts/ember-cli-mirage-faker-codemod/issues/2 (less important - it's just a bit inelegant)

Run the codemod
The codemod is all set!
npm install -g jscodeshift
jscodeshift -t https://raw.githubusercontent.com/caseywatts/ember-cli-mirage-faker-codemod/master/transform.js ./tests

Faker
Getting faker to install using ember-auto-import is another issue though. When trying to use it, I get faker is undefined.
Issues

Faker's branch hasn't been released in a long time, and it's not clear when it will be - see this issue comment. We may want to fork faker, or recommend using an older version (from before the build file was removed).
Even when that release is done, ember-auto-import doesn't successfully auto-import it. I made my own fork of faker to test against, and it's still undefined. The export makes it to node_modules/faker/build/build/faker.js but that's probably not somewhere ember-auto-import is looking.

Install faker and ember-auto-import
yarn add https://github.com/caseywatts/faker.js/
git add . && git commit -m "adding faker package"
ember install ember-auto-import
git add . && git commit -m "installing ember-auto-import package"

got it! ✨

Faker has released a version since then, and it has build/build/faker.js in there
It doesn't work as beautifully as I hoped, but we can give autoImport a hint to find the built file (below)

Install faker and ember-auto-import
yarn add faker
git add . && git commit -m "adding faker package"
ember install ember-auto-import
git add . && git commit -m "installing ember-auto-import package"

add to ember-cli-build.js:
    autoImport: {
      alias: {
        'faker': 'build/build/faker'
      }
    }

@caseywatts, thank you very much for all the work you put in this topic.
I think that it would be good to provide a small tutorial/guide/tip on how to remove faker from production builds, which is a feature that ember-cli-mirage will stop providing

@AndreJoaquim good idea! I think your idea is to help people remove faker from the ember-cli-mirage build itself - especially for people who have no plans to use faker at all, even directly from npm.
Could you make a new issue about that so it gets tracked better? :)

I just updated the instructions from this thread into the README over here:
https://github.com/caseywatts/ember-cli-mirage-faker-codemod

Can someone provide instructions on how to import without ember-auto-import? Just using app.import works fine.

Another issue is that Faker breaks source maps on Chrome when excludeFilesFromBuild: false.
> SyntaxError: Unexpected token თ in JSON at position 3573855", source: chrome-devtools://devtools/bundled/shell.js (5566)

Related: https://github.com/Marak/faker.js/issues/375

https://github.com/samselikoff/ember-cli-mirage/pull/1527 removes faker!
I added upgrade notes to the AddonDocs site and will copy them over to the Release, once we cut 1.0.
I tried this out on EmberMap's frontend but ran into issues with @caseywatts' codemod. I'm going to wait until we get that sorted out & working before releasing 1.0 (among a few other things).

75c458da6a04525c303accb3d7632bef6383bdbb adds docs with codemod & closes.


Add ability for users to allow tuple drops upon backpressure detection

@nwangtw This flag makes sense even in ATLEAST ONCE because the tuples will time out and will retry later

Got it. Thanks!

Cool. Overall LGTM.
One last comment is to add the config in storm compatibility as well to keep them in sync.

@nwangtw 1. Does Storm have an equivalent call?

Good question.
I thought that the config as well and the translation should be added to the storm layer. Or maybe it shouldn't since the storm API shouldn't have the new features? I think I am ok either way.

Unless there is an equivalent storm api, there is no point adding this flag in the storm layer. As you mentioned storm layer is strictly for emulating the storm api, not adding func to it.

Make sense. Thanks.


fix(app): historical runs labware offset should list display names

Overview
This fixes a bug where the definition uri and raw module model of labware offsets would be shown in
place of their display names in the historical runs listing of the device detail page.
While the protocol details are loading, the labware definition uri will be shown as a fallback. Because the uri is unbroken by spaces this PR also ensures that names that are incapable of wrapping will ellipsize and the full name will be present in the title tag of the element (which will appear on hover).
Closes #11062
Changelog

add the textOverflow style prop
fix a couple of react warnings about misuse of data test ids and the key prop

Review requests

[ ] ensure that historical run labware offsets display as expected

Risk assessment
low

hey @b-cooper could you share a screenshot of the LPC data on the recent runs?

@ecormany  the vector styling appears to be an intentional part of this PR https://github.com/Opentrons/opentrons/pull/11008

@ecormany the vector styling appears to be an intentional part of this PR #11008

Oh, interesting. It's a fine design choice to make X, Y, and Z no longer bold but that data should probably be the same font size as everything else in the row. (It's smaller currently.)

@b-cooper is the first screenshot 1-word thats super long and truncates, vs the second screenshot many words and how it wraps? so if there are spaces between words we will wrap to 3 lines, and if there's no spaces we truncate at 1 line?

@emilywools that is correct

@ecormany  Thanks for catching that typography discrepancy, does this look better?


Bitbucket repo no longer supported

Bitbucket gives an error that the repo is no longer supported when following your download link

Yeah. I'm aware of it. Let me merge this to #531


Default behavior of sync_batchnorm with multi-processing backends

🚀 Feature
Following the discussion in #4597, notify the user on the default behavior of sync_batchnorm when it is not explicitly passed to pl.Trainer by the user in multi-processing backends, e.g. DDP.
Motivation
Make the transition from training on single GPU/single process backend, e.g. DP, to multi-processing multi-GPU seamless
Pitch
Users may be unfamiliar/unaware of the default behavior of batchnorm layers when using multi-processing backends and may expect batchnorm layers to be synced and updated during backpropagation.
SyncBatchNorm is mostly beneficial when batch_size is small (only few samples per GPU), however, the frequent gather operations may slow down training.
Alternatives:

Set to True by default and notify user: 'Running in  backend and sync_batchnorm was not set, we enable it for you. Please note it is mostly beneficial with small batch size but may slow down training.' I personally think this is the preferred behavior since it maintains the same behavior when moving from DP to DDP.

Set to False by default and notify user: 'Running in  backend, sync_batchnorm was not set and defaults to False. Consider setting sync_batchnorm=True, it may be beneficial with small batch-size.'

@PyTorchLightning/core-contributors any thoughts here?

I prefer the current False default, but I imagine a message reminding you to turn it on when it's not your intention might get annoying...

@Borda I agree with the fact that the default syncbn behavior should be False and a warning to the users could be annoying. Setting syncbn to True is not required in majority of the cases.

@ananyahjha93 is this still relevant?

@edenlightning Should I close this PR?


Groups not being updated on existing accounts

Thanks for providing this awesome plugin!
I've setup the plugin to correctly resolve my users and groups. All works great on the first login and changes of LDAP passwords also reflect correctly when login in the next time.
However, if I change the group mapping or the LDAP group membership of the user the WP association is not updated accordingly.
The debug output is as follows:
[AuthLDAP] User '#######' logging in
[AuthLDAP] about to do LDAP authentication
[AuthLDAP] connect to LDAP server
[AuthLDAP] LDAP authentication successful
[AuthLDAP] Existing user, uid = ##
[AuthLDAP] Existing user's roles: author
[AuthLDAP] The LDAP user has an entry in the WP-Database
[AuthLDAP] user id = ##

So it seems the group mapping is not queried anymore and thus kept from the first login. This also means it is impossible to revoke the right to access WP from LDAP.
Would be happy for any help.

Hey Artur.
Would you mind sharing your config? Either (redacted) as screenshot or via email to andreas AT heigl DOT org?
That would help me immensly in figuring out what went south.

Sure, thanks for the quick response:
Config:

LDAP URI: ldap://cn=admin,dc={domain},dc=de:{password}@<IP_ADDRESS>/dc=dongopenair,dc=de
LDAP URI-Separator: <empty>
StartTLS: False
Filter:  ==>  (uid=%s)

LDAP Groups override role of existing users?: True
Group-Base: ou=groups,dc={domain},dc=de

Hm. That looks perfectly valid. I'll have to check some tests and will get back to you.

Thanks for raising the issue! I was able to verify the problem in a new test. Fix will be upcoming!

Perfect, you're great!

Hi @heiglandreas ,
any news on this? Facing the same issue. Anything to support on this?
btw, I tried to install 2.6.1 from github but WP says the zip contains already installed 2.6.0...
cheers,
Mat

Thank you all for your patience! I just released a new fix version that should fix the issue.
It also fixes the missing version increment 🙈

@heiglandreas
not sure why, but still not working for multi-role support...
[24-May-2024 15:53:05 UTC] [AuthLDAP] User '' logging in
[24-May-2024 15:53:05 UTC] [AuthLDAP] Username not supplied: return false
[24-May-2024 15:53:12 UTC] [AuthLDAP] User 'max.muster' logging in
[24-May-2024 15:53:12 UTC] [AuthLDAP] about to do LDAP authentication
[24-May-2024 15:53:12 UTC] [AuthLDAP] connect to LDAP server
[24-May-2024 15:53:12 UTC] [AuthLDAP] LDAP authentication successful
[24-May-2024 15:53:12 UTC] [AuthLDAP] Existing user, uid = 4
[24-May-2024 15:53:12 UTC] [AuthLDAP] Array
(
    [administrator] => xxxx-web-admin
    [editor] => xxxx-web-redaktion
    [author] => xxxx-web-autor
    [contributor] =>
    [subscriber] =>
    [translator] =>
    [teacher] => lehrer-xxxx
    [custom_permalinks_manager] =>
    [personalkreis] => xxxx-Demo
    [wpseo_manager] =>
    [wpseo_editor] =>
    [matomo_view_role] =>
    [matomo_write_role] =>
    [matomo_admin_role] =>
    [matomo_superuser_role] =>
)

[24-May-2024 15:53:12 UTC] [AuthLDAP] Array
(
    [administrator] => xxxx-web-admin
    [editor] => xxxx-web-redaktion
    [wpseo_manager] =>
    [wpseo_editor] =>
    [author] => xxxx-web-autor
    [contributor] =>
    [personalkreis] => xxxx-Demo
    [subscriber] =>
    [translator] =>
    [teacher] => lehrer-xxxx
    [custom_permalinks_manager] =>
    [matomo_view_role] =>
    [matomo_write_role] =>
    [matomo_admin_role] =>
    [matomo_superuser_role] =>
)

[24-May-2024 15:53:12 UTC] [AuthLDAP] Group Filter: "(&(objectClass=posixGroup)(memberUid=%s))"
[24-May-2024 15:53:12 UTC] [AuthLDAP] Group Base:
[24-May-2024 15:53:12 UTC] [AuthLDAP] LDAP groups: ["Domain Users","Administrators","admins-xxxx","lehrer-xxxx","mitarbeiter-xxxx","Domain Users xxxx","xxxx-import-all","xxxx-lehrer","xxxx-Verwaltung","xxxx-Demo","xxxx-web-admin"]
[24-May-2024 15:53:12 UTC] [AuthLDAP] Roles from LDAP group: ["administrator"]
[24-May-2024 15:53:12 UTC] [AuthLDAP] role from group mapping: ["administrator"]
[24-May-2024 15:53:12 UTC] [AuthLDAP] The LDAP user has an entry in the WP-Database
[24-May-2024 15:53:12 UTC] [AuthLDAP] user id = 4

so any additional role assigned to the user is removed and only the administrator role remains.


http fore Telegramm

I see that i must place the API in te setting HTTP but i dont see that. How to use pagermon into a telegramm bot?

The Telegram API key should go in your settings page:

Thanks but i only see pushover an not telegramm
Must i do somthimg in the script ?

oke, i run the 0.1.8.beta right now.... :-)
http://<IP_ADDRESS>:3000/

You can upgrade directly to 0.1.9.
Should be able to just drop the new files over the old ones.  Obviously backup first thought please. 😄

It works, thanks all


feat(bigtable): add wait for consistency helper method

Part of the work for #7732
This method will be needed in order to modernize TableAdmin. It currently lives in the bigtable_admin_internal namespace. We are not convinced that having a CompletionQueue parameter is very user friendly. Ideally, as @coryan points out, the work done for this method would be run on the same threads / CQ that the client uses.
It is also worth considering whether this belongs in a bigtable_experimental namespace as the method seems valuable, although it may change.
The implementation is AsyncRetryLoop, but with a few changes.

All templates have been resolved
The response is processed. An OK response that is not yet consistent counts as a transient failure.
Polling policy is used instead of Retry and Backoff policies. This is consistent with the previous functionality.

This new version of the method also allows for the future to be cancelled.

This change is

To summarize the changes from the previous commit:

the function was moved into an internal namespace. (Maybe it belongs in an experimental namespace?)
the sample and integration test were reverted.

The motivation for this decision is explained in the PR description, and in this comment on the original issue.

marking as a draft until potential races in AsyncRetryLoop are resolved

Your test and code is not being included in the code coverage metrics. Which I would like to see to find out if the tests are sufficiently complete. Can we move these files to google/cloud/bigtable/internal/?

Done. I'm glad you remembered because I didn't. Going forward, I will keep handwritten code out of bigtable/admin/.

Remember we have a convention to try to refrain from merging PRs between cutting the release branch and merging the "bump version" PR.

Sorry, I couldn't hold it in any longer


⚠ Bofrost.at has degraded performance

In 83b0496, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1103 ms

Resolved: Bofrost.at performance has improved in 6943749.


build: remove debug code

This was left over by mistake

The changes were merged into the following branches: main, 19.0.x


[MOSIP-34144] updated installation script with inji-config changes

we need to get this new config server deployed in existing config-server namspace only.

updated can you please review once


Refactor error handling to remove thrown exceptions

Currently much of the error handling is done through thrown exceptions.  There are many areas where we could eliminate throw exceptions either by refining types to eliminate exceptional cases, or by using Result for explicit error handling.

this has been merged right? @craigwblake-openlaw

Yes, good catch.  There are still a few places where we are throwing exceptions, particularly in the parser, but makes sense to close this out.


Don't destroy data in GEORADIUS commands

Re: https://github.com/andymccurdy/redis-py/issues/1082, this PR changes how the responses for georadius and georadiusbymember are handled, such that they don't destroy information when the "member" contains non-unicode data.

@andymccurdy - many thanks for the quick response.
I've zapped the decoding from parse_georadius_generic - you're right; this works well.
Looking forward to a release with this in it!

Great, thanks for this!


[BetterChatbox] Add status indicator to avatar in chatbox.

Please, add an option to show your current status colour as a radial or small icon on the avatar in the chatbox.

turned out to be too difficult without a lot of refactoring


Add gut sync remote directories to local machine

@tillberg gut looks very promising for keeping the code in the cloud. is it possible to add support for copying remote directory to local machine, because upload bandwidth is limited and it takes time to do initial sync for large Github projects. Something like below.
gut sync<EMAIL_ADDRESS>/path/to/local/dir

@dupperinc I think that something like that actually should work currently (syntax below). When Gut initializes, it checks all the paths specified for existing gut repos. If there's only one already-existing repo, either locally or remotely, that repo gets initialized and cloned on the other host(s).
For example, if you had a folder, /home/remote/mydir, on addr.com, and you wanted to sync that to a new (empty) local folder, /home/local/somedir, then you should be able to do that with:
gut sync remote@addr.com:/home/remote/mydir /home/local/somedir

Gut will notice the existing repo in /home/remote/mydir, and the lack of any repo/files at /home/local/somedir/. It'll then do a gut init in the /home/local/somedir, then gut fetch the contents of /home/remote/mydir into it. (Or at least that's what I think should happen.)

@tillberg the problem is reverse tunnel logic. gut is always trying to connect to localhost to fetch the changes. Gut is reporting connection fail for localhost, please see logs below.
[localhost:fetch] Fetching changes to localhost...
[localhost:fetch] fatal: unable to connect to localhost:
[localhost:fetch] localhost[0: <IP_ADDRESS>]: errno=Connection refused
[localhost:fetch]
[localhost:merge] Merging changes to localhost...
[localhost:merge] merge: origin/master - not something we can merge
Also is it possible to add custom SSH port support for remote host?

@tillberg any update on this one?


Feature requests and a couple suggestions.

Great project really like it, thanks for sharing it!
After using it for a wile with my current setup, I found some minor limitations, and possible improvements that could really be helpful. Would like to contribute but Go is not my stack.
1.
Security concerns, ideally function should have full isolation from the cluster or pod where it's running, for example when working with large team it's really important.
Currently it is possible to:

limit access to k8s API by adding: automountServiceAccountToken: false to deployment object.
limiting network access with NetworkPolicies

The only part left that I can't figure out how to solve, is that function has access to all env. vars. so if you will list everything from process.env there bunch of stuff that ideally function developer should not see, and should only access variables that they passed. Any possible solution to this problem?
2.
When deploying using remote URL, it works only with .zip, doesn't work with .tar.gz, this makes a huge difference, larger the function bigger gap in performance between .zip and .tar.gz.
Is there any plans to implement .tar.gz support?
3.
Scheduled task currently running deployment + cronjob that sends http request to trigger the function. This is not optimal solution. Let's say I'm running job 1 a day or week, deployment will consume cluster resources 24hr a day, when it can just be combined into one CronJob object, and start with the schedule then scale back to 0.
Any plans to update current behavior?
4.
Current way of running function is by using the same runtime container, that will pull function from remote url (or configMap), then will install dependancies (if provided), then will start container.
That's fine for small functions, but as an example. One script in nodeJs with 1 additional package request-promise in node_modules folder, it takes almost 5m, to start up container.
Main issue here is scaling, on every new replications it has to download, unzip, install deps. then run container.
Would be great to have an option like with OpenFaas when you can build your container with runtime before deployment, then you will deploy separate container for each function, in that case scaling and starting deployment will takes seconds no matter of function size, when right now times incrementally goes up with number of dependencies.
Is it something you may consider implementing?
5.
Looks like currently health-check and readiness prob done on runtime container, and it doesn't wait for function to be ready. I'm consistently getting Bad Getaway error for 5-10 second on each deployment because LB sending traffic to deployment that passes readiness check, but it's actually not ready.
This can be fixed by creating hook, that will try to trigger function, as soon as it gets response it can fallback to old logic and just keep sending readiness prob from runtime container, but this will insure that deployment will be added to load balancer only when function is ready.
In my use case the biggest drawbacks, is item 2, 4 and 5, would like to know if it's something that could be fixed or improved? Thanks!

Thanks for all the feeback! It will be really useful for others.

1.
Security concerns, ideally function should have full isolation from the cluster or pod where it's running, for example when working with large team it's really important.
Currently it is possible to:

limit access to k8s API by adding: automountServiceAccountToken: false to deployment object.
limiting network access with NetworkPolicies

The only part left that I can't figure out how to solve, is that function has access to all env. vars. so if you will list everything from process.env there bunch of stuff that ideally function developer should not see, and should only access variables that they passed. Any possible solution to this problem?

Unfortunately no. If that needs to be implemented, it needs to be done in a runtime basis. For the example of NodeJS, that env needs to be process before calling the function:
https://github.com/kubeless/runtimes/blob/master/stable/nodejs/kubeless.js#L96

2.
When deploying using remote URL, it works only with .zip, doesn't work with .tar.gz, this makes a huge difference, larger the function bigger gap in performance between .zip and .tar.gz.
Is there any plans to implement .tar.gz support?

For the moment we don't have support for tar.gz but we are open to contributions there.

3.
Scheduled task currently running deployment + cronjob that sends http request to trigger the function. This is not optimal solution. Let's say I'm running job 1 a day or week, deployment will consume cluster resources 24hr a day, when it can just be combined into one CronJob object, and start with the schedule then scale back to 0.
Any plans to update current behavior?

Unfortunately no. Scaling to 0 is not something supported in this project. My recommendation here is to set the function memory and cpu requests and limits to a low value so even if the pod is running all day, the resource consumption is minimal.

4.
Current way of running function is by using the same runtime container, that will pull function from remote url (or configMap), then will install dependancies (if provided), then will start container.
That's fine for small functions, but as an example. One script in nodeJs with 1 additional package request-promise in node_modules folder, it takes almost 5m, to start up container.
Main issue here is scaling, on every new replications it has to download, unzip, install deps. then run container.
Would be great to have an option like with OpenFaas when you can build your container with runtime before deployment, then you will deploy separate container for each function, in that case scaling and starting deployment will takes seconds no matter of function size, when right now times incrementally goes up with number of dependencies.
Is it something you may consider implementing?

Yes, that's supported. It's called function builder: https://kubeless.io/docs/building-functions/

5.
Looks like currently health-check and readiness prob done on runtime container, and it doesn't wait for function to be ready. I'm consistently getting Bad Getaway error for 5-10 second on each deployment because LB sending traffic to deployment that passes readiness check, but it's actually not ready.
This can be fixed by creating hook, that will try to trigger function, as soon as it gets response it can fallback to old logic and just keep sending readiness prob from runtime container, but this will insure that deployment will be added to load balancer only when function is ready.

The problem with that is that it may trigger functions that are not supposed to be executed yet. In theory, once the server start replying to readiness checks, the function is already loaded and should be ready to reply normal requests. 5-10 seconds sounds a lot to me, are you sure you are not sending traffic before the pod is Ready?

Thanks for quick reply!

it can be done by spawning new process or running function in the worker pool.  This else will prevent
function developer from accessing main process. But yes any of those solutions require runtime container updates.

if runtime container can support some additional flag, or env. var. something like EXEC_ON_START, and will trigger function on a runtime, then u don't need deployment + cronjob, and can have only cronjob.

great, will try it today!

it's not up to me, k8s won't send traffic to container if it's not passing readiness check, you can't force it.
Agree executing function not an ideal, but it can some global var. like let funcIsReady; and as soon as function is registered it will set it to true, and healthcheck endpoint will check that variable, if it's no true send code 500, and as soon as it is true send 200, it will insure that readiness prob is passed when function is registered.
Delay depends on container resources, it takes 5-10s when I will set minimum cpu: 0.01 and mem: 32Mi

Also is it possible to provide some build or initial script instructions? Similar to fission? that could be very useful, for example to run build after dependencies are installed.

Question about 4th item. If I'm running cluster in GKE which already by default has access to my container registry in google cloud, should I skip step with creating secret with registry credentials? I tried both ways, function still created the old way. I also did clone all images and runtimes to my registry.
On the picture it shows that I need to pass secret with registry credentials with function deployment, but it's not clear how to do that. All I tried it's still deployed the old way.

It looks like this is the problem. Google registry stores everything in google storage, so proper url to check directly storage bucket, something like gs://us.artifacts.[project_id].appspot.com/containers/images/[sha256], is it something that possibly will be supported?


Automatically set CKEDITOR_BASEPATH

This would require reversing the order of ckeditor-init.js and ckeditor.js.

This doesn't work for me. I've added a comment to the particular line of code where the problem is.

Then we shall venture forth into the JavaScript nightmare and vanquish the source of this evil.

My bad, it obviously didn't test this well enough. I'll have to determine
why it worked for me first...
On Apr 18, 2017 16:34, "Piotr Maliński"<EMAIL_ADDRESS>wrote:

Then we shall venture forth into the JavaScript nightmare and vanquish the
source of this evil.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/django-ckeditor/django-ckeditor/pull/377#issuecomment-294864085,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAKQyv_wzyNOTLEDHJZzSLFhlLBKDecks5rxMnXgaJpZM4M2xHQ
.


Add badges

Add badges for test status, coverage and maintainability. Having these visible front and centre can increase our accountability.

Codecov Report

Merging #575 (6c71988) into main (c203f4c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #575   +/-   ##
=======================================
  Coverage   67.89%   67.89%
=======================================
  Files          13       13
  Lines         788      788
  Branches       71       71
=======================================
  Hits          535      535
  Misses        244      244
  Partials        9        9

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


reversed setting not working

I'm trying to paginate a collection using octopress-paginate but I can't get the order to reverse.
Here is an example of what is happening:
_my_collection/2016-09-17-a.md
---
title: a
date: 2016-09-17 13:00:00
---

_my_collection/2016-09-18-b.md
---
title: b
date: 2016-09-18 14:30:00
---

my_collection/index.html
---
layout: default
title: "reverse test"
paginate:
  collection: my_collection
  reversed: true
---
{% for post in paginator.my_collection %}
  {{ post.title }}
{% endfor %}

result
ab

If I change reversed to false the result is the same. If I move the config into my yml file there is still no change.

octopress-paginate 1.1.2
jekyll 3.2.1
node 6.6.0
ubuntu  16.04

Damn, I have this problem too. No idea what's going on.

I think that release 1.1.2 does not contain the code for reversed collections. On the other hand, the current master branch does contain the code for reversed collections. Install the gem from the source and it should work gem 'octopress-paginate', :git => 'git://github.com/octopress/paginate.git'

Ahh thanks so much @aitortomas – exactly it. Was confusing since it was in the repo but not the latest gem. All sorted and working here!

Just released v1.2.0.


[DC-3049] _deid_questionnaire_response_map is not available at expected location for CT notebook

The de-identification process maps the value in observation.questionnaire_response_id to a new value to protect participant identities.  The CT notebook, analytics/cdr_ops/controlled_tier_qc/check_controlled_tier.py, attempts to validate that values in observation.questionnaire_response_id have been remapped correctly.
This PR adds a parameter to specify which dataset will be used for these mappings.

@MichaelSchmidt82 I cleared the test datasets associated with this PR and kicked off the integration tests again.  You will need to resolve the conflicts.  Are you comfortable with this?

@MichaelSchmidt82 You need to rebase your branch  on the most recent develop branch, git rebase develop.  This will allow you to fix your conflicts and your failing integration test.  You cannot merge until this is done.  Are you comfortable with the rebase process or would you like to discuss it?


add run cmd

Run Command
Uses Node-cron package to schedule Upptime template's workflows

Issue:: Verifying SSL Peer certificate raises error for most of the websites.
Possible Solution:: https://github.com/JCMais/node-libcurl/blob/develop/COMMON_ISSUES.md

Let's resolve the conflicts and get this merged 😄

Let's resolve the conflicts and get this merged 😄

Yes @jayantkatia is on it.

Use
path_to_run_binary  run  -ui  number_of_iterations


[Feature] Implement message-level ack and retry methods

Is there an existing issue for this?

[X] I have searched the existing issues

Description
https://blog.cloudflare.com/messages-at-your-speed-with-concurrency-and-explicit-acknowledgement/
In May 2023, the js worker library added ack and retry functionality at the message level. This hasn't yet been added to the worker-rs library. Are there any plans to do so?

Addressed in https://github.com/cloudflare/workers-rs/pull/335


How do i use customizationObject in the chat widget in the Chat.js

I need to add a dropdown in the header in the chat widget. i can do that with customizationObject in the script, but how do i add this in the chat.js file. Is there any way i can add a dropdown in the header of the chat widget?

Hi @Richab2310, Let me see if i understand it correctly. You are aware of how to enable dropdown using widget snippet but you want to implement dropdown using code rather than using snippet?

Yes, correct. I know how to do it from the widget snippet. i need it to implement from the code mainly from the Chat.js.

This is a part of Chat Interface UI so it cannot be controlled at Chat.js. May I ask if you are using your own UI or out-of-the box?


Passing seekable objects without len to super_len causes .getvalue() which copies them just to get the length

This is an performance issue, especially when passing large objects. This can be easily triggered with a data post body:
bigdata = 'a' * 100000000
stream = io.BytesIO(bigdata)
a = requests.post('http://localhost', data=stream)
will call super_len on stream, which will call stream.getvalue() which will actually copy the 100MB in memory, get it's length, and discard the copy.
we should check first if the object has 'seek' and 'tell' and use them (much quicker) to get the length instead.
https://github.com/kennethreitz/requests/blob/52b15f811f8ef52a144c96b8b742d734dd39d693/requests/utils.py#L59

Thanks for the report! This is a known issue and we're working on a fix: see #3339.


chore: make tsconfig stricter

#4  👈
main

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

Join @BlankParticle and the rest of your teammates on  Graphite


use I18n to translate default boolean options

Just a note: right now, given you add a collection of symbols to SimpleForm, and no label/value method, it'll already attempt to translate the given collection using the options key. So, if you add something like f.input :foo, :collection => [:true, :false], you will get this translation for free in the object/attribute context.

Hrm, so I think we can call this a day. I like @carlosantoniodasilva proposal! (I didn't know we could do it!!) Thanks @nashby !

Yeah, I know about :collection => [:true, :false] but I thought it would look better without :collection option. So I'm closing it, right?

@josevalim actually, it only does one lookup, and rebuilds the collection if a result is found under the :options key:

def translate_collection
  if translated_collection = translate(:options)
    @collection = collection.map do |key|
      [translated_collection[key] || key, key]
    end
    true
  end
end

I've found possible spots for improvement that I'll have to check, but for the 98% of the cases it should work fine.
@nashby thanks for the pull request :)


fix unexpected error when checking label statements

Fix #387;

This change breaks a test (that contains a label statement) and I don't know how to modify it and add new test cases.

Hello, to add or modify a test you need to go to the tests folder. Here you'll find tests for the lexer, rules, and tokenizer, you just have to pick the category of your test.
To add a test on a rule you just need to add a <test_name>.c file and a <test_name>.out for the expected output.
I will provide a full documentation for how test work :)

@matthieu42Network I added a new test, can you review it?


Cannot connect to docker desktop anymore

Describe the bug
I installed orbstack and it didn't work for me. I'm now trying to use docker desktop again and I get the following error:
Cannot connect to the Docker daemon at unix:///Users/paymahn/.orbstack/run/docker.sock. Is the docker daemon running?

How do I fix the search path for the docker socket?
To Reproduce
not sure exactly how
Expected behavior
Quitting orbstack should not break docker desktop
Diagnostic report (required)
NA - this is related to orbstack breaking docker desktop
Screenshots and additional context (optional)
No response

ah, found the fix! https://docs.orbstack.dev/install#uninstalling
changing the docker context was all I needed

Mind elaborating on what didn't work for you? I'd like to fix it if possible.

Mind elaborating on what didn't work for you? I'd like to fix it if possible.

After quitting orbstack I couldn't build/run docker containers with Docker Desktop. I guess this happened because the docker context didn't automatically switch back to Docker Desktop.

As explained in the docs, you should switch the context manually when using multiple Docker providers side-by-side: https://docs.orbstack.dev/install#docker-context
Newer versions of Docker Desktop should also switch the context automatically.

Yup, that was my bad but the docs were clear enough that I could resolve on my own!


support CSV import to schema "person"

References

Fixes https://github.com/DSpace/DSpace/issues/3006

Description
This PR adds a fix to the DSpaceCSV.java class to make it possible to better distinguish a normal "person" metadata field from an authority field.
Any field that doesn't start with [AUTHORITY_TYPE] is now treated as a regular field without the chance of it being detected as an authorityType, we made sure that this only happens if the String is surrounded by brackets.
Instructions for Reviewers
List of changes in this PR:

Made sure that the AuthorityType evaluating is only done for Strings between brackets
Added test to ensure that the CSV import with person metadata works now

How to test this PR:

Make a CSV with a person.birthDate metadata field in it with a value
Import the CSV and verify that the person.birthDate is added to the imported Item

Checklist

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[x] If my PR includes new, third-party dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[x] If my PR modifies the REST API, I've linked to the REST Contract page (or open PR) related to this change.

@tdonohue The test got lost in the latest main merge, I've re-added it. I've also removed the property and the associated csv as they were no longer used. The CSV gets made inline in the test itself like the other tests in MetadataImportIT do. Could you please check this again when you get the time? Thanks!

@Raf-atmire : This looks good now, but now has a merge conflict (after merging #3037 ).  Could you solve the merge conflict?

@tdonohue Thank you for the feedback, I've merged the most recent dspace/main into this branch and addressed the minor issue with the itemService.delete in the MetadataImportIT. Could you check again when you get the time please? Thanks!


[Shims] Fix nullability for musl.

Apparently I got the merge for this slightly wrong.
rdar://128388845

@swift-ci Please test

Explanation: When merging my Musl changes, I hit a conflict with an Android change and apparently got the merge every so slightly wrong, the result being that we see the wrong declaration of memcmp() when building the static Linux SDK, which causes a build failure because the signature doesn't match (so instead memcmp() with the wrong signature ends up floating about in random modules). This only affects building the static Linux SDK; it doesn't affect anything else.
Original PR: #73747
Risk: Basically zero. This only affects building (but not using) the static Linux SDK.
Reviewed by: @mikeash
Resolves: rdar://128388845
Tests: Without this fix, building the Linux static SDK fails. With it, it succeeds.


gvm pkgenv doesn't appear to be working

We've been working with gvm for about 18 months now, and it's proven to be a great tool. Our workflow for creating a new project has been the same for so long that I can't even remember how we came up with it:
gvm pkgset create foo; gvm pkgenv foo; gvm pkgset use foo
The pkgenv command was necessary so that we could add the PROJECT root and bin folders to  GOROOT and GOPATH. This is so that we can use a different pkg folder for each project. gvm pkgenv has always opened an editor on a generated config file that was easily edited to add these path elements.
With gvm2, running on High Sierra, gvm pkgenv opens on a blank file. I don't know where or how to specify my project folder. Unless I am missing something (very possible) this renders the pkgset feature fairly useless. Other than this, gvm appears to be working as it always has, and I've installed sever go versions successfully.

You are correct. The command does appear to be broken. I'll have it fixed over the next few days.

Thanks, and thanks for keeping this very useful project running.

This issue has been fixed in GVM2 0.10.4.
To update from v0.10.3:
prompt> gvm update v0.10.4

Then, close and re-open your terminal session.
Thanks for reporting this issue!


Allow overriding of _routeToRegExp

:+1:
What's the use case? Just curious :)

We are doing case-insensitive routes. But if someone wanted camelCase to map to snake_case or something, that could also be a valid reason.

@kalley Nice! Solid addition :D

Just rebased, so you should be able to merge it.

@aeksco once rebased, any issues with merging this?

@aeksco Is there a reason this has not been merged?

@kloy Apologies for the delay! All looks good to merge, though it seems I don't currently have write access. I'll look into getting that squared away this evening so we can get this merged in - I'll keep you posted!

@kloy Got write access - PR 48 merged.

Whoohoo! Thank you!


Move labels with connections on relayout

We should move the label with a connection if the connection gets relayouted.
This way we make sure the label "does not get lost".

This is related to: https://github.com/bpmn-io/bpmn-js/issues/331


WIP - Batches, dispatch, and nesting

OK, this is a work-in-progress PR that shows some ability to nest different kinds of elements in a stream.  This PR does a few things to enable this:

We make a Batch type that is a tuple of many elements as a single batch in a stream
We create a singledispatch system to replace the monkeypatching that we used to do on Futures
We do a bit of magic so that the functions we pass down to elements again checks whatever it runs on and possible nests further.

As a result, we can do the following example, which maps a function over remote batches:
In [1]: from dask.distributed import Client

In [2]: client = Client()

In [3]: from streams import Stream, Batch

In [4]: import streams.dask

In [5]: source = Stream()

In [6]: batches = source.partition(3).map(Batch)

In [7]: futures = streams.dask.scatter(batches)

In [8]: L = futures.map(lambda x: x + 1).sink_to_list()

In [9]: for i in range(9):
   ...:     source.emit(i)
   ...:

In [10]: L
Out[10]:
[<Future: status: finished, type: Batch, key: _stream_map-06488d54c44f3a3db136e6c34468eb13>,
 <Future: status: finished, type: Batch, key: _stream_map-cad3989e05761099bf5b22db5992eed3>,
 <Future: status: finished, type: Batch, key: _stream_map-ecd902c4b2cd3a96cb3c73694d64cfe6>]

In [11]: client.gather(L)
Out[11]: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

Note that things like accumulate (which will have to be changed) and merge (which will have to be split) don't work yet.  I wanted to get feedback from @ordirules and @danielballan .

thanks for this. extremely busy. i may be delayed for this until next week (hopefully i can look sooner). but i am very interested in this.

I like this implementation, it completes the __stream_wrap__ idea by allowing nesting. Nice implementation for point 1 and 2. However, I have a comment about point 3 you mention. The following discusses just this.
I don't think it resolves the usage I had in mind. However, maybe my idea of usage is not a good idea, and I am open to alternatives. I'll try to think of a better way. I think I'm set on the idea of wanting to compute a task graph with dask, without necessarily using distributed.
I would like to use the stream to construct a task graph of delayed objects, and then only specify compute in certain sections of the stream. This would give me more control over when functions compute. It would also allow me to transition from non-distributed to distributed regime with more ease. Also, caching is easy by sinking futures to a list.
Previously, what I did is just had the streams wrap the function with a decorator that was basically delayed(unwrap_layer1( ...) ). I externalized the knowledge of the unwrapping not from the data itself but to the stream (through an inherited wrap argument).
This however, doesn't work when we do it the other way around, move the knowledge of the unwrapping from the stream to the data. Since computations are delayed objects, which don't know what the resultant object is until the computation is performed, we can't rely on asking them if their resultant computation will be a function with a stream_map method. They will just say that it's a delayed object with no such attribute. We must then tell the stream itself to perform operations assuming a certain data type, even though it is unknown. I feel that the only way to resolve this is add a wrapper, which makes the streams messy.
However, there may be a better way and I am not seeing it correctly. I thought of following your suggestion of using singledispatch here but it seems that we'd run into an infinite recursive loop; the Delayed object will always return a Delayed object. I think this makes intuitive sense; it doesn't seem logically possible to devise a scenario to ask an object that doesn't know anything about itself (yet) to decode itself.
As far as I understand, you are assuming that each element in the stream will emit only when data has been processed. Data should then not be emitted if the task it is set to do is not completed. I am breaking this by allowing streams to pass delayed objects. So perhaps an initial point of discussion could be whether this is wise thing to try with streams, or whether this notion should be dropped.
I apologize again for the length. Please let me know if I misunderstood something. This also doesn't discuss the behaviour of accumulate yet as well.
Thanks for all the support. For what it's doing, this is very clean :-)
Oh, and for nested data, otherwise it works great, I tried this for example, two layer nesting:
    # unwrap classes of type
    # dict(header=stuff, data=(dict(header=stuff, data=singleton)))
    class InnerLayer(dict):
        ''' The inner layer of the packet.
            Inherit dict to be simple.
        '''
        # ignore kwargs to be simple
        def __stream_map__(self, func):
            result = func(self['data_inner'])
            # re-wrap
            # I write "data_outer" instead of just "data" to distinguish both
            # layers for debugging
            # InnerLayer instantiation (__init__) is the same as dict
            return InnerLayer(header=self['header'], data_inner=result)

    class OuterLayer(dict):
        ''' The inner layer of the packet.
            Inherit dict to be simple.
        '''
        # ignore kwargs to be simple
        def __stream_map__(self, func):
            result = func(self['data_outer'])
            # re-wrap
            return OuterLayer(header=self['header'], data_outer=result)

    from dask.delayed import Delayed, delayed
    # is it's register and not the base function, this will check
    # nests
    from streams.core import stream_map

    # some data packet
    data = OuterLayer(header="outer header",
                data_outer=InnerLayer(header="inner header", data_inner=10))
    #data =InnerLayer(header="inner header", data_inner=10)
    from streams.core import Stream
    s = Stream()
    def addone(x):
        return x + 1

    s2 = s.map(addone)
    s2.map(print, raw=True)
    # first try
    s.emit(data)

I have gone through your logic more carefully. It should work with delayed. I got it to work. Thanks
here is an example:
@stream_map.register(Delayed)
def stream_map(obj, func, **kwargs):
    return delayed(func)(obj)
# now add compute

data = 1
s = Stream()
s2 = s.map(addone)
s2.map(compute, raw=True).map(print)
s.emit(delayed(data))

Previously, I was defining my function to be:
@stream_map.register(Delayed)
def stream_map(obj, func, **kwargs):
    return func(obj)

This is incorrect as we want the computation to be delayed, which in this case, means we don't want to run the function until the input argument is defined.
Sorry for the confusion and thanks for this PR. I will go through the rest a little later when I have time.

I think this is perfect. map and accumulate i think are both pretty much resolved.
However, merge may take some time to wring out. It might be worth considering it as a separate PR. I see there potentially being 4 functions (from the functions you define) to discuss there when considering merge. Let's take the pandas DataFrame as an example and a dict of numpy arrays as a second example just to differentiate each:

merge : what to do with data that is merged together.

ex: merging two pandas dataframes could result in a join of columns (or it could be defined as something else). For joins, certain assumptions would have to be made regarding collisions.
ex2: merging two dicts of numpy arrays would aggregated all keys in one bigger dict. Note collisions would need to be handled.

partition : how to bunch data (should it have knowledge of the stream document or should it still create a tuple)

ex: partition(3) could take every 3 pandas dataframe and append the rows together, creating extra columns if necessary. note that here that no collisions should ever occur.
ex2 : partition(3) would take the numpy arrays in the dictionaries and join them as  one big array with higher dimension. So 1D numpy arrays would be packed together as a big 2D array.
for ex : partition(2) of {'array1' : [1,2]}  and {'array1' : [3,4]} would yield {'array1' : [[1,2],[3,4]]|}

concat : how to break up tuples into one long list of stuff. should it also work on the stream document. Maybe we could call this flatten not concat.

ex: concat run on pandas dataframes could make each row in a dataframe become one unit in the stream. Perhaps concat could also take a number, for example concat(2) would give pairwise dataframes.
ex2 : concat for the numpy dict would break up a 2D array into a list of 1D arrays.
for ex : {'array1' : [[1,2],[3,4]]} would yield {'array1' : [1,2]} {'array1' : [3,4]}

union : like merge, but takes two streams and replays elements coming in streams one after the other.
For both pandas and numpy dicts (and anything else), I think this should yield the same result.
ex2 : {'array : [1,2]}from streams1and {'array : [3,4]} from stream s2 would be emitted one after the other in s1.union(s2).

and these functions could default to working as they normally would when raw=True (except union, whose behaviour doesn't change).
Anyway, that's my take on it from the perspective of the experimentalist. What do you think? It could be this could be simplified, or the base operations modified. @danielballan as well, any thoughts?

Slowly getting back to this now.  (coming back from conferences with some backlog of work).
In general I agree with your analysis.  I suspect that this approach leads us towards dispatching on everything.  I'm not sure how I feel about this.  The streams project today is pretty simple and easy to understand.  The changes presented here that allow for nesting of different behaviors are powerful, but really complicate things.  I'm going to let this linger for a bit to see if I can't find something better.

@mrocklin no worries. I agree with you. Perhaps a better solution would be to externalize these assumptions I mention. Let partition, concat etc combine/split tuples of entities together (regardless of their contents) and have the user define their own functions to work on them.
For example, for merge, it could be:
s1.zip(s2).map(joincolumns, raw=True)
etc
Anyway, no worries about the delay, I hope in time we can converge to something nice.
Also, spark streaming may be another interesting library to follow. Perhaps you could also update documentation with that link.

(I know you're busy @mrocklin but I'll leave this here in case we go back down this route, as it's something that needs to be addressed. We can proceed our way without addressing this fully just yet)
There seems to be an issue with _stream_map. If _stream_map eventually maps into the base function with just kwargs (no args) then there is an error. I didn't catch this earlier because I always supplied an arg.
The problem is that the new code recursively calls _stream_map until it reaches the base function, but requires obj as the first argument during each call. The mapping functions can change the supplied arguments to the function, and that needs to be handled. I think this comes down to having to decided how to do the mapping. I think requiring a dispatch on the first argument only is likely sufficient? (but adds complexity)
Here is a patchy fix that I tested to highlight the issue:
# dispatch on first arg
def _stream_map(*args, func=None, **kwargs):
    if len(args) > 0:
        obj = args[0]
        if hasattr(obj, '__stream_map__'):
            # assume map is done on first arg only
            return obj.__stream_map__(wraps(func)(partial(_stream_map, *args[1:],func=func, **kwargs)))
        else:
            # assume map is done on first arg only
            sm = stream_map.dispatch(type(obj))
            if sm is base_stream_map:
                # run on args instead
                return func(*args, **kwargs)
            else:
                # assume map is done on first arg only
                return sm(obj, wraps(func)(partial(_stream_map, *args[1:], func=func, **kwargs)))
    else:
        return func(*args, **kwargs)

I would say that this PR is no longer necessary. It seems like things like scatter(stream) is better.
For subclassing, @CJ-Wright and I have been using mylib.map(func, stream) for example for mapping which returns a subclass of Stream where mylib is a library that implements classes that subclass streams (or they could be functions).
What do you think? This addressed adding __stream_map__ etc which I think we all agree at this point is not necessary. (Please correct me if wrong)

Sure

https://github.com/mrocklin/streamz/pull/13#issuecomment-332880425 @ordirules can you provide an example of this?

@limx0 if you meant an example with subclassing https://github.com/xpdAcq/SHED/blob/master/shed/event_streams.py

@CJ-Wright  maybe also include the use of the subclassed stream in a working pipeline, here's the link (this link is CJ's work, I'm just passing it on :-)):
https://github.com/xpdAcq/xpdAn/blob/master/xpdan/pipelines/main.py

Thank you (I'm on my phone and have limited linking capacity)

Thanks guys, this must have been fixed in one of the many recent commits. Previously (I believe) I was unable to so the following:
from streamz import Stream

class FilterEven(Stream):
    def __init__(self, child):
        Stream.__init__(self, child)
    def update(self, x, who=None):
        if x % 2 == 0:
            self.emit(x)

class MyStream(Stream):

    def __init__(self, child=None, children=None):
        super().__init__(child=child, children=children)

    def filter_even(self):
        return FilterEven(self)

s = MyStream()

# This would raise an error,
# MyStream has no attribute unique() - not being inherited by Stream
s.filter_even().unique().sink(print)

My suggestion would to use the class directly rather than relying on the method call from the base class, it's just syntactical sugar. I don't think we found a good way to append methods onto the base class.

to elaborate on @CJ-Wright, what would resolve this is basically:
s = MyStream()
sout = FilterEven(s)
# you can use the shortcut syntax here since sout inherits from Stream
sout = s.unique()
sout.map(print)

the syntactical sugar is nice but it seems to lead to too many complications (like re-implementing every function as you said).
There likely is a way to resolve this but we've moved on to exploring use cases for now as far as I understand. I suggested a way here in #25 where the class is dynamically created at the time the method is called. This dynamic allocation creates a new class which subclasses from the class it's in (so map etc is not locked into a particular class). It's old and I've also left it aside since I think we need more use cases before we move this step. I'm still interested to discuss that (if it is useful).

umm sorry, what you wrote would work...
this wouldn't however:
s = MyStream()
sout = FilterEven(s)
# you can use the shortcut syntax here since sout inherits from Stream
sout = sout.unique()
# unique is subclass of Stream only, you're no longer class MyStream, so you can't do this
sout = sout.filter_even()
sout.map(print)

So really I want to be able to move between my custom transforms and the inbuilt ones. So you're saying the following wouldn't work?
s = MyStream().filter_even().unique().filter_even().accumulate().sink(print)
@CJ-Wright it is syntactical sugar, but it also makes your pipeline definition readable. Otherwise using the classes, correct me if I am wrong, it would be
s = MyStream()
x = FilterEven(Unique(FilterEven(Accumulate(Sink(print, s)))))

exactly, unless if you copied the whole stream class and added that one function, and imported that class rather than the stream class. That's another solution.
I think something near #25 would resolve this, but it may not be the cleanest implementation. We have to have stream methods dynamically create classes rather than import the old ones

I also recommend using sink_to_list. Sink(print) won't output anything, just print to screen. And you have it backwards (inner calls happen first)
s = MyStream()
s2 = FilterEven(Unique(FilterEven(Accumulate(s))))
L = s2.sink_to_list()

Sure thing, that was just for demonstration purposes. I suppose the classes aren't terrible. I'll take a look at #25, but good to know that it can be done!
Thanks gents

@limx0 short answer is that you can't easily subclass streams, nor is there a dispatch mechanism to add API.
I don't currently see a clean way to do subclassing, to resolve this I'm resorting to encapsulation, making classes that contain a stream instead of are a stream.  A good example of this is the pandas-streaming prototype.

Providing a dispatch mechanism in the future is probably possible.


update dependencies

cc @wonderflow

cc @wonderflow
I updated the dependencies, everything works locally, I will keep them updated as they become available


Network subnet error

PROD-DC-EUS2	<IP_ADDRESS>/23	251	Domain controller VMs
It should be /24

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

ID: 5d55f111-797f-7e1b-c1a0-08c00af0174e
Version Independent ID: 157d8898-43bf-a9ca-810b-0c4ec400ad69
Content: Contoso-Set up a migration infrastructure
Content Source: articles/migrate/contoso-migration-infrastructure.md
Service: azure-migrate
GitHub Login: @rayne-wiselman
Microsoft Alias: raynew

@daruizcorrea Thanks for the feedback! We are currently investigating and will update you shortly.

@rayne-wiselman Happy to kick off a PR to resolve this if you can confirm the proposed change.

@daruizcorrea A PR has been initiated to fix this. Change should be live in about 24 hrs. Thanks again for catching this.

Thanks you all.


Double the width of static allocations for empty tables

See this discussion here: https://github.com/rust-lang/hashbrown/pull/578#discussion_r1800275708
Effectively, the current code will actually need Group::WIDTH + 1 bytes for an empty table, but we only allocate Group::WIDTH bytes for it. This could potentially invoke UB based upon the invariants we set in the table, but because we happen to short-circuit empty tables in just the right ways in the actual code, we never actually trigger it.
Since the static allocations are aligned to the group width, we double the size returned, since it would otherwise just add that much extra padding anyway. And since the size of the static allocations added by this is effectively insignificant (8-16 bytes depending on the implementation chosen), it's fair to just do this anyway to make the code more robust.

I still don't think this is needed: the only place that needs WIDTH instead of WIDTH - 1 trailing control bytes is set_ctrl, and that requires write access which doesn't work with the static empty table anyways. The only other places which access the trailing control bytes are where Group::load is called and that only accesses WIDTH - 1 trailing bytes since the input index is always less than num_buckets.


configure and check request.trusted_hosts

If request.trusted_hosts is set, it will be checked when accessing request.host/url/etc. Add TRUSTED_HOSTS config, and check it during routing.

Map.bind_to_environ is called when creating the request context, and MapAdapter.match is called when the context is pushed. Both of these places catch routing exceptions, which are then raised during dispatch after before_request and before the view. I think it makes sense to check this in Flask.create_url_adapter, as then no matching be attempted if the host is invalid.

This should be moved up into Map.bind_to_environ, but can be implemented in Flask until Werkzeug 3.2. See pallets/werkzeug#3007


expression parsing

the problem
we need to parse expressions
the solution
this will probably require an architecture a bit different from the rest of the parsing logic so far
the code
https://github.com/alterae/lang/blob/be17b69d0c88f0d3252e906d528ac7cef29de12a/src/parser.rs#L155-L172
the relevant reading
https://craftinginterpreters.com/compiling-expressions.html
the todo list

[ ] binary operators (x - y)

[ ] arithmetic

[ ] addition (+)
[ ] subtraction (-)
[ ] multiplication (*)
[ ] division (/)
[ ] modulo (%)

[ ] logical

[ ] and (&&)
[ ] or (||)

[ ] function calls (foo(), foo::bar("baz:))
[ ] numeric literals (3, 3.14)
[ ] parentheses ((x * (y + z)))
[ ] string literals ("foo")
[ ] unary operators (-x)

[ ] arithmetic negation (-)
[ ] logical negation (!)

[ ] variable assignment (x = y)
[ ] variable initialization (x := y)

we might want to try out pratt parsing
I think I'm gonna follow through Crafting Interpreters again next week, get a better feel for the whole affair.


windows bridge support openGLES or directX

im iOS developer, and i dont really know, how are the graphics supports of windows graphics mobile device but the bridge will support the exchange of openGLES to directx mobile (guest that the win mobile support directx) ?
Thanks

This bridge tool use angle project to convert OpenGL ES to the directx. The original win10 uwp only support directx, same as win8.1/wp8.1 universal apps.

I don't understand this conversation. What is the "angle project"?


Generate an index as JSON for searching purposes

The idea is to generate an index from all generated HTML files to be used later by toolings like https://lunrjs.com/

Go for it :)

@mcruzdev any update on this?


Reorder along a column only

Hi, is it possible to make dragging work only along a single column?

Don't think so


Config to save requested claims

Fixes #7

Note this will break existing sessions. Not sure how much that matters...

dialyzer passes. Which is somewhat amazing.
I can't test act stuff, but hopefully I didn't break it (except for existing sessions). Everything else looks good to me.

The problem with this approach is that cookies have size limit, and authentication cookies can hold authentication info of several sessions. This could be a problem when using the COOKIE backend (data stored in the cookie and not in a backend).
This would be nice if we could configure which claims are saved, and which ones are not.

This PR does allow specifying which claims you do/don't want to keep. Not sure I would ever need any more then this?
But yes, if it supported a function as well as a list, I guess it could be more generic.

There's also the alternative which consist in giving the opportunity to the user to to whatever he wants with the claims (and tokens) and the Plug.Conn.t, for example saving them in its own session. See #7

Feel free to take this PR and modify more in line of what you want.

I've taken the second approach: in the conn_callback branch the token callback takes the conn as a parameter and returns it. It should be sufficient to set whatever you want in the session.
https://github.com/tanguilp/plugoid/tree/conn_callback
Feel free to test it and give me feedback.

Thanks. Will test ASAP.
I imagine this means the callback can put data in the default phoenix session, which would solve one of the problems we were predicting with the live view not having access to the required session details.
Wondering if the special case code for subject is still required though. We might want to include it in the default session also, so that live views have access. Which would mean we get two copies.

I am going to put this URL here so I don't have to keep finding it. Seems the appropriate place anyway:
https://github.com/tanguilp/plugoid/compare/conn_callback

So far, your branch seems to work fine.

Odd. Seems to have stopped working. Thinking this is probably my fault. But out of time to look now, will look later.

If you want to merge your branch, we can then close this PR.

Will close and summarise in #7.


Auth basics doc duplication

Currently two docs:
https://github.com/grpc/grpc.github.io/blob/master/docs/guides/auth.md
https://github.com/grpc/grpc/blob/master/doc/grpc-auth-support.md
We previously agreed that such redundancy is no good. Let's decide which one we should nuke (I vote for the one in gRPC repo).
@hsaliak @jboeuf @LisaFC

On the other hand, it looks like https://github.com/grpc/grpc/blob/master/doc/grpc-auth-support.md  is more up-to-date.

I'd still go for updating the one in the actual doc site and nuking the one in the repo, as the doc site one is the one people are going to find from tutorials, etc.


Weird issue getting observations back to NodeJS

Hello!

I am having a weird issue with the RScript and the passage of the output to NodeJS.
Using:
needs("arules")
data <- read.transactions(input[[1]], sep = ",")

library(arules)

# default settings result in zero rules learned
groceryrules <- apriori(data, parameter = list(support =
                          0.006, confidence = 0.25, minlen = 2))

summary(groceryrules)
inspect(groceryrules[1:5])

I get the result fine in nodeJS as:
[ { '2': '=>',     lhs: '{potted plants}',     rhs: '{whole milk}',     support: 0.0069,     confidence: 0.4,     lift: 1.5655,     count: 68,     _row: '[1]' },   { '2': '=>',     lhs: '{pasta}',     rhs: '{whole milk}',     support: 0.0061,     confidence: 0.4054,     lift: 1.5866,     count: 60,     _row: '[2]' } ...]
However, changing the last line to:
inspect(sort(groceryrules, by = "lift")[1:5])
I get no output. If I set the interval to 1:2, it prints correctly the two top observations (by Lift).
Why can't I view more than 2 items when using sort?
Thanks!

I managed to find the solution.
Using:
out <- capture.output(inspect(sort(groceryrules,by="lift")[1:10]))
out

It correctly puts into a string the inspect output and then passes it to the NodeJS server as:
 ['     lhs                   rhs                      support confidence     lift count',
  '[1]  {herbs}            => {root vegetables}    0.007015760  0.4312500 3.956477    69',...]

A simple split in each string should address the problem now, to make the data manageable.


fix: use slong instead of long for arb accuracy

Fixes #32
Fixes a bug seen under Windows where 32 bit long caused showgood to fail. There are more places where long should be changed to slong but this change is enough to get the full test suite (including doctests) to pass on Windows according to my local testing.

Okay, all tests passed for Windows in CI. I'll merge this for now.
I'll be happier to make a wholesale long -> slong transformation when the test coverage is higher.

I'll be happier to make a wholesale long -> slong transformation when the test coverage is higher.

I don't think there is any place where long is meant to be used, so no need to be extremely conservative about this.


Page refreshing

Hello,
Today i started subscription for  easyslotbooking, i am checking slots for multiple locations like Delhi and Mumbai but while switching location dropdown the entire page is getting refreshed, due to this my login attempts are exhausting. Actually in new website https://www.usvisascheduling.com/ no need to refresh the entire page while switching location dropdown , it was there in previous CGI Portal and it was website behavior but in new website tool only refreshing entire page and selecting new location.

It looks like the page refresh issue with the EasySlotBooking extension might be due to the "Check Dates in Loop" feature in the settings. This option causes the page to refresh if no dates are found in all selected consulates, to restart the search. To stop the page from refreshing, you can try disabling this feature in the extension's settings. If the problem continues, further investigation might be needed.
https://youtu.be/2qsCFmw3rL8?si=CvsCPGLyWZr4Dmts&t=350

I noticed that, than what is the use of tool if it's exhausting logins?. even if i don't select "Check Dates in Loop" feature, it will navigate to home page and then if you run tool again it's refreshing page.  so we're expecting tool to check visa slots from OFC page and keep check either certain point of time or until stop tool and then stay in OFC page if no slots found. this way we can logout after sometime if we don't find slots. you know well slots won't stay more than 10 to 20 seconds.
so better stay in OFC page itself instead of going to home page and come back to OFC page.

Added the requested functionality to the EasySlotBooking extension version 4.0.6


can it replace all the url about one site just like www.a.com/,""can be abc or ...

hi,you code is very good,i just want ask can it replace all the url about one site just like www.a.com/,""can be abc or ...
thank you!

Hi, thanks for sharing this idea. As far as I understand, you'd like to replace all links on the "target" site.
Is this so you could navigate on the site just as some online web-proxy serivces (eg. https://proxysite.com) do? While I find this feature very useful, it would be non-trivial task involving several new functions.


Support Rails 7.2

Support Rails 7.2
Rails 7.2 was released a few weeks ago. This PR upgrades minitest-rails accordingly.
Note that Rails 7.2 bumped the minimum Ruby version from 2.7 to 3.1, so I've done the same here.

@blowmage Any chance this could be released soon?

@blowmage nudge

Hi there! Any news? ping @blowmage

Based off of this branch, I opened #258 to add support for Rails 8.0 too.

Also I understand if it's been too long... I'm happy to make the changes requested.

@zenspider Made the requested changes.

Hi there! Any news?

I'm on it

All the 7.2 tests passed and all the 7.1 tests failed, presumably because they have too old of a ruby version? I am trying to make sense of this but since the 7.2 tests are passing I'mma consider this good and I'll fix the CI out of band.


NGINX annotations

Is it possible to substitute NGINX annotations?

It does the non "/" type keys beautifully but is not able to detect the ones with "/" and I am unable to substitute ingress.class
2021-07-02T20:02:31.6917653Z Substituting variable spec.tls.0.secretName as string
2021-07-02T20:02:31.6948719Z Substituting variable spec.rules.0.host as string
2021-07-02T20:02:31.6952363Z Substituting variable spec.tls[0].hosts[0] as string

Hi!
I don't remember using it myself but I added a test case and it seems to work. Though sometimes test cases behave a bit differently than when running in a pipeline. Also, the slash should be fine it is the dot that is considered a special character in a JSONPath. Those variables should be referenced using square brackets:
metadata.annotations['kubernetes.io/ingress.class']
Can you try that?

Thanks François !
I tried - metadata.annotations."kubernetes.io"/ingress.class & metadata.annotations.["kubernetes.io"]/ingress.class trying to borrow from yq but didn't try with single quotes, this works. Appreciate it!
Thanks for this nifty task, very useful, makes it easy for anyone to modify Kubernetes manifest file.


Helper for adding hooks in upgrade scripts

Questions
Answers

Description?
This helper makes adding hooks even easier and eases the process of review of such PRs

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?
n/a

Sponsor company
Mr Podemsky Corp

How to test?
Install 8.0.1, use helper in 8.0.2 upgrade script and upgrade, and see if a new hook exists. Developer feature, developer QA probably.

How to use it?
/* PHP:add_hook('mySuperAwesomeHook', 'This is yet another awesome hook in PrestaShop'); */;

testing

QA :heavy_check_mark:


upcoming: [M3-7978] - RegionSelect disabled option API updates

Description 📝
This PR allows customizing the disabled RegionSelect option. Previously the disabling of a region (and its associated tooltip) we controlled statically, only based on the region capabilities.
With this update, we keep defaulting to the capability based disabling, and allow a custom handler to disable a region based on whatever logic needed. In this case, it is for the PlacementGroupCreateDrawer to allow disabling a region based on the maximum_pgs_per_customer region limit.
Changes  🔄

Add new handleDisabledRegion prop to RegionSelect
Change unavailable front end code to take a new disabledProps so we can configure custom tooltip messages and dimensions as well
Modify getOptionDisabled to reflect the new disabledProps prop
Improve naming conventions and prop destructuring
Update PlacementGroupCreateDrawer to pass new option filtering logic based on maximum_pgs_per_customer
Update relevant tests

Preview 📷

Before
After

Legacy

How to test 🧪
Verification steps
ℹ Pull local code and test in ALPHA
Legacy (no regression)

Best is to create a new account (can be employee account) so the region restrictions are applied
Confirm Washington, DC is still showing as a disabled region.
Check no other regression with the RegionSelect & the RegionMultiSelect through the app

New Behavior (test the new PlacementGroupCreateDrawer behavior)

Have 5 Placement Groups in London, UK
Try creating a new one
Confirm behavior and styles

As an Author I have considered 🤔
Check all that apply

[x] 👀 Doing a self review
[ ] ❔ Our contribution guidelines
[x] 🤏 Splitting feature into small PRs
[x] ➕ Adding a changeset
[x] 🧪 Providing/Improving test coverage
[ ] 🔐 Removing all sensitive information from the code and PR description
[ ] 🚩 Using a feature flag to protect the release
[x] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[ ] 📱 Providing mobile support
[ ] ♿  Providing accessibility support

@hana-linode sorry I had forgotten the logic behind this. It's only customer tag based. Basically at the time of the region getting limited availability, the admin script looks at if the user has had any resource in said data-center in the last 3 months. If so, user can continue using that region to create resources.
What I would recommend is create a new account (can be employee account) in order to have that region disabled

@dwiley-akamai would have to be a PROD account

@dwiley-akamai would have to be a PROD account

Gotcha, thanks for clarifying and updating the PR description


[ENH] Bagging Forecaster

We can now use the new bootstrapping transformers (MovingBlockBootstrap, STLBootstrapTransformer) and the new vectorize feature  to implement a BaggingForecaster as described in:

Bergmeir, C., Hyndman, R. J., & Benítez, J. M. (2016). Bagging exponential smoothing methods using STL decomposition and Box-Cox transformation. International Journal of Forecasting, 32(2), 303-312
Hyndman, R.J., & Athanasopoulos, G. (2021) Forecasting: principles and practice, 3rd edition, OTexts: Melbourne, Australia. OTexts.com/fpp3, Chapter 12.5. Accessed on February 13th 2022.

The point prediction should be the mean of the bootstrapped time series predictions and the distributional forecast should be a different tfp.distributions.Empirical for each time step!
link to the online version of [2]: https://otexts.com/fpp3/bootstrap.html

FYI - https://github.com/tensorflow/probability/pull/1550
The next release of tensorflow probability will have quantiles implemented for the Empirical distribution so we can then also implement predict_proba

Finally!
I wonder, who is this @ltsaprounis on tensorflow probability who has heroically fixed this long-standing issue?


Cql4bonnie 1103 excel export

Rewrote logic for checking character length of worksheet titles. Previously we were checking if the population['title'] was greater than 31 characters, if it wasn't we would use Population index - population['title'], which could then be greater than 31 characters. My fix checks if Pop Index - population['title'] is greater than 31 characters. Also, updated fixture data to use the measure that caused this issue for greater edge case testing.
Pull requests into Bonnie require the following. (Reviewer should :heavy_check_mark:when done):
Submitter:

[x] This pull request describes why these changes were made.
[x] Tests are included and test edge cases
[ ] Link to JIRA test(s), if used:
[ ] JIRA test(s) have been added to sprint, if used
[x] JIRA ticket for this PR:   https://jira.mitre.org/browse/BONNIE-1103
[x] JIRA ticket links to this PR.
[ ] Automated regression test(s) pass (if applicable):

Reviewer 1:

[x] The code is maintainable
[x] The code reuses code or resources within the project ecosystem where applicable
[x] The code achieves its purpose
[x] The tests appropriately test edge cases
[x] The tests pass

Reviewer 2:

[x] The code is maintainable
[x] The code reuses code or resources within the project ecosystem where applicable
[x] The code achieves its purpose
[x] The tests appropriately test edge cases
[x] The tests pass

Automated regression script shows no differences.


Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
no

may be put circInOut or linear will work, idk


Add #skip_authorization helper

Allows users to skip authorization and prevent exceptions that result from
having #verify_authorized enabled. There are some times when you'd only
conditionally want to skip authorization, but you still want to keep
verification enabled for that action.
An example:
def show
  record = Record.find_by(attribute: "value")
  if record.present?
    authorize record
  else
    skip_authorization
  end
end

+1 for this idea, just ran into this as well.  For now, I've added a skip_authorize? method to my policies that returns true, so I can do:
else
  authorize(Model, :skip_authorization?)
end

It's not the cleanest API, but at least the intent is relatively clear.

Seems like a good idea to me! @thomasklemm what do you think?

I've added documentation to the README so users know it's available.

Seems like a useful idea to me, too. :+1:
Great PR @nickrivadeneira. Thanks for documenting the change in the Readme, too!

:+1:

I am confused at verify_policy_scoped. Doesn't it be escaped?

@fantasticfears Can you clarify? I'm not sure what you're asking.

Sorry for not being specific. My question is how can I skip verify_policy_scoped? skip_authorization will not set the @_pundit_policy_scoped.

Merged!

@fantasticfears we should probably have a separate skip_policy_scope method. PRs welcome ;)

For me, I've monkey patched authorize in a way to check if object is nil. Moreover, if not nil I check model validation, to avoid nil fields raising exception with checking operations. I think that this second part would be specially interesting to add, in order to know if all the fields are well suited to compute authorization.


On macOS popups are not closed when clicking on window titlebar

On macOS popups (from ComboBox for example) are not closed when clicking on window titlebar.
As a side effect from that user can move window, but popup stays in it's original position and looking wierd.
This issue is macOS specific only, on windows it's working as expected -> once user click on title bar open popup (from a ComboBox) is closed.
The most possible reason is: event for the non client click on mac os window is not fired here:
https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/Primitives/Popup.cs#L261-L262

Does https://github.com/AvaloniaUI/Avalonia/pull/6926 fix this issue? Based on our testing on 0.10.11-rc.1, it's partially fixed. Resizing window sometimes doesn't close the popup only on MacOS.


Could not append message to Sent

So I'm testing some stuff currently and when I tried himalaya write, this happened:
Could not append message to `Sent`
 ↳ No Response: Folder doesn't exist. (Failure)

But: If I look into my gmail account, I cann see my mail under the Send mailbox. So doesn't that mean that this error message is wrong?
This is my ~/.config/himalaya/config.toml:
name = "Sambalakuja"
downloads-dir = "~/"
default-page-size = 50
signature = "I use Arch btw"
watch-cmds = ["mbsync -a"]

[gmail]
default = true
email =<EMAIL_ADDRESS>
imap-host = "imap.gmail.com"
imap-port = 993
imap-login =<EMAIL_ADDRESS>imap-passwd-cmd = "pass show<EMAIL_ADDRESS>
smtp-host = "smtp.gmail.com"
smtp-port = 465
smtp-login =<EMAIL_ADDRESS>smtp-passwd-cmd = "pass show<EMAIL_ADDRESS>

It may be because of the ~ in the downloads-dir. As described in the wiki, you need to put the full abs path. See also #102.

I changed it to this:
name = "Sambalakuja"
downloads-dir = "/home/tornax/Downloads"
default-page-size = 50
signature = "I use Arch btw"
watch-cmds = ["mbsync -a"]

[gmail]
default = true
email =<EMAIL_ADDRESS>
imap-host = "imap.gmail.com"
imap-port = 993
imap-login =<EMAIL_ADDRESS>imap-passwd-cmd = "pass show<EMAIL_ADDRESS>
smtp-host = "smtp.gmail.com"
smtp-port = 465
smtp-login =<EMAIL_ADDRESS>smtp-passwd-cmd = "pass show<EMAIL_ADDRESS>
But the error still exists.

So I guess it comes from the Sent folder from the IMAP server. When you run the command himalaya mbox, do you see the Sent mailbox?

That's what I get if I run himalaya mailboxes:

DELIM │NAME              │ATTRIBUTES
/     │INBOX             │\HasNoChildren
/     │[Gmail]           │\HasChildren, \NoSelect
/     │[Gmail]/All Mail  │\All, \HasNoChildren
/     │[Gmail]/Drafts    │\Drafts, \HasNoChildren
/     │[Gmail]/Important │\HasNoChildren, \Important
/     │[Gmail]/Sent Mail │\HasNoChildren, \Sent
/     │[Gmail]/Spam      │\HasNoChildren, \Junk
/     │[Gmail]/Starred   │\Flagged, \HasNoChildren
/     │[Gmail]/Trash     │\HasNoChildren, \Trash

Here's as an image:

Interestingly I get this, if I do himalaya mbox:
error: The subcommand 'mbox' wasn't recognized
	Did you mean 'mbox'?

If you believe you received this message in error, try re-running with 'himalaya -- mbox'

USAGE:
    himalaya [OPTIONS] [SUBCOMMAND]

For more information try --help

In fact I should take the folder that has the attribute \Sent instead of taking the one named Sent. I will see how to do this when I have some free time. Thank you!

Yes, I guess there is a general problem about names. I think I should take mailboxes depending on the attributes rather than just names. It's really strange that nobody open an issue yet about this problem, it is quite important !

Does this problem have a workaround now?

The workaround is change all imap_conn.append_msg("Sent",...... to imap_conn.append_msg("[Gmail]/Sent Mail",...... in file src/msg/cli.rs.

The workaround is change all imap_conn.append_msg("Sent",...... to imap_conn.append_msg("[Gmail]/Sent Mail",...... in file src/msg/cli.rs.

Well you're actually right with that, but this would only work for Gmail-accounts. I'm currently writing on a little refactor and can take this problem afterwards. But I have to wait for @soywod first.


Copy edits of full state, estimator, and toffoli simulator articles

Copy edit for Azure standards
Some dev edits for SEO, readability, and consistency
Updates to reflect Python, Cmd line and Jupyter support.

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/user-guide/machines/full-state-simulator.md
84
59
0
link
:white_check_mark:

articles/user-guide/machines/resources-estimator.md
87
55
0
link
:white_check_mark:

articles/user-guide/machines/toffoli-simulator.md
81
49
1
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit 3bc1d7b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/user-guide/machines/resources-estimator.md
:warning:Warning
View
Details

articles/user-guide/machines/toffoli-simulator.md
:warning:Warning
View
Details

articles/user-guide/machines/full-state-simulator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/resources-estimator.md

Line 62: [Warning-hard-coded-locale] Link 'https://docs.microsoft.com/en-us/python/qsharp/qsharp.loader.qsharpcallable' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

articles/user-guide/machines/toffoli-simulator.md

Line 35: [Warning-hard-coded-locale] Link 'https://docs.microsoft.com/en-us/python/qsharp/qsharp.loader.qsharpcallable' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/user-guide/machines/full-state-simulator.md
84
59
0
link
:white_check_mark:

articles/user-guide/machines/resources-estimator.md
87
55
0
link
:white_check_mark:

articles/user-guide/machines/toffoli-simulator.md
81
49
1
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit b1613cc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/user-guide/machines/full-state-simulator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/resources-estimator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/toffoli-simulator.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@Bradben These are great changes, thanks again. Just a bunch of smaller things, but I did notice one overarching thing (inherited from the old versions): the capitalization of "Full State Simulator", "Trace Simulator", etc. is inconsistent across (and within) the pages. I'm not sure which direction it needs to go, but the inconsistency really stood out

Thanks - I made them consistently lower case across the doc set.

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/user-guide/machines/full-state-simulator.md
85
54
0
link
:white_check_mark:

articles/user-guide/machines/resources-estimator.md
83
52
2
link
:white_check_mark:

articles/user-guide/machines/toffoli-simulator.md
81
46
1
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit 07961e3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/user-guide/machines/full-state-simulator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/resources-estimator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/toffoli-simulator.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@gillenhaalb - Thanks, should be good now.

@Bradben The changes are great, but I spotted something I missed on the first go. On the resource estimator and Toffoli pages where the implementations (cmd line, Python, C#, Jupyter) are briefly presented, the language is accidentally dotnetcli for the Jupyter code block. Since Jupyter isn't directly supported, I figure just removing the dotnetcli will do it.
I can't add it as a suggestion (GitHub interprets the resulting plain triple tick incorrectly) but the lines are 83 and 54 for the estimator and Toffoli pages, respectively.
Also there's an accidental extra line in the command line code blocks on the same pages (lines 76, 47 resp.)

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/user-guide/machines/full-state-simulator.md
85
54
0
link
:white_check_mark:

articles/user-guide/machines/resources-estimator.md
83
52
2
link
:white_check_mark:

articles/user-guide/machines/toffoli-simulator.md
81
46
1
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit e8542e1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/user-guide/machines/full-state-simulator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/resources-estimator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/toffoli-simulator.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

@gillenhaalb - thanks, should be good now.


fix: do not warn for SDK creds

We used to warn users when relying on a token provided by gcloud auth application-default login.  We are headed down a road where this is the default behavior (again), and probably don't need to warn users anymore.  Especially since the docs don't ask you to do it anymore.
Fixes #833 somewhat bluntly

LGTM, server sends a good message upon failure.

Oof, I guess we need to fix this in PHP auth as well..