GPL-858 BUG - labware show (NoMethodError) "undefined method `asset' for nil:NilClass"

Describe the bug
When trying to view certain tubes you receive a 500 exception:
A NoMethodError occurred in labware#show:
undefined method asset' for nil:NilClass   app/models/illumina_htp/stock_tube_purpose.rb:51:in stock_plate'
This appears to occur when trying to find the stock plate for tubes with less conventional request graphs.
There are a few points here:

I'm not sure the tangled code is still required for most tubes. Asset links should list all ancestors in most cases.
If we still need to keep the old code in place as fallback for old tubes, it should better handle cases where there are no transfer requests into a receptacle.
Keep performance in mind. Iterative queries can get very expensive very quickly. (Infinitely so if we have loops of requests)

RT Ticket Number
If applicable
To Reproduce
Steps to reproduce the behaviour:

Visit training_sequencescape_url/labware/26886404

You can use the following code to find other examples:
StockMultiplexedLibraryTube.order(id: :desc).where('plate_purpose_id IS NOT NULL').find_each {|b| begin; b.stock_plate; rescue NoMethodError; puts b.id; end }
Scoped order is ignored, it's forced to be batch order.
26886404
26886502
26886503
26992662
26993950
26993992
27021687
27042464
27042465
27042466
27042469
27042471
27042473
27042475
27042477

When producing the above I also noticed similar issues for cases where we have tubes without a purpose.
Expected behaviour
We shouldn't get a 500, and ideally we'd return our best guess at a stock plate.
Ideally we shouldn't expect the code to return a different stock plate for anything. However it is possible that there will be a handful of edge cases.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

Windows or Mac?
Browser Chrome, Firefox, Safari or other?
Browser version (use 'About' to look up)?

Additional context
Add any other context about the problem here.

This is actually a little more critical, as it can result in blocking issues in the bespoke pipelines when performing some custom pools.

So we can probably drastically simplify this by just using the ancestors, as it seems to be set on the tubes of interest.
Currently scoping out:

Impact of this change on existing tubes
Whether we'll need to create any asset links

So, the old code walked back down the request graph until it found a stock plate. When it was written this wasn't as bad as it sounds, as the XP plate would generally be flagged as a stock plate. So only a step or two.
As a plus, the new mechanism is both simpler, and I'd suspect faster.

Initial pass suggested that 3861 tubes are potentially affected by the change.

4 have a stock plate currently, but no ancestors. These look like they were probably manually adjusted, so I've added the asset links in manually based on the information available.
496 have no stock plates currently, but will gain them. This seems like a win.
670 will have their stock plate updated to be consistent with their naming. This feels like a data fix
Another 4 are LB PCR XP plates that never got QC passed. New behaviour is fine.

Looking at the remainder, mostly seem to be PF Cherrypicked or GBS

Ahh, so GBS has an issue due to the pooling of multiple plates into tubes in one step. So there will be multiple parent plates, but the old method will only consider the first.

So x plates into 1 tube pooling only links the first plate as a parent, so although that should be fixed, it suits us well here.

Ahh, so the GBS process does a slow walk up the transfer requests, only following one fork, suspect it mostly end up returning the plate in A1.

Actual GBS impact will be minimal, as mostly use ancestors links in limber now. Will determine the summary link, but that should probably generate one per stock plate anyway.

Still, limber doesn't actually use this code... so impact of changing will be confined to pretty much just the summary links

Huh, limber confusingly displays both stock plate and input plate barcodes for these tubes

So, input plate uses a still buggy version of the ancestor code.
I'm actually going to audit exactly where this code is used, as while I think impact of changing it is low, the whole thing just smells.

So... API V1 uses source_plate, not stock plate...

Asset#ancestor_of_purpose weirdly defaults to stock plate, tubes override this though.
source plate also defaults to stock plate if no source_purpose_id is specified (excludes PF plates, not GBS though)
Used to find the role. This dependency can easily be removed.

So mostly its just as a fallback for source_plate which is exposed:

V1 API
Generates summary links in labware controller
Generate summary redirect in plate summaries controller
Plates use source plate in library events and library start events
Library complete events use them on MX library tubes
Lots of aliasing as library source plates, I think mostly used by events
Used in inbox presenter for stock_barcode, which is used in Sequencing pipelines, so mostly MX tubes
Sequenom QC stuff
Naming tubes on transfers from plates.

So the actual impact of changing the stock mx tube code will be virtually zero.
We can update the plate summary links to show multiple, which will be more useful, and then almost everything else is not called on stock tubes, or is deprecated.
So should be safe to fix these issues now, but overall we've reached the end of the line with what we can do with the stock_plates and source plates code.

Haha, wow, whole load of broken delegations going on here.


labels should be inside their rectangles

the labels for the treemap view are playing with my perception. i suspect that they violate the gestalt law of common region maybe. that it's that law, or another, I think it would be better if they were inside the rectangle.
questions are: do you agree with me?  did you consider this and decided against it?

ok, now I see the current layout also violates the principle of proximity: content_retriever is closer to the rectangles above it, even if it should be close to the ones below it!


Readme preview broken for topics 8-12

The topics 8-12 are not showing correctly on the hosted link.

I can fix this issue. Please assign it to me!

@chaitanya-bhargava . You can solve the issue as well contribute other topics of JavaScript. see #10 for list of topics
Before you start working on your PR, please make sure to:

⭐ Star the repository if you haven't already.
Pull the latest changes to avoid any merge conflicts.
Include the issue number in your PR description for better tracking.

I'm excited to see your contribution as part of Hacktoberfest 2024! 🎉
Don't forget to follow me on GitHub for more updates.
Happy open-source contributing! 🚀


feat: max-specificity rule

Prerequisites checklist

[x] I have read the contributing guidelines.

What is the purpose of this pull request?
Implement a max-specificity rule.
What changes did you make? (Give an overview)

Created max-specificity rule
Added tests
Added to plugin exports

Related Issues
fixes #19

Is there anything you'd like reviewers to focus on?
This is a rough draft, I'd like some feedback on the design.

Does it make sense to have people write out a, b, and c to match the spec? Or would it better to just have them enter an array?
Would any other options make sense, in which case, the desired specificity should be one key in an options object?

We added selector-max-specificity to Stylelint before the introduction of specificity-changing pseudo-classes like :is(), :where(), :not() and :has(). Having thought about it some more, I'm not sure the rule is useful these days.
Due to these pseudo-classes, it makes a poor proxy for controlling selector complexity and for disallowing ID selectors. For example, both these selectors have a specificity of 0,0,0:
:where(#id),
:where(a.complex[attr], #id) {}

And makes a poorer proxy for disallowing other types of selectors as it groups them:

B = the number of class selectors, attributes selectors, and pseudo-classes
C = the number of type selectors and pseudo-elements

If you keep the rule, the implementation should probably consider these specificity-changing pseudo-classes and nesting, which is Baseline 2023.
In Stylelint, we use @csstools/selector-specificity for calculating the specificity, which supports the specificity-changing pseudo-classes. We also desugar nested selectors before passing them to the calculator. However, we don't yet desugar to :is() (as our current implementation predates the latest CSS nesting spec):
a, b {
  & c {}
}

/* should be desugared to */
:is(a, b) c {}

/* be we currently desugar to */
a c, b c {}

This can lead to different specificities, and our calculations may not match the browser.

Interesting. I think I'll need to dig into this a bit more.

Take a look at bramus/specificity. It appears to to cover all the key aspects of selector specificity calculation according to the latest CSS specifications. Since it’s built on top of CSSTree, it might be a good candidate for adoption instead of implementing a custom specificity calculation from scratch (see calculate.js).

@lahmatiy thanks! We're actually discussing over on #19 whether or not specificity even makes sense as a measure of selector complexity anymore. Would love to hear your thoughts.


Numerous rubocop fixes, also added rubocop config

Before:
$ chef exec rubocop .; chef exec foodcritic -f any .
17 files inspected, 372 offenses detected

After:
$ chef exec rubocop .; chef exec foodcritic -f any .
17 files inspected, 5 offenses detected

@sergiopena Any chance of this being merged?

Sorry for the late response, thank you for your work. would love to merge it, but I must upgrade deps in order to make tests pass and still did not have the time.

Finally upgraded deps.
@predominant thank you very much!


bug(matAutocomplete): Autocomplete not opening with shadow DOM

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
Hello,
The MatAutocomplete does not open when starting writing text if the Shadow DOM encapsulation is used.
We have to click to trigger the opening.
Without Shadow DOM encapsulation (working):
https://github.com/user-attachments/assets/911e3de9-83c3-412e-a87e-6f994298fead
With Shadow DOM encapsulation (NOT working):
https://github.com/user-attachments/assets/c0ced996-2bf9-40d5-84ba-d2d5e490e10a
Thank you,
Xavier
Reproduction
Checkout: https://github.com/XavierDupessey/ng-14-mat-autocomplete-issue
Run: npm start
Open http://localhost:4200
Expected Behavior
The autocomplete should open when entering text even when Shadow DOM encapsulation is enabled.
Actual Behavior
Select a value from the autocomplete, then input text to search another one: the autocomplete does not open.
Environment

Angular: 14
CDK/Material: 14
Browser(s): Chrome
Operating System (e.g. Windows, macOS, Ubuntu): Windows

Closing since this is an issue against an old version of Angular. The autocomplete seems to work in the shadow DOM in the latest version.


App without namespace

Add functions declaration in index.ts
Functions with more than one argument now use named variables to help the argument passing as well as to improve code reading
Add a Namespace regression test: application creation should not be possible if there is no namespace
cache_session can be configured via env variable
Remove unneeded return(s)

Tests OK on my lab.


Harmonize spacing between tab bar and card

The spacing between tab bar and card is smaller on the asset tab than on the other tabs. In my opinion, the smaller spacing of the asset tab looks better so we should change the spacing of the other tabs (Transactions, Apps, Address Book, Settings)  accordingly.
This way the top of the card does not bounce up and down when switching between Asset tab and other tabs. and we also optimize slightly the vertical screen real-estate in the other tabs.

As we move to the new layout, this ticket is not needed anymore


Changed " " to ' ' for single character

std::string has a find(char) overload. Using it instead of passing a string literal of 1 character.

I already fixed this one. Thanks.


Update gun

Updates gun to the 2.0 stable version instead of a fork.

Tested the change internally and it seems to be working correctly.


chore(deps): upgrade @dhis2/cli-style to latest alpha

This isn't really a review for the proposed changes in this PR, just used this to have some context for the cli-style changes on alpha. I've just noted down what stood out. I don't think that it's really necessary to deal with all the notes for the current release, we could deal with some of these issues later.
Todo

[x] Fix CI
[x] Add back all the old checks
[x] Try lslint

Short notes

Should we disable the pre push jest test by default? I would prefer doing so until we have enabled this: https://jestjs.io/docs/next/cli#--lastcommit flag (or something similar, depending on when we want to run the tests). Currently it delays each of my commits by half a minute. That pushes me towards just skipping the tests with --no-verify, and I've heard that from others as well. I think we'd probably want an approach that doesn't push people towards ignoring it and making a habit out of that (ignoring).
Terminal colors are missing for me from the report generated by d2-style check. Though I see they're working on CI, and they're working in some areas for me locally. See how here the d2-style check and javascript > eslint string are highlighted correctly, but not the warning string for example. I'm not using true color (terminal is true color capable though), just the 16 ANSI colors. Are we using the correct ANSI escape sequences everywhere?
The debug info that's being logged is drowning out the linting messages on CI: https://github.com/dhis2/scheduler-app/runs/2381877024?check_suite_focus=true#step:6:121 (this kind of disincentivizes checking the linting errors/warnings, and pushes you towards just ignoring everything that's being logged).
The pre commit linting takes quite long for me. It's runnning d2-style check so I'm assuming we don't just lint the staged files. For me the checks are a bit too slow for a regular commit. Similarly to the unit tests before push, I'd say that that encourages using --no-verify.
I like that we're using .hooks and not .d2, that way we can make exceptions on a project to project basis if necessary (assuming that we want to keep everything in .d2 out of version control, if not then .d2 would work as well of course).
I've tried ls-lint. I used d2-style add ls-lint and then d2-style check fs on the latest commit of this branch. Works well, though initially I was surprised that it didn't ignore .d2.  But I see that ls-lint has its own config with an ignore section. Maybe we should add .d2 to the defaults there.
One other thing I noticed with ls-lint is that it seems to consider multiple extensions a violation: 2021/04/20 16:15:27 ./src/hooks/jobs/use-submit-job.test.js failed for rules: kebabcase. I would have expected it to allow this to pass as the test.js extension is pretty common across our codebases and not really violating the no-caps rule. At least I assume that that is why it's failing. Also happens with d2 config for example: 2021/04/20 16:15:27 ./d2.config.js failed for rules: kebabcase

Hooks
The default hooks, installed with d2-style install, didn't work for me. This for example:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

./bin/d2-style check commit "$1"

Exits with: /Users/ismay/Projects/github/dhis2/scheduler-app/.hooks/commit-msg: line 4: ./bin/d2-style: No such file or directory. pwd in that script yields: /Users/ismay/Projects/github/dhis2/scheduler-app so I guess that makes sense?
I changed the hooks in this commit (654996d04ccdae6906f94e860a564e12a3e1dfeb), following these instructions: https://typicode.github.io/husky/#/?id=locally-installed-binaries (running them via the package manager basically), and that fixed it.

./bin/d2-style check commit "$1"

This is actually specific for the dhis2/cli-style repo, because it needs to run itself. In an app, we should use yarn d2-style check in the pre-commit hook.

Debug messages in cli-style are heavily directed at being useful for debugging, so I'm a bit surprised to see the D2_VERBOSE env variable set to true in CI. Perhaps we need to differentiate between debugging and verbose logging..

The pre commit linting takes quite long for me. It's runnning d2-style check so I'm assuming we don't just lint the staged files. For me the checks are a bit too slow for a regular commit. Similarly to the unit tests before push, I'd say that that encourages using --no-verify.

The pre-commit hook should run yarn d2-style check --staged.

Should we disable the pre push jest test by default?

Sure, as long as we run the tests on CI I'm OK with that.

But I see that ls-lint has its own config with an ignore section. Maybe we should add .d2 to the defaults there.

I missed this detail. :+1:

* One other thing I noticed with ls-lint is that it seems to consider multiple extensions a violation: `2021/04/20 16:15:27 ./src/hooks/jobs/use-submit-job.test.js failed for rules: kebabcase`.

Yes, this one is annoying. They call that "point.case" in ls-lint and we need to figure out how to handle it.

Terminal colors are missing for me from the report generated by d2-style check.

This is why.

This is actually specific for the dhis2/cli-style repo, because it needs to run itself. In an app, we should use yarn d2-style check --staged "$1" in the pre-commit hook.

Yeah exactly. So it seems to install the hooks that were meant for internal usage in the repo in this app when I ran d2-style add, and not the yarn prefixed ones. Is that a bug then?

Debug messages in cli-style are heavily directed at being useful for debugging, so I'm a bit surprised to see the D2_VERBOSE env variable set to true in CI. Perhaps we need to differentiate between debugging and verbose logging..

Ah so that's why. I took it from our shared workflows repo: https://github.com/dhis2/workflows/blob/master/ci/dhis2-verify-app.yml. So I'd say that we should probably set this to false by default then. What do you think?

The pre-commit hook should run yarn d2-style check --staged.

I agree. So it seems that the default hook it installed for me was without the --staged. Is that because of config in this repo, or is that something we need to address in cli-style?

Sure, as long as we run the tests on CI I'm OK with that.

That's the direction I'd go I think. Though I could also see us using onlyChanged in the pre commit hook.

Yes, this one is annoying. They call that "point.case" in ls-lint and we need to figure out how to handle it.

I see. Yeah tricky that there's a bit of overlap in our naming conventions.

Terminal colors are missing for me from the report generated by d2-style check..
This is why.

I see, thanks. Why do we disable colors there? Personally I find it quite useful as a quick way to scan for errors/warnings when I'm scrolling through a list of them.

Let me know by the way if it would help if I submit PRs for the changes I'm proposing.

Let me know by the way if it would help if I submit PRs for the changes I'm proposing.

I mean, yes? :laughing:

I see, thanks. Why do we disable colors there? Personally I find it quite useful as a quick way to scan for errors/warnings when I'm scrolling through a list of them.

Decisions made in another time/dimension intersection. We can remove this now that the philosophy has changed.

 Don't know if you were already working on it. More in that manner. Didn't mean to ask: "Hey, is it helpful if I help?" 😋

Yeah exactly. So it seems to install the hooks that were meant for internal usage in the repo in this app when I ran d2-style install, and not the yarn prefixed ones. Is that a bug then?

Yeah, that's a bug.

I agree. So it seems that the default hook it installed for me was without the --staged. Is that because of config in this repo, or is that something we need to address in cli-style?

I don't see the d2-style.config.js file in this repo, so I think it's something in cli-style.

 Don't know if you were already working on it. More in that manner. Didn't mean to ask: "Hey, is it helpful if I help?" yum

No, I hadn't caught these issues but now that you've pointed them out I can fix them and assign you to review.

 Don't know if you were already working on it. More in that manner. Didn't mean to ask: "Hey, is it helpful if I help?" yum

No, I hadn't caught these issues but now that you've pointed them out I can fix them and assign you to review.

👍 Cool, sounds good!

eslint colors: https://github.com/dhis2/cli-style/pull/384
wrong hooks installed by default: https://github.com/dhis2/cli-style/pull/385

Ah so that's why. I took it from our shared workflows repo: https://github.com/dhis2/workflows/blob/master/ci/dhis2-verify-app.yml. So I'd say that we should probably set this to false by default then. What do you think?

I am pretty sure we had that as true there while debugging, and just forgot to switch it to false, so I agree.

I'll close this PR as it's served its purpose as a testbed. I'll create follow up issues for anything that hasn't been addressed yet.


document handling of duplicate keys in R.fromPairs

We should state whether first wins or last wins.

Should we?  Is that part of the contract we want to enforce or just an accident of the implementation that we would rather not have users depend upon?

Are you suggesting the behaviour is best left unspecified? If so, I disagree. If we guarantee consistent handling of collisions, users are then free to apply R.reverse if desired before applying R.toPairs.

I'm simply bringing it up.  I was hurrying through issues after being away from Ramda more than a week, and I didn't have time to think it through carefully.  But yes, I did think it was an interesting possibility to leave it unspecified.  That's often my go-to solution when there's no clear-cut advantage of one choice over another.
But I think I agree that this is not a case of "don't depend on this".  So, yes, after finding a few minutes for reflection, I'm :+1:.

Okay, so what should it be? First wins or last wins? Has another Ramda function set a precedent? Failing that, I suggest last wins to match the behaviour of Map:
> new Map([['x', 1], ['x', 2]])
Map {"x" => 2}

Yes, I think that last-in wins is conceptually simpler, as well as easier to implement.

i followed a similar path as @CrossEye, viz. from "do we want to proclaim that?" to "i guess so".
:cow2:


Add support for FVP in CI / SDK

With #33905 just landed and #34252 almost there we should start thinking about adding FVP to the CI / SDK for testing the ARM platforms. Besides the technical issue I'm not sure if the licenses allow that. Anyway, opening this feature request to track this.

Didn't realise this existed.
Although #43852 came later, I will close this since most of the discussions happened there.

Duplicate of #43852


First Load Error Querying Discourse Node

Version: v2022-11-07-16-53
When querying discourse nodes, on first load or reload, query comes up blank, or with errors.
I noticed this when developing a new dashboard, but when debugging I saw it on a previously implemented dashboard as well.
The previously implemented dashboard was in place a week ago, and I don't recall having the issue then, but I'm not 100% sure.
Just wondering if it's from Nov 7th changes.
Video
https://user-images.githubusercontent.com/3792666/201231326-1cab8e72-7bc9-4a68-b07b-76f5ec4c03d6.mp4
Query
[:find
  (pull ?node [:block/string :node/title :block/uid])
  (pull ?node [:block/uid])
:where
[(re-pattern "^\\[\\[EVD\\]\\] - (.*?)$") ?EVD--regex]
[?node :node/title ?node-Title]
[(re-find ?EVD--regex ?node-Title)]
]

Chrome console log error

Test Page
https://roamresearch.com/#/app/DiscourseGraphAttributeTest/page/nNExmJRBa

hm - on the latest version I see it working:

Also going forward - we will be deprecating this repo so let's open all future issues on https://github.com/dvargas92495/roamjs-query-builder

Version: v2022-11-15-19-27
Still no good from me :(
https://user-images.githubusercontent.com/3792666/202030390-f3a420c7-a335-43f8-92b7-86467c662328.mp4

Ah I understand what's happening now - the latest change should resolve


Kong via k8s - memory spikes at an hourly frequency

Is there an existing issue for this?

[ ] I have searched the existing issues

Kong version ($ kong version)
2.4.1
Current Behavior
Hello,
Summary
Experiencing memory spikes every hour with Kong 2.4.1 deployed with kubernetes arm64. No related to request count
Details
We are currently using Kong in DB mode as an API Gateway in our organization. The version of Kong open source currently in use is 2.4.1.
Configuration Details
We have deployed this via kubernetes with:

arm64 architecture
a replica count of 8 in one of the namespaces
per pod (replica) memory and CPU configurations as defined below:
resources:
requests:
memory: "1024M"
cpu: "0.5"
limits:
memory: "2048M"
cpu: "2"

Issue
We're seeing pod memory spikes at an hourly frequency in each of the pods in the deployment:

Some points to note:

There is no significant difference in the number of requests during and outside the spike durations.
This deployment is serving a peak request count of around 6.4k requests per second (~0.8k requests per second for each replica assuming correct load balancing).
Further, the kong latency of requests also increases during these spikes, sometimes reaching ~2.5 seconds.

Ask
As this is causing issues for our internal and external consumers, and we'd like to continue using Kong as an API gateway, with a further increase in usage over time, can you please share with us:

Any leads on how to resolve this?
Else, any pointers on further investigation for this.

Please let us know if you need any further information from our side.
Thanks,
Himesh Bhatia
Expected Behavior
No response
Steps To Reproduce
No response
Anything else?
No response

The recommendation is to use Kong 3.8 .


schema built when creating a view in bigquery

Calling create on a table with view_query set fails, as _build_resource sets the schema. Running
new_table = dataset.table('test_view')
table.view_query = query_string
new_table.create()
gives the following error:
BadRequest: 400 {
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Schema field shouldn't be used as input with a view"
}
],
"code": 400,
"message": "Schema field shouldn't be used as input with a view"
}
}
One fix that works is only setting schema if view_query is None in _build_resource in gcloud/bigquery/table.py, e.g.:
def _build_resource(self):
    """Generate a resource for ``create`` or ``update``."""
    resource = {
        'tableReference': {
            'projectId': self._dataset.project,
            'datasetId': self._dataset.name,
            'tableId': self.name},
    }
    if self.description is not None:
        resource['description'] = self.description

    if self.expires is not None:
        value = _millis_from_datetime(self.expires)
        resource['expirationTime'] = value

    if self.friendly_name is not None:
        resource['friendlyName'] = self.friendly_name

    if self.location is not None:
        resource['location'] = self.location

    if self.view_query is not None:
        view = resource['view'] = {}
        view['query'] = self.view_query
    else:
        resource['schema'] = {'fields': _build_schema_resource(self._schema)}

    return resource

Thanks for the detailed report!


Passing through project-specific config options

The docs currently mention one option: https://meson-python.readthedocs.io/en/latest/usage/build-options.html. This is a meson-python build option. I am trying to figure out if/how it is possible to pass project-specific options through. For example, in SciPy we have a meson_options.txt file containing:
option('blas', type: 'string', value: 'openblas',
        description: 'option for BLAS library switching')
option('lapack', type: 'string', value: 'openblas',
        description: 'option for LAPACK library switching')

I don't think it is currently possible to use those with either build or pip? Something like:
$ python -m build "-C--Dblas=mkl --Dlapack=lapack"

Note that the build docs are a bit fuzzy on -C-- for config settings, or how to pass on multiple settings.
Is this possible at all, or is it planned for the future?

Yes, I am working on it, but that will play with the default Meson options in the config file and I am struggling to decide on the design.
Passing multiple backend config options in pypa/build works just like in Meson with -D, it ends up looking a bit weird but there isn´t much we can do about that.
$ python -m build -C-Dblas=mkl -C-Dlapack=lapack

Cool, good to know. This one is not urgent, it's more a nice-to-have for SciPy 1.9.0 I'd say.

I'm currently trying to setup cibuildwheel infrastructure for scipy.
The scipy pyproject.toml specifies the use of mesonpy as the build backend (ultimately using meson/ninja underneath). cibuildwheel just asks pip or build to make the wheel.
However, in order to target cp3*-macosx_arm64 cross compilation has to be used, because there is an arm64 host on an x86_64 build machine (Github Actions). This requires the use of a cross-compile file. I can find documentation on how to supply this file directly to a meson build (I think it gets placed in the build directory). However, there doesn't seem to be a way of supplying the cross-compile file as options to a pip/build.
e.g. I can't do:
python -m build . <my_cross_compile_build_flags_to_be_supplied_to_meson>

Will this PR enable this?

@andyfaff I believe it should, with python -m build . -C--cross-file=/absolute/path/to/cross-file.ini. That should pass it to meson setup just fine. There may be one hiccup to work out though (I'm very much not sure without testing): since meson-python itself uses a native-file.ini, that may conflict. If so, meson-python should probably detect if a cross-file option is present, and leave out its own native-file.

Meson can use both native and cross files at the same time, although it's not especially useful unless the project in question actually has some components tagged as native-only. It's sometimes useful, though, to have e.g. code generator programs that are built for the build machine, not the cross-compile target. Meson therefore allows you to look up native dependencies/programs too, use the native file to configure it, etc.

One thing I forgot to ask, is it possible to provide flags to the build process via an environment variable? Taking the above example is it possible to do something along the lines of:
export MESON_OPTIONS="--cross-file=/absolute/path/to/cross-file.ini"
python -m build .

No, that is not possible, it's a conscious design choice: https://mesonbuild.com/Contributing.html#environment-variables. There are exceptions, like CC, CFLAGS, LDFLAGS, etc. - but not many.

If this PEP 517 backend wanted to, it could read the environment variable and pass it to Meson.
Although that would mean it diverges from Meson's conscious design choice...

I'd much prefer to stay with the Meson philosophy. gh-122 should already solve this problem.

@andyfaff I believe it should, with python -m build . -C--cross-file=/absolute/path/to/cross-file.ini. That should pass it to meson setup just fine.

I too need to add a --cross-file flag to meson for cross compiling scipy but there is no build module there.. What am I missing? I'm using NixOS and our build scripts use by default:
python -m pip wheel --verbose --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist .

Alternatively, how to add --cross-file if I want to use pip build?

Try and follow https://github.com/scipy/scipy/blob/acd1a4ad9e8d41d4956baf5fac38a8c779debcda/.github/workflows/wheels.yml#L159, that'll give the clearest example of how to do a cross compilr


Allow using variable name to identify a field

Apparently the field name attribute value is the base64 encoded version of the variable name. That can be useful for people handling translations through separate .yml files as it can be language agnostic.

It's been pointed out that this is important for spreadsheets too as they can introduce mako bugs.


404 Error on Import, Config Pulls in Usernames fine so is talking.

Hi wowkise
Ive created the docker and it pulled in my user accounts so defo talking to my current plex backend (ByteSized Hosting)
When i try run an 'import' to pull the current watchstate of Plex i get the following
[2022-10-27T16:43:45+01:00] ERROR: Request for [bytesized] libraries returned with unexpected [404] status code.

apps@ubuntu-unraid:~/docker/core$ docker exec -ti watchstate console state:import -v

[2022-10-27T16:45:27+01:00] NOTICE: SYSTEM: Preloading MemoryMapper data.

[2022-10-27T16:45:27+01:00] NOTICE: SYSTEM: Preloading MemoryMapper data is complete.

[2022-10-27T16:45:27+01:00] NOTICE: SYSTEM: Importing [bytesized] METADATA & PLAY STATE changes.

[2022-10-27T16:45:27+01:00] ERROR: Request for [bytesized] libraries returned with unexpected [404] status code.

[2022-10-27T16:45:27+01:00] WARNING: SYSTEM: Not updating last import date. [bytesized] reported an error.

[2022-10-27T16:45:27+01:00] NOTICE: SYSTEM: Waiting on [0] requests.

[2022-10-27T16:45:27+01:00] NOTICE: SYSTEM: Finished waiting on [0] requests.

[2022-10-27T16:45:27+01:00] NOTICE: MAPPER: No changes detected.

┌─────────┬───────┬─────────┬────────┐

│ Type │ Added │ Updated │ Failed │

├─────────┼───────┼─────────┼────────┤

│ Movie │ 0 │ 0 │ 0 │

├─────────┼───────┼─────────┼────────┤

│ Episode │ 0 │ 0 │ 0 │

└─────────┴───────┴─────────┴────────┘

Im trying to 'backup' the watchstate from Plex on Bytesized to a Locally Hosted Unraid setup.
In your context
import = pull data from 'source' Plex
export = push data to destination Plex.
Any Assistance appreciated.
Thanks

Hi,
Thanks for reporting the error could you run the following command and copy the output
docker exec -ti watchstate console backend:library:list bytesized -vvv --trace --context

and
docker exec -ti watchstate console state:import -vvv --trace --context

omit

Hey, sure
docker exec -ti watchstate console backend:library:list bytesized -vvv --trace --context
apps@ubuntu-unraid:~/docker/core$ docker exec -ti watchstate console backend:library:list bytesized -vvv --trace --context
[2022-10-27T18:06:11+01:00] DEBUG: Requesting [bytesized] libraries list. { (url: https://thewood1978.nereus.bysh.me/library/sections) }
[2022-10-27T18:06:11+01:00] ERROR: Request for [bytesized] libraries returned with unexpected [404] status code.
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ Error                                                                                │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ bytesized: Request for [bytesized] libraries returned with unexpected [404] status code. │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Second Command
apps@ubuntu-unraid:~/docker/core$ docker exec -ti watchstate console state:import -vvv --trace --context
[2022-10-27T18:06:49+01:00] INFO: Using WatchState Version - 'f844792'.
[2022-10-27T18:06:49+01:00] NOTICE: SYSTEM: Preloading MemoryMapper data. { (memory: [ (now: 3.93M), (peak: 3.95M) ]) }
[2022-10-27T18:06:49+01:00] INFO: DATABASE: Selecting fields { (0: all) }
[2022-10-27T18:06:49+01:00] INFO: MAPPER: Preloaded [0] pointer and [0] object into memory.
[2022-10-27T18:06:49+01:00] NOTICE: SYSTEM: Preloading MemoryMapper data is complete. { (memory: [ (now: 4.07M), (peak: 4.09M) ]) }
[2022-10-27T18:06:49+01:00] NOTICE: SYSTEM: Importing [bytesized] METADATA & PLAY STATE changes. { (since: Beginning) }
[2022-10-27T18:06:49+01:00] DEBUG: Requesting [bytesized] libraries. { (url: https://thewood1978.nereus.bysh.me/library/sections) }
[2022-10-27T18:06:49+01:00] ERROR: Request for [bytesized] libraries returned with unexpected [404] status code.
[2022-10-27T18:06:49+01:00] WARNING: SYSTEM: Not updating last import date. [bytesized] reported an error.
[2022-10-27T18:06:49+01:00] NOTICE: SYSTEM: Waiting on [0] requests. { (time: [ (start: "2022-10-27T18:06:49+01:00") ]), (memory: [ (now: 4.85M), (peak: 4.91M) ]) }
[2022-10-27T18:06:49+01:00] NOTICE: SYSTEM: Finished waiting on [0] requests. { (time: [ (start: "2022-10-27T18:06:49+01:00"), (end: "2022-10-27T18:06:49+01:00"), (duration: 0) ]), (memory: [ (now: 4.85M), (peak: 4.91M) ]), (responses: [ (size: 0.00B) ]) }
[2022-10-27T18:06:49+01:00] NOTICE: MAPPER: No changes detected.
┌─────────┬───────┬─────────┬────────┐
│ Type    │ Added │ Updated │ Failed │
├─────────┼───────┼─────────┼────────┤
│ Movie   │ 0     │ 0       │ 0      │
├─────────┼───────┼─────────┼────────┤
│ Episode │ 0     │ 0       │ 0      │
└─────────┴───────┴─────────┴────────┘
Should it detect the "Getting backend unique identifier. Please wait..." automatically as it doesnt and maybe im not putting the correct entry in there?
Regards

If i browse to the URL listed in the Debug Above
https://thewood1978.nereus.bysh.me/library/sections
I get
Not Found
The requested URL was not found on this server.
Apache/2.4.29 (Ubuntu) Server at thewood1978.nereus.bysh.me Port 443

Yeah, i understand now, it seems byte sized have plex hosted as subdirectory and you are not setting it the correct url is
https://host.tld/plex/ try to rerun the config and change url to that replace host.tld with your domain

Trying that now, pretty sure i did before in testing.
What should be set in the conf for the Getting backend unique identifier. Please wait... as it doesn;t pull it in automatically.
Could it also be an issue having a PIN on the account? Saying that when i log in i still cant browse to the Library/Sections
~/docker/core$ docker exec -ti watchstate console backend:library:list bytesized -vvv --trace --context
[2022-10-27T18:22:51+01:00] DEBUG: Requesting [bytesized] libraries list. { (url: https://thewood1978.nereus.bysh.me/plex/library/sections) }
[2022-10-27T18:22:52+01:00] ERROR: Request for [bytesized] libraries returned with unexpected [404] status code.
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ Error                                                                                │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ bytesized: Request for [bytesized] libraries returned with unexpected [404] status code. │
:~/docker/core$ docker exec -ti watchstate console state:import -vvv --trace --context
[2022-10-27T18:23:29+01:00] INFO: Using WatchState Version - 'f844792'.
[2022-10-27T18:23:29+01:00] NOTICE: SYSTEM: Preloading MemoryMapper data. { (memory: [ (now: 3.93M), (peak: 3.95M) ]) }
[2022-10-27T18:23:29+01:00] INFO: DATABASE: Selecting fields { (0: all) }
[2022-10-27T18:23:29+01:00] INFO: MAPPER: Preloaded [0] pointer and [0] object into memory.
[2022-10-27T18:23:29+01:00] NOTICE: SYSTEM: Preloading MemoryMapper data is complete. { (memory: [ (now: 4.07M), (peak: 4.09M) ]) }
[2022-10-27T18:23:29+01:00] NOTICE: SYSTEM: Importing [bytesized] METADATA & PLAY STATE changes. { (since: Beginning) }
[2022-10-27T18:23:29+01:00] DEBUG: Requesting [bytesized] libraries. { (url: https://thewood1978.nereus.bysh.me/plex/library/sections) }
[2022-10-27T18:23:29+01:00] ERROR: Request for [bytesized] libraries returned with unexpected [404] status code.
[2022-10-27T18:23:29+01:00] WARNING: SYSTEM: Not updating last import date. [bytesized] reported an error.
[2022-10-27T18:23:29+01:00] NOTICE: SYSTEM: Waiting on [0] requests. { (time: [ (start: "2022-10-27T18:23:29+01:00") ]), (memory: [ (now: 4.85M), (peak: 4.91M) ]) }
[2022-10-27T18:23:29+01:00] NOTICE: SYSTEM: Finished waiting on [0] requests. { (time: [ (start: "2022-10-27T18:23:29+01:00"), (end: "2022-10-27T18:23:29+01:00"), (duration: 0) ]), (memory: [ (now: 4.85M), (peak: 4.91M) ]), (responses: [ (size: 0.00B) ]) }
[2022-10-27T18:23:29+01:00] NOTICE: MAPPER: No changes detected.
┌─────────┬───────┬─────────┬────────┐
│ Type    │ Added │ Updated │ Failed │
├─────────┼───────┼─────────┼────────┤
│ Movie   │ 0     │ 0       │ 0      │
├─────────┼───────┼─────────┼────────┤
│ Episode │ 0     │ 0       │ 0      │
└─────────┴───────┴─────────┴────────┘
~/docker/core$

You can also find your true url by doing something like do not share the result
curl -H "X-Plex-Token: YOUR_PLEX_TOKEN" "https://plex.tv/api/resources?includeHttps=1&includeRelay=1"

i repeat DO NOT share the response,
you should see something like like
device container with product="Plex Media Server" there should be Connection child with your real hostname

I will try this in next 30 mins. Not at my pc at the moment.

I will try this in next 30 mins. Not at my pc at the moment.

i am working on adding a command to simplify the listing in the meantime

Mate you are a superstar :) - Well Almost
Ran the command suggested and used (Edited) links from that output
'https://172-17--.7a1984bf7aae5888**f0b9d86.plex.direct:32400' as URL
I also took clientIdentifier="0d6a389**dfddfe91ff"
and used that as the BackEnd Unique Identifier
Once i ran the import it looked to be doing its thing but then failed again after a few mins.
It does show a few links ill try the others.

Yeah, try to use non plex.direct links

Np. glad to help =)


PENV-288: specify build tags in test files

- What I did
Added build tags in test files if there were no tags.
Every test file must be specified with build tag
- How I did it
- How to verify it
Run tests
- Description for the changelog

Codecov Report

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

@@           Coverage Diff           @@
##           master      #31   +/-   ##
=======================================
  Coverage   61.29%   61.29%
=======================================
  Files          29       29
  Lines        1217     1217
=======================================
  Hits          746      746
  Misses        404      404
  Partials       67       67

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 1bf31df...e2b17b4. Read the comment docs.


Quality of life updates

Updates project_common to the latest prod ref which includes a manual and additional messaging for users as they use the pipeline

Closed because this should be a PR into dev


Email Template Update

Create "Welcome" email and update of the "next steps" email

@wira-mms  not expecting a detailed review from your side, but since you did the latest updates on the Email Templates, please have a quick look if you have any issues with the name of the new html file.
@fatihayyildiz  please have also a quick look at the updated templates. Actually I didnt change any elements, only the body message has changed.
@Akshay-Chaudhari-BMW FYI


seq: panic when parsing infinitesimal float in scientific notation

Environment: Ubuntu 20.04, x86_64 processor, coreutils v8.30.
GNU seq:
$ seq 1e-9223372036854775808  # terminates immediately with no output and exit status 0

uutils seq
$ ./target/debug/seq 1e-9223372036854775808
thread 'main' panicked at 'attempt to subtract with overflow', /home/jeffrey/.cargo/registry/src/github.com-1ecc6299db9ec823/bigdecimal-0.3.0/src/lib.rs:1676:21

This test case appears in the GNU test suite file tests/misc/seq-precision.sh.

The panic occurs where parsing the big number. It seems like this is a bug in the bigdecimal-rs crate. I filed an issue there. Do you think it would make sense to extend the tests in https://github.com/uutils/coreutils/blob/main/src/uu/seq/src/numberparse.rs that check that test that very small numbers/exponents (those for which the big decimal datastructure is required) are parsed from strings correctly? Or is this the responsibility of the bigdecimal-rs crate, meaning such tests should be added there?

Once there is a fix for this bug, I would place a test case in tests/by-util/test_seq.rs that just does something like
#[test]
fn test_parsing_infinitesimal_float_scientific_notation() {
    new_ucmd!().arg("1e-9223372036854775808").succeeds().no_output();
}

This no longer panics, so I'll close this. The command now terminates with an error message (which is still wrong, but at least it is not a panic):
$ ./target/debug/seq 1e-9223372036854775808
./target/debug/seq: invalid floating point argument: '1e-9223372036854775808'
Try './target/debug/seq --help' for more information.


Document DLL creation

As far as I can see, there are at least two non-equivalent ways to build the libLLVM.dll: using the powershell script in the tools directory and using the MSBuild project in tools/libLLVM.
The latter variant seems to be less flexible. For instance, the LLVM libraries for many target architectures are hard-coded as dependencies and I am only interested in the x86 target architecture.
What is the preferred way to build the DLL? Would it be reasonable to use the powershell script in the MSBuild project or to have an alternative project which uses the script?

@frederik-h the latter can be more useful since we'll need to add apis missing from the C libraries. But I'm going to clean this up as we add DIBuilder support. It'll probably be the latter.
If those hardcoded values are removed, does that solve your problem?

Yes, that would probably solve the problem. Currently, I use an adapted version of the powershell script and I have an MSBuild project which calls the script.


🐞 Editing a filter to a combination of a key + operator of an existing filter results in undefined behaviour

Cc: @tvaintrob @nirf-cisco @shaqued @Madina-Mamysheva

Hi @OfirD55
Describe the Bug
When I edit a filter and set the operator in a way that the tag + operator combination is the same as another existing filter, I get two filters with the same tag + operator combo. This results in undefined behavior (since we identify a chip by a tag + operator combo) and may lead to the delete button to malfunction and the sidebar to be out of sync.
Steps To Reproduce

Go to Spans search
add a filter spans.status.code in Error
add a filter spans.status.code not in Unset
change the second filter to 'in Unset'

Expected Behavior
@OfirD55 We need to decide if we want the second filter to be dropped and the first one overriden, or to allow two chips with the same tag key and operator.
Screenshots

@haimrait I have a PR to override pre-existing filter with the same key + operator


DependencyInjection fails to construct the Command despite IServiceCollection.AddSingleton succeed and it's present in the ServiceDescriptor list

Hello,
I'm trying to inject my logging service that logs to the output pane.
I made an interface+implementation, and registered them like this:
protected override async void InitializeServices(IServiceCollection serviceCollection)
{
    try
    {
        base.InitializeServices(serviceCollection);
        await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
        if (Package.GetGlobalService(typeof(SVsOutputWindow)) is IVsOutputWindow outputWindow)
        {
            var guid = Globals.Guids.PokeBuildPane;
            outputWindow.CreatePane(ref guid, "Poke Build", 1, 0);
            outputWindow.GetPane(guid, out var pane);
            pane.Activate();
            serviceCollection.AddSingleton<IPokeBuildLogger>(new PokeBuildLogger(pane, LogLevel.Debug));
        }
    }
    catch (Exception ex)
    {
        if (System.Diagnostics.Debugger.IsAttached)
            System.Diagnostics.Debugger.Break();
    }
}

Then I have a Command defined like this:
[VisualStudioContribution]
internal class OpenSolutionFolderCommand(IPokeBuildLogger logger) : Command
{
// ...implemention...
}

Environment:
Microsoft Visual Studio Community 2022 (64-bit) - Preview
Version 17.11.0 Preview 2.1
Microsoft.VisualStudio.SDK                 17.10.40171
Microsoft.VisualStudio.Extensibility.Sdk   17.10.2084
Microsoft.VisualStudio.Extensibility.Build 17.10.2084

But I do not understand why, it fails to find the service?
What I find really, really strange, is that after I add it to the collection, and I dump everything with IServiceCollection.ToArray(), I can see that my service is there!
Error output:
Exception thrown: 'System.InvalidOperationException' in Microsoft.Extensions.DependencyInjection.Abstractions.dll
JsonRpc Error: 10 : Exception thrown from request "2" for method ActivateCommandSetAsync: System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Unable to resolve service for type 'PokeBuild.Logging.IPokeBuildLogger' while attempting to activate 'PokeBuild.OpenSolutionFolderCommand'.
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.RegisterCommandAsync(Type commandType)
   at PokeBuild.ExtensionEntrypointCommandSet.<InitializeCommandsAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.<InitializeAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSetProvider.<ActivateCommandSetAsync>d__17.MoveNext()
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.InvalidOperationException: Unable to resolve service for type 'PokeBuild.Logging.IPokeBuildLogger' while attempting to activate 'PokeBuild.OpenSolutionFolderCommand'.
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.RegisterCommandAsync(Type commandType)
   at PokeBuild.ExtensionEntrypointCommandSet.<InitializeCommandsAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.<InitializeAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSetProvider.<ActivateCommandSetAsync>d__17.MoveNext()<---

JsonRpc Error: 10 : System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Unable to resolve service for type 'PokeBuild.Logging.IPokeBuildLogger' while attempting to activate 'PokeBuild.OpenSolutionFolderCommand'.
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.RegisterCommandAsync(Type commandType)
   at PokeBuild.ExtensionEntrypointCommandSet.<InitializeCommandsAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.<InitializeAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSetProvider.<ActivateCommandSetAsync>d__17.MoveNext()
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.InvalidOperationException: Unable to resolve service for type 'PokeBuild.Logging.IPokeBuildLogger' while attempting to activate 'PokeBuild.OpenSolutionFolderCommand'.
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.RegisterCommandAsync(Type commandType)
   at PokeBuild.ExtensionEntrypointCommandSet.<InitializeCommandsAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSet.<InitializeAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Extensibility.Commands.CommandSetProvider.<ActivateCommandSetAsync>d__17.MoveNext()<---
, ActivateCommandSetAsync, 2,
The thread '[Thread Destroyed]' (13444) has exited with code 0 (0x0).
RemoteCommandsLog Error: 0 : Error executing command PokeBuild.ExtensionEntrypoint:PokeBuild.OpenSolutionFolderCommand (Open Solution Folder)

RemoteInvocationException: Unable to resolve service for type 'PokeBuild.Logging.IPokeBuildLogger' while attempting to activate 'PokeBuild.OpenSolutionFolderCommand'.

StreamJsonRpc.JsonRpc.<InvokeCoreAsync>d__154`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Commands.Client.Models.CommandSetModel.<ActivateCommandSetAsync>d__53.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Commands.Client.Models.CommandSetModel.<EnsureCommandSetAsync>d__52.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Commands.Client.Models.CommandSetModel.<>c__DisplayClass56_0.<<ExecuteCommandAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Threading.ReentrantSemaphore.NotAllowedSemaphore.<>c__DisplayClass2_0.<<ExecuteAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Threading.ReentrantSemaphore.NotAllowedSemaphore.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Commands.Client.Models.CommandSetModel.RemoteCommandModel.<ExecAsync>d__28.MoveNext()

HResult: 0x80131500
Inner Exception:
    InvalidOperationException: Unable to resolve service for type 'PokeBuild.Logging.IPokeBuildLogger' while attempting to activate 'PokeBuild.OpenSolutionFolderCommand'.

Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
Microsoft.VisualStudio.Extensibility.Commands.CommandSet.RegisterCommandAsync(Type commandType)
PokeBuild.ExtensionEntrypointCommandSet.<InitializeCommandsAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Extensibility.Commands.CommandSet.<InitializeAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.VisualStudio.Extensibility.Commands.CommandSetProvider.<ActivateCommandSetAsync>d__17.MoveNext()

    HResult: 0x80131509

Helo @famastefano, I noticed that you marked the InitializeServices method as async but the original override is not async. The method will return right away after SwtichToMainThreadAsync call and the rest of the method will be run in background without any component waiting for it. The extension base code calls serviceCollection.BuildServiceProvider right after calling InitializeService so your service wouldn't be part of the collection then.
I would recommend creating the pane as part of an async initialization of PokeBuildLogger instead. Also it is really not recommended to use "async void" due to issues like this and tasks being left unmonitored.
Thanks,
Bertan Aygun

My bad, you are right.
In the end I switched to using IClientContext.Extensibility.Views().Output.GetChannelAsync on-demand whenever I execute a Command.


Manual enabling of DZNEmptyDataSet for empty tables

I have TableView and I want to manually enable empty state when nothing was loaded from server.
How can I manually show empty state only after connecting to server and doing all necessary stuff?

+1

- (BOOL)emptyDataSetShouldDisplay:(UIScrollView *)scrollView
You can use this to decide whether you want to display the empty data set or not. Return YES only after everything is loaded from the server.

@kashyapanirudhqi  your answer is correct,but I do not know how to implement the specific code


"Cannot read property 'rename' of undefined"

I can type the code at the first line but I can't go next line to type code.
"Cannot read property 'rename' of undefined"
This error pop up at the moment push the enter key.
Anyone know how to fix this error?

/needsMoreInfo including version, platform, and whether it also happens when you disable all extensions.


write checks in second step of the pipeline - if any vcf file is empty indicating if a step failed in variant calling.

The pipeline fails to transfer/copy all the *_filter2_final.vcf_no_proximate_snp.vcf files from variant call results


Can anyone tell me why it's not working ?

void Misc::LeftHandKnife() noexcept
{
static ConVar* cl_righthand = interfaces->cvar->findVar("cl_righthand");
const auto activeWeapon = localPlayer->getActiveWeapon();
bool Knife = 0;
if (const auto activeWeapon = localPlayer->getActiveWeapon(); activeWeapon && activeWeapon->getClientClass()->classId == ClassId::Knife)
Knife = 1;
else
Knife = 0;
if (!Knife)
{
if (!config->misc.lefthandknife)
{
cl_righthand->setValue(1);
}
else {
cl_righthand->setValue(0);
};
};
}

Please, when using the code function select drag mouse your text and then click the code button.
It makes it all in the code box.
and i think you just need 2 change one ! on
if (!Knife)
{
if (!config->misc.lefthandknife)

to
if (Knife)
{
if (!config->misc.lefthandknife)

I may be wrong tho

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

nope ;( but ty for try

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

nope ;( but ty for try

What is getting error?

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

nope ;( but ty for try

What is getting error?

its not working in game

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

nope ;( but ty for try

What is getting error?

its not working in game

success in compiling the dll but not working in game?

Please, when using the code function select drag mouse your text and then click the code button.
It makes it all in the code box.
and i think you just need 2 change one ! on
if (!Knife)
{
if (!config->misc.lefthandknife)

to
if (Knife)
{
if (!config->misc.lefthandknife)

I may be wrong tho

the point of !Knife it checking if it is nullptr. i don't think doing the opposite would work.

~

success in compiling the dll but not working in game?

you should attach a debugger and go to the locals tab to see what the value of everything is.

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

give your Entity isKnife code ..

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

give your Entity isKnife code ..

	constexpr auto isKnife() noexcept
	{
		return getWeaponType() == WeaponType::Knife;
	}

void Misc::leftHandKnife() noexcept
{
	if (config->misc.leftHandKnife) {
		static auto knifeVar = interfaces->cvar->findVar("cl_righthand");

		if (!localPlayer || !localPlayer->isAlive()) return;

		const auto activeWeapon = localPlayer->getActiveWeapon();
		if (!activeWeapon) return;

		activeWeapon->isKnife() ? knifeVar->setValue(0) : knifeVar->setValue(1);
	}
}

This should work.

give your Entity isKnife code ..

	constexpr auto isKnife() noexcept
	{
		return getWeaponType() == WeaponType::Knife;
	}

not working

attach a debugger. go to the locals tab and you will see the values.


HDDS-9285. Revert set isMultipartKey for Open MPU part keys

What changes were proposed in this pull request?
After further thinking, in MPU abort request handling, we only clean up the "open MPU key" and not the "open MPU part key". However since we set isMultipartKey in the "open MPU part key" (https://github.com/apache/ozone/pull/5072) and open key clean up service will exclude them (https://github.com/apache/ozone/pull/5214), both Open Key cleanup service and MPU abort will not clean the "open MPU part key", this might cause these open keys to be in the openKeyTable forever.
Let's treat the "open MPU part key" as normal open key by not setting the isMultipartKey flag to true so that it can be cleaned by Open Key cleanup service.
To summarize:

Open MPU key: Cleaned during MPU abort request (and MPU cleanup service to be implemented in https://issues.apache.org/jira/browse/HDDS-9194)
Open MPU part key: Cleaned during Open Key cleanup service

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9285
How was this patch tested?
Unit tests.
To create "open MPU part key", we just need to create MPU parts, but not commit them.

@kaijchen Could you take a look if you have time?

Thank you for the review @kaijchen.


Reuse code from absl lib.

Some parts of cartographer can be removed and replaced with analogs from absl lib.
mutex and optional will be removed first.

Alex, can you outline the plan to depend on absl? How does this tie into cmake and bazel?
I am very excited about getting absl's mutex.

I want to have support for absl in both cmake and bazel modes. With CMake it is gonna be a bit tricky.

See #1138 for an evaluation of absl::Mutex.


Firebase Search Database?

Let's say I have a large number of users or items I want to go over. I obviously don't want to download the entire list and parse it (I could but that's bad practice for large scale lists).
How would I do that? I'm trying to translate this to the best of my ability. https://firebase.google.com/docs/reference/rest/database/#section-query-parameters

Querying data is a bit tricky, I will explain the full scenario:
In my database I have a node named cms_news, inside this node I have hundreds of entries, each one looks something like this:
title = "My Title" description = "Some description" timestamp =<PHONE_NUMBER>45 ispublished = true
Before querying this data we must add an index on the database rules. Go to the rules tab and copy this code:
"cms_news": {             ".read": true,             ".write": true,             ".indexOn": [                  "ispublished"             ]         }
It is very important that the index key is the same as the key you want to search/filter, in this case it is ispublished.
Now we want to query all the news entries that are published.
In SQL we would do something like:
SELECT * FROM cms_news WHERE ispublished = true
In Firebase we need to load this url:
https://YOUR-PROJECT-ID.firebaseio.com/cms_news.json?orderBy="ispublished"&equalTo=true
It is very important  that ispublished be surrounded by double quotes.
Your data would not be ordered, you will have to do a simple myArray.sort() in AS3.

What about a scenario where you would want to look for the names of news articles? Typing in a word and getting .title's that match a string.

Unfortunately Firebase doesn't offer this functionality: http://stackoverflow.com/questions/38618953/how-to-do-a-simple-search-in-string-in-firebase-database
Closest thing you can do is load all the news in your app and filter them with RegEx, but that defeats the purpose of using a web api.

What if I use current values?
Such as publishDate={todaysTimeStamp}
Can I get only the results of today's values for example?

Yes, that's possible. You will do something like the following:

//First get the timestamp of the current day, not the current time. You can a use a calendar component.

var myDate:Number = myCalendar.selectedDate.getTime(); //This should get the timestamp at 00:00:01
var myDateAtMidnight:Number + myDate + 86400000; //We add the milliseconds to the date to cover the full range.

//Then you request this URL
'https://<YOUR-FIREBASE-PROJECT>.firebaseio.com/cms_news.json?orderBy="timestamp"&startAt='+myDate+'&endAt='+myDateAtMidnight

and I would just do an indexBy timestamp for the rules, right?

That's correct, for every field you want to be able to search by you add it to the .indexOn array:
"cms_news": {
            ".read": true,
            ".write": true,
            ".indexOn": [
                 "ispublished",
                 "title",
                 "something"
            ]
        }
}

Would this work for numbers too?
Example: if I have a number of latitude and longitudes and I want to get something around a certain point?

To do this kind of search Firebase offers a library called GeoFire:
https://github.com/firebase/geofire-js
You will have to study how it makes the request and port the relevant part to AS3.
An alternative solution could be to create a proxy with this library:

Create an HTML file with this library inside.
Upload it to Firebase Hosting.
Use it as a simple web api call by sending your 3 parameters to the HTML file and it will output back the JSON response.

Here's a guide to retrieve the parameters from an URL:
http://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-get-parameters
Once you have those parameters you can call your GeoFire query.

I've never played with a javascript api before. I usually only use vanilla.
How do I handle geofire exactly?
Take it's library (.js files) and put all of it in one html file? And then load it using a url request... but then how would I call a function and all from it?

My experience with JS is limited as well, this is what I found:
https://forums.adobe.com/message/3100497#3100497


Nested IRequest leads to InvalidCastException

Scenario:
I have a base IRequest that works on its own, structured like this:
public class SearchQuery : IRequest<IElasticResponse<IPagedCollection<IElasticSearchResult>>>
{
    // properties
}
public class SearchQueryHandler : IRequestHandler<SearchQuery, IElasticResponse<IPagedCollection<IElasticSearchResult>>>
{
    // handle logic
}

I need to re-use this same query in another one, and would have preferred to avoid duplicating its properties and internal logic.
Therefore I created the following:
public class SearchAsMatchQuery : SearchQuery, IRequest<MatchResult>
{
}
public class SearchAsMatchQueryHandler : IRequestHandler<SearchAsMatchQuery, MatchResult>
{
    IMediator Mediator { get; }

    public SearchAsMatchQueryHandler(IMediator mediator//,...)
    {
        Mediator = mediator;
        //...
    }

    public async Task<MatchResult> Handle(SearchAsMatchQuery request, CancellationToken token)
    {
        var search = await Mediator.Send<IElasticResponse<IPagedCollection<IElasticSearchResult>>>(request, token);
        // handle logic
    }
}

The initial call is:
await mediator.Send<MatchResult>(query)

which correctly leads to the top-level IRequestHandler, but that's when things start to break.
The exception I'm getting is [using source link]:

It triggers on this line in the above handler:
var search = await Mediator.Send<IElasticResponse<IPagedCollection<IElasticSearchResult>>>(request, token);

According my knowledge, it should be able to cast it. Is this kind of scenario unsupported?
Edit: Forgot to mention, this was on the latest version of MediatR (9.0).

Generally is it not recommended to use nested requests, due to duplication of the pipeline behavior logic and the unexpected side effects of that. Mediator is designed to be used as top level actions and the IMediator shouldn’t be injected into a handler.
With that being said the reason you are getting this exception is because Mediator is using the IRequest as the interface for the query you are sending, which doesn’t align with the return type you have provided to Send. I believe if you cast your derived class to its base then you should get the desired behavior.  You also shouldn’t have to provide the return type to send, which is a red flag that something is wrong.

Casting doesn't really change the internal type. I have the following:
var search = await Mediator.Send((SearchQuery)request, token);

However still get the exception, and its message implies that it still considers it a IRequest.
The reason I had the return type was to differentiate between the 2 different type resolutions for .Send.

Ah alright it was worth a shot. In that case then what I would do is create an abstract base class that has all the properties, and inherit from that for both requests with the interface and return type being only on the derived classes. But keep in mind that the recommended approach to sharing functionality across handlers is to create a shared dependency that encapsulates the logic.

Yes. that would work, and it's probably what I'm going to do. I'm just curious is this is considered a bug or working as intended.
For now, I'll leave it to @jbogard to close at his discretion.

Mediator does a "request.GetType()" on the request object, so it always ends up resolving the handler using the most concrete request type.
Casting the request parameter of 'Send' to a base type doesn't do anything, as the 'actual' type of the request is used.
In general, only use inheritance for behavior overloading, not for the sake of data, or saving a few keystrokes. Favor composition over inheritance like @lilasquared describes.

Jimmy also gives the same advice here #270

There are some times where inheritance is OK, but the key here is your base object cannot be another request with another concrete handler. Instead, you can use some abstract/generic constraint goodness to ensure your base request and handler are never considered to be candidates for concrete request/response/handler resolution.
First, declare your "base" request abstract with generic constraints:
public abstract class SearchQuery<TResponse>
    : IRequest<IElasticResponse<IPagedCollection<TResponse>>>
    where TResponse : IElasticSearchResult
{
    // Common junk here
}

And next, figure out how you want to compose your handler behavior but make this one abstract with generic constraints, too:
public abstract class SearchQueryHandler<TRequest, TResponse>
    : IRequestHandler<TRequest, IElasticResponse<IPagedCollection<TResponse>>>
    where TRequest : SearchQuery<TResponse>
    where TResponse : IElasticSearchResult
{
    // handle logic
    public async Task<IElasticResponse<IPagedCollection<TResponse>>> Handle(
        TRequest request,
        CancellationToken cancellationToken)
    {
        // do normal logic with response

        // var response = FunTimes(request);

        // now that we have a response, call the abstract method
        await HandleCore(request, response);

        return response;
    }

    protected abstract Task HandleCore(
        TRequest request,
        IElasticResponse<IPagedCollection<TResponse>> response);
}

Now you've provided a seam for concrete implementations to add their little bit of spice to the mix here. How you design the main Handle method and HandleCore is up to your specific logic. This handler will NEVER be resolved. Instead, we'll have our concrete implementation:
public class SearchAsMatchQuery : SearchQuery<MatchResult>
{
    // More junk
}

public class MatchResult : IElasticSearchResult
{
}

public class SearchAsMatchQueryHandler
    : SearchQueryHandler<SearchAsMatchQuery, MatchResult>
{
    protected override Task HandleCore(
        SearchAsMatchQuery request,
        IElasticResponse<IPagedCollection<MatchResult>> response)
    {
        // do whatever extra junk

        return Task.CompletedTask;
    }
}

The generic constraints mean in the abstract class we get access to all of those members. Then in the concrete implementation you get the extra members. The constraints also mean you can't accidentally use the wrong request/response pairs, nor will MediatR/the container ever be able to resolve the base handler (nor will it be registered in the container).

I appreciate the code snippets, thank you. Indeed, this approach looks pretty good. It might be worth adding it as an optional pattern to the official documentation.
Since I have a resolution, I'm closing this issue.


ISPN-9293 Convert Set places to IntSet where appropriate

https://issues.jboss.org/browse/ISPN-9293

In preview as this will conflict with #6065 and there are quite a few changes that are missing from this PR in regards to using the IntSet vs Set<Integer>

Rebased and should be ready, however I won't be here to confirm it gets into 9.3.0.Final

There was prior comments at https://github.com/infinispan/infinispan/pull/6065 that have been address, except https://github.com/infinispan/infinispan/pull/6070/files#diff-c6b6780fe71724ba9b5f690830093adb which I am not sure how to not make that class public.

Rebased

I do like FullRangeSet instead of RangeSet... maybe there is something good about hiding the classes and only documenting IntSet and IntSets after all!

Yeah that was part of my reasoning, since we may end up changing the back end implementation at some point (or even use differing ones based on arguments). I would say we can rename it to FullRangeSet or something like that as well (just at a later point, once the classes are hidden)

Updated

Updated.

updated

Integrated, thanks Will!


Fail the build if kubelet isn't labeled correctly

See https://github.com/coreos/coreos-assembler/issues/1958
This lets us find the problem cheaply here instead of much
later in cluster CI.

Makes sense to me!
/approve

/retest
/approve


{Misc} Update code owner

Description
Add code owner @jsntcy to Azure CLI core to work on

Azure Identity
MSAL
Credential
Track 2 SDK
Command Index

Misc


partial fix -- 2188

While looking at #2188, I realized that we had old code that wasn't being used left behind so removing it and also adding the check for outputs described on that issue.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@9609361). Click here to learn what that means.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master    #2200   +/-   ##
=========================================
  Coverage          ?   92.05%
=========================================
  Files             ?      191
  Lines             ?    19515
  Branches          ?        0
=========================================
  Hits              ?    17964
  Misses            ?     1551
  Partials          ?        0

Impacted Files
Coverage Δ

qiita_pet/handlers/api_proxy/__init__.py
100% <ø> (ø)

...t/handlers/study_handlers/tests/test_processing.py
87.5% <ø> (ø)

...ta_pet/handlers/api_proxy/tests/test_processing.py
98.75% <ø> (ø)

qiita_pet/handlers/api_proxy/processing.py
89.83% <ø> (ø)

qiita_pet/handlers/study_handlers/processing.py
46.87% <ø> (ø)

qiita_pet/handlers/study_handlers/__init__.py
100% <100%> (ø)

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 9609361...737207c. Read the comment docs.

👍


Add support for project feature flags

Coverage increased (+0.07%) to 83.36% when pulling 13f6ce41a6002db35d37784e1e47f0eaa275701c on jumarko:feature-flag into b30ef372cd35a2b6c614ec1c82e79fa525df1c91 on martiner:master.

I'm kinda missing `updateProjectFeatureFlag(FeatureFlag) method

Can the class FeatureFlag be reused for user feature flags as well?

key renamed to name, value renamed to enabled, getters renamed as well.

Coverage increased (+0.18%) to 83.47% when pulling 9dddd74d6b2c879a0d987868f96c316b5f803b36 on jumarko:feature-flag into b30ef372cd35a2b6c614ec1c82e79fa525df1c91 on martiner:master.

It seems that it's not possible to reuse FeatureFlag class for user's feature flags, because user feature flags have different structure - check https://confluence.intgdc.com/display/plat/Feature+Flags+Catalog.

Coverage decreased (-0.05%) to 83.25% when pulling cce0a1fc4d39651995eb2c27c6ea9fdfc1d4bf65 on jumarko:feature-flag into b30ef372cd35a2b6c614ec1c82e79fa525df1c91 on martiner:master.

close #148

Coverage decreased (-0.2%) to 83.2% when pulling fd88d86bca95826ed02cfa82a30c15e981ee0824 on jumarko:feature-flag into 8d32a84b7f8802fe5e02de5ea15cd4ef14391ae4 on martiner:master.

Coverage decreased (-0.2%) to 83.2% when pulling fd88d86bca95826ed02cfa82a30c15e981ee0824 on jumarko:feature-flag into 8d32a84b7f8802fe5e02de5ea15cd4ef14391ae4 on martiner:master.

Rebased upon the latest upstream version.

Coverage decreased (-0.19%) to 83.29% when pulling 9442612c8af9b8272f600595a8ad2c2d6dff5126 on jumarko:feature-flag into 689de472ef0d9729cb8da5085ebed338f26d482f on martiner:master.


Help Akavache transition to v2

Looks like maybe @glennawatson is the right person to tag here.

I can help in a pinch but Akavache has traditionally been @pureween baby.

Ah, yes, I should have remembered that.
@PureWeen There are some minor breaking changes in SQLitePCLRaw 2.0, but the transition should involve very little pain.

See reactiveui/Akavache#496

Not sure if this is related or not, but after upgrading Akavache from v6.5.20 to v6.7.1 and SQLitePCLRaw.bundle_e_sqlite3 from v1.1.14 to v2.0.0 when trying to initialize Akavache I get the following exception:
Unhandled exception: System.TypeInitializationException: The type initializer for "Akavache.BlobCache" threw an exception. ---> System.ArgumentException: Path is invalid.
   in System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   in System.IO.Path.InternalGetDirectoryName(String path)
   in SQLitePCL.NativeLibrary.MakePossibilitiesFor(String basename, Assembly assy, Int32 flags, LibSuffix suffix)
   in SQLitePCL.NativeLibrary.MyLoad(String basename, Assembly assy, Int32 flags, Action`1 log)
   in SQLitePCL.NativeLibrary.Load(String libraryName, Assembly assy, Int32 flags)
   in SQLitePCL.Batteries_V2.MakeDynamic(String name, Int32 flags)
   in SQLitePCL.Batteries_V2.DoDynamic_cdecl(String name, Int32 flags)
   in SQLitePCL.Batteries_V2.Init()
   in Akavache.Registrations.Register(IMutableDependencyResolver resolver, IReadonlyDependencyResolver readonlyDependencyResolver)
   in Akavache.DependencyResolverMixin.InitializeAkavache(IMutableDependencyResolver resolver, IReadonlyDependencyResolver readonlyDependencyResolver)
   in Akavache.BlobCache.<>c.<.cctor>b__9_0()
   in Splat.InternalLocator.RegisterResolverCallbackChanged(Action callback)
   in Splat.Locator.RegisterResolverCallbackChanged(Action callback)
   in Akavache.BlobCache..cctor()

The exception is thrown from here:
https://github.com/worldbeater/Camelotia/blob/misc-updates/src/Camelotia.Presentation.Wpf/App.xaml.cs#L24
Planning to investigate what's causing this later, but any ideas of what could go wrong with Akavache are appreciated. The repro is here, misc-updates branch, Camelotia.Presentation.Wpf project. Akavache initializes without exceptions when targeting .NET Core (Avalonia) or UWP.

At first glance, this looks like a bug in SQLitePCLRaw.  A bug that is specific to .NET Framework.  I need to look more closely.


With cx_Freeze - TypeError: unexpected keyword argument

Sorry but I have a new problem. It shouldn't be a bug of pyVISA, only a strange interaction with cx_Freeze. Over python console everything works fine but frozen I get a TypeError.
debug.py:
import visa

def main():
    visa.log_to_screen()
    rm = visa.ResourceManager()
    # works
    instr = rm.open_resource("GPIB0::12::INSTR")
    # fails in frozen executable
    instr = rm.open_resource("GPIB0::12::INSTR", write_termination="\r\n")
if __name__=="__main__":
    main()

setup.py:
from cx_Freeze import setup, Executable
import os, site

[python_dir, site_dir] = site.getsitepackages()
include_files = []
missing_dll = ["msvcr100.dll"]
for dll in missing_dll:
    include_files.append((os.path.join(python_dir, dll), dll))

buildOptions_exe = dict(
    compressed = False,
    # includes = ["pyvisa"],       # doesn't solve this issue
    include_files = include_files
    )

setup(
    name = "Debugger",
    author = "Name",
    version = "0.0.0",
    options = dict(build_exe = buildOptions_exe),
    executables = [Executable("debug.py"),]

Execution of frozen script:
O:\>build\exe.win32-3.3\debug.exe
2015-02-06 09:51:38,270 - pyvisa - DEBUG - Created library wrapper for C:\Windows\system32\visa32.dll
2015-02-06 09:51:38,290 - pyvisa - DEBUG - viOpenDefaultRM(<cparam 'P' (02BCDA58)>,) -> 0
2015-02-06 09:51:38,290 - pyvisa - DEBUG - Created ResourceManager with session8240592
2015-02-06 09:51:38,360 - pyvisa - DEBUG - viOpen(8240592, 'GPIB0::12::INSTR', 0, 0, <cparam 'P' (02BCDA58)>) -><PHONE_NUMBER>
O:\build\exe.win32-3.3\library.zip\pyvisa\ctwrapper\functions.py:1059: VisaIOWarning: VI_SUCCESS_DEV_NPRESENT<PHONE_NUMBER>): Session opened successfully, but the device at the specified address is not responding.
Traceback (most recent call last):
  File "C:\Python\WinPython-32bit-<IP_ADDRESS>\python-3.3.2\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 27, in <module>
  File "debug.py", line 14, in <module>
    main()
  File "debug.py", line 12, in main
    instr = rm.open_resource("GPIB0::12::INSTR", write_termination="\r\n")
TypeError: open_resource() got an unexpected keyword argument 'write_termination'

write_termination is only an example. The same bevavior is with other keyword arguments.
Maybe you have an idea where this redefinition come from?

Sorry for the late response. This is very strange. I have no experience with cx_Freeze but open_resource has a **kwargs argument. So it should accept everything.  (If a certain argument is not valid is rejected later by the resource) raising a ValueError

Could be that you have an idea. I will leave a comment if I unexpectedly found a solution.

No problem. PyVISA does not have any magic inside, it is mostly standard python. The only "dynamic" code (if you allow me that word) is the registration of the Resource sublcasses (which is also done in a very simple way). Leave it open, and if you think is useful ask in the cx_Freeze forums linking to this issue. I will be happy to help to make this work.

I am closing this. Feel free to reopen if needed.


add Terbuka University

@haikalee I am sorry, the domain ecampus.ut.ac.id is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).

How do I apply JetBrains educational, if my campus is removed ?

@haikalee

How do I apply JetBrains educational, if my campus is removed ?

You can enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).
Thank you.


[New game]: Lunar Lander

🎮 Game Request
The Lunar Lander game is a classic arcade-style game where the player controls a spacecraft that must safely land on the moon's surface. The game simulates the physics of space flight, requiring the player to carefully manage the spacecraft's fuel and thrust to achieve a soft landing.
Point down the features
Game points
Controls
Simulation
Player Input
Collision Detection
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

\assign

Hey @Maheshwari-Love !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @Maheshwari-Love ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Uploading an existing file to a process doesn't associate the file with the process

If you are uploading a file that is already on the system then it won't associate the file with the process.

The wrong id was being returned. The mcstored process was returning the id of the file to be deleted, not the existing file that was found.


Representing a union of a record and an enum

I have a schema that includes the below type:
{
    "name" : "operation",
    "type" : [ {
      "type" : "record",
      "name" : "OperationOnEntry",
      "fields" : [ ... ]
    }, {
      "type" : "enum",
      "name" : "Read",
      "symbols" : [ "Read" ]
    } ]
  }

Is it possible to represent this type in Kotlin using Avro4k? I tried
@Serializable
sealed class Operation
@Serializable
data class OperationOnEntry( ... ) : Operation()
@Serializable
object Read : Operation()

However this produces
{
    "name" : "operation",
    "type" : [ {
      "type" : "record",
      "name" : "OperationOnEntry",
      "fields" : [ ... ]
    }, {
      "type" : "record",
      "name" : "Read",
      "fields" : [ ]
    } ]
  }

Right now this is afaik not possible to represent. Avro4k does currently not support open polymorphic references (see https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/polymorphism.md#open-polymorphism).
This would be needed to serialize the following data structure which would matches the first mentioned schema:
interface Operation
@Serializable
data class OperationOnEntry( ... ) : Operation
@Serializable
enum class Read : Operation {
    Read
}

This is now possible with the support of polymorphic classes #110


The library crashes when hitting back while searching

SDK version: 1.2.2
Steps
1.Tap on search and write anything on search label
2.Tap quickly back
I attached the crash log.
crash log.txt

@ionutst :+1:


IIS Express exits/crashs when creating/logging to .log files

Title
IIS Express exits when attempting to log to a file with *.log
Functional impact
The application stops functioning after the first request is served.  IIS Express reports exited with code -1 and no error/exception information is discoverable.
Minimal repro steps

Create a drop dead simple MVC vNext project (my sample: https://github.com/camMCC/aspnet-vNext-bug1)
Run the project
From Windows Explorer, navigate to the /src/{the project name} directory
Create a "New Text Document"
Rename the file so it has a .log extension
Watch as VS stops debugging due to IIS Express exiting

Expected result
Since *.log files aren't code, changing them shouldn't cause IIS Express to exit.
Actual result
IIS Express is automatically closed as a result of the file change or create
Further technical details
Appears related to the file monitoring for when *.cs files change.
If I place my log directory in the project.json "exclude" list, this behavior stops
This behavior did not exist in beta1.

Does this still happen?


Add file list caching

Added memory cache to store visited paths. Successful read from cache WILL NOT cancel standard load from disc. It will just trick user to see cached results right away while still refreshing files in background.
For now i integrated this functionality as experimental and turned off be default
Further work to be done:

Use some persistent store for cache (DBreeze in my opinion will be the best solution here)
Cache preemptively - if user navigates to some directory we can check if parent directory and all children directories are cached as well. If not - we can read them in background and store in cache. This has the potential to smooth navigation out significantly

@jakoss Great work! This change makes everything much faster and it will a significant improvement over the current behavior.

Awesome. So i'll try and make this persistent. Also the preemptive loading will make it much faster on rarely visited paths

@jakoss It would be best if we could use one of the existing dependencies such as SQLite as opposed to adding additional ones.

Sure, i can try using SQLite for that. I can even use memory cache before db

Sure, i can try using SQLite for that. I can even use memory cache before db

If you use a memory cache, there should probably be some sort of limit to ensure that it doesn't get out of hand.

@yaichenbaum There is a serious issue with persisting cache in current form. The ListedItem class is completely unserializable. To make this work we would have to do quite heavy code refactoring to introduce some intermediate file representation that can be serialized and then converted to ListedItem after deserialization. Currently the bitmap fields are making that impossible.
Right now, the file listing code is too tightly coupled with UI model which is ListedItem. I think file listing code should be completely separated and it should return some generic file/folder description, that can be serialized or used to create ListedItem. I hope it make sense for you.

Hi @jakoss the only ListedItem's fields difficult to serialize should be FileIcon and IconOverlay, right?
There is no need to persist such fields in the cache as they are filled after the folder enumeration has completed, so they do not impact loading performance too much.
If I were to serialize them using Json.Net I'd simply add the [JsonIgnore] attribute on those two field.

@gave92 So then i'll have to trigger loading after retrieving from the cache, but i cannot do that based on the information in ListedItem (i think that's the case, maybe i'm wrong?). Whole point of the cache is to display something before the folder enumeration

@jakoss no need to trigger the loading of the file thumbnail as it's already handled in LoadExtendedPropertiesAsync.
If you save a ListedItem to the cache setting it's 'IsItemPropertiesLoaded' property to false, this is enough to trigger the thumbnail loading.
Tha cache will still make the items appear much faster, only with no icon

@gave92 Ok, that would make it so easy, will try it out.
I think persisting images would make the cache bloated and will impact the deserialization process, and that would make the whole cache pointless. I think default icon might do, it will still make app appear faster. And, the most imporant part, i'm keeping memory cache before db. In memory cache all bitmaps are stored. So the icons loading would happen only on first cache load, then it will be stored in memory (with reasonable limits of course)

@gave92 @yaichenbaum I pushed SQLite implementation of persistent cache adapter. It's working fine, but i'll do a experimental implementation based on DBreeze just to compare performance between those. SQLite is not really optimized for big payloads and random read performance, so i expect DBreeze to be significantly faster.
I'll post my findings and measurements here and we will have some ground for discussion if it's worth it to use additional dependency

I run the numbers and found out that DBreeze is indeed faster, but both databases were really fast. Results from BenchmarkDotNet:
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042

Intel Core i5-9600K CPU 3.70GHz (Coffee Lake), 1 CPU, 6 logical and 6 physical cores

.NET Core SDK=5.0.101

  [Host] : .NET Core 5.0.1 (CoreCLR <IP_ADDRESS>516, CoreFX <IP_ADDRESS>516), X64 RyuJIT

|          Method |       Mean |    Error |   StdDev |   Gen 0 |   Gen 1 |   Gen 2 | Allocated |
|---------------- |-----------:|---------:|---------:|--------:|--------:|--------:|----------:|
|  TestSQLiteRead |   983.7 μs | 17.14 μs | 16.04 μs | 49.8047 | 49.8047 | 49.8047 | 274.84 KB |
| TestDBreezeRead | 1,316.8 μs | 12.30 μs | 11.51 μs | 48.8281 | 48.8281 | 48.8281 | 383.68 KB |

// * Legends *

  Mean      : Arithmetic mean of all measurements

  Error     : Half of 99.9% confidence interval

  StdDev    : Standard deviation of all measurements

  Gen 0     : GC Generation 0 collects per 1000 operations

  Gen 1     : GC Generation 1 collects per 1000 operations

  Gen 2     : GC Generation 2 collects per 1000 operations

  Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)

  1 μs      : 1 Microsecond (0.000001 sec)

DBreeze has one more limitation, and that could be probably a major one - it only supports single process per database. SQLite do not have such restrictions. In this case i believe it's quite safe to stick with SQLite as it is now.
I'm posting this pull request as is for review. I'll add preemptive cache and custom cache configuration later on in another Pull Request

@jakoss thanks a lot for your work. I too agree to stick with SQLite (also we avoid adding another dependency)

@jakoss can you reproduce an issue where files randomly disappear and reload after around a second when the setting to use the cache is turned on?

@yaichenbaum I encountered this twice, but i could not replicate that, so i could not check what's going on in debugger

@jakoss Great work! LGTM

@jakoss It looks like these changes are crashing the app in release mode.

StackTrace:
   at System.Reflection.IntrospectionExtensions.GetTypeInfo(Type type) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\shared\System\Reflection\IntrospectionExtensions.cs:line 14
   at Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize()
   at Microsoft.Data.Sqlite.SqliteConnection..cctor()
   at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 92

That's most certainly issue with SQLite binary file. Seems like architecture missmatch: https://stackoverflow.com/questions/37849668/value-cannot-be-null-r-nparameter-name-s
Have you tried if GoogleDriveCloudProvider works in release mode? Because there's exact same code, but with try/catch that swallow any exception. I'm pretty sure that won't work either.


webm volume

webm default volume is set to max in options, but after a certain length down the page the player defaults to 0% volume.

That could be from using the scroll wheel over a webm. If that's not it, try going into Options > 8chanX > Clear 8chanX settings.