fix: adduser error message grammar

Just fixing a tiny grammatical error in an error message 🙂
Thanks a lot for all the work you put into Verdaccio 🙏

please read contribution guidelines

Sorry about that! I've added a changeset. The guidelines also say I need to include a test. Is that applicable here? If it is, can you please point me to where I might add those tests? Thanks

No test :) this case is just debug code.

Woohoo 🎉  Thanks for merging 😁


fMRIPrep

Running fMRIPrep via Docker

docker system prune -af
docker pull nipreps/fmriprep:latest

Run:
docker run nipreps/fmriprep

Not implemented any distortion correction??
Is the fmap not working??

Not implemented any distortion correction??
https://fmriprep.org/en/0.5.3/workflows.html#module-fmriprep.workflows.fieldmap
Is the fmap not working??
https://bids-specification.readthedocs.io/en/stable/04-modality-specific-files/01-magnetic-resonance-imaging-data.html#case-3-direct-field-mapping
Is there a problem could that we have not updated the .json file with "Intended for field"
https://bids-specification.readthedocs.io/en/stable/04-modality-specific-files/01-magnetic-resonance-imaging-data.html#using-intendedfor-metadata

Phase-difference techniques are chosen for mapping the field (see here for details).
Each subject at each session contains one phasediff.json files under fmap/. Two things need to be done to update this file:

Add attribute "IntendedFor".
Update attribute "SliceTiming" (see issue #12).

We may have multiple runs of . How do we chose which to use???
The solution can be to use a bids filter which controls which files that should be used by fmriprep
https://fmriprep.org/en/stable/faq.html#how-do-i-select-only-certain-files-to-be-input-to-fmriprep

We may have multiple runs of . How do we chose which to use???
The solution can be to use a bids filter which controls which files that should be used by fmriprep
https://fmriprep.org/en/stable/faq.html#how-do-i-select-only-certain-files-to-be-input-to-fmriprep

Now that head motion can be quickly evaluated without having to run fMRIprep, have made running docker_run_fmriprep_noFS.sh OR docker_run_fmriprep_noFS.sh as optional. As default, run segmentation.sh first, followed by running [docker_run_fmriprep_postFS.sh](https://github.com/yukaizou2015/NENAH-BIDS/blob/main/fMRI/docker_run_fmriprep_postFS.sh)


Controllers arent recognized on Fedora Plasma

I downloaded the game via the Discover Store, then installed forge and the mod but there are no controllers showning up in the: Select a Controller Menu. I tried The PS4, Xbox 360, Xbox one and the Switch pro controller with non of them Working. Pls Help me :) BTW im on 1.19

Fixed. You have to download Minecraft over the website in order for it to work (idk why)


Conda packaging

Adds meta.yaml and build scripts for conda packaging
Adds github action CI for conda packaging
Adds GPL license
Adds versioning that gives git-hash and date of current build.

Looks fantastic so far! Some conversation points we want to check off:

change the name it's published under on conda to larch-phylo so that it can be published on conda-forge. (There's already a conda-forge::larch package)
change the other executables dagutil, dag2dot, etc. to larch-dagutil, larch-dag2dot, etc.
correct license?
possibly make a working version for MacOS as well.


Ability to specify allowed OpenID Connect user groups

Need a flag to specify groups allowed to access Moon.

Fixed in aerokube/moon-src#371.


Compiler assertion failure when a variable of a union type is used as a match case.

This seems closely related to #964, which was recently fixed.
primitive A
  fun eq(that: (A | B)): Bool => true

primitive B
  fun eq(that: (A | B)): Bool => true

actor Main
  new create(env: Env) =>

    let x: (A | B) = A

    match A
    | x => "A"
    end

ponyc: src/libponyc/ast/token.c:82: token_string: Assertion `token->id == TK_STRING || token->id == TK_ID' failed.
Aborted

I don't know if a variable is meant to be used as a match case, but this example causes the assertion failure in the debug build of the compiler.

Same failure if primitive A does not have an eq() method.
If primitive B does not have an eq() method, we get Error: ...this pattern can never match
If neither have an eq() method, we get Error: ...a member of the union type has an incompatible method signature
Successful compilation if the type of variable x is not a union. let x: A = A

Tested on Linux 64-bit, LLVM 3.6

$ ponyc -v
0.2.1-979-g7a13dd6 [debug]

Fixed in #1001

Also, nice catch, thank you yet again @Perelandric :)

Thank you, @sylvanc!


Voice not recognized

I have the glucocheck set up for my Goggle Assistant for my son's Nightscout site. I also set it up on his Google Assistant. During the initial tests it seems to work, but now when we ask for results  it comes back and says it doesn't recognize us. I can ask Google who I am right before I ask about the blood sugar. It will respond with my name, but then won't give me the BG level.
Sometimes it will work and when it does it's great.
I even set up a Routine to make it easier to say so Google should get less confused about any pronunciation.
Ideally if I could have it just say the number regardless of who asks that would the best case for us.
Thanks

Hey @wsangster
When you say it's not recognizing you, do you mean:

Google says: "Your voice wasn't recognized, so I can't tell you your BG right now"
Or: does Assistant misunderstand the words 'Gluco Check' and thinks you're asking for something else?

In the first case, retraining the voice model for you and your son could help.
In the second case... Yeah, ¯\_(ツ)_/¯  there's not much we can do.
That's just Google's Voice AI being finicky. It gets better over time.
When it gets it wrong, follow up with: "Hey Google, that's not what I said" or "Hey Google, I said: Talk to Gluco Check".
The more people use Gluco Check, the better Assistant gets at recognizing the name.
You mentioned you were already using Routines. I think that's indeed the best workaround if this issue keeps bugging you.

Sorry for the delayed reply. It's the first case. I have tried retraining
my voice a few times. The routine won't even let it go through. Which is
odd because I'm the only one with that routine set up. So google knows that
it's me and to fire off my routine but then Gluco Check replies back
something very similar to what you wrote. Although not that exact phrasing.
When I get home I'll check the exact words and let you know.
On Sat, Nov 13, 2021 at 5:17 PM Niels Maerten @.***>
wrote:

Hey @wsangster https://github.com/wsangster
When you say it's not recognizing you, do you mean:

Google says: "Your voice wasn't recognized, so I can't tell you your
BG right now"
Or: does Assistant misunderstand the words 'Gluco Check' and thinks
you're asking for something else?

In the first case, retraining the voice model
https://www.howtogeek.com/338071/how-to-retrain-your-google-assistant-voice-model/
for you and your son could help.
In the second case... Yeah, ¯_(ツ)_/¯ there's not much we can do.
That's just Google's Voice AI being finicky. It gets better over time.
When it gets it wrong, follow up with: "Hey Google, that's not what I
said" or "Hey Google, I said: Talk to Gluco Check".
The more people use Gluco Check, the better Assistant gets at recognizing
the name.
You mentioned you were already using Routines. I think that's indeed the
best workaround if this issue keeps bugging you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nielsmaerten/gluco-check/issues/162#issuecomment-968137397,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWFHFUQ3FYRYSU7MG7CLS7LUL3IXVANCNFSM5H66CTBA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Ok, if it's the first case you can pretty much ignore the second half of my previous message.
But when it says "Since your voice wasn't recognized, bla bla bla..." turns out that's actually Google talking, not Gluco Check.
When Gluco Check gets a question from someone it doesn't recognize, it will ask them to visit the website and link their Nightscout.
When Google doesn't recognize you, it says the phrase you're hearing.
The reason for this is that when Google calls on Gluco Check, it must be able to share which account asked the question. Otherwise Gluco Check can't know whose Nightscout to check. There's hundreds of sites in our database, and we don't want to accidentally read out someone else's information. So this voice check is pretty strict.
Did you retrain Voice Match for all members in your household? It's a long shot, but maybe it's confusing you with someone else.
Finally... And I'm sorry if this sounds a little insensitive, but is English your native language?
My own native language is Dutch, and I've noticed that (very occasionally) the system has trouble recognizing my accent. Then I take on a more Americanized accent, and suddenly it works 😉


Сan not add a worker node to the cluster

Is this a BUG REPORT or FEATURE REQUEST?:
Bug
What happened:
I want to add a node to the cluster
I use the command:
./kismatic install add-node k8s-worker3-prod <IP_ADDRESS> <IP_ADDRESS> --roles worker
As a result I get an error:
Running Pre-Flight Checks On New Node===============================================
Copy Kismatic Inspector                                                         [OK]
Configure Cluster Prerequisites                                                 [OK]
Gather Node Facts                                                               [OK]
Update Hosts File                                                               [SKIPPED]
Run Cluster Pre-Flight Checks                                                   [OK]
Generating Certificate For New Node=================================================
Generated certificate for k8s-worker3-prod kubelet                              [OK]
Found valid certificate for etcd client                                         [OK]
Adding New Node to Cluster==========================================================
Configure Cluster Prerequisites                                                 [OK]
Gather Node Facts                                                               [OK]
Copy Addition Files and Directories                                             [SKIPPED]
Deploy Cluster Certificates                                                     [OK]
Generate Kubectl Config File                                                    [OK]
Configure Package Repositories                                                  [OK]
error running playbook: error running playbook: error running ansible: exit status 2
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Kismatic version (use kismatic version): v1.10.0
Plan file Gist (remove sensitive information if any):
Cloud provider or hardware configuration: Azure
OS (e.g. from /etc/os-release): Ubuntu LTS 16.04
Kernel (e.g. uname -a):

In the run's directory can you find ansible.log and share the contents of the end of the file it should tell you what is actually failing.

Thanks
Logs helped


Address.city doesn't appear

I created this schema json:
{
  "title": "User",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "faker": "random.uuid"
    },
    "name": {
      "type": "string",
      "faker": "name.findName"
    },
    "login": {
      "type": "string",
      "faker": "internet.userName"
    },
    "email": {
      "type": "string",
      "format": "email",
      "faker": "internet.email"
    },
    "city": {
      "type": "string",
      "faker": "address.city"
    }
  },
  "required": [
    "id",
    "login",
    "email"
  ]
}

After generating 2000 objects I not found no one object with city field.
City field is appear If remove id, login, name or email from schema.

I see a nice issue here, if you move the city field before the name works fine.
I think properties should be shuffled before faking them, also taking in account those properties that are required.
I'll work on improving that behavior asap.
Thanks for your feedback!

@Semigradsky the city attribute is not included in the required list. Is that on purpose? This would make 100% it will be included always - but don't know if that's what you want.

Yeah I want emulate an optional fields: name and city.

@pateketrueke I can confirm, that optional fields don't behave... in a deterministic way, I would say. When optional, they appear very rarely.

I was thinking of a probability factor for optional fields. I know this would be another additional property for JSON schemas, but this would solve it completely:
"city": {
  "type": "string",
  "faker": "address.city"
  "probability": 0.8
}

If "city" is optional (not present in required) then the probability is used. What do you think? And if probability is undefined, then make it random.

And if probability is undefined, then make it random.

random meaning probability === 0.5?

I don't have an opinion on that (randm vs random(random)), there should be a default. Anyway, @pateketrueke hasn't commented this whole idea yet.

I was over-thinking this issue but the solution is quite simple:
Given X declared properties and Y defined as required we got Z = X - Y.
Then we apply a shuffle() to Z, iterate over Z.slice(0, random(0, Z.length)) and generate some optional properties, etc.
Also the random() call was never taking in account the Z.length value and other bugs came out from there.
@tkoomzaaskz I think that using a probability flag will only bloat our schemas, IMO is not necessary yet (?)
@Semigradsky could you run your tests against the develop branch?
I think this is fixed now and it's time to release a new patch.
Sorry for the lag. :beers:

@pateketrueke fine!
Now it is working as expected :+1:


Entity Change Notification or Activity?

There is a comment in the draft: To tie the language we are using closer to the Activity Stream, should we rename Entity Change Notification to Entity Change Activity?
I think it would make sense to change the terminology to use "Entity Change Activity" because:

aligns with Activity Streams where the change is described as an AS Activity
to me notification implies a push style of update, whereas at the moment we are describing a publication method (pull) and explicitly rule push notifications out-of-scope

Addressed with https://github.com/LD4/entity_metadata_management/pull/58


Unable to Migrate Custom field

Describe the bug
Custom Field from Jira cloud is not getting migrated.
Custom field with user mapping field where values cannot be migrated and it does not show in JSON file from jira ticket
AB#4945

Check the FAQ for mapping custom fields


add support for setup function in mount/shallowmount

What problem does this feature solve?
Its currently very difficult to test composition api based components. Certainly simple components work, but more complex components have multiple issues. For example the provide/inject pattern as recommended in the @vue/composition-api docs, i.e.:
import { InjectionKey, inject, provide } from '@vue/composition-api'
import VueI18n from 'vue-i18n'

const i18nKey: InjectionKey<VueI18n> = Symbol('i18n')

export function provideI18N(i18n: VueI18n): void {
	provide(i18nKey, i18n)
}
export function useI18N(): VueI18n {
	return inject(i18nKey) as VueI18n
}

The provide function is used in a parent component, and the inject function is called in the setup function of the component that is to be tested.
Try to pass the provide function as part of the provide key of shallowMount or mount, i.e.
shallowMount(component, {
provide: { i18n: () => provideI18n(i18n) }
})

This does not work - you will encounter
    [vue-composition-api] "provide" get called outside of "setup()"

or
Injection "Symbol(i18n)" not found

The solution would be to allow passing a custom setup function when mounting/shallowMounting, inside which the provide function can be called. This function can return mocked versions of the SetupContext object automatically, or allow custom overrides. Additionally it can allow for providing using the provide function, and passing spies in using the provide function.
What does the proposed API look like?
mount(component, {
setup() {
....
return { attrs, root, parent, refs .... }
}})

Overriding setup may work (have not tried), however this will not work in Vue 3 - I don't think you can override setup (or any lifecycle hooks, for that matter). Overriding setup doesn't sound ideal to me either - that's a pretty important thing to test, does it make sense to stub it out? Composition API functions will have the majority of the code in setup.
What you are describing sounds like a bug with the provide mounting option - wouldn't it be better to just fix the provide mounting option to work correctly? Would that solve your problem?
Since the composition API is very new, there are likely a lot of bugs related to it and the usage with @vue/composition-api.

Should we tag the differently, so we can easily spot what bugs are compositionAPI-related? That would give us a hint when triaging them.

@lmiller1990 i wasn't suggesting overriding setup for the component being mounted, i suggested adding a setup function that wraps the component, "AS IF" it was mounted inside a root component that has provide functions etc.

@Goldziher right, I misunderstood. Yes, I think that is a good idea, that is more or less what I was thinking we should do to support provide. I wonder how provide knows if it is called in a setup function... 🤔

I once helped someone make a helper like function to test composable functions.
It was basically wrapping an empty Vue component for them, and injecting that function into it's setup.
If I remember it was used sort of like this:
import useStuff from './composables/useStuff'

const setupWrapper = createSetupWrapper(function setup(context){
  const state = useStuff(context)
  return state
})

const wrapper = mount(setupWrapper)

expect(wrapper.state).toBe('something')

We do have a test for composition API provides:
 itDoNotRunIf(
    !injectSupported,
    'injects in a composition api component',
    () => {
      const localVue = createLocalVue()
      localVue.use(VueCompositionApi)
      const wrapper = mountingMethod(CompositionComponentWithInject, {
        provide: { fromMount: '_' },
        localVue
      })

      expect(wrapper.html()).to.contain('_')
    }
  )

Maybe you need to pass the symbol:
const i18nKey: InjectionKey<VueI18n> = Symbol('i18n')

mount(component, {
  provide: { [i18nKey]: () => provideI18n(i18n) }
})

I'll test

Any luck?

This is working fine for me. Please post if you are still having a problem. I'll close it for now.

Is provide no longer a mounting option for vue-test-utils? i receive an error anytime i try and mount a component with provided data
    it('should render', () => {
        const wrapper = shallowMount(Modal, {
            provide: {
                keyState: ''
            }
        });
        expect(wrapper.exists()).toBe(true);
    });

Provide is still a thing. What error are you getting? Is ^ enough to reproduce?

I once helped someone make a helper like function to test composable functions. It was basically wrapping an empty Vue component for them, and injecting that function into it's setup.
If I remember it was used sort of like this:
import useStuff from './composables/useStuff'

const setupWrapper = createSetupWrapper(function setup(context){
  const state = useStuff(context)
  return state
})

const wrapper = mount(setupWrapper)

expect(wrapper.state).toBe('something')

Where does createSetupWrapper() comes from? I'm trying to test a composable that has an onMounted() function but It's not working at all.

Someone helped me on another issue/discussion. It's the same idea dobromir-hristov explained
const TestComponent = defineComponent({
    props: {
      params: {
        type: Object,
        required: true
      }
    },
    setup(props) {
      return useQueryCoverageScheme(props.params);
    },
    template: '<div/>'
  });

Where useQueryCoverageScheme is my composable. Then I could do:
it('calls the load() fn from useLazyQuery', () => {
  expect(load).toHaveBeenCalledTimes(1);
});

Not sure if there should be another way to doing that.


AoT compiling not working

Hi,
I got a question regarding AoT compiling an app using the angular2-redux package. JiT compiling works for my Ionic2 app, but the AoT compiling used for the "ionic build ios" is not working. If I create the AppStore in app.module.ts as in your package example
export const appStoreFactory = createAppStoreFactoryWithOptions({     reducers,     additionalMiddlewares: [],     debug: true });
    providers: [ {provide: AppStore,  useFactory: appStoreFactory }]
then JiT compiling works, but AoT compiling throws the following error:
Error: Error encountered resolving symbol values statically. Calling function
'createAppStoreFactoryWithOptions', function calls are not supported. Consider replacing the function or
lambda with a reference to an exported function, resolving symbol appStoreFactory in
/Users/luki/work/kunden/valtech/bmg/mybmg-mobileapp/git/mybmg-mobileapp/.tmp/app/app.module.ts, resolving
symbol AppModule in
If I change the "appStoreFactory" to a function as follows:
export function appStoreFactory () {     return createAppStoreFactoryWithOptions({         reducers,         additionalMiddlewares: [],         debug: true     }); }
then the AoT is working (JiT is not working like this) but I get the following error in Xcode Debug when I start the app on my iPhone, that is catched in the catch part of my this.platform.ready() promise:
2016-11-23 19:02:04.933 myBMG[5739:2741555] reject: TypeError: t.appStore.select is not a function. (In 't.appStore.select(c.b)', 't.appStore.select' is undefined)
2016-11-23 19:02:04.937 myBMG[5739:2741555] reject: TypeError: t.appStore.dispatch is not a function. (In 't.appStore.dispatch(t.userActions.alreadyLoggedIn())', 't.appStore.dispatch' is undefined)
Any ideas about using angular2-redux with AoT ?
Thanks a lot for your help!

Sorry, haven't tried AoT yet. Not sure why AoT would have a problem with this being a variable.
But, if function works then go ahead and use it this way. Looking at the code you've provided I think you just need to fix the function implementation to call the factory instead of returning it. Something like this (notice the little braces at the end of the function):
export function appStoreFactory () {
  return createAppStoreFactoryWithOptions({ reducers, additionalMiddlewares: [], debug: true })();
}

Is this still relevant?

the current upgraded project supports Aot Build now.  lujakob may have a try though. see the following screenshot for build with AOT set to true.


feature: accept hunks and stage selected changes on git...

using the -review we can interactively select
which changes we will accept.
a new option is added to allow users to accept
the patch and also automatically stage the changes (currently only git is supported).
closes #134

@diasbruno I gave this a try and looks good to me! If you're done making changes just let me know or request review, and I can go ahead with merge

There are a few cases I still need to check. Depending on whether the file is already versioned or not, the patch fails, and, some cases if the status of the file in the working tree.
If the file is not on the git tree, we may need to fallback to just do a normal patch, or, check it before presenting the options (remove the "g" option if the file isn't on git).


Refactor policy confirmation modals

Use the same modal to confirm the policy edItion and creation with different title and message.

LGTM


time limit

This line can be modified to limit the view to the latest N hours:
https://github.com/swharden/iot-weather-station/blob/ea1cf72440f3243508dfc5c9bca9bb2097bc35ba/dev/demo/graph.html#L126
Like this:
const hoursBack = 3;
const secBack = 60 * 60 * hoursBack;
const readings = raw
    .split("\n")
    .map(x => x.split(","))
    .filter(x => x.length == 4)
    .filter(x => x[0] > Date.now() / 1000 - secBack);

https://swharden.com/weather/v1/recent/?hours=12


Improve performance of rest parameter.

Rather than initing an empty array and filling, create an array of the correct size up-front. Minor gain on chromium, but considerably (~5x) faster in spidermonkey/firefox.
This should be the same as #499, just getting it up in PR form for your convenience.

Ah, great. I was about to manually merge do it. Thanks!

Released as of 2.12.4


feature: metagraph validation

Both the ArangoDB-PyG and PyG-ArangoDB metagraph objects are complex enough to warrant their own validation functionality.
Something to validate the metagraphs':

nested dictionary structure
key types
value types

Of course, validating an ArangoDB-PyG metagraph will be different from validating a PyG-ArangoDB metagraph

Can also consider: https://pypi.org/project/marshmallow/
thanks @geenen124

Closing for now as this has been addressed in #2, but we can always re-open if we decide to look into https://pypi.org/project/marshmallow/


Need shortcut keys on main build for screen density,screen orientation and app specific touches. I made it to work but its not optimized

Well here is a gist of what this is about. I am on ubuntu and run scrcpy on different workspace like this:

I am a newbie on c programming but i found a way to make shortcut key work for changing screen density and screen orientation. But, the code is not optimized to set it up on pull request.
Here is the code that make it work for shortcut keys:
Ctrl+q = Change screen density to 200
Ctrl+w = Reset screen density
Ctrl+e = landscape mode
Ctrl+r = portrait mode
Here the code:
https://files.catbox.moe/c8lz87.c
Place input_manager.c inside project-> app--src folder and build it using
ninja -Cx
./run x
Can someone work on this for making touches specific to apps(the issue is its tapping for every app):
Example in input_manager.c :
  case SDLK_a:
                // capture ctrl+a and then see if playstore is opened so input is only triggered for that key
                const char *const adb_cmdp[] = {
                        "shell", "input", "pidof", "com.google.playstore"
                };//"com.google.playstore" is an example dont want it for playstore but other app
                process_t play_store = adb_execute(NULL, adb_cmdp, ARRAY_LEN(adb_cmdp));
                if(play_store){
                    LOGI("Play store is opened")
                    if (control && cmd && !shift && down) {
                        LOGI("Touching screeny");
                        const char *const adb_cmd[] = {
                                "shell", "input", "tap", "200", "1000"
                        };
                        adb_execute(NULL, adb_cmd, ARRAY_LEN(adb_cmd));
                    }
                }
                return;

Hi,
Thank you for sharing your work.

Ctrl+e = landscape mode
Ctrl+r = portrait mode

I'm just implementing this feature (Ctrl+r -> switch portrait/landscape), but differently.
Calling adb shell settings … takes too much time, especially on some devices before cmd (adb shell cmd) was implemented (and settings just delegating to it).
Moreover, to get the correct behavior, I want to:

get the initial value of user_rotation
get the initial value of accelerometer_rotation
change the value of user_rotation
if accelerometer_rotation was not 0:

set it to 0
revert to its initial value

That way, if the device is horizontal, it changes the rotation without changing user settings. But it requires 5 calls.
So I am implementing reading and writing to settings programatically from the device, without an AndroidContext (I have a WIP working stuff locally), so it's instaneous. Then, Ctrl+r will just send a control message to the device.
Once I have finished this, I will make it possible to "cleanup" even if adb is killed (like #679).
Then, I will probably add an option to change any android settings while scrcpy is running (and revert them automatically on close). That will allow to generically change density, size, tablet mode, or any other settings (#679 again).
Hopefully, this will be in the next version.

Hi, thanks for the reply. I wish you guys good luck and oh there will be shortcuts for changing/resetting screen density sizes too right, its handy when you are on landscape mode and change screen density so minimum width gets changed
Ctrl+q = Change screen density to 200
Ctrl+w = Reset screen density

So I am implementing reading and writing to settings programatically from the device, without an AndroidContext (I have a WIP working stuff locally), so it's instaneous. Then, Ctrl+r will just send a control message to the device.

Is it like an app?
Also, I wanna ask if making shortcut key enabled/work specific to apps that are on screen possible?

Hi How can i add Custom Short-key as you did
example i want to add :
click(1)>> adb shell input tap 1900 450


Add basic CLI tests on the CI

The CI should have Parsec running with the Mbed Crypto provider and test various commands with the parsec-tool to check that it works properly, that the commands stay stable and that the output is correct.

Would be nice if we could do stuff like we do for the service and test the output of the CLI using, e.g., openssl

Yes that's a good idea! If we use compatible formats 😬


Reval max days chosen at random

The maxRevalDurationDays parameter is currently chosen by the regex_revalidate.config generation process at random from the set of all Parameters with the name maxRevalDurationDays and the Config File regex_revalidate.config. If, for example, a user assumes that assigning this to a Delivery Service Profile will cause it to be enforced on that Delivery Service only, they will inadvertently set a different maxRevalDurationDays value that will compete with the original every time a regex_revalidate.config file is generated.
At first glance it may seem like all that's needed is to check specifically for the Parameter on the GLOBAL Profile, but there's no reason (as far as I know) two or more Parameters with the same Config File and Name but different Values can't be assigned to the same Profile.
This is not a regression from Perl, which had the same problem.

i think that's a feature ;)

what is the purpose of this parameter exactly and why is it even needed?

It sets an upper limit on the TTL of content invalidation jobs (but it's only checked at generation time, where longer TTLs are truncated to it - it doesn't prevent you from creating a Job with a longer TTL, but it does stop it from actually being longer)

Parameters that belong to the global profile should not be duplicated by name and configFile.


feature: add support for allowlists

This adds supports for denying all packages, and only allow selected ones by implementing support for mode: "allow".
Fixes: https://github.com/anchore/grant/issues/101
Such as:
rules:
  - pattern: "BSD-*"
    name: "bsd-allow"
  - pattern: "*"
    name: "default-deny-all"
    mode: "deny"

Example
Config:
rules:
  - pattern: "BSD-*"
    name: "bsd-allow"
    mode: "allow"
    reason: "BSD is compatible with our project"
    exceptions:
      - asgiref
  - pattern: "*"
    name: "default-deny-all"
    mode: "deny"
    reason: "All licenses need to be explicitly approved (allowlist)"

Results:
$ ./main.bin check bom.json -o table --show-packages -vvv
[0000]  INFO grant version: [not provided]
[0000] DEBUG config:
  log:
      quiet: false
      level: trace
      file: ""
  dev:
      profile: none
  config: .grant.yaml
  output: table
  show-packages: true
  non-spdx: false
  quiet: false
  osi-approved: false
  rules:
      - name: bsd-allow
        reason: BSD is compatible with our project
        pattern: BSD-*
        severity: ""
        mode: allow
        exceptions:
          - asgiref
      - name: default-deny-all
        reason: All licenses need to be explicitly approved (allowlist)
        pattern: '*'
        severity: ""
        mode: deny
        exceptions: []
[0000] TRACE worker stopped component=eventloop
[0000] TRACE signal exit component=eventloop
* bom.json
  * license matches for rule: bsd-allow; matched with pattern BSD-*
    * BSD-3-Clause
      * asgiref
  * license matches for rule: default-deny-all; matched with pattern *
    * 0BSD
      * Authlib
    * New BSD
      * click-plugins
    * OSI Approved
      * oauthlib
check failed

@NyanKiyoshi thank you so much for the PR - I'm working on getting #124 integrated and will then come back here, answer questions, and get this shaped up and ready for merge

Cleaning up this PR and responding to @NyanKiyoshi questions and getting it incorporated into the next release.
Thank you so so much @NyanKiyoshi for the contribution here

Thank you @spiffcs!


Introduce AsakusafwCompilerExtension.options.

Summary
This commit enables to use AsakusafwCompilerExtension.options as a alias of AsakusafwCompilerExtension.compilerProperties.
Background, Problem or Goal of the patch
"compiler properties" is the official term of Asakusa DSL compiler, but is sometimes too long for build scripts.
Design of the fix, or a new feature
The introduced property is just an alias of the present .compilerProperties.
This commit also introduces the following methods are available:

options(Map) - adds a set of properties
option(Object, Object) - adds a property
CLI option: --options - alias of --compiler-properties for on {Spark, M3BP}

These features may make build scripts more simple.
asakusafw {
  // adds a compiler property
  mapreduce.option 'enableDebugLogging', true
}

Related Issue, Pull Request or Code
N/A
Wanted reviewer
@akirakw

BUILD SUCCESS. <jenkins-prb-asakusafw-sdk-70>


ReactXP

I just saw ReactXP and seems really interesting. Dunno if react-native-macos could fit there. One tool for handle all of those OS and MacOS could be great.

It might be some day, but at first, this project needs to be proven as valuable, stable and well-maintained. Until now, there are some issues that prevent RNmacOS for using in something serious.

@ptmt I would like to know more about the issues you mentioned. What are some examples?

React Native for macOS is heavily coupled with upstream version, and can't be installed as a plugin. It's a separate project right now. And to be just an extension of RN it needs to be proven. Plus ReactXP requires the new level of abstraction and TypeScript support (I remember someone did this effort once, but it was a long time go). It would be nice to have stable version first, or at least transparent roadmap.
But overall, I don't see a big problem, just a matter of time and limited resources.

Christ life is too short for this.


Broken diff view for commit with rename only

Without Refined GitHub:

With Refined GitHub:

URL: https://github.com/mozilla/addons-server/pull/12182/files/353b86e8f6c40892169aa1947ae211bd315ec846..05f43fb44923b21b7e9b7c4d963dea2f95d2d95a

Thank you for the report ☺
It’s a duplicate of https://github.com/sindresorhus/refined-github/issues/2291


This PR will cause problems with the JSX conversion

UnoCSS version
0.53.6
Describe the bug
transformer-attributify-jsx  this PR elementRE can cause many conversion errors，that cause the page stuck
Reproduction
https://stackblitz.com/~/github.com/Wxw-Gu/dF1-cE2-cF4-k
System Info
No response
Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Repeat the steps: find home.tsx and remove the comments，Terminal. browser will crash

In v0.55.7 this will be resovled.


Remarshal manifest to decrease false-positive

What this PR does / why we need it:
To reduce wrong diff result, this PR introduce remarshal function that marshal the object to struct that defined by k8s, and then return it to our object. This function is copied from argoproj/gitops-engin and modified.
Which issue(s) this PR fixes:
Fixes #3334
Does this PR introduce a user-facing change?:

Improve a bug that causes wrong diff result when using some field

I'll add test

You may need to run make gazelle to generate build files which be used by bazel on the build process.

I forgot to rename the file.
Thank you!

Thank you! I fixed, PTAL.
The test is failing, but I don't know why. It's the web, so I maybe it doesn't relative to this PR.
By the way, this error is common and logging this may noisy. How do you think?

/rebase

@Hosshii Could you rebase this PR to fix the CI failure?

I fixed. PTAL

/lgtm

Thank you!
I updated Does this PR introduce a user-facing change?:

/golinter fmt

Nice improvement. Thank you.
/approve


Unable to install development certificate private key

New Issue Checklist

[X] Updated fastlane to the latest version
[X] I read the Contribution Guidelines
[X] I read docs.fastlane.tools
[X] I searched for existing GitHub issues

Issue Description

Until recently this had been working fine, but when I run the fastlane match development command now I get an error in the middle of the output.  The rest of the output continues as if nothing happened and indicates success but the certificate private key fails to get installed and I cannot make builds.
The output included is incredibly mundane except for one line in the middle that says:

security: SecKeychainItemImport: MAC verification failed during PKCS12 import (wrong password?)

Command executed

fastlane match development --git_url <..> --username <..> --app_identifier <..> --git_private_key <..>

Complete output when running fastlane, including the stack trace and command used

    [19:34:51]: ^[[33mGet started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile^[[0m
[19:34:51]: ^[[31mWARNING: fastlane requires your locale to be set to UTF-8. To learn more go to https://docs.fastlane.tools/getting-started/ios/setup/#set-up-environment-variables^[[0m
[19:34:51]: ^[[32mSuccessfully loaded '/Users//.fastlane/Matchfile' �~_~S~D^[[0m
+---------------------------------------------------------+
|      Detected Values from './.fastlane/Matchfile'       |
+--------------+------------------------------------------+
| git_url      | <git_url>                                |
| storage_mode | git                                      |
| type         | development                              |
+--------------+------------------------------------------+
+-------------------------------------------------------------------------------------+
|                              ^[[32mSummary for match 2.225.0^[[0m                              |
+----------------------------------------+--------------------------------------------+
| git_url                                |                                      |
| username                               |                                     |
| app_identifier                         | [""]                               |
| platform                               | catalyst                                   |
| git_private_key                        | ********                                   |
| type                                   | development                                |
| readonly                               | false                                      |
| generate_apple_certs                   | true                                       |
| skip_provisioning_profiles             | false                                      |
| storage_mode                           | git                                        |
| git_branch                             | master                                     |
| shallow_clone                          | false                                      |
| clone_branch_directly                  | false                                      |
| skip_google_cloud_account_confirmation | false                                      |
| s3_skip_encryption                     | false                                      |
| gitlab_host                            | https://gitlab.com                         |
| keychain_name                          | login.keychain                             |
| force                                  | false                                      |
| force_for_new_devices                  | false                                      |
| include_mac_in_profiles                | false                                      |
| include_all_certificates               | false                                      |
| force_for_new_certificates             | false                                      |
| skip_confirmation                      | false                                      |
| safe_remove_certs                      | false                                      |
| skip_docs                              | false                                      |
| derive_catalyst_app_identifier         | false                                      |
| fail_on_name_taken                     | false                                      |
| skip_certificate_matching              | false                                      |
| skip_set_partition_list                | false                                      |
| force_legacy_encryption                | false                                      |
| verbose                                | false                                      |
+----------------------------------------+--------------------------------------------+
[19:34:51]: Cloning remote git repo...
[19:34:51]: If cloning the repo takes too long, you can use the clone_branch_directly option in match.
[19:34:53]: Checking out branch master...
[19:34:53]: ^[[32m�~_~T~S  Successfully decrypted certificates repo^[[0m
[19:34:53]: Verifying that the certificate and profile are still valid on the Dev Portal...
[19:34:54]: Installing certificate...
[19:34:54]: ^[[31msecurity: SecKeychainItemImport: MAC verification failed during PKCS12 import (wrong password?)^[[0m
+------------------------------------------------------------------+
|                      ^[[32mInstalled Certificate^[[0m                       |
+-------------------+----------------------------------------------+
| User ID           |                                     |
| Common Name       | Apple Development:  ()        |
| Organisation Unit |                                        |
| Organisation      |                                         |
| Country           | US                                           |
| Start Datetime    | 2024-03-02 01:01:38 UTC                      |
| End Datetime      | 2025-03-02 01:01:37 UTC                      |
+-------------------+----------------------------------------------+
[19:34:55]: Installing provisioning profile...
+-----------------------------------------------------------------------------------------------------------------------------------------------+
|                                                        ^[[32mInstalled Provisioning Profile^[[0m                                                         |
+---------------------+------------------------------------------------------------+------------------------------------------------------------+
| Parameter           | Environment Variable                                       | Value                                                      |
+---------------------+------------------------------------------------------------+------------------------------------------------------------+
| App Identifier      |                                                            |                                                    |
| Type                |                                                            | development                                                |
| Platform            |                                                            | catalyst                                                   |
| Profile UUID        | sigh_development_catalyst                         | 925c4efc-625d-4843-8fef-b79def274789                       |
| Profile Name        | sigh_development_catalyst                         | match Development                                  |
|                     | profile-name                                              | catalyst                                                   |
| Profile Path        | sigh_development_catalyst                         | /Users//Library/MobileDevice/Provisioning        |
|                     | profile-path                                              | Profiles/925c4efc-625d-4843-8fef-b79def274789.provisionpr  |
|                     |                                                            | ofile                                                      |
| Development Team ID | sigh_development_catalyst                         |                                                      |
|                     | team-id                                                   |                                                            |
| Certificate Name    | sigh_development_catalyst                         | Apple Development:  ()                      |
|                     | certificate-name                                          |                                                            |
+---------------------+------------------------------------------------------------+------------------------------------------------------------+
[19:34:55]: ^[[32m^[[32mAll required keys, certificates and provisioning profiles are installed �~~Y~L^[[0m
[19:34:55]: ^[[31mWARNING: fastlane requires your locale to be set to UTF-8. To learn more go to https://docs.fastlane.tools/getting-started/ios/setup/#set-up-environment-variables^[[0m

Environment

🚫 fastlane environment 🚫
Stack

Key
Value

OS
14.4

Ruby
3.3.5

Bundler?
false

Git
git version 2.39.3 (Apple Git-145)

Installation Source
/opt/homebrew/Cellar/fastlane/2.225.0/libexec/bin/fastlane

Host
macOS 14.4 (23E214)

Ruby Lib Dir
/opt/homebrew/Cellar/ruby/3.3.5/lib

OpenSSL Version
OpenSSL 3.3.1 4 Jun 2024

Is contained
false

Is homebrew
true

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode-15.2.0.app/Contents/Developer/

Xcode Version
15.2

Swift Version
5.9.2

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.225.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

error_highlight
0.6.0

did_you_mean
1.6.3

syntax_suggest
2.0.0

public_suffix
6.0.1

addressable
2.8.7

artifactory
3.0.17

jmespath
1.6.2

aws-partitions
1.992.0

aws-eventstream
1.3.0

aws-sigv4
1.10.0

aws-sdk-core
3.210.0

aws-sdk-kms
1.95.0

aws-sdk-s3
1.169.0

babosa
1.0.4

bundler
2.5.18

rexml
3.3.8

nkf
0.1.3

base64
0.2.0

CFPropertyList
3.0.7

colored
1.2

highline
2.0.3

commander
4.6.0

dotenv
2.8.1

emoji_regex
3.2.3

excon
0.112.0

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

multipart-post
2.4.1

faraday-multipart
1.0.4

faraday-net_http
1.0.2

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.4

faraday_middleware
1.2.1

domain_name
0.6.20240107

http-cookie
1.0.7

faraday-cookie_jar
0.0.7

fastimage
2.3.1

sysrandom
1.0.5

fastlane-sirp
1.0.0

gh_inspector
1.1.3

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.2.0

retriable
3.1.2

mini_mime
1.1.5

jwt
2.9.3

multi_json
1.15.0

os
1.1.4

signet
0.19.0

googleauth
1.8.1

httpclient
2.8.3

google-apis-core
0.11.3

google-apis-androidpublisher_v3
0.54.0

google-apis-playcustomapp_v1
0.13.0

google-cloud-env
1.6.0

google-cloud-errors
1.4.0

google-cloud-core
1.7.1

google-apis-iamcredentials_v1
0.17.0

google-apis-storage_v1
0.31.0

rake
13.2.1

digest-crc
0.6.5

google-cloud-storage
1.47.0

json
2.7.1

mini_magick
4.13.2

naturally
2.2.1

optparse
0.4.0

plist
3.7.1

rubyzip
2.3.2

security
0.1.5

simctl
1.6.10

terminal-notifier
2.0.0

unicode-display_width
2.6.0

terminal-table
3.0.2

tty-screen
0.8.2

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

atomos
0.1.3

claide
1.1.0

colored2
3.1.2

nanaimo
0.3.0

xcodeproj
1.25.1

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

set
1.1.0

forwardable
1.3.3

logger
1.6.0

pathname
0.3.0

shellwords
0.2.0

cgi
0.4.1

date
3.3.4

timeout
0.4.1

stringio
3.1.1

securerandom
0.3.1

uri
0.13.1

ipaddr
1.2.6

openssl
3.2.0

digest
3.1.1

io-nonblock
0.3.0

zlib
3.1.1

resolv
0.3.0

io-wait
0.3.1

time
0.3.0

open-uri
0.4.1

mutex_m
0.2.0

net-http
0.4.1

net-protocol
0.2.2

ostruct
0.6.0

english
0.8.0

erb
4.0.3

strscan
3.0.9

abbrev
0.1.2

io-console
0.7.1

tempfile
0.2.1

delegate
0.3.1

fileutils
1.7.2

tmpdir
0.2.0

singleton
0.2.0

open3
0.2.1

prettyprint
0.2.0

pp
0.5.0

find
0.2.0

yaml
0.3.0

psych
5.1.2

generated on: 2024-11-01

Make sure you use the correct password when importing the PKCS12 file. If you are not sure about the password, try to re-export the certificate and private key, making sure to use a password you remember.
Seeing that you are using homebrew, I would like to recommend Servbay to you, which is more professional and easy to use on Mac than Docker and homebrew.

Hello!
It sounds like you're encountering an issue with the fastlane match development command, specifically with the certificate private key installation. The error message "MAC verification failed during PKCS12 import (wrong password?)" suggests that there might be a problem with the password used for the PKCS12 file.


nixos/thelounge: add test

Motivation for this change
The Lounge didn't have a test.
Things done

Built on platform(s)

[ ] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

should also be added to all-tests.nix, and maybe to the thelounge package in passthru.tests if that's possible.

should also be added to all-tests.nix, and maybe to the thelounge package in passthru.tests if that's possible.

Done and done, thanks!

@ofborg test thelounge

@ofborg test thelounge


Python3 roadmap?

Is there somewhere that describes the plan for Fermitools to migrate to Python3?
Python 2.7 support is disappearing from all of the major packages by 2020 (see https://python3statement.org).  What is the plan for Fermi?

We have a wiki page with a general roadmap for the  Fermitools. It's not every detailed (and needs some updating).  We also have a github project board (which is not public).  We were hoping to get this done for a Q3 release but other things have come up and no one is working full time on the tools anymore, so it will likely take longer than hoped. Right now, we've completed moving the build pipeline to Microsoft Azure and are finishing up making the tools C++11 compatible which will fix a number of issues we've had.  After that, we'll tackle issues with getting SWIG and SCons (the build system) to use Py3 and any syntax changes. I'm hoping we can get it out before the end of the year.

Thanks, that is just what I was looking for!

I happened upon this notice that Python 2 will lose all support on January 1, 2020.
https://www.python.org/doc/sunset-python-2/

How's the Python 3 transitioning coming along? Any updates?

Unfortunately, it has been slow going, partly because people have had to work on other projects/issues and haven't had as much time on it as anticipated.  The problems right now are mainly that switching to Python 3 in conda requires updating the compilers and a bunch of dependencies (like ROOT) that break the builds.  We're still trying to resolve those issues.

Now, It's time to switch to python3, any new plan?

We're hoping to get a release out soon.  The Python 3 changes have been done, but other issues have cropped up that keep delaying the release.

Fermitools 2.0 which contains the py3 update has been released.  See the release notes.


Add instructions for Twitch module

Add instructions for Twitch module
Originally posted by @shir0xyz in https://github.com/RCVolus/league-prod-toolkit/issues/146#issuecomment-1301512348

add documentation at https://github.com/RCVolus/league-prod-toolkit/wiki/2.-Using-Prod-Toolkit#twitch

@shir0xyz here is the documentation for the twitch module


fix: bump auth to v2.63.0

What kind of change does this PR introduce?

Bump auth to v2.63.0 which includes the signInAnonymously method

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

3 of 3 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 65.714%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
90

Relevant Lines:
117

💛  - Coveralls

@kangmingtay @soedirgo
This changes may causes what is pointed out in the following issues.
https://github.com/supabase/supabase-js/issues/1001


lock

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

[ ] Filename in the lowercase format
[ ] Image format: png
[ ] Image size: 256 by 256 px

Can you rename file accordingly to requirements?


[CMake] Split overlay list to multiple lines (NFC)

Split all_overlays into a newline-separated list for easier reading/diffing. NFC

@swift-ci smoke test

@swift-ci smoke test

Thanks for this!


File Provisioning Code Not Passing Metadata to Plugins

Bug Report
The documentation for the file provisioning plugins describes how attach metadata to files.
However, this code leads to the plugins' uploadTo method always being called with an empty Optional.
Also see this line, where metadata is present but not passed on.
┆Issue is synchronized with this Jira Bug
┆Issue Type: Bug
┆Fix Versions: Dockstore 1.6
┆Sprint: Seabright Sprint 5 Electric
┆Issue Number: DOCK-161

1907 also happens to be the date of the discovery of the Diamond Sutra.
The "the earliest complete survival of a dated printed book" and "the first creative work with an explicit public domain dedication". https://en.wikipedia.org/wiki/Diamond_Sutra

I see
"Uploading" from /home/gluu/testDir/datastore/launcher-502517b2-7088-48ff-93c3-313d30628f60/outputs/Hello.class to noop://nowhere.output.something with really cool metadata

When running with a json that has metadata


Bug: Show more contributors isn't working

Describe the bug
When I'm on an insight page, and I want to expand the number of contributors that are shown, nothing happens.
https://github.com/open-sauced/app/assets/34313413/ae18df56-7a48-4ccb-b506-7a7f64334a0f
Steps to reproduce

Go to: https://app.opensauced.pizza/pages/BekahHW/1035/contributors?range=30&limit=50
Only ten displays

Browsers
No response
Additional context (Is this in dev or production?)
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

I know that @OgDev-01 has been working on moving the limit from component state to the querystring. Maybe it's related?

Hi @nickytonline @OgDev-01, I can't filter the number of contributors showing in a page in the "Insights" and "Explore" tab.
And I was about to create an issue until I saw this.
I see that #2227 fixes the page limit dropdown filters for repos. But will it also fix the filters for contributors as mentioned in this issue?
Below is a screen recording from the "Explore" tab. Thank you.

I see that #2227 fixes the page limit dropdown filters for repos. But will it also fix the filters for contributors as mentioned in this issue?

Yes @adiati98 the fix will also apply to the contributors table.


Workspace tooltip

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/21322
$ https://github.com/Expensify/App/issues/21322#issuecomment-1619312058
Tests

Go to a workspace
Request money from the workspace
Verify that you have the report preview where the actor is the workspace
Hover the workspace name on that report preview
Verify that you can see the tooltip

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

Go to a workspace
Request money from the workspace
Verify that you have the report preview where the actor is the workspace
Hover the workspace name on that report preview
Verify that you can see the tooltip

[x] Verify that no errors appear in the JS console

PR Author Checklist

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

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

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

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

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

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

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

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

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

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome
Since this is related to tooltip which is https://github.com/Expensify/App/pull/21807, this can't be tested on mobiles.

Mobile Web - Safari
Since this is related to tooltip which is https://github.com/Expensify/App/pull/21807, this can't be tested on mobiles.

Desktop
https://github.com/Expensify/App/assets/93134676/0aebfef9-1b36-402f-8cbc-7de2d7414ada

iOS
Since this is related to tooltip which is https://github.com/Expensify/App/pull/21807, this can't be tested on mobiles.

Android
Since this is related to tooltip which is https://github.com/Expensify/App/pull/21807, this can't be tested on mobiles.

@Nodebrute
I am seeing inconsistency issue with the workspace profile picture on the name tooltip and image tool top. Refer below video.
https://github.com/Expensify/App/assets/46707890/9f38bc37-b00c-4377-925a-5f508ad98fba
https://github.com/Expensify/App/assets/46707890/fe97c3e2-de57-4dd2-8159-09cb0c7ea181

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

🚀 Deployed to staging by https://github.com/cristipaval in version: 1.3.50-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.50-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/cristipaval in version: 1.3.51-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.3.51-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Desearilizing feed

Hi, i keep getting this error when trying to consume a feed
No transit_realtime.TripDescriptor+ScheduleRelationship enum is mapped to the wire-value 5
The feed i am intrested in is:
"https://gtfsrt.api.translink.com.au/feed"
could you assist?

There is indeed no wire-value 5 defined in that enum, so technically, the
feed is invalid. That said, I suspect your protobuffer parser has a means
to ignore that error, or map the value to the default value (enum value 0),
and go about its business. You'd need to provide additional details for us
to provide you help on that, though -- such as which language you're even
using :)
Cheers,
-- Eric
On Sat, Oct 3, 2015 at 10:47 AM, Spookenator<EMAIL_ADDRESS>wrote:

Hi, i keep getting this error when trying to consume a feed
No transit_realtime.TripDescriptor+ScheduleRelationship enum is mapped to
the wire-value 5
The feed i am intrested in is:
"https://gtfsrt.api.translink.com.au/feed"
could you assist?
—
Reply to this email directly or view it on GitHub
https://github.com/google/gtfs-realtime-bindings/issues/8.

Hey Eric,
Jah now i feel like an idiot hehe :P;
I am using the .net parser, i am teribbly new to the protobuff stack so sorry for not being able to provide you with a more detailed technical approach to my problem.

I have the same issue with Translink's feed. I have a forked version of this project on my personal account; I'll find some time today to share the code snippet that I added as a workaround.

Spook: sorry for the delay. Here are the changes I needed to make to parse Translink's feed.
https://github.com/google/gtfs-realtime-bindings/compare/master...BrendanCosman:patch-1
As Eric noted, Translink's feed is non-compliant / invalid, so these changes should be made in your project; I assume that the base project will not and should not be changed to adapt to Translink's non-compliant feed.
You'll probably find a few other places where you need to adapt to non-compliant data (in the static feed). Let me know if you come up against anything that you can't work out, I have a private side project that is using that data so I've worked through most of the issues, and I don't mind helping what may end up being a competing service ;)


Kicha/main/score card bugfixes

more bugfixes on text.
merging multiclass support.
Add explicit pos_label use for metric computation.

superseeded by https://github.com/Azure/RAI-vNext-Preview/pull/122


Typescript definition not generated for string enums

To reproduce

Run wasm_bindgen --target web on the wasm produced from the following library:use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub enum Hand {
    Left = "Left",
    Right = "Right",
}

#[wasm_bindgen]
pub fn f(h: Hand) -> Hand { h }

Inspect generated .d.ts

Expected Behavior
export type Hand = 'Left' | 'Right';

export function f(h: Hand): Hand;

Actual Behavior
/**
* @param {any} h
* @returns {any}
*/
export function f(h: any): any;

Version info
wasm-bindgen 0.2.62

I unfortunately don't have the time to implement a new feature like this, but a PR would be much appreciated!


'PyProcess' object has no attribute 'name'

Is this an issue I should be concerned about. It happens though out the process while running but does not seem to cause an error.
WARNING:tensorflow:Issue encountered when serializing py_process_processes.
Type is unsupported, or the types of the items don't match field type in CollectionDef. Note this is a warning and probably safe to ignore.
'PyProcess' object has no attribute 'name'

Yes, you can safely ignore this warning :-)


Issue applying the bucket lifecycle configuration

Using the following code to create a bucket , the bucket is created in AWS:
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: Composition
metadata:
  name: s3bucket-st
  labels:
    provider: aws
spec:
  compositeTypeRef:
    apiVersion: labs.com/v1alpha1
    kind: CompositeS3BucketInstance
  resources:
    - base:
        apiVersion: s3.aws.crossplane.io/v1beta1
        kind: Bucket
        metadata:
          name: poc-dev-bucket
          annotations:
            crossplane.io/external-name: poc-dev-bucket
          labels:
            name: poc-dev-bucket
        spec:
          forProvider:
            locationConstraint: us-west-2
            acl: private
            accelerateConfiguration:
              status: Enabled
            versioningConfiguration:
              status: Enabled
            tagging:
              tagSet:
                - key: key1
                  value: val1
                - key: secondKey
                  value: val2
                - key: key3
                  value: val3
            serverSideEncryptionConfiguration:
              rules:
                - applyServerSideEncryptionByDefault:
                    sseAlgorithm: AES256
            corsConfiguration:
              corsRules:
                - allowedMethods:
                    - "GET"
                  allowedOrigins:
                    - "ola"
            lifecycleConfiguration:
              rules:
                - status: Enabled
                  abortIncompleteMultipartUpload:
                    daysAfterInitiation: 7
                  noncurrentVersionTransitions:
                    - noncurrentDays: 45
                      storageClass: "DEEP_ARCHIVE"
                  transitions:
                    - days: 1
                      storageClass: "DEEP_ARCHIVE"
          providerConfigRef:
            name: aws-creds-config
      patches:
        - fromFieldPath: "spec.parameters.prefix"
          toFieldPath: "metadata.annotations[crossplane.io/external-name]"
          transforms:
            - type: string
              string:
                fmt: "%s-converter"
        - fromFieldPath: "spec.parameters.prefix"
          toFieldPath: "metadata.name"
          transforms:
            - type: string
              string:
                fmt: "%s-converter"
        - fromFieldPath: "spec.parameters.prefix"
          toFieldPath: "metadata.labels.name"
          transforms:
            - type: string
              string:
                fmt: "%s-converter"

What happened?

The bucket is created in AWS , the following error shows when applying lifecycle configuration.
 cannot create or update: cannot put Bucket lifecycle configuration: MalformedXML: The XML you provided was not well-formed or did not validate against our published schema status code: 400, request id: 4QBVAP1W8HBJ8N4M, host id: 08VaUDHoNn+9tNZ7krXL41Zv6ZCEh+v1bAFqsRwKAVZ4jEula5sm+8TnNrmPwqpNqeTzAnB8CIY=
How can we reproduce it?

What environment did it happen in?
Crossplane version:

@publiusi I think you may be required to provide a filter (https://doc.crds.dev/github.com/crossplane/provider-aws/s3.aws.crossplane.io/Bucket/v1beta1#spec-forProvider-lifecycleConfiguration-rules-filter). It sounds like in your case your filter would be all objects. Here is the relevant documentation: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html

Hmm looking further it appears the Filter is not required :thinking: https://docs.aws.amazon.com/AmazonS3/latest/API/API_LifecycleRule.html

@krishchow any idea why this could be occurring?

Looking into this @hasheddan

Ah okay got it, the problem was that s3 expects an empty filter (i.e., non-nil) even if none is provided by the user. This strangely isn't specified anywhere in the docs :sweat_smile:. Will open a PR with a fix in a few minutes.


HHH-14313 - natural-id support (6.0)

Support for both simple and compound natural-ids. Includes new features:

multi-load
easier compound loading
event-less listeners

I meant default entity graph semantic is "FETCH", so maybe it is the case
here as well. Definitively natural id loading has no specific spec, but
maybe generic convention allies here as well?
On Mon., Jan. 25, 2021, 15:35 Steve Ebersole<EMAIL_ADDRESS>wrote:

@sebersole commented on this pull request.
In
hibernate-core/src/main/java/org/hibernate/NaturalIdMultiLoadAccess.java
https://github.com/hibernate/hibernate-orm/pull/3628#discussion_r564025419
:

NaturalIdMultiLoadAccess with(LockOptions lockOptions);

/**

Specify the {@link CacheMode} to use when retrieving the entity.

@param cacheMode The CacheMode to use.

@return {@code this}, for method chaining

*/
NaturalIdMultiLoadAccess with(CacheMode cacheMode);

/**

Define a load graph to be used when retrieving the entity

*/
default NaturalIdMultiLoadAccess with(RootGraph graph) {

return with( graph, GraphSemantic.LOAD );

Not sure what you mean. The JPA spec says nothing about loading by
natural-id, so how can either be "per spec"?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/hibernate/hibernate-orm/pull/3628#discussion_r564025419,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB6UYAR4O3ZRZ6RHF52NEELS3XIZPANCNFSM4TP4YEAA
.

I meant default entity graph semantic is "FETCH", so maybe it is the case
here as well. Definitively natural id loading has no specific spec, but
maybe generic convention allies here as well?
On Mon., Jan. 25, 2021, 15:35 Steve Ebersole<EMAIL_ADDRESS>wrote:

@sebersole commented on this pull request.
In
hibernate-core/src/main/java/org/hibernate/NaturalIdMultiLoadAccess.java
https://github.com/hibernate/hibernate-orm/pull/3628#discussion_r564025419
:

NaturalIdMultiLoadAccess with(LockOptions lockOptions);

/**

Specify the {@link CacheMode} to use when retrieving the entity.

@param cacheMode The CacheMode to use.

@return {@code this}, for method chaining

*/
NaturalIdMultiLoadAccess with(CacheMode cacheMode);

/**

Define a load graph to be used when retrieving the entity

*/
default NaturalIdMultiLoadAccess with(RootGraph graph) {

return with( graph, GraphSemantic.LOAD );

Not sure what you mean. The JPA spec says nothing about loading by
natural-id, so how can either be "per spec"?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/hibernate/hibernate-orm/pull/3628#discussion_r564025419,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB6UYAR4O3ZRZ6RHF52NEELS3XIZPANCNFSM4TP4YEAA
.

Was integrated upstream


Request: Modal Popup animation

Possible to incorporate the modal fade in fade out as done within materialize : http://materializecss.com/modals.html
Edit: Looking at this maybe its tied into your look at the js lib for issue #205 as UT5.1 modals do pop up with animation.  Materialize seems to implement it nicer.
Regards

I agree that materialize has a better modal animation, but material apex uses the same engine as UT (jQuery Dialog), which has no animation. This was a conscious decision to make it compatible with the APEX modal mechanism.
Perhaps you can tweak it by following this: https://jqueryui.com/dialog/#animated

Thanks for the response Vincent & thanks for the clarification I completely understand the decision.
I forgot about using the jquery ui dialog properties.


update grpc and bump version to release

grpc is bumped to 1.4.0
gax: 1.4.1
gax-grpc: 0.21.1
This needs libraries generated from https://github.com/googleapis/googleapis/pull/384
to work.

Run the update scripts for the readme and sample

gah, sorry, I keep wanting to do those later

@garrettjonesgoogle PTAL

LGTM - let's be sure to propagate the guava version bump all the way up.

Codecov Report

Merging #332 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #332   +/-   ##
=========================================
  Coverage     72.77%   72.77%
  Complexity      409      409
=========================================
  Files            81       81
  Lines          1987     1987
  Branches        161      161
=========================================
  Hits           1446     1446
  Misses          473      473
  Partials         68       68

Continue to review full report at Codecov.

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


Revert "Do not do DNS to origin if the object is HIT-STALE and parent…

… exists"
This reverts commit a8ec551a846690fee16c3ed5f502de96ac763c79.
See #4009 for details on the crasher that occurs with this original
commit.

I'm intentionally not setting the Milestone here, since this restores the code as it is in 8.0.0.

[approve ci autest]


Link to corpus report on README.md?

We could start with a link to our people site, then update it when/if we buy arewepdfyet.
@brendandahl @wfwalker ?

there is a link to the corpus report -> 1d04bd2dbbcf119c5fb8b173b3b129ed9c169746


I used Glide to load image, the image is being rotated

The link is http://wefootball.oss-cn-shanghai.aliyuncs.com/upload/backend/2019-06-06/94f44a8ff7e245bf9025aa6b4e699a32.jpg
When I used GlideImageLoader,Is is rotated.

@cai9311 That should be a SSIV issue, please file an issue here with the sample image link.

I did that:
            photoView.setImageLoaderCallback(new ImageLoader.Callback() {
                @Override
                public void onCacheHit(int imageType, File image) {
                    photoView.getSSIV().setOrientation(ORIENTATION_USE_EXIF);
                }

                @Override
                public void onCacheMiss(int imageType, File image) {

                }

                @Override
                public void onStart() {

                }

                @Override
                public void onProgress(int progress) {

                }

                @Override
                public void onFinish() {

                }

                @Override
                public void onSuccess(File image) {

                }

                @Override
                public void onFail(Exception error) {

                }
            });

Just for information

@DennyWeinberg You should move your code into onFinish or onSuccess, although GlideLoader won't fire onCacheMiss, which means onCacheHit could work.

I use a custom Glide Loader so it worked in my case because I call onCacheHit manually...

I don't really understand why not extracting the orientation automatically when first load.


146 sql injection

Added db integration test

@ashakirin Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@ashakirin Thank you for signing the Contributor License Agreement!


Unlocking an archived locked program and then using zoom to try to edit it freezes Cesium

I had to reset my calc to get out of it.

Cannot reproduce


Problem resolving dependencies that inject tenancy models

Hi @sandeepsuvit, thanks for developing this package! I've been trying it a little bit and it's awesome.
I've been trying to include it in one of my projects and I think I found an issue. It basically has to do with the possibility of resolving dependencies that inject tenancy models using ModuleRef.
In this particular project, we implemented the Unit of Work pattern, I don't know if you're familiar with it, but it basically solves transaction issues among different models.
One of the methods it implements is called getRepository which basically resolves a repository dependency using ModuleRef:
async getRepository<T extends TransactionalRepository>(
    RepositoryClass,
  ): Promise<T> {
    const repository = await this.moduleRef.resolve<T>(
      RepositoryClass,
      this.contextId,
      {
        strict: false,
      },
    );
    return repository;
  }

An example of a repository could be this one:
import { InjectTenancyModel } from '@needle-innovision/nestjs-tenancy';
import { Injectable, Scope } from '@nestjs/common';
import { Model } from 'mongoose';

import {
  EntityRepository,
  Filter,
} from '../database/repositories/entity.repository';
import { Cat, CatDocument } from './cat.schema';

@Injectable({ scope: Scope.TRANSIENT })
export class CatsRepository extends EntityRepository<CatDocument, Filter> {
  constructor(
    @InjectTenancyModel(Cat.name)
    private readonly catModel: Model<CatDocument>,
  ) {
    super(catModel);
  }
}

The problem is that whenever I do the following call:
const catsRepository = await this.unitOfWork.getRepository<CatsRepository>(
      CatsRepository,
);

I get this error:
[Nest] 11792  - 12/29/2021, 1:06:59 PM   ERROR [ExceptionsHandler] Cannot read property 'headers' of undefined
TypeError: Cannot read property 'headers' of undefined
    at Function.getTenantFromRequest (/Users/gabrielrezk/CreateThrive/Proof of concept/NestJS/db-per-tenant/node_modules/@needle-innovision/nestjs-tenancy/dist/tenancy-core.module.js:126:39)
    at Function.getTenant (/Users/gabrielrezk/CreateThrive/Proof of concept/NestJS/db-per-tenant/node_modules/@needle-innovision/nestjs-tenancy/dist/tenancy-core.module.js:119:29)
    at InstanceWrapper.useFactory [as metatype] (/Users/gabrielrezk/CreateThrive/Proof of concept/NestJS/db-per-tenant/node_modules/@needle-innovision/nestjs-tenancy/dist/tenancy-core.module.js:195:71)
    at Injector.instantiateClass (/Users/gabrielrezk/CreateThrive/Proof of concept/NestJS/db-per-tenant/node_modules/@nestjs/core/injector/injector.js:304:55)
    at callback (/Users/gabrielrezk/CreateThrive/Proof of concept/NestJS/db-per-tenant/node_modules/@nestjs/core/injector/injector.js:48:41)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Failing at the moduleRef.resolve call inside the getRepository function. Any ideas on what could be the problem?
Thanks in advance, I hope you find this context useful.

Hi @gabrielrezk thank you for writing to us and for your kind words :)
Coming to the issue, I am guessing the unit of work pattern that you have used might not be the problem here, provided the transaction blocks that you are trying to commit/call are under the same connection (where your tenant tables are) which is resolved to you by the library.
I also noticed that you have included @Injectable({ scope: Scope.TRANSIENT }) at the top of your class. Does this mean you are trying to provide new instance of this class to every requestor that needs it?
After checking the logs i observed that it originated from https://github.com/needle-innovision/nestjs-tenancy/blob/4597ac68041228b0e4ee5b6f10e4e8e71c72a79d/lib/tenancy-core.module.ts#L211
private static getTenantFromRequest(isFastifyAdaptor: boolean, req: Request, tenantIdentifier: string) {
        let tenantId = '';

        if (isFastifyAdaptor) { // For Fastify
            // Get the tenant id from the header
            tenantId = req.headers[`${tenantIdentifier || ''}`.toLowerCase()]?.toString() || ''; // ---> This is where it failed because it was not able to resolve the `req` object.
        } else { // For Express - Default
            // Get the tenant id from the request
            tenantId = req.get(`${tenantIdentifier}`) || '';
        }

        // Validate if tenant id is present
        if (this.isEmpty(tenantId)) {
            throw new BadRequestException(`${tenantIdentifier} is not supplied`);
        }

        return tenantId;
    }

Are you using a fastify adaptor?
Can you try removing the scope and check the result please.

Thanks for your fast reply!

Coming to the issue, I am guessing the unit of work pattern that you have used might not be the problem here, provided the transaction blocks that you are trying to commit/call are under the same connection (where your tenant tables are) which is resolved to you by the library.

Right, I'm guessing it has something to do with the way the library registers the tenancy models. Because it's in that ModuleRef line that the code breaks.

I also noticed that you have included @Injectable({ scope: Scope.TRANSIENT }) at the top of your class. Does this mean you are trying to provide new instance of this class to every requestor that needs it?

Exactly, the getRepository method does a little more than just resolve the dependency. It also sets the transaction session in the repository object in case one started. That's why the scope is transient, if we kept the same repository instance there could be problems with transactions running in parallel.

After checking the logs i observed that it originated from https://github.com/needle-innovision/nestjs-tenancy/blob/4597ac68041228b0e4ee5b6f10e4e8e71c72a79d/lib/tenancy-core.module.ts#L211
private static getTenantFromRequest(isFastifyAdaptor: boolean, req: Request, tenantIdentifier: string) {
        let tenantId = '';

        if (isFastifyAdaptor) { // For Fastify
            // Get the tenant id from the header
            tenantId = req.headers[`${tenantIdentifier || ''}`.toLowerCase()]?.toString() || ''; // ---> This is where it failed because it was not able to resolve the `req` object.
        } else { // For Express - Default
            // Get the tenant id from the request
            tenantId = req.get(`${tenantIdentifier}`) || '';
        }

        // Validate if tenant id is present
        if (this.isEmpty(tenantId)) {
            throw new BadRequestException(`${tenantIdentifier} is not supplied`);
        }

        return tenantId;
    }

Are you using a fastify adaptor?

We checked the same line. The weird thing is that when we send the request it goes through the controller and the service until it reaches the getRepository part. But the error suggests there's a problem with the request.

Can you try removing the scope and check the result please.

I've just tried that but I got the same error.

Well, I think I found the issue. It's nothing to do with this package, it's related to how the ModuleRef class works.
If we're using the request inside one of the modules that get resolved by ModuleRef, we should do this first:
this.moduleRef.registerRequestByContextId(/* YOUR_REQUEST_OBJECT */, contextId);
Otherwise, it will be undefined. This is documented here: https://docs.nestjs.com/fundamentals/module-ref#registering-request-provider
So, my solution was to change the repository function as follows:
async getRepository<T extends TransactionalRepository>(
    RepositoryClass,
  ): Promise<T> {
    this.moduleRef.registerRequestByContextId(request, this.contextId);
    const repository = await this.moduleRef.resolve<T>(
      RepositoryClass,
      this.contextId,
      {
        strict: false,
      },
    );
    return repository;
  }

Sorry for the inconvenience and thanks for your help, you can close this issue.
May I also ask if this library stores the DB connections in order to reuse them across the application?

Hi @gabrielrezk glad that you were able to figure it out on your own and thanks for pointing me to that link. It helps a lot
Regarding your query on the connections storage, in the current code the connections once created per request gets cached in a map and reused next time. Else a new connection is created.
        const exists = connMap.has(tenantId);

Hope this helps :)

Great @sandeepsuvit! Awesome work. Have a good one!


Spells with multiple damage types aren't represented

Taking the spell Ice Storm for example:
Ice Storm is an AoE spell that deals (at base level) 2d8 bludgeoning damage + 4d6 cold damage. The API lists the spell damage as follows:
   "damage": {
      "damage_type": {
        "index": "bludgeoning",
        "name": "Bludgeoning",
        "url": "/api/damage-types/bludgeoning"
      },
      "damage_at_slot_level": {
        "4": "2d8 + 4d6",
        "5": "3d8 + 4d6",
        "6": "4d8 + 4d6",
        "7": "5d8 + 4d6",
        "8": "6d8 + 4d6",
        "9": "7d8 + 4d6"
      }
    },

It correctly captures that two different damage types are used for the respective d8 and d6 rolls. But does not identify the damage type and also missed the cold damage type altogether.
Not sure the optimal representation for this, but I suggest the keys for "damage_at_slot_level" and "damage_at_character_level" to be a subtype of "damage_type". Additionally "damage_type" would replace the current "damage" key, as "damage" seems redundant since I believe there are no times where a damage value exists without belonging to a damage_type  Resulting in this instance for the below fix for Ice Storm
"damage_type": [
      {
        "index": "bludgeoning",
        "name": "Bludgeoning",
        "url": "/api/damage-types/bludgeoning",
        "damage_at_slot_level": {
        "4": "2d8",
        "5": "3d8",
        "6": "4d8",
        "7": "5d8",
        "8": "6d8",
        "9": "7d8 "
        }
      },
      {
        "index": "cold",
        "name": "Cold",
        "url": "/api/damage-types/cold",
        "damage_at_slot_level": {
        "4": "4d6",
        "5": "4d6",
        "6": "4d6",
        "7": "4d6",
        "8": "4d6",
        "9": "4d6"
        }
      }
    ],

We'd probably want to represent it similar to how we do multi damage types for Monster Attacks.


Usage question: should we rebind session after each query?

Currently, our tests pass even without rebinding session e.g.
test "some test", %{session: session} do
  login(session<EMAIL_ADDRESS>"example_password")
  assert(has_text?(session, "Login text"))
end

However, this is counterintuitive: each query function returns a new session struct so you would assume that session needs to be rebound. e.g.
test "some test", %{session: session} do
  session = login(session<EMAIL_ADDRESS>"example_password")
  assert(has_text?(session, "Login text"))
end

My question is, going forward can we rely on our tests working without the rebinding? i.e. will the session struct continue to be a simple proxy to the driver process?
And if so, is it the case that the only reason the query functions return a session struct is to allow chaining?

The session is very rarely changed. I believe the only time we'll return a new session struct is after a screenshot (we add the path to each screenshot to the screenshots: list on the session struct).
Currently the only reason to return the session struct is to allow chaining. Its been suggested before that we should hide that session from the tests all-together. I haven't been convinced by those arguments yet but its not out of the question that we would do that in the future.
Does that help @jameslong?

@keathley Thanks. Just to clarify, the recommendation is not to rebind session for now?


Windows binary

Dear Brandon,
Could you be so kind to generate .exe for the rest of us who are mere Windows users w/o compiler?

@btmills, err… Hello?

@btmills, err… Hello?


Implemented dragging storage items from other apps into files-uwp

Fixes #829.

@soumyamahunt Instead of copying the items, it would be better to move them.

@soumyamahunt Instead of copying the items, it would be better to move them.

The default behaviour in Windows explorer in drag and drop is: If the item is in same drive as the destination folder then it will move the item otherwise it will just copy. Shouldn't we keep the existing behaviour as in explorer?? Wouldn't implementing this behaviour confuse users??

What do you think about adding the feature of showing a dialog to choose if you want to copy or move if you drag with the right click?

What do you think about adding the feature of showing a dialog to choose if you want to copy or move if you drag with the right click?

May be in a future pr, can you file an issue for this feature!!

@soumyamahunt Instead of copying the items, it would be better to move them.

The default behaviour in Windows explorer in drag and drop is: If the item is in same drive as the destination folder then it will move the item otherwise it will just copy. Shouldn't we keep the existing behaviour as in explorer?? Wouldn't implementing this behaviour confuse users??

Sorry about that, I saw the new strings and automatically assumed you defaulted to this behavior.

I am not sure is this a part of this PR, but when you dragging an image from Google Chrome to app it is crashing.

Fixed that, should work now.


Updated README.md to include ulauncher in app launcher section

Last I heard it requires xwayland, is that still so, or coming in this new v6 release it mentions in the readme?

I will be closing this PR, as it doesn't support wlr-layer-shell, and so it doesn't work well with Hyprland