Calling external JS on a component after render

Hi,
So I've attempted to use material design lite, which needs the component to be "upgraded" after being rendered into DOM via simple call to componentHandler.upgradeElement.
I've prepared a component with ref, so that I can get a hold of an element after it's rendered:
HH.div
      [ HP.id_ "cmp-div"
      , HP.ref (HE.input Initialize)
      , HP.classes [HH.ClassName "mdl-textfield", HH.ClassName "mdl-js-textfield", HH.ClassName "mdl-textfield--floating-label"] ]
      [ HH.input
        [ HP.id_ "roleName"
        , HP.inputType (HP.InputText)
        , HP.value state.roleName
        , HE.onValueInput (HE.input UpdateRoleName)
        , HP.class_ (HH.ClassName "mdl-textfield__input") ]
      , HH.label
        [ HP.for "roleName"
        , HP.class_ (HH.ClassName "mdl-textfield__label") ]
        [ HH.text "Role name"]

And, to upgrade element:
  eval (Initialize el next) = do
    case el of
      Nothing -> pure next
      Just el' -> do
        liftEff $ upgradeElement el'
        pure next

upgradeElement is a helper I've exposed via FFI, and I needed to call componentHandler.upgradeElement in a window.timeout(...,0) for it to work. Is it as it supposed to be, or some kind of quirk/bug?
The full code is here: https://github.com/BartAdv/purescript-halogen-template/commit/4e0229c559aece5fcf9fe63bbd74554e7239407f

Note the paragraph about ref in here: https://github.com/slamdata/purescript-halogen/blob/master/GUIDE.md#creating-a-component

Important: ref itself is not suitable for initializing and finalizing a component, as although it fires as soon as the element is created or removed there is no guarantee the element is actually in the DOM yet, and also it will not fire when a component has been removed entirely from the component tree. This is where the SetElement / Initialize / Finalize pattern comes in:
eval (SetElement el next) = do
  modify (_ { element = el })
  pure next
eval (Initialize next) = do
  el <- gets _.element
  case el of
    Nothing -> pure unit -- this case should never happen here, as refs fire before initializers even
    Just el' -> -- do something to initialize the component
  pure next
eval (Finalize next) = do
  -- clean up anything created during initialization
  pure next

Cool, I skipped the SetElement thinking it might be of no use because I dont need to have reference to the element in state for other purposes. Will see how can I make it easier with some higher-order component. Thanks!

One more follow-up question, as this is not that straightforward to me: would it be possible to write a generic parent component that just performs the Initialize/SetElement dance, but overall its return type is the same as the child?


devDependencies are included when running pnpm run package

Describe the bug
When I run pnpm run package, the generated package.json file inside the package folder contains all the devDependencies from the project root's package.json. Is this the correct behavior? Why should the end user install the devDependencies (which are only needed for the component library's documentation or demo site) when installing the package? This is a quote from the docs:

A package.json copied from the project root with all fields but the "scripts" field. The "dependencies" field is included, which means you should add packages that you only need for your documentation or demo site to "devDependencies".

Reproduction
Run npm run package and see that all devDependencies are copied in the generated package.json inside the package folder. https://stackblitz.com/edit/sveltejs-kit-template-default-uwyz79
Logs
No response
System Info
System:
    OS: Linux 5.4 Ubuntu 20.04.4 LTS (Focal Fossa)
    CPU: (4) x64 Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
    Memory: 401.75 MB / 3.75 GB
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
Binaries:
    Node: 16.13.2 - /tmp/fnm_multishells/24095_1646447930303/bin/node
    npm: 8.4.0 - /tmp/fnm_multishells/24095_1646447930303/bin/npm
Browsers:
    Chrome: 99.0.4844.51
npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.30
    @sveltejs/kit: next => 1.0.0-next.292
    @sveltejs/vite-plugin-svelte: ^1.0.0-next.36 => 1.0.0-next.39
    svelte: ^3.44.0 => 3.46.4
    vite: ^2.7.0 => 2.8.6

Severity
annoyance
Additional Information
No response

When installing a package, the user doesn't download the devDependencies, only dependencies, so it's safe for it to be there.

Oh, didn't know that. Thanks for the response. I think I should close this issue then


[varLib.avar] Reconstruct mappings from binary

https://github.com/Lorp/fencer/issues/25

Just wrote this to @Lorp:
So here's the thing:
lemme see how to explain it.
Everything in normalized numbers.
Imagine a master at wght=1. driving stem=1
And wdth=1 also driving stem=1
And then a middle master at wght=.5,wdth=.5 with start/end's at 0,1 on both axes.
We generate a corner for wght=1,wdth=1
Then we sample the varStore at that point, for stem axis. We would get 2.
Then we clamp it to 1 and that changes the geometry.
I think we should NOT clamp.
And then when we drop "unnecessary" poles, the problem will probably go away.
That's my current thinking.

Run the tool like:
fonttools varLib.avar RobotoFlex-avar2.ttf

It will write the avar1 segments and avar2 mappings to console.

The tricky part: removing unnecessary pins, is untested by me as I don't have a font for it right now. But otherwise I think this is ready for review.

With tests now for the location-pruning. My confidence is rather high now.

Next step, I suppose, is to print out .designspace-like output.

Here's it in action. With Raqq's build, the mappings:
https://github.com/aliftype/raqq/blob/8d8ca9e4e41ac660113204fd82fc9029a06335a8/scripts/build.py#L876-L885
mappings = [
        [{"Justification": -100}, {"Spacing": -100, "Mashq": 0}],
        [{"Justification": -50}, {"Spacing": 0, "Mashq": 0}],
        [{"Justification": 0}, {"Spacing": 0, "Mashq": 10}],
        [{"Justification": 90}, {"Spacing": 0, "Mashq": 100}],
        [{"Justification": 100}, {"Spacing": 125, "Mashq": 100}],
    ]

the tool output:
$ ./fonttools varLib.avar Raqq.ttf
{}
[({'jstf': -50.0}, {'MSHQ': 0.0}),
 ({'jstf': -100.0}, {'MSHQ': 0.0, 'SPAC': -100.0}),
 ({'jstf': 90.00244140625}, {'MSHQ': 100.0}),
 ({'jstf': 100.0}, {'MSHQ': 100.0, 'SPAC': 125.0})]
4 mappings

I added a roundtrip test, and it's failing, because:
https://github.com/fonttools/fonttools/pull/3601
Or we can change the tests.

With https://github.com/fonttools/fonttools/pull/3601 fixed, this is now ready.
@Lorp how does it look to you?
@justvanrossum @anthrotype Can you take a look possibly? Thanks.

I'll make it print .designspace snippet instead.

I'll make it print .designspace snippet instead.

Done. At some point we'll add --output-file etc. But I think this can be merged now.

Since this just adds new functionality to an obscure module (varLib.avar), I'm leaning towards merging it if no one wants to review. Thanks.


add the skeleton code for new extension containerapp-preview

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

https://github.com/Azure/azure-cli-extensions/pull/6377
all checks pass.


Added CreateDatabase to Nodeactyl and other things...

Added CreateDatabase to Nodeactyl and some errors handling.

Have you tested these changes?

Yes.

I detected an error in error handling. i'm gonna resolve this.

We need a larger host/someone with a lot of users, servers etc to test this (Or someone who will willingly created 50+ servers/users on theyre panel)

I have around 40+ servers my discord is:Wolfo Gaming#0359

Tested with over 100 users. still showing 51

Tested with over 100 users. still showing 51

Did you pass the parameter page?

think I did something wrong. Do not know github so well...

You need to specify the page, like this.

Here is the result of that: ```
{
users: [
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] },
{ object: 'user', attributes: [Object] }
],
total: 59,
count: 9,
per_page: 50,
current_page: 2,
total_pages: 2,
links: {
previous: 'https://panel.fjellserver.no/api/application/users?page=1'
}
}
true

You are in the second page

Then it all working?

Yep, all the users is stored in "users" property from JSON

But how do I get everything out as before? without ```{ users: [ { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] }, { object: 'user', attributes: [Object] } ], total: 59, count: 9, per_page: 50, current_page: 2, total_pages: 2, links: { previous: 'https://panel.fjellserver.no/api/application/users?page=1' } } true````?

Do you have Discord? this Question is not related to the PR

@Burchard36 Ready to murge ;)

The docs for this will be updated shortly.
If anyone is able to add pagenation to getAllServers and getAllNodes, would be much appreciated. Feel free to either use this PR or make your own.

NPM will be updated as soon as I am able to sort it due to currently being on holiday.


fix feature_filter hack for for prod

Msg from Slack from Raphael

is it possible to change this block by the way, it’s a bit hacky and throwing errors in std.out (‘list index out of range’) which I have to explicitly ignore now https://github.com/buildingSMART/ifc-gherkin-rules/blob/900b2e93fb872e7daadddc3a4786d79be76a476d/main.py#L61

Ref: https://github.com/buildingSMART/ifc-gherkin-rules/pull/145/files#diff-b10564ab7d2c520cdd0243874879fb0a782862c3c902ab535faabe57d5a505e1L65-R71


[js] how to filter on large numbers

I put the following gist together to try and distill down how to interact with arrow from javascript after building a dataframe from python
https://gist.github.com/camerondavison/cbe43c326f37ab0fe34680baa960634e
It works, but I cannot figure out how to match Int64 types. Reading the code if I am not mistaken https://github.com/apache/arrow/blob/567e33b5dd23dd236be46bbd90b15d85b8847775/js/src/predicate.ts#L179 looks like it is always using the == sign so I have no idea how to get that to work.
The large number filter counts are always 0
Am I missing something from the API, or is this just not supported in JS right now?

Hi @camerondavison, I've had a look, and seems like two Int64 classes with the same value aren't equal. Maybe what's needed is a toString() as part of the comparison, but that doesn't seem clean enough.

I got the comparison working with the below (didn't modify the source thought, was just testing)
        if (col.vector instanceof vector_1.IntVector) {
            return (idx) => {
                return col.vector.get(idx).toString() === lit.v.buffer.toString();
            };
        }

It looks like an IntVector needs its own comparison path, but I'm not sure if toString() is the best comparison. toString() compares Int32Array instances, so I'm able to get away with the comparison.
The full change's here:
    _bindColLit(batch, col, lit) {
        const col_func = col.bind(batch);
        console.log(col.vector instanceof vector_1.IntVector, '---', lit);
        console.log('----------------------------------------------')
        if (col.vector instanceof vector_1.DictionaryVector) {
            let key;
            const vector = col.vector;
            if (vector.dictionary !== this.lastDictionary) {
                key = vector.reverseLookup(lit.v);
                this.lastDictionary = vector.dictionary;
                this.lastKey = key;
            }
            else {
                key = this.lastKey;
            }
            if (key === -1) {
                // the value doesn't exist in the dictionary - always return
                // false
                // TODO: special-case of PredicateFunc that encapsulates this
                // "always false" behavior. That way filtering operations don't
                // have to bother checking
                return () => false;
            }
            else {
                return (idx) => {
                    return vector.getKey(idx) === key;
                };
            }
        }
        else if (col.vector instanceof vector_1.IntVector) {
            return (idx) => {
                return col.vector.get(idx).toString() === lit.v.buffer.toString();
            };
        }
        else {
            return (idx, cols) => col_func(idx, cols) == lit.v;
        }
    }

@camerondavison, I looked on JIRA and found https://issues.apache.org/jira/browse/ARROW-2797.


Label multipoint

WIP for different strategies to place point-like features along line geometry. Previously point features on lines would just place the points at the endpoints of the line segments. However for use-cases like highway shields and street arrows you may want different behavior. Street arrows should be "evenly spaced" along a line, for instance.
Here's an example for this scene file snippet
...
arrows:
    filter: { $zoom: {min: 17} }
    draw:
        arrow:
            size: 8px
            spacing: 40px     // space arrows 40px apart
            angle: auto       // inherit line geometry angle

Here arrow is a user-defined texture.
We may want to consider a better terminology than spacing, as the similarly to repeat_distance is a source for confusion. Similarly for auto angles. We may also want to include a placement_strategy option such as endpoints, midpoints, spaced or something like that.
In the code, I call this new class label_multipoint, but this is pretty unclear, so we can also revisit the naming of label_line (which is becoming highly specialized for text labels) and label_multipoint, etc.

Would love some feedback :-) @nvkelso @bcamper

@dmvaldman Can you please add screenshots showing highway shield spacing, too?

@nvkelso spacing is configurable so we should be able to tune in the style. That said, I suspect this feature will be more useful for oneway arrows than for shields, because I assume shields will be less frequently spaced (in fact right now we are placing more than necessary and then the repeat logic culls them out, this PR could exacerbate that!), combined with tile discontinuities between lines makes it hard to get good continuous spacing.
But, even if it's not placing very many shields, this PR will make it place them in better locations, away from the line vertices/intersections.

Here's a comparison between using the midpoints of lines versus endpoints (as was previously used) for highway shields. The road segments are also colored differently so you can see their endpoints.

I think we're close here, just a few questions to resolve:
1. Do we want to continue to support the existing behavior that places of points on line or polygon vertices?
My feeling is that while this probably isn't the typical scenario, it's useful in some situations (like visualizing the geometry below) and would be nice to preserve -- though we could consider making it no longer the default.

2. If the answer to the above is yes, then we need an option for specifying the placement strategy, as @dmvaldman suggests.
Mapbox calls their similar placement options point (places points at line vertices) and line (places points along a line with user-specified spacing). We also have an option to place the label at a polygon centroid, currently set with centroid: true (this property can be deprecated and folded into a single placement property).
A couple possibilities:
placement: point | line | polygon
placement: vertex | spaced | centroid
I would avoid endpoints because that implies to me only the start and end vertices of the line rather than all of them (and I don't know of a current need for actual start/end-only behavior).
I'm also unsure if we currently have a need for a "midpoints" placement strategy, though it is worth considering for shields (where I think keeping them away from vertices/intersections is more important than actually spacing them out, given that they don't need to repeat too often). Terminology like vertex | spaced | centroid might also be more extensible for adding a midpoints option.
3. Ambiguity with repeat_distance
We could consider placement_spacing to make the relationship with a placement property more explicit.
Could also consider renaming repeat_distance to something like repeat_tolerance, with backward compatible-syntax / deprecation path.
4. Angle of point/sprite
It's valid to put a specific numeric angle in angle, so I do think a string value indicating a different placement type makes sense.
I'm OK with either angle: auto as you have it, or maybe angle: line?
5. Polygon handling
For consistency with other behavior, when a spaced placement strategy is specified, the placement logic for polygons/mutlipolygons should follow that of lines, placing points along each polygon ring as if it was a line (here).
@nvkelso @blair1618 thoughts on the above please?

💯 @dmvaldman thanks for the extra shield animated GIF! Ship it!
For terminology:

repeat_spacing makes slightly more sense to me than spacing alone (which could refer to character, line spacing, etc). Looks like Mapnik uses spacing alone for this. I'm fine with spacing.
The existing repeat_distance could also be thought of as a culling distance? It already matches Mapnik's repeat-distance. No change recommended.

What about placement_spacing so the link to the placement property is clearer? I'm OK with either that or spacing though.

@bcamper I missed your earlier comment, responses to all below:

Do we want to continue to support the existing behavior that places of points on line or polygon vertices?

Yes (agree). Especially to allow data editing like the OSM discussion.

If the answer to the above is yes, then we need an option for specifying the placement strategy, as @dmvaldman suggests.

These sound slightly different to me. One is about general label alignment and implied angle changes (snapping to point(s), lines, or polygon centroid), versus specific placement strategy (start, stop, all vertexes, midpoint of line, poor man's centroid, centroid on surface, the more interesting "best" placement Mapbox just blogged about). The repeat / placement strategy extensions would include (midpoint between vertexes, centroids in all parts of multi-polygon).

Ambiguity with repeat_distance

Agree with placement_spacing to make the relationship with a placement property more explicit.
Agree with renaming repeat_distance to something like repeat_tolerance, with backward compatible-syntax / deprecation path.

Angle of point/sprite

If I've chosen to "align" my label to the line, then I think the default angle value of auto (not line) would change from 0° to whatever the line's curve is. I shouldn't need to modify the angle property to get line labels to show up.
I've wanted to do angles for points for a while. Viewpoints from OSM include this (expressed often in cardinal directions but I'd convert that to 0-360° server side in tiles).

Polygon handling

+1

@dmvaldman follow-up from IRL discussion: let's make sure that at least one point is placed on each geometry (maybe only if that one point will fit along the line length?).

I made some updates re: the issues discussed above:

Exposed other placement strategies via the placement parameter:

placement: vertex: previous default behavior, place points at line/polygon ring vertices
placement: midpoint: new option, places points at line/polygon ring segment midpoints (better for shields where you want them away from ambiguous intersections)
placement: spaced: new option, places points along a line/polygon ring at fixed intervals defined in pixels with placement_spacing; useful for symbols like one-way street arrows where consistent spacing is desirable

placement_spacing defaults to 80px and also accepts zoom stops or functions

placement: centroid: only applicable for polygons, migrated from the old centroid: true parameter, places points at polygon outer ring centroid; of limited use due to issues with polygons split across tiles, but may continue to be of some use

Add "tile edge" handling to point placement logic, with same logic as with lines. Useful for avoiding point placement on tile borders, which is usually undesirable (tile_edges defaults to false, as with lines):

Clarified repeat group behavior between points and attached text, so that different repeat_distance values can apply to each, e.g. one can configure highway shields generally to be allowed to be within 80px of one another, while ensuring that specific highway shield text will not repeat within 200px

Not yet implemented: changing repeat_distance to repeat_tolerance, with backwards compatibility and plan to deprecate. I still think this makes sense for clarity though.
I think this is in good pretty good shape and can be merged, with syntax/naming changes made before final release if needed. Comments @dmvaldman @blair1618 @nvkelso?
I have some additional comments around point/shield placement that I will follow up with.

Going to merge this as-is to coordinate with other features, but feel free to comment on above and we can make adjustments in master (pre-release).


Cannot access columns where headers are multiline-cells

If header cell has multiline content type provider generates multiline property name. Code that accesses these properties does not compile.
I am getting something like:
[for x in book.Data -> x.``this
is
a test``]

Added PR #20 with a fix, unfortunately build is failing on CI server

Hi, is there any improvements here?

Let me check if I can merge the PR

This issue was moved to pbbwfc/ExcelProvider4#1

Should be fixed on nuget.
On Jan 15, 2016 14:48, "pbbwfc"<EMAIL_ADDRESS>wrote:

This issue was moved to pbbwfc/ExcelProvider4#1
https://github.com/pbbwfc/ExcelProvider4/issues/1
—
Reply to this email directly or view it on GitHub
https://github.com/fsprojects/ExcelProvider/issues/19#issuecomment-171965749
.

Sorry about the move message - I was trying to take a copy for my Fork and incorrectly ran a tool which tried to move rather than copy the issue.
I intend to look at this issue in my fork and see if I can fix it.

fixing is nice, but you should still keep the issue / disucssion here.

Sorry again - my mistake - I will definitely put the discussion here once I have found something useful.
(I have done some work on the gh-pages - let me know if you think it would be useful to use these changes.)

please submit docs changes as Prs to https://github.com/fsprojects/ExcelProvider/blob/master/docs/content/index.fsx
the gh-pages branch is automatically generated from there.

I tried this and could not find a problem. It also seems to be already included in the tests - see test
``Multiline column name should be converted to a single line``

I tried a slightly more complex test with a four line header:
  rows.[0].``this\nis \na\ntest``

and it seemed to work OK.
Is there an example that does not work or should it be closed?


Trying to generate *.pb.validate.go files using Bazel and Gazelle

So I have loaded protoc-gen-validate in my WORKSPACE, like that:
# Load protoc-gen-validate plugin used within protobuf files.
http_archive(
    name = "com_envoyproxy_protoc_gen_validate",  # 2023-03-20
    sha256 = "884f7166893d4869d9e86c171777c11e51b138a6ec170e1d8eba8f091a9ef85a",
    strip_prefix = "protoc-gen-validate-0.10.1",
    urls = [
        "https://github.com/bufbuild/protoc-gen-validate/archive/refs/tags/v0.10.1.tar.gz",
    ],
)

load("@com_envoyproxy_protoc_gen_validate//bazel:repositories.bzl", "pgv_dependencies")

pgv_dependencies()

And I added this gazelle directive, as suggested here:
# gazelle:go_proto_compilers @com_envoyproxy_protoc_gen_validate//bazel/go:pgv_plugin_go, @io_bazel_rules_go//proto:go_proto
gazelle(
    name = "gazelle",
    gazelle = "//:gazelle_binary",
)

When I try to bazel build //... I got this error:
compilepkg: missing strict dependencies:
	/private/var/tmp/_bazel_xxx/f7366cb40f218cae24698ffbd08f4bf3/sandbox/darwin-sandbox/2751/execroot/io_xxx_go/external/com_envoyproxy_protoc_gen_validate/templates/shared/context.go: import of "github.com/lyft/protoc-gen-star/v2"

What am I missing here? Looks like bazel is not loading some go dependencies from protoc-gen-validate.

I have updated protoc-gen-validate and now I am facing the same issue as https://github.com/bufbuild/protoc-gen-validate/issues/535

@AFMiziara FYI should be fixed in https://github.com/bufbuild/protoc-gen-validate/releases/tag/v1.0.2

Thank you for the heads up @alexbozhenko

Hello, thanks for your interest! As explained in the README, this project is in maintenance mode. We recommend upgrading to protovalidate.
I'm going to go ahead and close this issue, but feel free to open one against protovalidate if needed. Thanks!


Update naga to gfx-18

When trying to update my dev environment to the latest naga, I saw that api changes a little bit. This PR update to latest available naga (a0b5717fed0bd1c8536fb2204f308d6db39d295f)
Hope this will be helpful 😄
PR checklist:

[ ] make succeeds (on *nix)
[ ] make reftests succeeds
[x] tested examples with the following backends: OpenGL

Thank you!
Let's release a naga tag after https://github.com/gfx-rs/naga/pull/608 merges in.
For your code, I think we need to disable all validation in gfx's use of Naga. gfx-rs is meant to be totally unsafe, so there is no need to do extra work at this stage. In all the places where you use ValidationFlags, it should be ValidationFlags::empty().

@Gordon-F gfx-18 tag is published now, please use it

bors r+


Fixing 'boostrap' typo

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Thanks @Lanik42


[RESTEASY-1578] : Mark classes in org.jboss.resteasy.logging in resteasy-legacy module as deprecated.

[RESTEASY-1578] : https://issues.jboss.org/projects/RESTEASY/issues/RESTEASY-1578

Retest this please.


[DeviceUptime] retain last battery voltage when device is offline

Summary of Changes (What does this PR do?)

retain last battery voltage when device is offline

Is this change ready to hit production in its current state?

[x] Yes
[ ] No

Status of maturity (all need to be checked before merging):

[x] I consider this code done
[ ] I've tested this locally
[ ] This branch has been LGTM'ed by a reviewer

How should this be manually tested?

Set the .env file for device-uptime micro-service. Here is the .env
Run the job following the instructions in the README.md file
The Job should run successfully. You can also check the db for fun!

What are the relevant tickets?

PLAT-798

Screenshots (optional)

We might want to tag this issue which is related to this. @ja-odur


Added support for mutations, e2e tests, bugfixes

This PR fixes #42.

Added support for mutations and body parsing (@ljli)
Enhanced testing infrastructure to be able to test the whole request flow
Added additional descriptions from the graphql schema and new @OADescription directive
Bugfixes for requestBody validation & required parameters when in path

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@d000138). Click here to learn what that means.
 Consider uploading reports for the commit 50882cb to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #63   +/-   ##
=======================================
  Coverage        ?   64.74%
=======================================
  Files           ?       11
  Lines           ?      573
  Branches        ?      133
=======================================
  Hits            ?      371
  Misses          ?       95
  Partials        ?      107

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Windows tests on Ibm pipeline

Signed-off-by: anandrkskd<EMAIL_ADDRESS>What type of PR is this?
/kind tests
What does this PR do / why we need it:
This PR adds the necessary scripts to run windows tests on IBM pipeline
Which issue(s) this PR fixes:
Fixes #5210
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

[x] I have read the test guidelines

How to test changes / Special notes to the reviewer:
Reviewer can check this PR for POC

OpenShift Tests finished with errors.
View logs: TXT HTML

Unit Tests finished successfully.
View logs: TXT HTML

Kubernetes Tests finished with errors.
View logs: TXT HTML

Kubernetes Tests finished successfully.
View logs: TXT HTML

OpenShift Tests finished successfully.
View logs: TXT HTML

Kubernetes Tests finished successfully.
View logs: TXT HTML

Unit Tests finished successfully.
View logs: TXT HTML

OpenShift Tests finished successfully.
View logs: TXT HTML

/lgtm
/approve

Kubernetes Tests finished successfully.
View logs: TXT HTML

Unit Tests finished successfully.
View logs: TXT HTML

OpenShift Tests finished successfully.
View logs: TXT HTML

/test v4.9-integration-e2e
[Fail] odo devfile push command tests [BeforeEach] when creating a nodejs component when doing odo push --debug and devfile contain debugrun should execute debug commands
/go/src/github.com/redhat-developer/odo/tests/helper/helper_cmd_wrapper.go:100

/test v4.9-integration-e2e

/test psi-kubernetes-integration-e2e

/test psi-kubernetes-integration-e2e

/override ci/prow/psi-kubernetes-integration-e2e


Does this project support accessing the Gemini API through a proxy server?

Hi,
Thank you for your contribution and sharing, it's really great.
Does this project support accessing the Gemini API through a proxy server?
I am unable to access Google from my region.

I suggest deploying your project in a country where Gemini Pro API is accessible, or adding generativelanguage.googleapis.com to the proxy whitelist in your router, such as in OpenWrt.
This project uses the Google Genai SDK, and until the SDK supports proxy configuration, this feature cannot be implemented.

https://github.com/google/generative-ai-go/issues/17

google/generative-ai-go#17

Thank you very much for your reply. I will try to modify the code in handler.go and recompile to see if it works, or could you add an additional parameter?

google/generative-ai-go#17

Thank you very much for your reply. I will try to modify the code in handler.go and recompile to see if it works, or could you add an additional parameter?

Proxy support will not be considered until the issue with Google SDK is confirmed as closed.

https://docs.docker.com/engine/reference/commandline/dockerd/#running-a-docker-daemon-behind-an-https_proxy
You can refer to here to configure proxy in docker container


fix: test change

Fixes or implements VF-XXX
Brief description. What is this change?

Implementation details. How do you make this change?

Setup information

Deployment Notes

Related PRs

branch
PR

other_pr_production
link

other_pr_master
link

Checklist

[ ] this is a breaking change and should publish a new major version
[ ] appropriate tests have been written

bors merge

bors retry

bors merge

bors merge

bors merge


⚠ Jenkins Plugins Artifactory has degraded performance

In bf033f1, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 2490 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 25f88e4 after 1 hour, 40 minutes.


Host Based Authentication Configuration Issue

Hi All,
This is my crate.yml configuration for host based authentication to restrict connections to CrateDB only from certain IP Addresses (here in this case <IP_ADDRESS>):
auth:
  host_based:
    enabled: true
    config:
      0:
        user: crate
      a:
        user: naresh
        address: <IP_ADDRESS>
        method: trust
     b:
        user: naresh
        address: <IP_ADDRESS>
        method: trust

Using below code from a stand-alone java application I am able to connect to CrateDB.
Connection con = DriverManager.getConnection(
                    String.format(Locale.ENGLISH, "jdbc:crate://%s:%d/?user=naresh", "localhost", 5434));

Using below code from a stand-alone java application with IP address,
Connection con = DriverManager.getConnection(
                    String.format(Locale.ENGLISH, "jdbc:crate://%s:%d/?user=naresh", "<IP_ADDRESS>", 5434));

I am getting following error while connecting to CrateDB:
io.crate.shade.org.postgresql.util.PSQLException: Connection to <IP_ADDRESS>:5434 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Can someone help me with the crate configuration for host based authentication.

hi @naresh3591, did you create the user within cratedb?
create user naresh

the configuration is just the configuration. crate also needs to know the users.

yes @joemoe  I have created the user in the cratedb.

ah @naresh3591, just saw you set the ip of cratedb host, but you need to set the ip of the connecting host in the configuration file. so the one the java application is running on.

I am trying to connect to CrateDB using IP address instead of "localhost". Here both java application and CrateDB are on same IP and the same IP is configured in crate.yml for host based authentication. Its working while using localhost but it is getting failed while using IP.

@joemoe
do we need any specific configurations for remote access ?  to differentiate localhost Vs IP/DNS name?

@naresh3591 @srinijalagam it looks like there is at the moment a problem with multiple ip configurations. we are investigating there deeper.
what is your network.host setting?

@joemoe , I have configured network.host setting with my local ip address to <IP_ADDRESS>.
while running crate server , I am getting following error:
[2017-08-22T19:22:39,029][INFO ][o.e.b.BootstrapProxy$1   ] [Testa del Rutor] initialized
[2017-08-22T19:22:39,029][INFO ][o.e.n.Node               ] [Testa del Rutor] starting ...
[2017-08-22T19:22:39,247][INFO ][psql                     ] [Testa del Rutor] publish_address {<IP_ADDRESS>:5432}, bound_addresses {<IP_ADDRESS>:5432}
[2017-08-22T19:22:39,404][INFO ][o.e.t.TransportService   ] [Testa del Rutor] publish_address {<IP_ADDRESS>:4300}, bound_addresses {<IP_ADDRESS>:4300}
[2017-08-22T19:22:39,435][INFO ][o.e.b.BootstrapCheck     ] [Testa del Rutor] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2017-08-22T19:22:39,435][ERROR][o.e.b.BootstrapProxy     ] [Testa del Rutor] node validation exception
bootstrap checks failed
initial heap size [268435456] not equal to maximum heap size [1073741824]; this can cause resize pauses and prevents mlockall from locking the entire heap
[2017-08-22T19:22:39,450][INFO ][o.e.n.Node               ] [Testa del Rutor] stopping ...
[2017-08-22T19:22:39,586][INFO ][o.e.n.Node               ] [Testa del Rutor] stopped
[2017-08-22T19:22:39,586][INFO ][o.e.n.Node               ] [Testa del Rutor] closing ...
[2017-08-22T19:22:39,633][INFO ][o.e.n.Node               ] [Testa del Rutor] closed

in this case, you need to set the CRATE_HEAP_SIZE environment variable https://crate.io/docs/crate/reference/configuration.html#crate-heap-size
but nevertheless there is still a problem if you want to have a user who can access crate from the instance host itself and also from another host.
so if you want to access it from the crate instance itself you need to set it to <IP_ADDRESS>. if you want to access it from outside you need to set it to the hosts ip. setting both seems to have a problem, which we are investigating at the moment.

@joemoe  thanks for your time and valuable inputs on network.host and auth configuration.
seems to be an issue with protocol attribute in host based authentication and network.host. once protocol attribute is removed it worked with below auth configurations are working fine .
In my case I have crateDB was on one of the 192.168.220.x as docker instance and also on windows 7 system.
0 , allowed to access only from <IP_ADDRESS> for both http and JDBC
#1 , it was working fine for only <IP_ADDRESS> and <IP_ADDRESS> for JDBC and any for any other it failed the authentication.
network.host= <IP_ADDRESS>  //for any host
Or
network.host= site  // 192.x.x.x in domain
Or
network.host =site, <IP_ADDRESS> // 192.x.x.x and localhost
auth:
host_based:
enabled: true
config:
0:
user: crate
address: <IP_ADDRESS>
method: trust
1:
user: srini
address: <IP_ADDRESS>
method: trust
2:
user: srini
address: <IP_ADDRESS>
method: trust

@srinijalagam glad that helped. we'll test that with different protocol settings. at first glance this doesn't seem to be the problem, but we'll confirm that.
closing that issue for now, feel free to reopen or open a new one, whenever something comes up again.


Automate the swiftdialog app installation or version validation

As discussed, we need a built in automation for the swift dialog version validation. If in case I am using old versions of swifdialog and install it latest version so it will help us to additional effort to do
Swiftdialogversion =$8any version /Autoupdate get always latest xyz version.

Thanks, @mani2care!

@mani2care:
After additional consideration, I'm going to close this as "not planned" as I can't see us every using this feature and your requirement is quite easily met by leveraging the Packages payload in your Jamf Pro policy.


Add support for custom headers and request-timeout

Addresses #567 and #1000
Well it became trivial to add headers and opaque-id support for everything in the course of this refactor so I added that too.
Done:

support request-timeout parameter for most operation types
support opaque-id parameter for most operation types
support headers dict parameter for most operation types
document expanded parameter support

P.S. I have signed the contributor agreement, will troubleshoot the mismatch

Hi, @DJRickyB , thank you very much for your contribution! This is good work so far. I have one overall suggestion that might make the code cleaner. It also requires a bit of context.
We hope to one day utilize more than just the timeout in the future, for instance, the opaque-id, so it might make sense to consolidate all of the different Runner implementations to use a single method, such as this method, and use it to populate all of the Runner classes. As is, many of them do some very similar operations with their params to extract the request-params, and maybe we can use a common method to both extract that, as well as ensure we populate the timeout. What do you think of this idea/suggestion?
I have also added just a few minor nits to the pull request that I saw right off the bat, before realizing we could extract the common functionality into the Runners.

Thank you Michael!  Your timing is perfect, I was planning on finishing this PR this weekend.  Please pardon the force-push, it's not usually my style but I wanted a way to get prior git history to apply to the comment lines I had touched

@elasticmachine ok to test

grr, my magic incantation is incorrect.
@elasticmachine add to allowlist please

ok at this point w/ the proper incantation, your PR will now run tests for each commit. If it fails for some reason, go ahead and fix it up (or ask for help if need be), and push, and it should run the tests again.

is there somewhere i can push new test tracks to exercise the functionality? good to see it looks like no regressions :)

If you push some test tracks, it would be rad to just push them to a branch, and then link the commands you use (assuming the repos were checked out locally). Ill test them myself to double check and then we can call this done and merge it. Im off tomorrow, but I should be able to get to them by monday if you push some branches up to your fork of rally tracks.

Also, I forgot to add, if you are using and existing corpora, you can use the built in rally --test-mode flag which will only ingest a small sample set of data, so your feedback loop is much tighter when testing track changes.

Thanks, sorry for the delay.  Running with local test tracks and watching with wireshark revealed a couple of misses in params.py based on how parameter parsing for a given operation was set up.  The changes I made add 3 None values to the params dictionary for a few types, so now the size check tests have changed in a few places (see failures from your CI).
I'm inclined to delete the size checks as there may be more of these in the future, and replace them with a variety of checks on the new parameter keys.  Thoughts?
FYI I'm just using this locally: https://github.com/elastic/rally-tracks/commit/d7b1ac4d92ca6e49b326f72d2f24ff4b612457f4


Copying name of entry in vocab.sentier.dev

Describe the bug
When I click the "copy preferred name" button on an arbitrary entry, it only copies the first number and not the readable name.
To Reproduce
Steps to reproduce the behavior:

Go to this entry for municipal waste
Click on the copy button by the preferred name
Paste it somewhere.
Make sure you pick something with a leading number like "2711 Petroleum gases and other gaseous hydrocarbons" and not something that's entirely text like "Crude Oils"

Expected behavior
The entire preferred name field is copied, or at least just the text part.
Desktop (please complete the following information):

OS: Win 11
Browser: Edge
Version 129.0.2792.79 (Official build) (64-bit)

This is the way that SKOSMOS works - it's possible to this can be changed in a config file:

https://github.com/NatLibFi/Skosmos/wiki/Configuration
https://github.com/NatLibFi/Skosmos/wiki/Setting-the-property-order

But for the time being highlighting and copying is a reasonable workaround.


Add a default prompt

Seems like CI unhappy about the allocator on nightly

There's been a new patch release for esp-alloc, though I'm not sure it will make any difference. Just FYI, though.


Added About page and button

Kindly show me output so that I can review your PR ....also mentioned your issue number

Hello @Meenal21i There is already a about us If your can improve then go through that

Is issue already fixed


ArmCord freezes when someone calls

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
No
System Info and Version
 System/Version info
Hyprland, built from branch  at commit fe7b748eb668136dd0558b7c8279bfcd7ab4d759  (props: bump version to 0.39.1).
Date: Tue Apr 16 16:01:03 2024
Tag: v0.39.1, commits: 4460

flags: (if any)

System Information:
System name: Linux
Node name: shomachine
Release: 6.10.8-200.fc40.x86_64
Version: #1 SMP PREEMPT_DYNAMIC Wed Sep  4 21:41:11 UTC 2024

GPU information:
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Tiger Lake-LP GT2 [UHD Graphics G4] [8086:9a78] (rev 03) (prog-if 00 [VGA controller])

os-release: NAME="Fedora Linux"
VERSION="40 (KDE Plasma)"
ID=fedora
VERSION_ID=40
VERSION_CODENAME=""
PLATFORM_ID="platform:f40"
PRETTY_NAME="Fedora Linux 40 (KDE Plasma)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=40
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=40
SUPPORT_END=2025-05-13
VARIANT="KDE Plasma"
VARIANT_ID=kde

plugins:

Description
Whenever someone calls me in Discord while I have the ArmCord client opened, the ArmCord client completely "freezes" - I can't interact with it, but the call music and chats still update.
How to reproduce

be me
install hyprland on fedora 40 and configure some stuff on it
friend calls me
armcord is now a music jackbox

Crash reports, logs, images, videos
No response

Calling seems to work on the browser version, microphone works OOTB, only issue is the little window that shows that a tab is using my microphone gets treated as its own window, although I can always just send it to the shadow realm (the 10th workspace)

very old version + my guess is missing notif daemon


ecdsa signature snark

Closing this pull request. It seems to have gone out of wack. I've submitted another PR.


Compatibility: MetaHookSv Advanced video settings menu (AVX2)

With ABCEnhance loaded, it looks like this:

If I do not load it, it looks normal, like this:

For reference, my system is using the AVX2 plugins.

fixed in 5a9af22


Really deprecate Sematext Agent Helm chart

What this PR does / why we need it:
Final deprecation for this chart.
Which issue this PR fixes
n/a
Special notes for your reviewer:
n/a
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/lgtm


RequestRejectedException should extend InterledgerProtocolException

Currently, RequestRejectedException extends Exception. We should consider extending InterledgerProtocolException instead.

RequestRejectedException is no longer part of Quilt.


Easier integration into build system

Hello,
I use CT as a backend for my helicopter path planner and struggled to integrate it into my existing build system. I encountered two problems with the existing install script: First of all, it automatically installs each module after building it so that interdependencies of consecutive modules can be resolved. This needs privileged access which is an annoyance when building my project. Second, without a top level CMakeLists.txt, you cannot simply add CT as an external project to your own project.
Since profound changes to this project are most likely rejected, I did the bare minimum to make CT work with my code. I added a root CMakeLists.txt so that it can be easily integrated as an external project. Since all modules are on the same hierarchy level, but have interdependencies, I had to cache the targets like
set(ct_core ct_core CACHE INTERNAL "ct_core library target.")
This causes ct_core to be found by the other modules without the need of installing every single module.
Basically, that's it, but I encountered another problem when building CT on a linux machine without Python 3 libs installed. In ct_core/CMakeLists.txt, CMake tried to include Python headers even thou they have not been found, which is now being prevented. Your build script should still work fine btw.
This is my second try on this problem and I hope that this solution is now acceptable for you.
Regards
Schulz0r

Could we make the models optional in the root CMakeLists.txt? They have their place in the CT, but they solve specific problems while taking their time for compilation.
Personally, I work with helicopter flight dynamics and don't need them in my production code.

Good news, it's working without a CMakeLists.txt in the root directory of this project. With the latest update, I can use CT as a backend for my path planner software. Please review my changes to your project and accept if they are okay.

I tried it in combination with catkin tools, it works flawlessly. Thanks for contributing this!
What is the trick that you are now employing to include it in your project?

First of all, I use CMake to include external projects which are not available in software repositories. The trick is described here.
I have a CMakeLists-ControlToolbox.txt.in which contains the externalproject_add() function call. Then, I can automatically add CT in case it is not installed on the system like this:
if(NOT ${ControlToolbox_FOUND})
    # Download and unpack CT at configure time

	configure_file(CMakeLists-ControlToolbox.txt.in ControlToolbox-download/CMakeLists.txt)
	execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMAKE_PREFIX_PATH=${BINARY_DIR} .
	  RESULT_VARIABLE result
	  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ControlToolbox-download/ )

	if(result)
	  message(FATAL_ERROR "CMake step for ControlToolbox failed: ${result}")
	endif()

        # clone project during configure time to src directory

	execute_process(COMMAND ${CMAKE_COMMAND} --build .
	  RESULT_VARIABLE result
	  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ControlToolbox-download/ )

	if(result)
	  message(FATAL_ERROR "Build step for ControlToolbox in commandmodel failed: ${result}")
	endif()

        # now add all CT needed modules

	add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/ControlToolbox-src/ct_core
	  ${CMAKE_CURRENT_BINARY_DIR}/ControlToolbox-build/ct_core
	  EXCLUDE_FROM_ALL)
   	add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/ControlToolbox-src/ct_optcon
	     	${CMAKE_CURRENT_BINARY_DIR}/ControlToolbox-build/ct_optcon
      		EXCLUDE_FROM_ALL)
endif()


Implement VPC health status collector

This collector will collect metrics for telling us that a particular VPC is healthy or not. VPC should include the healthiness of T0/T1 routers, stateful services inside it, logical ports, etc. that belong to the VPC.

This is not a good metrics since NSX doesn't understand "VPC", closing this


⚠ Bofrost.be has degraded performance

In c7c1374, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1198 ms

Resolved: Bofrost.be performance has improved in ddac9d5.


API function which determines A4/Letter default for user's location

In the PostScript Printer Application I have added the following function to determine by the system's locale environment variables whether the standard page size at the user's location is A4 or Letter:
static const char *ps_default_paper_size()
{
  static char result[128];            // Resulting default paper size
  char        *val;                   // Paper size/locale value
  int         i;
  const char  * const lc_env_vars[] = // Environment variables with suitable
  {                                   // locale information
    "LC_PAPER",
    "LC_CTYPE",
    "LC_ALL",
    "LANG",
  };

  memset(result, 0, sizeof(result));
  for (i = 0; i < sizeof(lc_env_vars) / sizeof(lc_env_vars[0]); i ++)
  {
    if ((val = getenv(lc_env_vars[i])) == NULL)
      continue;
    if (!strcmp(val, "C") ||
	!strcmp(val, "POSIX"))
      continue;
    if (!strcmp(val, "en") ||
	!strncmp(val, "en.", 3) ||
	!strncmp(val, "en_US", 5) ||
	!strncmp(val, "en_CA", 5) ||
	!strncmp(val, "fr_CA", 5))
      // These are the only locales that will default to "Letter" size...
      strcpy(result, "Letter");
    else
      // Rest of the world is A4
      strcpy(result, "A4");
    if (result[0])
      break;
  }
  return (result[0] ? result : NULL);
}

It returns "A4" or "Letter" if it can determine suitable locale information and NULL otherwise.
I use it when creating a new print queue and the default page size for the printer is A4 or Letter and the printer supports both A4 and Letter page sizes to get the actually more suitable size as the default. I use following code for that (Note that the PostScript Printer Application gets the printer capabilities from the printer's PPD file):
 if ((val = ps_default_paper_size()) == NULL ||
	(option = ppdFindOption(ppd, "PageSize")) == NULL ||
	((choice = ppdFindMarkedChoice(ppd, "PageSize")) != NULL &&
	 strcasecmp(choice->choice, "Letter") &&
	 strcasecmp(choice->choice, "A4")) ||
	(choice = ppdFindChoice(option, val)) == NULL)
      choice = ppdFindMarkedChoice(ppd, "PageSize");

choice is the default to be used for the "PageSize" option (and so also for the size in media_default). If we can determine a standard size from the locale and if the default of the "PageSize" option in the PPD is A4 or Letterwe switch to A4 or Letter according to the locale, otherwise we stay with whatever is the default in the PPD.
My feature request here is to add a function like ps_default_paper_size() to the public API of PAPPL (call it something like papplDefaultPaperSize() then) and perhaps also another function which does something similar to my example code but more generally usable (applying to a pappl_media_col_t record or to media_default in a pappl_pr_driver_data_t data structure). It would be great when an A4/Letter default gets auto-adjusted when creating a new queue,

@tillkamppeter I will consider this, however there are many environments where this defaulting is insufficient. I'd also want to support libpaper on platforms that have it...

es_CL default is Letter. Legal is another format used for, well, legal documents here. [An] formats are foraneous here.

[master c08ee0f] Add papplLocGetDefaultMediaSizeName API (Issue #167)

OK, thanks, but Brazil has A4 as default paper size. This is my personal experience from being there. I know it at least from the states of Minas Gerais and Espirito Santo, but I assume that it is A4 in the whole country.

I would even say that the whole South America uses A4, except es_CL as reported above ...

@tillkamppeter Thanks, I was able to find a more authoritative source than OOo and Windows: https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html
[master ef6f1f8] Update list of US Letter countries.


Store: Add time & duration based partitioning

Changes
V2 of https://github.com/improbable-eng/thanos/pull/957/files
Doesn't involve any deletions & adds support for durations
https://github.com/improbable-eng/thanos/issues/814
Verification
Multiple tests added.
Validated mintime > maxtime behaviour
./thanos store --log.level=debug --min-block-start-time=2020-01-01T00:00:00Z --max-block-start-time=2019-01-01T23:59:59Z --objstore.config-file=$UBUNTU_HOME/thanos/dev-telecom.yaml
level=info ts=2019-05-24T12:07:19.750115246Z caller=flags.go:87 msg="gossip is disabled"
store command failed: invalid argument: --min-block-start-time '2020-01-01 00:00:00 +0000 UTC' can't be greater than --max-block-start-time  '2019-01-01 23:59:59 +0000 UTC'

./thanos store --log.level=debug --min-block-start-time=-10d --max-block-start-time=-15d --objstore.config-file=$UBUNTU_HOME/thanos/dev-telecom.yaml
level=info ts=2019-05-24T12:08:18.891954647Z caller=flags.go:87 msg="gossip is disabled"
store command failed: invalid argument: --min-block-start-time '-10d' can't be greater than --max-block-start-time  '-15d'

validated blocks loaded
./thanos store --log.level=debug --min-block-start-time=-10d --max-block-start-time=-5d --objstore.config-file=$UBUNTU_HOME/thanos/dev-telecom.yaml

Checked the metrics:
# HELP thanos_bucket_store_block_loads_total Total number of remote block loading attempts.
# TYPE thanos_bucket_store_block_loads_total counter
thanos_bucket_store_block_loads_total 14.0
# HELP thanos_bucket_store_blocks_loaded Number of currently loaded blocks.
# TYPE thanos_bucket_store_blocks_loaded gauge
thanos_bucket_store_blocks_loaded 7.0

Actually ran this in dev.

@bwplotka @claytono @brancz
Maybe we should actually do filtering based on just block's start time, for duration based approach it makes sense:
Lets's say
Thanos Store1 --min-time=0 to -max-time=2w
Thanos Store2 --min-time=2w to -max-time=1m
blocks would just constantly flow from Store1 to Store2, without gaps

@povilasv Sorry, I didn't see this newer reply before replying to the older one.  Filtering on just block start time would work well for us.

I think looking at block's start time makes most sense for time based partitioning.
I've changed the implementation and updated docs & tests.
@brancz and @bwplotka PTAL

I've renamed the flags and test it in dev environment. There is  quay.io/utilitywarehouse/thanos:time-partioning-2019-05-24-00cf917a with docker image.
This is how it looks:
Old:

New with additional Thanos Store:

New Config:
2x stores with:
      containers:
      - args:
        - store
        - --log.level=info
        - --data-dir=/var/thanos/store
        - --objstore.config-file=/etc/thanos/config.yaml
        - --index-cache-size=12GB
        - --chunk-pool-size=6GB
        - --max-block-start-time=-40h # This will skip blocks, which start time < now-40h, as they are served by sidecar
        - --min-block-start-time=-5w # This will serve blocks up to now-5w

2 Store's with:
      containers:
      - name: thanos-store
        image: quay.io/utilitywarehouse/thanos:time-partioning-2019-05-24-00cf917a
        args:
        - store
        - --log.level=info
        - --data-dir=/var/thanos/store
        - --objstore.config-file=/etc/thanos/config.yaml
        - --index-cache-size=12GB
        - --chunk-pool-size=6GB
        - --max-block-start-time=-5w

The idea behind this config is that:
thanos sidecar responds data with < 40h
thanos sidecar + thanos store responds to data with >40h && <= 48h
thanos store repsonds with >48h < -5w
another thanos store responds with >5w
As stated before overlaping blocks are fine, Thanos Querier merges them.
In current default config we are constantly merging responses from Sidecar and Thanos Store Gateway.

 Imagine if you have 10 years of data or 100 years of data, we will need mainframes to handle 100year type of queries. Sharding does solve this.

@bwplotka I'd like to see this merged because it solves an actual problem we have.  I'm fine with other approaches if there is a PR you'd prefer over this one.  Unfortunately the operational burden of manually partitioning into multiple buckets is becoming too much.
If there isn't a mainline approach for horizontal scaling, we're going to have to carry a patch internally for this sort of functionality.  That's a burden we'd really like to avoid if possible.

Waiting for @povilasv on this. If you feel blocked you can indeed apply patch to your fork, but we would love to unblock you.
However I would love to make it right and non confusing from beginning. IMO min-time and max-time will help you.
Also we are considering adding something like this to store gateway as well: https://github.com/improbable-eng/thanos/pull/1245 so you can shard functionally.

@bwplotka

paritionining that is agnostic to storage format would be more both more flexible and 5 times less confusing then this. Happy to discuss though.

I don't follow. So this just introduces time sharding based on time ranges. In any case the data will be time lined so the flags are agnostic as far as I know. Could you elaborate on thjis?

Lastly, IMO time-sharding is a must. Imagine if you have 10 years of data or 100 years of data, we will need mainframes to handle 100year type of queries. Sharding does solve this.

I am not opposed to time sharding. I am only saying that block based partitioning in unneccesary tying user to block formats that can be fully dynamic and eventually consistent or might even disappear totally in next iterations of Thanos and TSDB.

Again in this case, we can agree on flags, still land this implementation and warn users about overlapping blocks. If / when we have something better, we can just warn users about implementation change and keep the same flags.
If you don't like the flag names, suggestions are welcome :)

If / when we have something better, we can just warn users about implementation change and keep the same flags

Warn users? And who will spent time to explain how to use it? And how to explain if we don't have any good answer to dynamic blocks.
It's not about flag names, it's about the user expierience. IMO we need min-time and max-time that would in naive way map to underlying blocks based on what min and max time they have in meta.json. Easy to use, low cognitive load and expected behaviour. Plus it should solve requirements mentioned here.
Any argument why we should introduce this massive complexity?

I agree with @bwplotka here. Two flags are enough, and whether that resolves to the full block being handled or not is up to the implementation detail of the store. Something we need to be careful here though, especially with relative times is clock synchronization, meaning we probably intentionally want overlap in time ranges to account for slight clock synchronization issues. Basically we want as much overlap as we want to tolerate clock skew.

I think we had agreement offline on this @povilasv.
Do you have time to finish this? (: It would be nice to have.

I think we had agreement offline on this @povilasv.

Is there a gist that you can share?

Do you have time to finish this? (: It would be nice to have.

:+1: Please let us know if we can help in any way.

I'm continuing work on a fresh PR https://github.com/thanos-io/thanos/pull/1408


Add RBAC with Azure AD authentication provider

Add RBAC based on provider roles.
Add Azure Active Directory (AD) as authentication provider, the first one with roles enabled.
Add role mapping from provider role names to Toolpad role names, set via UI in application.yml.
Disallow users from accessing pages if they don't have the correct roles (client-side only, as our routing for these pages is client-side? Should we also try to block by HTTP somehow or is it not worth it?). In a separate PR I am disallowing queries from being called if user does not have the necessary roles, if possible, just need to finish it up if needed.
Hide inaccessible pages in sidebar + show message that page is inaccessible if user somehow still navigates to them.

Video
(I fixed the Azure icon color already but it's not in the video)
Also not shown in video: it's possible to assign multiple provider roles to a Toolpad role by separating the roles with commas such as admin, reader,writer.
https://github.com/mui/mui-toolpad/assets/10789765/b97dcef1-f1e5-4c6c-97ea-0c922b903bfd

I saw something else wrong in the video - the admin-only page is showing when it shouldn't, feel free to wait before reviewing until I add some fix.


WSFederation Delegation: Allow multiple instances of ADFS for CAS configuration

Presently, CAS can only allow and support a single ADFS instance for authN delegation. This can be relaxed and improved to allow for multiple instances by, for instance, indexing the properties. The same sort of behavior is already applied for CAS, SAML2 and OIDC external IdPs.

Going to start reviewing this shortly.

This is now done.


Object spread vulnerable to prototype pollution from  proto

TypeScript Version:  3.2.0-dev.20181117

Search Terms:

object spread __proto__
object spread object.assign

Code
var o = Object.create(null);
o.a = 'foo';
o.__proto__ = [];
var o2 = {...o};
console.log(Array.isArray(Object.getPrototypeOf(o2))); // true, expected: false

Expected behavior:
false should be logged. Object spread should not be vulnerable to __proto__ prototype pollution.
Actual behavior:
It logs true. If you paste this code directly in a browser console it prints false.
This is because object spread is desugared by TypeScript to a bare Object.assign which behaves differently: Object.assign invokes property setters and object spread shouldn't (see tc39/proposal-object-rest-spread:Issues.md@master#setters for an example).
This was originally reported to Babel at https://github.com/babel/babel/issues/7382 and has since been fixed (a few months ago).
This may be important for some security contexts which is why TC39 decided to not invoke setters on object spread - Object.assign etc. can be monkey-patched in environments with enhances security but it's impossible to patch syntax.
Playground Link: https://www.typescriptlang.org/play/#src=var o %3D Object.create(null)%3B
o.a %3D 'foo'%3B
o.__proto__ %3D []%3B
var o2 %3D {...o}%3B
console.log(Array.isArray(Object.getPrototypeOf(o2)))%3B%20%2F%2F%20true%2C%20expected%3A%20false%0D%0A
Related Issues:
I haven't found anything related.

search terms: spread setter
#13668

Thanks, I didn't try searching via setter. Closing as a duplicate then.


Update README.md

Added summarize moderator description

Hi @Kvadratni
Nice catch! Thanks for updating the readme.  I guess you might have checked out the old commit of goose. I noticed the section has been moved to https://github.com/block-open-source/goose/blob/aa70408ff7fbb108d162c546a973881888509766/docs/configuration.md?plain=1#L42.   You may move your change to the new file.


Adding an empty server to the network prevents discovery of resources on other servers

Write a client that does a discovery every two seconds:var device = require( "./index" )();

function throwError( error ) {
	throw error;
}

function resourceFound( resource ) {
	console.log( "resourceFound: " + JSON.stringify( resource, null, 4 ) );
}

function repeatedDiscovery() {
	device.client.addEventListener( "resourcefound", resourceFound );
	setInterval( function() {
		console.log( "Calling findResources()" );
		device.client.findResources().catch( throwError );
	}, 2000 );
}

device.configure( {
	role: "client",
	connectionMode: "acked"
} ).then( repeatedDiscovery, throwError );

Run node js/server.discoverable.js and observe as the client repeatedly discovers the server
Write an empty server and run it:var device = require( "./index" )();

device.configure( {
	role: "server",
	connectionMode: "acked"
} );

Watch the output of the client

Expected: The client keeps discovering the one resource presented by js/server.discoverable.js
Actual: No resources are discovered until you kill the empty server

@poussa @nagineni @zolkis @siovene this is fixed in iotivity master.

I've asked iotivity-dev whether it might be possible to get this fix out in a 1.0.x release.

OK, so I realized that I wasn't handling the result value from the iotivity OCDoResult response correctly. @nagineni could you please verify that this fixes the discovery breakage for your use case?

... and by "this", I mean branch 34-handle-no-resource-response :)

@gabrielschulhof, thanks for the fix. I quickly checked and the discovery works fine with this change.


Non alphabetical list

Thanks for awesome package.
I am passing countriesList prop to use my own countries where the items are not places in alphabetical form. But the package handles it itself. How can I prevent this? Thanks for answer

Ok, I see that in getAll() function you order countries list by name. Please can you add some prop (for example orderBy prop) so that the users can choose whether they want to have ordered or non ordered list?

I created a fork and added that option. Please have a look and merge into your package. Thanks
https://github.com/DavitVosk/react-native-phone-input


SQL on FHIR view layer - POC implementation

This issue represents the work to implement and validate the WIP spec for the SQL on FHIR view layer.
The spec is here: https://github.com/FHIR/sql-on-fhir-v2/blob/master/fhir_analytics_spec.md

Tasks remaining:

[ ] Refactor implementation to use array representations
[ ] Get all view tests passing, and complete test suite
[ ] Implement extract operation on top of views
[ ] Implement aggregate operation on top of views


Create Event Request - Table 27 - OnBeforeCheckServLine

Add the following procedure customization, please:
local procedure CheckServLine(CurrFieldNo: Integer)
        var
            IsHandled: Boolean;
        begin
            //new event
            OnBeforeCheckServLine(IsHandled, Rec, CurrFieldNo);
            if IsHandled then
                exit;
            //new event
            ServInvLine.Reset();
            ServInvLine.SetCurrentKey(Type, "No.");
            ServInvLine.SetRange(Type, ServInvLine.Type::Item);
            ServInvLine.SetRange("No.", "No.");
            if not ServInvLine.IsEmpty() then begin
                if CurrFieldNo = 0 then
                    Error(Text017, TableCaption(), "No.", ServInvLine."Document Type");
                if CurrFieldNo = FieldNo(Type) then
                    Error(CannotChangeFieldErr, FieldCaption(Type), TableCaption(), "No.", ServInvLine.TableCaption());
            end;
        end;

        [IntegrationEvent(false, false)]
        local procedure OnBeforeCheckServLine(var IsHandled: Boolean; Item: Record Item; CurrentFieldNo: Integer)
        begin
        end;

@AlexanderYakunin
Hello. Have you had a chance to review this request? Are there any updates on this?

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 11042.


PrefetchVirtualMemory does not prefetch virtual memory (windows api bug)

Windows Build Number
10.0.19044.0
Processor Architecture
AMD64
Memory
16GB
Storage Type, free / capacity
SSD 512GB
Relevant apps installed
Windows
Traces collected via Feedback Hub
N/A
Isssue description
I tested PrefetchVirtualMemory to minimize page faults when creating a file mapping, and measured the performance (compiler ticks using __rdtsc() intrinsic) and the actual count of page faults (using GetProcessMemoryInfo) when processing files, with and without a call to PrefetchVirtualMemory.
To my surprise, PrefetchVirtualMemory does not work as advertise and does not do it's only job, which was to actually fetch the memory from disk as efficiently as possible to minimize page faults.
I used the following process for testing, loading a range of file sizes (I'll share my results for a ~500MB file):
I opened a file handle, created a memory map and a view of the whole file, then I processed the whole file making sure to touch every page of the allocated view.
Then I repeated the process, and called PrefetchVirtualMemory on the view before processing the file.
I got the exact same page fault count overall in both cases, and to add insult to injury, the performance was slightly worse with PrefetchVirtualMemory, making the whole thing useless as it is its only job.
Steps to reproduce
Running the following code on windows:
#include <psapi.h> // for GetProcessMemoryInfo

char process_file(const char *file_name, bool use_prefetch_virtual_memory) {
    HANDLE file_handle;
    file_handle = CreateFileA(file_name, GENERIC_READ, FILE_SHARE_READ,
                              0, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0);

    if(file_handle == INVALID_HANDLE_VALUE) {
        fprintf(stderr, "Could not open the file '%s'\n", file_name);
        return 0;
    }

    LARGE_INTEGER file_size;
    if(!GetFileSizeEx(file_handle, &file_size)) {
        CloseHandle(file_handle);
        fprintf(stderr, "Could not open the file '%s'\n", file_name);
        return 0;
    }

    size_t size = file_size.QuadPart;

    HANDLE mapping_handle = CreateFileMapping(file_handle, NULL, PAGE_READONLY | SEC_COMMIT, 0, 0, NULL);

    const char *view = (const char *)MapViewOfFile(mapping_handle, FILE_MAP_READ, 0, 0, 0);

    PROCESS_MEMORY_COUNTERS counter0, counter1, counter2;
    GetProcessMemoryInfo(GetCurrentProcess(), &counter0, sizeof(counter0));

    WIN32_MEMORY_RANGE_ENTRY memory_range_entry[] = {(void *)view, size};
    if(use_prefetch_virtual_memory) PrefetchVirtualMemory(GetCurrentProcess(), 1, memory_range_entry, 0);

    GetProcessMemoryInfo(GetCurrentProcess(), &counter1, sizeof(counter1));

    char result = 0; // I'm using "result" here only so that the optimizer won't skip this loop
    for(int i = 0; i < size; ++i) {
        result += view[i];
    }

    GetProcessMemoryInfo(GetCurrentProcess(), &counter2, sizeof(counter2));

    DWORD prefetch_fault_count = counter1.PageFaultCount - counter0.PageFaultCount;
    DWORD manual_fault_count   = counter2.PageFaultCount - counter1.PageFaultCount;

    printf("Using PrefetchVirtualMemory: %s\n", use_prefetch_virtual_memory ? "yes" : "no");

    printf("Page faults (during prefetch):        %d\n", prefetch_fault_count);
    printf("Page faults (during file processing): %d\n", manual_fault_count);
    printf("Page faults (overall):                %d\n", prefetch_fault_count + manual_fault_count);

    UnmapViewOfFile(view);
    CloseHandle(mapping_handle);
    CloseHandle(file_handle);

    return result;
}

Expected Behavior
Using PrefetchVirtualMemory: no
Page faults (during prefetch):        0
Page faults (during file processing): 161027
Page faults (overall):                161027

Using PrefetchVirtualMemory: yes
Page faults (during prefetch):        314
Page faults (during file processing): **MUCH LOWER** than 160713
Page faults (overall):                **MUCH LOWER** than 161027

Actual Behavior
Using PrefetchVirtualMemory: no
Page faults (during prefetch):        0
Page faults (during file processing): 161027
Page faults (overall):                161027

Using PrefetchVirtualMemory: yes
Page faults (during prefetch):        314
Page faults (during file processing): 160713
Page faults (overall):                161027

I'm also wondering how exactly to use this API function and what it actually does
We need to find a way to load the file into memory as quickly as possible


Deploying build to server

We need a way to move our build from it's storage container to our game servers. This could be triggered on some sort of timer or as soon as a new build is uploaded. Once the build files are on the the correct game server (dev/prod) then the current running executables need to be killed and deleted, then the new build executed.

Ended up just adding a step to my existing Jenkins job that kills the current server build process then transfers the new build files to my server then executes the new build. So the build is not directly being pulled from s3 but I do have storage of my builds somewhere at least.


Introduce release automation

Goal: introduce automation that's responsible for creating a github release when a new tag has been pushed to this repository's git remote.
AC:

Note: This is more-or-less mirrored from rukpak/combo's release pipeline setup

Introduce a .goreleaser.template.yaml file
That template file contains references for building/pushing container images, and creating github releases
Add a Makefile target that installs goreleaser as a tool dependency
Add a Makefile target that generates a goreleaser.yaml file using envtest on that .goreleaser.template.yaml file
Add a Makefile target that generates a goreleaser.yaml file, and runs goreleaser with the provided arguments configuration
Add a GHA workflow that runs goreleaser on every PR, push to the main branch, and new tag event triggers

This issue looks good and RukPak should be a good guide here for how to accomplish this. However, the one thing to keep in mind is what exactly we want the release artifact to be - a binary, yaml stream, etc.

@perdasilva @joelanford Just going through my open issues to see what can be closed: is this still an issue, or can it be closed?


Add square brackets around pod IPs

IPv6 pod IPs need to be enclosed in square brackets.  This closes #1858.

lgtm :+1:

Thanks @azenk for the contribution!


Memory reported in workload metrics is lower than actual

What kind of request is this (question/bug/enhancement/feature request):
bug
details
The memory usage shown in a pods workload metrics appears to be pulled from the cAdvisor metric container_memory_working_set_bytes, which doesn't necessarily reflect the total memory usage of a pod.
Other details that may be helpful:
container_memory_usage_bytes may be a better metric, it is a sum of container_memory_rss + container_memory_cache + container_memory_swap
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
v2.4.4 and below

gz#10641

Closing as this was reported in a currently unsupported version.


Unable to locate trainer class nnUNetTrainerNoMirroring when using TotalSegmentator in packaged PySide6 application

Hello,
I am developing a desktop application using PySide6 and packaging it as an exe using PyInstaller. The application uses TotalSegmentator to perform CT segmentation. However, when running the packaged executable, I encounter the following error during the segmentation process:
Unable to locate trainer class nnUNetTrainerNoMirroring in nnunetv2training.nnUNetTrainer, Please place it there (in any .py file)!

I have verified that when packaging the executable, the necessary libraries such as TotalSegmentator, torch, and nnUNetv2 were included. In my hiddenimports section, I have explicitly added these dependencies, but the error persists.
Here are the steps I followed:
Developed the application using PySide6.
Used PyInstaller with the appropriate hiddenimports to include the necessary libraries.
Ran the application, and during the segmentation phase, the above error occurs.
Environment:
TotalSegmentator version: 2.4.0
nnUNetv2 version: 2.5.1
torch version: 2.3.1
Operating system: Windows 10
Could you please provide guidance on what might be causing this issue and how to resolve it? Is there a specific way I should handle this trainer class when packaging the application, or is there something missing in my packaging process?
Thank you for your help!

the same error, directly run in pycharm or in command line is ok, but failed in packaging with pyinstaller.
So I exported all the models to onnx format, configuration files  ,and implemented all manipulations by myself, that works.


Crash on firing T7 beams

can't replicate this issue, possibly related to projectile positioning (fixed a while ago)


Should return exit status on error

Hi,
I found this bug while using Thor that can be reproduced with bundler:
$ bundle exec rake && echo $?
Could not locate Gemfile
$ echo $?
10

The proper output in a unix environment should be
$ bundle exec rake && echo $?
Could not locate Gemfile
10

It seems that Thor ignores everything before the &&

I may be misunderstanding you, but at least in bash the example you gave wont work. The && operator works by only running the rhs if the exit status of the lhs was 0, so your echo will never be called. Please reopen if I've misunderstood what you're saying.


Add Quarto Site

I hope this is self-explanatory. One of the sections I want to add to really reach out to our target audience.

I see what you are saying here, but maybe there is a way to explain it a bit more clearly. What about a section like this after "but better than QA"

What about my personal R-universe?
You can still maintain a separate R-universe for you or your organization. Your personal universe can hold either releases or development versions for you and your colleagues. At the same time, R-releases can deploy package releases to the wider community.

I was going for something a bit more direct than a FAQ entry. We can have a think about the entire front section before the instructions start and discuss later.

It would be nice if the README could stay concise. Maybe it should be for users only? We could have a separate pages for contributors just like there is one for moderators.

Yes, I would recommend to have a website with separate pages and all the links.

Created a thread: #35. This PR will be a big piece of it, I think.

Hmm didn't mean to add it to this PR, but it somehow got here. @wlandau please review the site - we can serve the static site (html pages) from GH pages.

The website files are fantastic, @shikokuchuo! I may have specific PRs after the first deployment of the site, but I really like what you have now.
It just occurred to me that the site will deploy to https://r-releases.github.io/help. What about https://r-releases.github.io? This would require putting the site in a new repo github.com/r-releases/r-releases.github.io, which I actually like. This way, github.com/r-releases/help can have a minimal README and serve just as the issue tracker and discussion forum. Does that sound good to you? If so, feel free to create and deploy that repo.
Apparently GitHub pages are disabled in our org, and I haven't been able to figure out how to enable them.

Ok, great, I'll do that!

We're now live at https://r-releases.github.io/. Closing this PR.


Working version of site

👷 Deploy Preview for erick-romero processing.
🔨 Explore the source changes: 04a6c11cecd8d1374ede7cfd830671352e55e02e
🔍 Inspect the deploy log: https://app.netlify.com/sites/erick-romero/deploys/61d7c32dd0ee22000893ad10


url_encode too enthusiastic

Hi,
when you ignore reserved chars you are not ignoring the complete list as per https://tools.ietf.org/html/rfc3986#section-2.2 which means that things that are specified refering to that version of the URI spec may not work as documented :)  Specifically I am using test data for https://github.com/jonathanstowe/URI-Template which is generated directly from the spec and  some are failing currently because of this.
When I've got a bit further with what I'm doing I'll look at making a PR for this.
Thanks.

You're right, thanks for picking up on this. My naiive implementation is wrong. Looking into it ...


Support DI for Azure Functions

Hi Jeremy
Are there any plans to support Azure Function DI (V2, Core 2.2)?

What kind of support are you looking for?

Kind of like with asp.net using the built in DI. Functions now have something similar.
e.g.
class Startup : FunctionsStartup {         public override void Configure(IFunctionsHostBuilder builder)         {                 builder.Services.AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining<CreateCustomerCommandValidator>());         } }

You can use FluentValidation’s AddemblyScanner class to do this already. It finds all the validators in a specific assembly, you can then just loop over the results and add them to the container.
The asp.net core integration is mainly about automatically invoking validators for controller action parameters. The DI registration is literally just a very small wrapper around AssemblyScanner that adds each validator type to the container. There isn’t really any point in having a whole package/integration component to do just this.


which is the test set of xGQA in Table4 ?

Hi,
I wonder which is the test set of xGQA in Table4 ?
iglue/datasets/xGQA/annotations/zero_shot/testdev_balanced_questions_en.json has 12578 samples.
However, in Table 1, the test set of xGQA has 9.6K samples, which corresponds to iglue/datasets/xGQA/annotations/few_shot/en/test.json for example.

Hi,
I also wonder, in table 3, which results of GQA you reported, test-dev or test-std?
Thanks!

Hi,
I just see another issue having the same question. My question has been solved. Thanks.


Improve test suite

Before 0.2 development actually started, we have to improve test suite in order to run tests with tox. This will give us assurance that everything works with every supported Python version. Also, we'll make sure we don't miss necessary dependencies.
Things to do:

[x] Install all supported Python interpreters: 3.5, 3.6, 3.7, pypy3
[x] Write tox scenarios for full test run and sanity check separately
[x] Integrate coverage in tox.
[x] Check how tests runs with 3.7 and pypy3, and fix code as necessary
[x] Fix Travis config for limited tox functionality

Now, we have powerful, flexible and informative test suite, managed by tox. The full run will:

run tests in all supported Python environments;
do sanity checks for build;
test how docs are building;
run code style checks;
do code analysis;
build code coverage;
run a benchmark.

Unfortunately, it could not be integrated in public CI solutions, since they has no option to run GPU-specific stuff now. Until then, we should pay attention to the manual tests before commits.
Also, separate tests section added to docs.


Build of dependencies fails with VS 2017 only installed (and MS Build tools)

Brief Description
The build of the dependencies with VS 2017 installed fails due to unrecognized ms build tools version.
The error is located in the Lua script for LLVM simply because there isn't a handler for VS 2017.
See here:
function get_toolset_configuration_name()
  if os.is("windows") then
    local function get_vs_version(ver) -- No handler for version greater than 19!
      if     ver == "19" then return "vs2015"
      elseif ver == "18" then return "vs2013"
      elseif ver == "17" then return "vs2012"
      else error("Unknown MSVC compiler version, run in VS command prompt.") end
    end

    local vsver = _ACTION
    local arch = "x86"

    if not string.starts(vsver, "vs") then
      local out = outputof("cl")
      local ver, arch = string.match(out, '(%d+).%d+.%d+.?%d*%s+%w*%s+(%w+)')
      vsver = get_vs_version(ver)
    end

    return table.concat({vsver, arch}, "-")
  end
  -- FIXME: Implement for non-Windows platforms
  return nil
end

Experimental Workaround
The function for getting the vs version can be changed to following:
local function get_vs_version(ver) -- Act like VS 2017 would be VS  2015
      if     ver >= "19" then return "vs2015" -- change it to a >= and do like it's vs2015
      elseif ver == "18" then return "vs2013"
      elseif ver == "17" then return "vs2012"
      else error("Unknown MSVC compiler version, run in VS command prompt.") end
    end

Is this fine for building the dependencies? Can someone check whether it makes any problems? This worked at least for me.

@realvictorprm thank you very much for agreeing to help as written at https://github.com/mono/CppSharp/issues/785 .
The workaround might... work but now that you've seriously got to adding this support, I think we'd better have it for real. That is, what's needed is a new entry for "vs2017" and everything else just as the existing entries for VS 2015 and behind have.

Is there some place where I can dig into this whole stuff a bit? I don't know the impact of this. E.g the workaround doesn't work. I'm struggeling with lua, trying to find out where the version values is comming from.

If Skype is fine by you, please get my e-mail from one of my commit messages and send me a letter. I'll reply to you with my Skype contact.

Closing since we have other issues tracking VS 2017.

This issue is definitely fixed!


Added Instruction Description

Hello!
This PR introduces a continuation of the approach to instruction-per-page documentation for RISC-V that has been followed by newer extensions like "B", Vector crypto and Scalar crypto. We are actively trying to improve the process of documentation generation and believe that aligning the base ISA with these extensions would greatly increase the manual. We recognize that there might be things to improve and that we are fully open to address any feedback.
Key points:

Enhanced instruction description structure:

Synopsis
Mnemonic
Encoding - with attributes
Description
Arguments
Operation (SAIL Code - retrieved from the SAIL repository)
Included in - (Extensions)

Automated documentation generation:
As discussed in https://github.com/riscv/riscv-isa-manual/issues/1590 we are also trying to achieve a nice automation process based on existing repos and minimizing our impact as we possible can. Please take note that, in order to achieve the most of this layout, we refined some of the SAIL Code by hand.

Current status:

Proof of concept covering a subset of RISC-V instructions (RV32I)
Example output available in the RISC-V instructions PDF riscv-unprivileged.pdf

There is a possibility here to impact the 200+ instructions in the manual that aren't still in this format if this approach is welcomed.
We welcome feedback on the approach, output quality, and potential modifications to existing repositories to support this effort.
Related issues: https://github.com/riscv/riscv-isa-manual/issues/1470, https://github.com/riscv/riscv-isa-manual/issues/1369, https://github.com/riscv/riscv-isa-manual/issues/1253, https://github.com/riscv/riscv-isa-manual/issues/1396, https://github.com/riscv/riscv-isa-manual/issues/1567

Where is src/instrs/instr-encoding-rv_i.adoc coming from?  Was it generated somehow or manually created?  What version of the SAIL model is the SAIL code from?

src/instrs/instr-encoding-rv_i.adoc is mostly automatically generated. The only part with a manual revision/creation is SAIL code.
This is branch with the latest version https://github.com/foss-for-synopsys-dwc-arc-processors/riscv-opcodes/tree/SynopsisDescription (if anynone wants to try please stick to "python3 parse.py rv_i -asciidoc", since the branch is still a WiP).
SAIL model is being directly parsed (both automatically and by hand) from the upstream repository.

Or perhaps even a separate document of all instuctions?

This is very nice, keeping each instruction on its own page, with writing brief enough to stay only within that one page.
It makes the ToC horrendously long, as well as breaking up continuity and flow of the rest of the Specification document.
This nice presentation seems much more fitting for another volume, may I suggest "RISC-V Assembly Lamguage Handbook", following the lead of Lance Leventhal's masterpiece, "6502 Assembly Language Handbook"? If you remember it, the layout and presentation is nearly the same as proppsed by this PR.

Or perhaps even a separate document of all instuctions?

That might very well be a separate document, but then what will be a distinction between what we already have in the ISA manual and that separate "index"? Note, that recently added extensions already have something like that. See, for example:

33.15. Vector Mask Instructions
34.4. Instructions (crypto instructions)
35.2. Extensions Overview (vector crypto)

I.e. will we remove these instruction descriptions from the ISA manual and keep there only general wording about each extension?
Just for the record, our idea was to improve the existing ISA manual with a uniform presentation of all instructions.

We're definitely open to suggestions. Of the options presented, I lean towards incorporating this content into an appendix section of the main document. This approach would keep all information easier to acess, rather than yet again creating another external resource. However, if there is room to maintain this as a separate document, I'm open to that solution as well. Our primary goal is to present this information in the best way possible.

This is very nice, keeping each instruction on its own page, with writing brief enough to stay only within that one page.
It makes the ToC horrendously long, as well as breaking up continuity and flow of the rest of the Specification document.
This nice presentation seems much more fitting for another volume, may I suggest "RISC-V Assembly Lamguage Programming", following the lead of Lance Leventhal's masterpiece, "6502 Assembly Language Programming"? If you remember it, the layout and presentation is nearly the same as proposed by this PR.

Well, there's already "RISC-V Assembly Programmer's Manual", see https://github.com/riscv-non-isa/riscv-asm-manual/blob/main/riscv-asm.md. And frankly speaking I'd rather consider merging it with the ISA manual as otherwise the ISA manual becomes a bit incomplete. In a sense that as a mere mortal software developer I would go check the ISA manual in a hope to get my questions answered fully, while in reality the information of my interest is spread among many documents:

The RISC-V Instruction Set Manual

Privileged &
Non-privileged

RISC-V Assembly Programmer's Manual
RISC-V ELF psABI Document
etc etc

I.e. I see value in modularity but we're also getting a problem of fragmentation, ambiguity and incompleteness (as it looks like from the first glance).

Not quite the same. Palmer's manual pointed out above is excellent coverage of best practices. It includes description of all relevant the directives in great detail, and lists all of the pseudoinstructions. Yet it doesn't include any mention of any of the real instruction, no summary and no detail.
That's where this comprehensive instruction list fits in -- following Leventhal. A separate thing to be a nice little pocket reference (for example, see Rick Aster's "Professional SAS Programmer's Pocket Reference").
It could/would even be given a coveted place as a riscv-isa-manual as opposed to being contribution simply as riscv-non-isa.

While there are differences between the ASM manual and this list, I believe there's still value in consolidating the information rather than dispersing it. Given that the instructions are almost entirely automatically generated, maintenance would be minimal in the event of any changes in the ISA.
IMO incorporating the instructions as proposed in the PR would align with the existing standard, as @abrodkin pointed out, thus minimizing changes to the manual. We remain highly receptive to feedback and I'm not opposed to a comprehensive index of all instructions. However, I would suggest organizing that index by extensions as well. This approach would facilitate quick reference to see which instructions each extension adds, although we'd need to address the repeated instructions across extensions.

These are even more good reasons for maintaining that comprehensive instruction list in a separate place. Multiple index lists (one by alphabetical, another by extension) makes even greater length and adds to the "confusion of too many things to look at" when looking at the Unprivigedged Specificatiom to learn its big picture.
Being almost entirely automatically generated, so that maintenance would be minimal, is more of a non-human benefit; it adds little to human readability and overall comprehension. Thus, it's a minor point.
If there are too many lists, and too much detail, it is very hard to see the difference from one thing (instruction, in this case) to the next. That is how bugs and errors are introduced: flipping through to gather and group all desired instructions which might be part of scope of some desired revision, one might not catch them all--the missing ones would then be bugs later needing tombe fixed. A cyclical and painful process.
The goal of a manual or specification document is to say as much as possible, using comparative terms and relational methods and explanations, with the least space used.

In order to answer this question we need to agree on the use model for RISC-V ISA Manual. Is this a book for reading from first page to last page like a novel, or a Reference Manual for a hypothetical CPU which includes all latest versions of ratified RISC-V extensions, or a collection of adoc files grouped by extensions + their versions which IC manufactures can mix and match to create a Programmers' Reference Guide document for their respective chip.
Is the use model for RISC-V ISA Manual defined and documented somewhere?

I'd like to ensure that this per-instruction documentation is just one view of a database of this information. I'd like to see other views including HTML and then also integration with other RISC-V ISA information like riscv-opcodes or some plan to integrate them together.
On a technical note, I'd like to see a list of possible exceptions that can be generated by an instruction added. See MIPS example.

Hello, @jalobaba.
It is just one view of the information of the database for sure.

views including HTML

We are using the make method of this repo so it definitely also generates HTML. If you want to check out how that would look, the easiest option would be to open the manual in it's current state and navigate to "BF16" extension since that is the style we are going for.

integration with other RISC-V ISA information like riscv-opcodes

Our source of information for all of this (except synopsis and description) is the riscv-opcodes repository. That's one of the main advantages of this whole approach since it almost only uses pre-existing information.

possible exceptions

Since we are parsing from riscv-opcodes, we can't automatically get this information, so it would have to be a manual adittion. We are already seing possibilities for this since the riscv-unified-db also has this information and it for sure is a great adittion.


Think about animation classes

There was the idea to add the animation classes to the fragments  themselves instead of the html element for fragment visits.
Questions

Does this make sense?
How should this ideally be implemented?

Solved by the recent API updates.


When issue has pictures uploaded, each page refresh fully download pictures instead of using cache

Gitea version (or commit ref): 1.4.0+rc2-5-gc0e0fb7
Git version: 2.7.4
Operating system: Linux (docker container)
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[x] Yes
[ ] No
[ ] Not relevant

Log gist:

Description
The images uploaded to an issue in gitea don't seem to be cached and are downloaded again every time we reload the page.
You can check it for yourself here: https://try.gitea.io/dolanor/lol/issues/1#issuecomment-3469
Screenshots

The cache should work fine now.